AI產(chǎn)品之路:機(jī)器學(xué)習(xí)(一)

6 評(píng)論 22083 瀏覽 199 收藏 12 分鐘

文章分享了關(guān)于機(jī)器學(xué)習(xí)的一些知識(shí),希望能夠給各位PM帶來收獲。

2017年可以說是人工智能爆發(fā)的一年,傳統(tǒng)互聯(lián)網(wǎng)紅利消失,熟知的大廠BAT都在人工智能上布局,作為一名互聯(lián)網(wǎng)PM,深知技術(shù)的變革必然帶來新機(jī)會(huì)??蓪?duì)大多數(shù)互聯(lián)網(wǎng)PM而言,面對(duì)ML(機(jī)器學(xué)習(xí))、DL(深度學(xué)習(xí))、NLP(自然語言處理)以及的各種概念以及底層所需的各種數(shù)學(xué)知識(shí),不懂技術(shù)似乎讓人望而卻步了。

可事實(shí)并非全然如此,AI是手段,最終的目的也是要找到現(xiàn)實(shí)中可以落地和商業(yè)化的場(chǎng)景,去實(shí)現(xiàn)他的價(jià)值,雖然目前來看仍然是技術(shù)主導(dǎo)。不過可以確信的一點(diǎn)是,要進(jìn)入這個(gè)領(lǐng)域,對(duì)底層知識(shí)和技術(shù)的要求是必然要高于互聯(lián)網(wǎng)PM的水平。

本人目前是一名互聯(lián)網(wǎng)PM,剛好上學(xué)得是相關(guān)專業(yè),有點(diǎn)數(shù)學(xué)底子,也層自己擼過代碼設(shè)計(jì)實(shí)現(xiàn)“基于BP前饋神經(jīng)網(wǎng)絡(luò)的圖像識(shí)別”,打算進(jìn)入未來進(jìn)入AI領(lǐng)域,最近開始重新學(xué)習(xí)并搭建AI的知識(shí)框架,希望能分享出來大家一起來了解AI這個(gè)看起來“高大上”的東西。

首先,按照李笑來老師和羅胖的說法,學(xué)一個(gè)領(lǐng)域的知識(shí),就是兩件事(1)找概念(2)搭框架。特別是對(duì)于很多對(duì)概念都不了解的同學(xué),一定要有個(gè)“知識(shí)地圖”,如下:

看到這個(gè)腦圖,一些童鞋經(jīng)?;煜膯栴}就明白了

  1. 機(jī)器學(xué)習(xí)是什么
  2. 深度學(xué)習(xí)是什么
  3. 機(jī)器學(xué)習(xí)與深度學(xué)習(xí)的區(qū)別是什么
  4. 機(jī)器學(xué)習(xí)監(jiān)督學(xué)習(xí)方式的“回歸思想”

下面我們一一來說

1.機(jī)器學(xué)習(xí)

概念定義(個(gè)人理解):通過大量已知數(shù)據(jù)(可能被標(biāo)注,也可能無標(biāo)注)去訓(xùn)練算法模型,總結(jié)出某種數(shù)據(jù)之間的映射關(guān)系(即規(guī)律),最終可以對(duì)未知數(shù)據(jù)實(shí)現(xiàn)智能處理(分類、識(shí)別、預(yù)測(cè)等)

舉個(gè)例子,比如我這里有大量蘋果和桃子的圖片,并且每張圖片都打上對(duì)應(yīng)的種類標(biāo)簽,然后把這些圖片喂給模型,讓模型不斷學(xué)習(xí)優(yōu)化。訓(xùn)練結(jié)束后,我們又找一些沒有打標(biāo)簽的蘋果和桃子圖片扔給這個(gè)模型,讓他自己去做分類識(shí)別是蘋果還是桃子,這就是一個(gè)完整的機(jī)器學(xué)習(xí)過程(有監(jiān)督)。而所謂的“映射關(guān)系”,即“蘋果圖片”對(duì)應(yīng)“蘋果標(biāo)簽”,“桃子圖片”對(duì)應(yīng)“桃子標(biāo)簽”

2.基本概念

(1)學(xué)習(xí)方式

學(xué)習(xí)方式分為有監(jiān)督學(xué)習(xí)和無監(jiān)督學(xué)習(xí),有監(jiān)督學(xué)習(xí)即我們會(huì)再把數(shù)據(jù)給模型訓(xùn)練之前,進(jìn)行人工的預(yù)先處理,打標(biāo)簽(學(xué)名:特征提取)。監(jiān)督學(xué)習(xí)又分為回歸與分類。

而無監(jiān)督學(xué)習(xí),就是無需通過人為的預(yù)先處理,直接把數(shù)據(jù)給算法,無監(jiān)督學(xué)習(xí)對(duì)應(yīng)的方法為“聚類”

(2)學(xué)習(xí)過程

  • 訓(xùn)練集(訓(xùn)練樣本):我們?cè)谟?xùn)練算法模型時(shí)給他的數(shù)據(jù)
  • 驗(yàn)證集:用訓(xùn)練樣本訓(xùn)練好以后,我們還要用訓(xùn)練樣本之外的數(shù)據(jù),去檢驗(yàn)這個(gè)算法模型的實(shí)際效果
  • 誤差:如何檢驗(yàn)效果呢?在ML/DL里,就是通過“誤差”的大小去判斷(至于具體怎么計(jì)算,下一篇會(huì)講到)
  • 欠擬合:模型不能在訓(xùn)練集上獲得足夠低的誤差
  • 過擬合:訓(xùn)練誤差與測(cè)試誤差(在驗(yàn)證集的誤差)差距過大,那么這個(gè)模型就不是好模型,因?yàn)橹荒苡迷谟?xùn)練樣本上….而對(duì)其以外的數(shù)據(jù)都沒有好的效果
  • 泛化性:訓(xùn)練好的模型在其他數(shù)據(jù)上的使用情況,如果效果也很好,那就是泛化性好

那么問題來了,怎樣才算合適的擬合呢?

其實(shí)在整個(gè)過程中,隨著時(shí)間推移,算法的不斷優(yōu)化,在訓(xùn)練樣本和測(cè)試樣本的誤差都在不斷下降;但如果學(xué)習(xí)時(shí)間過程,訓(xùn)練集的誤差持續(xù)下降,而驗(yàn)證集的誤差卻開始上升了。原因是模型為了在訓(xùn)練集上效果更好!已經(jīng)開始學(xué)習(xí)訓(xùn)練集上的噪音和不需要的細(xì)節(jié)了。所以要找到合適的“擬合”,最好是找到訓(xùn)練誤差還在下降,而測(cè)試誤差剛好開始上升的那個(gè)“點(diǎn)”

3.機(jī)器學(xué)習(xí)與深度學(xué)習(xí)的區(qū)別

很多不知道的人,可能僅僅知道他們是包含關(guān)系,深度學(xué)習(xí)屬于機(jī)器學(xué)習(xí),但其實(shí)遠(yuǎn)遠(yuǎn)不止如此…..(這樣太模糊了),從腦圖可以看出,其實(shí)機(jī)器學(xué)習(xí)在方法上可以有很多種,比如:邏輯回歸、決策樹、樸素貝葉斯、線性回歸、SVM支持向量機(jī)等,他們都屬于機(jī)器學(xué)習(xí),而我們也看到,最下面有一個(gè)“神經(jīng)網(wǎng)絡(luò)”,他們的等級(jí)與上面列舉是屬于一類的。

神經(jīng)網(wǎng)絡(luò)這概念,可以分為“淺層神經(jīng)網(wǎng)絡(luò)”與“深層神經(jīng)網(wǎng)絡(luò)”

“淺層神經(jīng)網(wǎng)絡(luò)”中最經(jīng)典的一個(gè)網(wǎng)絡(luò)也就是“BP前饋神經(jīng)網(wǎng)絡(luò)”

“深層神經(jīng)網(wǎng)絡(luò)”,大概可以理解為我們所謂的“深度學(xué)習(xí)”(Deep Learning),而深層神經(jīng)網(wǎng)絡(luò),下面又分為很多網(wǎng)絡(luò)結(jié)構(gòu),如DNN、CNN、RNN

但這里要注意區(qū)分的是,深淺的區(qū)別不僅僅是“網(wǎng)絡(luò)層數(shù)”的區(qū)別,更重要的是,“深度學(xué)習(xí)”(深層神經(jīng)網(wǎng)絡(luò))較其他所有機(jī)器學(xué)習(xí)最厲害的一點(diǎn):

他可以進(jìn)行數(shù)據(jù)的特征提取“預(yù)處理”(省去了數(shù)據(jù)人工標(biāo)注的大麻煩,同時(shí)可以對(duì)更多維和復(fù)雜的特征進(jìn)行向量的提取和空間向量的轉(zhuǎn)換,方便后續(xù)處理),而這也是他為什么要很多層的原因,因?yàn)槠渲卸喑鰜淼木W(wǎng)絡(luò)層數(shù),都是要用來進(jìn)行數(shù)據(jù)特征提取預(yù)處理的

相信到一步,結(jié)合上面的腦圖,我們就能分清“機(jī)器學(xué)習(xí)”與“深度學(xué)習(xí)”的真正區(qū)別了,不是簡單的包含關(guān)系。

4.回歸

個(gè)人覺得回歸作為了解機(jī)器學(xué)習(xí)過程,是一個(gè)很好的入門了解。

所謂“回歸”,看起來很深?yuàn)W,其實(shí)并不是這樣。我舉個(gè)栗子:

y=2x這個(gè)一元函數(shù),假設(shè)我們現(xiàn)在不知道他的斜率w=2,而我給你5數(shù)據(jù)y=2,4,6,8,10,對(duì)應(yīng)的x分別為1,2,3,4,5。你是不是會(huì)自動(dòng)假設(shè),那他們之間是2倍的對(duì)應(yīng)關(guān)系?沒錯(cuò)!你“自動(dòng)假設(shè)他們有某種對(duì)應(yīng)關(guān)系”的這個(gè)過程,就叫“回歸”;而你假設(shè)他們的關(guān)系是“2倍”,這就是“線性回歸”了。

所以回歸的定義(個(gè)人理解):我們看到大量事實(shí)或數(shù)據(jù)中,假設(shè)他們之間存在著某種對(duì)應(yīng)關(guān)系。而機(jī)器學(xué)習(xí)中的回歸(監(jiān)督學(xué)習(xí))要做的就是:嘗試去讓計(jì)算機(jī)找到大量數(shù)據(jù)之間這樣的對(duì)應(yīng)關(guān)系,那怎么找呢?

我們先假設(shè)一個(gè)關(guān)系吧:y=wx+b ,其中 w為權(quán)值、b為偏置,w為1Xn矩陣向量,x為nX1的矩陣向量(這幾個(gè)概念就不做數(shù)學(xué)解釋了,而為什么x不是實(shí)數(shù)而是矩陣,那是因?yàn)槲覀冊(cè)诂F(xiàn)實(shí)世界的數(shù)據(jù)中,可能有N多個(gè)維度….而不僅僅是一維就可以描述這個(gè)數(shù)據(jù)特征的)

現(xiàn)在我要評(píng)判一個(gè)橘子的“好壞程度”,y代表“好壞程度”,而且都是打過標(biāo)簽的。x為一個(gè)三維矩陣向量分別代表【大小、顏色、形狀】。那么代入公式:

y=w1X大小+w2X顏色+w3X形狀+b ?(這里先假設(shè)b為0吧)

那么現(xiàn)在的任務(wù)就是分別找到合適的w1,w2,w3的值來準(zhǔn)確描述橘子的“好壞程度”與“大小、顏色、形狀”的關(guān)系。那么怎樣確定是否合適呢?

通過“損失函數(shù)”Loss來定義(這里數(shù)學(xué)公式就不列了),Loss的含義就是把樣本中所有x都代入“假設(shè)公式”wx+b中(這時(shí)候w與b的值幾乎肯定是不準(zhǔn)確的),然后得到值與真實(shí)的y值做比較的差值,就是損失函數(shù)Loss。那么Loss越小,說明這時(shí)候的w與b的值越接近真實(shí)的“線性關(guān)系”。所以我們最終機(jī)器學(xué)習(xí)的目的,就是求解出讓Loss越小(當(dāng)然無限接近于0最好)的對(duì)應(yīng)的w與b的值,求出來之后,也就是機(jī)器學(xué)習(xí)模型“訓(xùn)練結(jié)束”!之后就是用驗(yàn)證集去驗(yàn)證是否會(huì)過擬合,來檢驗(yàn)?zāi)P偷姆夯芰?/p>

當(dāng)然這里要做幾點(diǎn)說明了:

(1)這只是最為最為簡單的一個(gè)機(jī)器學(xué)習(xí)栗子說明,著重了解一下機(jī)器學(xué)習(xí)中回歸的基本思想

(2)這里我們并沒有說怎么去尋找讓Loss最?。ɑ蚍蠗l件)的對(duì)應(yīng)w與b的映射關(guān)系,后面我在分享“BP前饋神經(jīng)網(wǎng)絡(luò)的梯度下降時(shí)”會(huì)簡單介紹這個(gè)求解基本思想過程

(3)如果你分析的數(shù)據(jù)本身是非線性關(guān)系,而你假設(shè)他們是線性關(guān)系并用對(duì)應(yīng)的模型去訓(xùn)練,那么結(jié)果一定是“欠擬合”的(所以對(duì)于欠擬合的一另一個(gè)表達(dá):你的想法不符合這個(gè)世界的現(xiàn)實(shí)…)

上面的關(guān)于機(jī)器學(xué)習(xí)的一些基本概念的分享,后續(xù)持續(xù)更新,希望能和大家一起走在AI的路上!

 

本文由 @?Free 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來自PEXELS,基于CC0協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 感覺線性代數(shù)都丟回去了,咋辦

    來自浙江 回復(fù)
  2. 在看tensorflow文檔時(shí)候,一起看你寫的真是幫了大忙了!

    來自上海 回復(fù)
  3. 對(duì)于訓(xùn)練集和驗(yàn)證集我有不同的看法,驗(yàn)證集往往是從訓(xùn)練集中抽取的一部分為為最優(yōu)模型輸出做驗(yàn)證,模型出來用訓(xùn)練之外的數(shù)據(jù)測(cè)試模型的數(shù)據(jù)叫測(cè)試集

    回復(fù)
    1. 對(duì),驗(yàn)證集還是有標(biāo)簽的只是沒有輸入,測(cè)試集才是真正類似真實(shí)需要去得到結(jié)果的新數(shù)據(jù)

      回復(fù)
  4. 瞬間覺得大學(xué)時(shí)期學(xué)的高數(shù)還是有作用的! ?

    來自北京 回復(fù)
    1. 不是高數(shù),是線性代數(shù)吧 ??

      來自北京 回復(fù)