AI產品之路:機器學習
2017年可以說是人工智慧爆發的一年,傳統互聯網紅利消失,熟知的大廠BAT都在人工智慧上布局,作為一名互聯網PM,深知技術的變革必然帶來新機會。可對大多數互聯網PM而言,面對ML(機器學習)、DL(深度學習)、NLP(自然語言處理)以及的各種概念以及底層所需的各種數學知識,不懂技術似乎讓人望而卻步了。
可事實並非全然如此,AI是手段,最終的目的也是要找到現實中可以落地和商業化的場景,去實現他的價值,雖然目前來看仍然是技術主導。不過可以確信的一點是,要進入這個領域,對底層知識和技術的要求是必然要高於互聯網PM的水平。
本人目前是一名互聯網PM,剛好上學得是相關專業,有點數學底子,也層自己擼過代碼設計實現「基於BP前饋神經網路的圖像識別」,打算進入未來進入AI領域,最近開始重新學習並搭建AI的知識框架,希望能分享出來大家一起來了解AI這個看起來「高大上」的東西。
首先,按照李笑來老師和羅胖的說法,學一個領域的知識,就是兩件事(1)找概念(2)搭框架。特別是對於很多對概念都不了解的同學,一定要有個「知識地圖」,如下:
看到這個腦圖,一些童鞋經常混淆的問題就明白了
- 機器學習是什麼
- 深度學習是什麼
- 機器學習與深度學習的區別是什麼
- 機器學習監督學習方式的「回歸思想」
下面我們一一來說
1.機器學習概念定義(個人理解):通過大量已知數據(可能被標註,也可能無標註)去訓練演算法模型,總結出某種數據之間的映射關係(即規律),最終可以對未知數據實現智能處理(分類、識別、預測等)
舉個例子,比如我這裡有大量蘋果和桃子的圖片,並且每張圖片都打上對應的種類標籤,然後把這些圖片餵給模型,讓模型不斷學習優化。訓練結束後,我們又找一些沒有打標籤的蘋果和桃子圖片扔給這個模型,讓他自己去做分類識別是蘋果還是桃子,這就是一個完整的機器學習過程(有監督)。而所謂的「映射關係」,即「蘋果圖片」對應「蘋果標籤」,「桃子圖片」對應「桃子標籤」
2.基本概念(1)學習方式學習方式分為有監督學習和無監督學習,有監督學習即我們會再把數據給模型訓練之前,進行人工的預先處理,打標籤(學名:特徵提取)。監督學習又分為回歸與分類。
而無監督學習,就是無需通過人為的預先處理,直接把數據給演算法,無監督學習對應的方法為「聚類」
(2)學習過程那麼問題來了,怎樣才算合適的擬合呢?
其實在整個過程中,隨著時間推移,演算法的不斷優化,在訓練樣本和測試樣本的誤差都在不斷下降;但如果學習時間過程,訓練集的誤差持續下降,而驗證集的誤差卻開始上升了。原因是模型為了在訓練集上效果更好!已經開始學習訓練集上的噪音和不需要的細節了。所以要找到合適的「擬合」,最好是找到訓練誤差還在下降,而測試誤差剛好開始上升的那個「點」
3.機器學習與深度學習的區別
很多不知道的人,可能僅僅知道他們是包含關係,深度學習屬於機器學習,但其實遠遠不止如此…..(這樣太模糊了),從腦圖可以看出,其實機器學習在方法上可以有很多種,比如:邏輯回歸、決策樹、樸素貝葉斯、線性回歸、SVM支持向量機等,他們都屬於機器學習,而我們也看到,最下面有一個「神經網路」,他們的等級與上面列舉是屬於一類的。
而神經網路這概念,可以分為「淺層神經網路」與「深層神經網路」
「淺層神經網路」中最經典的一個網路也就是「BP前饋神經網路」
「深層神經網路」,大概可以理解為我們所謂的「深度學習」(Deep Learning),而深層神經網路,下面又分為很多網路結構,如DNN、CNN、RNN
但這裡要注意區分的是,深淺的區別不僅僅是「網路層數」的區別,更重要的是,「深度學習」(深層神經網路)較其他所有機器學習最厲害的一點:
他可以進行數據的特徵提取「預處理」(省去了數據人工標註的大麻煩,同時可以對更多維和複雜的特徵進行向量的提取和空間向量的轉換,方便後續處理),而這也是他為什麼要很多層的原因,因為其中多出來的網路層數,都是要用來進行數據特徵提取預處理的
相信到一步,結合上面的腦圖,我們就能分清「機器學習」與「深度學習」的真正區別了,不是簡單的包含關係。
4.回歸個人覺得回歸作為了解機器學習過程,是一個很好的入門了解。
所謂「回歸」,看起來很深奧,其實並不是這樣。我舉個栗子:
y=2x這個一元函數,假設我們現在不知道他的斜率w=2,而我給你5數據y=2,4,6,8,10,對應的x分別為1,2,3,4,5。你是不是會自動假設,那他們之間是2倍的對應關係?沒錯!你「自動假設他們有某種對應關係」的這個過程,就叫「回歸」;而你假設他們的關係是「2倍」,這就是「線性回歸」了。
所以回歸的定義(個人理解):我們看到大量事實或數據中,假設他們之間存在著某種對應關係。而機器學習中的回歸(監督學習)要做的就是:嘗試去讓計算機找到大量數據之間這樣的對應關係,那怎麼找呢?
我們先假設一個關係吧:y=wx+b ,其中 w為權值、b為偏置,w為1Xn矩陣向量,x為nX1的矩陣向量(這幾個概念就不做數學解釋了,而為什麼x不是實數而是矩陣,那是因為我們在現實世界的數據中,可能有N多個維度….而不僅僅是一維就可以描述這個數據特徵的)
現在我要評判一個橘子的「好壞程度」,y代表「好壞程度」,而且都是打過標籤的。x為一個三維矩陣向量分別代表【大小、顏色、形狀】。那麼代入公式:
y=w1X大小+w2X顏色+w3X形狀+b (這裡先假設b為0吧)
那麼現在的任務就是分別找到合適的w1,w2,w3的值來準確描述橘子的「好壞程度」與「大小、顏色、形狀」的關係。那麼怎樣確定是否合適呢?
通過「損失函數」Loss來定義(這裡數學公式就不列了),Loss的含義就是把樣本中所有x都代入「假設公式」wx+b中(這時候w與b的值幾乎肯定是不準確的),然後得到值與真實的y值做比較的差值,就是損失函數Loss。那麼Loss越小,說明這時候的w與b的值越接近真實的「線性關係」。所以我們最終機器學習的目的,就是求解出讓Loss越小(當然無限接近於0最好)的對應的w與b的值,求出來之後,也就是機器學習模型「訓練結束」!之後就是用驗證集去驗證是否會過擬合,來檢驗模型的泛化能力
當然這裡要做幾點說明了:
(1)這只是最為最為簡單的一個機器學習栗子說明,著重了解一下機器學習中回歸的基本思想
(2)這裡我們並沒有說怎麼去尋找讓Loss最小(或符合條件)的對應w與b的映射關係,後面我在分享「BP前饋神經網路的梯度下降時」會簡單介紹這個求解基本思想過程
(3)如果你分析的數據本身是非線性關係,而你假設他們是線性關係並用對應的模型去訓練,那麼結果一定是「欠擬合」的(所以對於欠擬合的一另一個表達:你的想法不符合這個世界的現實…)
上面的關於機器學習的一些基本概念的分享,後續持續更新,希望能和大家一起走在AI的路上!
本文由 @ Free 原創發佈於人人都是產品經理。未經許可,禁止轉載。
題圖來自PEXELS,基於CC0協議
推薦閱讀:
※機器學習(入門):如何用邏輯回歸分類
※更加智能的決策樹:回歸樹
※端上的圖像相似度演算法選型
※樸素貝葉斯演算法和R語言
※Windows7 Anaconda環境下xgboost的安裝配置