AI產品之路:機器學習

2017年可以說是人工智慧爆發的一年,傳統互聯網紅利消失,熟知的大廠BAT都在人工智慧上布局,作為一名互聯網PM,深知技術的變革必然帶來新機會。可對大多數互聯網PM而言,面對ML(機器學習)、DL(深度學習)、NLP(自然語言處理)以及的各種概念以及底層所需的各種數學知識,不懂技術似乎讓人望而卻步了。

可事實並非全然如此,AI是手段,最終的目的也是要找到現實中可以落地和商業化的場景,去實現他的價值,雖然目前來看仍然是技術主導。不過可以確信的一點是,要進入這個領域,對底層知識和技術的要求是必然要高於互聯網PM的水平。

本人目前是一名互聯網PM,剛好上學得是相關專業,有點數學底子,也層自己擼過代碼設計實現「基於BP前饋神經網路的圖像識別」,打算進入未來進入AI領域,最近開始重新學習並搭建AI的知識框架,希望能分享出來大家一起來了解AI這個看起來「高大上」的東西。

首先,按照李笑來老師和羅胖的說法,學一個領域的知識,就是兩件事(1)找概念(2)搭框架。特別是對於很多對概念都不了解的同學,一定要有個「知識地圖」,如下:

看到這個腦圖,一些童鞋經常混淆的問題就明白了

  1. 機器學習是什麼
  2. 深度學習是什麼
  3. 機器學習與深度學習的區別是什麼
  4. 機器學習監督學習方式的「回歸思想」

下面我們一一來說

1.機器學習

概念定義(個人理解):通過大量已知數據(可能被標註,也可能無標註)去訓練演算法模型,總結出某種數據之間的映射關係(即規律),最終可以對未知數據實現智能處理(分類、識別、預測等)

舉個例子,比如我這裡有大量蘋果和桃子的圖片,並且每張圖片都打上對應的種類標籤,然後把這些圖片餵給模型,讓模型不斷學習優化。訓練結束後,我們又找一些沒有打標籤的蘋果和桃子圖片扔給這個模型,讓他自己去做分類識別是蘋果還是桃子,這就是一個完整的機器學習過程(有監督)。而所謂的「映射關係」,即「蘋果圖片」對應「蘋果標籤」,「桃子圖片」對應「桃子標籤」

2.基本概念(1)學習方式

學習方式分為有監督學習和無監督學習,有監督學習即我們會再把數據給模型訓練之前,進行人工的預先處理,打標籤(學名:特徵提取)。監督學習又分為回歸與分類。

而無監督學習,就是無需通過人為的預先處理,直接把數據給演算法,無監督學習對應的方法為「聚類」

(2)學習過程

  • 訓練集(訓練樣本):我們在訓練演算法模型時給他的數據
  • 驗證集:用訓練樣本訓練好以後,我們還要用訓練樣本之外的數據,去檢驗這個演算法模型的實際效果
  • 誤差:如何檢驗效果呢?在ML/DL里,就是通過「誤差」的大小去判斷(至於具體怎麼計算,下一篇會講到)
  • 欠擬合:模型不能在訓練集上獲得足夠低的誤差
  • 過擬合:訓練誤差與測試誤差(在驗證集的誤差)差距過大,那麼這個模型就不是好模型,因為只能用在訓練樣本上….而對其以外的數據都沒有好的效果
  • 泛化性:訓練好的模型在其他數據上的使用情況,如果效果也很好,那就是泛化性好
  • 那麼問題來了,怎樣才算合適的擬合呢?

    其實在整個過程中,隨著時間推移,演算法的不斷優化,在訓練樣本和測試樣本的誤差都在不斷下降;但如果學習時間過程,訓練集的誤差持續下降,而驗證集的誤差卻開始上升了。原因是模型為了在訓練集上效果更好!已經開始學習訓練集上的噪音和不需要的細節了。所以要找到合適的「擬合」,最好是找到訓練誤差還在下降,而測試誤差剛好開始上升的那個「點」

    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的安裝配置

    TAG:產品 | 學習 | 機器學習 | 機器 | 產品之路 |