想入門AI,機(jī)器學(xué)習(xí)你知多少了?

JM
4 評論 12468 瀏覽 57 收藏 21 分鐘

有意轉(zhuǎn)行AI行業(yè)的PM們,需要對機(jī)器學(xué)習(xí)了解多深?機(jī)器學(xué)習(xí)跟無監(jiān)督學(xué)習(xí)、半監(jiān)督學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)、深度學(xué)習(xí)、強(qiáng)化學(xué)習(xí)、遷移學(xué)習(xí)等是什么關(guān)系?各自之間又有什么區(qū)別和關(guān)系?本文作為一篇掃盲篇將給你一一梳理。

01 機(jī)器學(xué)習(xí)(Machine Learning)

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

機(jī)器學(xué)習(xí)與人工智能的關(guān)系:機(jī)器學(xué)習(xí)是實(shí)現(xiàn)人工智能的一種工具;而監(jiān)督學(xué)習(xí)、無監(jiān)督學(xué)習(xí)、深度學(xué)習(xí)等只是實(shí)現(xiàn)機(jī)器學(xué)習(xí)的一種方法。

機(jī)器學(xué)習(xí)與各種學(xué)習(xí)方法之間的關(guān)系:

注:這里把神經(jīng)網(wǎng)絡(luò)和深度學(xué)習(xí)歸到監(jiān)督學(xué)習(xí)下面可能不是很恰當(dāng),因?yàn)榫S度不一樣,只能說有些監(jiān)督學(xué)習(xí)的過程中用到神經(jīng)網(wǎng)絡(luò)的方法。

而在半監(jiān)督學(xué)習(xí)或無監(jiān)督學(xué)習(xí)的過程中也可能會用到神經(jīng)網(wǎng)絡(luò),這里只在監(jiān)督學(xué)習(xí)的模式下介紹神經(jīng)網(wǎng)絡(luò)。

機(jī)器學(xué)習(xí)就是讓機(jī)器自己有學(xué)習(xí)能力,能模擬人的思維方式去解決問題。

機(jī)器學(xué)習(xí)目的不只是讓機(jī)器去做某件事,而是讓機(jī)器學(xué)會學(xué)習(xí)。就像教一個(gè)小孩,我們不能教他所有的事,我們只是啟蒙他,他學(xué)會用我們教他的東西去創(chuàng)造更多的東西。

人解決問題的思維方式:

遇到問題的時(shí)候,人會根據(jù)過往的經(jīng)歷、經(jīng)驗(yàn)、知識,來做決定。

機(jī)器模擬人的思維方式:

先用大量的數(shù)據(jù)訓(xùn)練機(jī)器,讓機(jī)器有一定的經(jīng)驗(yàn),再次輸入新的問題時(shí),機(jī)器可以根據(jù)以往的數(shù)據(jù),輸出一個(gè)最優(yōu)解。

所以,機(jī)器學(xué)習(xí)就是讓機(jī)器具備學(xué)習(xí)能力,像人一樣去思考和解決問題。

2. 怎么實(shí)現(xiàn)機(jī)器學(xué)習(xí)

實(shí)現(xiàn)機(jī)器學(xué)習(xí)的三個(gè)步驟:

舉個(gè)例子:我們現(xiàn)在要做一個(gè)預(yù)測房價(jià)的模型,假設(shè)影響房價(jià)的因素只有住房面積:

第一步:定義模型

假設(shè):y=房價(jià),x=住房面積

則定義模型:y=a*x+b

其中x為特征變量,a、b為參數(shù)。因此我們的目的就是利用訓(xùn)練數(shù)據(jù)(Training Data),去確定參數(shù)a、b的值。

第二步:定義怎樣才是最好的(定義代價(jià)函數(shù))

在第一步定義好模型之后,接下來我們要告訴機(jī)器,滿足什么樣條件的a和b才是最好的模型,即定義代價(jià)函數(shù)。

假設(shè)測試的數(shù)據(jù)(x1、y1)、(x2、y2)、(x3、y3)…;

假設(shè)測試數(shù)據(jù)到直線的距離之和為J;

則J2=1/M∑(x-xi)2+(y-yi)2之和,其中xi、yi表示每點(diǎn)的測試數(shù)據(jù),M表示測試數(shù)據(jù)的個(gè)數(shù)。

因此我們定義最好的就是:使得J的值最小時(shí),就是最好的。

第三步:找出最好的模型

根據(jù)第二步,我們知道什么是最好的了,接下來就是想辦法求解出最好的解。

常用的就是梯度下降法,求最小值。剩下的就是輸入數(shù)據(jù)去訓(xùn)練了,訓(xùn)練數(shù)據(jù)的量和數(shù)據(jù)源的不同,就會導(dǎo)致最終的參數(shù)a、b不一樣。

這三步中基本上就是轉(zhuǎn)化為數(shù)學(xué)問題,后面會單獨(dú)寫一篇文章說明如何將一個(gè)AI模型轉(zhuǎn)化為數(shù)學(xué)的求解問題,其中主要涉及的一些專稱有:預(yù)測函數(shù)、代價(jià)函數(shù)、誤差、梯度下降、收斂、正則化、反向傳播等等,感興趣的同學(xué)可以關(guān)注下。

02 監(jiān)督學(xué)習(xí)(Supervised Learning)

監(jiān)督學(xué)習(xí)是從已標(biāo)記的訓(xùn)練數(shù)據(jù)來推斷一個(gè)功能的機(jī)器學(xué)習(xí)任務(wù),主要特點(diǎn)就是訓(xùn)練數(shù)據(jù)是有標(biāo)簽的。

比如說圖像識別:當(dāng)輸入一張貓的圖片時(shí),你告訴機(jī)器這是貓;當(dāng)輸入一張狗的圖片時(shí),你告訴機(jī)器這是狗;如此訓(xùn)練。

測試時(shí),當(dāng)你輸入一張機(jī)器以前沒見過的照片,機(jī)器能辨認(rèn)出這張圖片是貓還是狗。

監(jiān)督學(xué)習(xí)的訓(xùn)練數(shù)據(jù)是有標(biāo)簽的,即輸入時(shí)告訴機(jī)器這是什么,通過輸入是給定標(biāo)簽的數(shù)據(jù),讓機(jī)器自動(dòng)找出輸入與輸出之間的關(guān)系。

其實(shí)現(xiàn)在我們看到的人工智能,大多數(shù)是監(jiān)督學(xué)習(xí)。

監(jiān)督學(xué)習(xí)優(yōu)缺點(diǎn)

  • 優(yōu)點(diǎn):算法的難度較低,模型容易訓(xùn)練;
  • 缺點(diǎn):需要人工給大量的訓(xùn)練數(shù)據(jù)打上標(biāo)簽,因此就催生了數(shù)據(jù)標(biāo)簽師和數(shù)據(jù)訓(xùn)練師的崗位。

03 線性回歸(Linear Regression)

我們前面舉的預(yù)測房價(jià)的例子就是一個(gè)線性回歸的問題,我們要找一條線去擬合這些測試數(shù)據(jù),讓誤差最小。

如果我們要誤差最小,即要每一個(gè)測試點(diǎn)到直線的距離之和最小。(具體步驟可以參考我們前面介紹的實(shí)現(xiàn)機(jī)器學(xué)習(xí)的三個(gè)步驟)。

但是在現(xiàn)實(shí)問題中,可能房價(jià)跟住房面值不是單純的直線關(guān)系,當(dāng)住房面積到一定大的時(shí)候,房價(jià)的增幅就會變緩了;或者說當(dāng)數(shù)據(jù)量不夠大時(shí),我們得到的模型跟測試數(shù)據(jù)太擬合了,不夠通用。

為了解決這些問題,我們就需要正則化,就是讓模型更加的通用。

圖一:如果我們按y=a*x+b這個(gè)模型去訓(xùn)練,那得到的就會像圖一這樣的曲線,而當(dāng)住房面積比較大時(shí),可能預(yù)測效果就不好了;

圖二:我們加入了一個(gè)二次項(xiàng),擬合效果就很不錯(cuò)了,輸入新數(shù)據(jù)時(shí),預(yù)測效果比較好,所以這就是比較好的模;

那這么說就是擬合程度越高越好?并不是,我們的目的不是在訓(xùn)練數(shù)據(jù)中找出最擬合的模型,而是找出當(dāng)輸入新數(shù)據(jù)時(shí),預(yù)測效果最好的。因此,這個(gè)模型必須具體通用性。

圖三:我們加入了更高的三次項(xiàng),模型跟訓(xùn)練數(shù)據(jù)擬合度太高,但不具備通用性,當(dāng)你輸入新數(shù)據(jù)時(shí),其實(shí)預(yù)測效果也不好。因此需要通過正則化后,找到比較理想的通用模型。

線性回歸的特點(diǎn):

  • 主要解決連續(xù)值預(yù)測的問題;
  • 輸出的是數(shù)值。

04 邏輯回歸(Logistic Regression)

邏輯回歸輸出的特點(diǎn):

邏輯回歸主要解決的是分類的問題,有二值分類和多分類。

1. 二分類

如上圖,我們要做的事情就是找一條線,把黑色的點(diǎn)和藍(lán)色的點(diǎn)分開,而不是找一條線去擬合這些點(diǎn)。

比如說做攔截垃圾郵件的模型,就把郵件分為垃圾郵件和非垃圾郵件兩類。輸入一封郵件,經(jīng)過模型分析,若是垃圾郵件則攔截。

2. 多分類

如上圖,要做的是把不同顏色的點(diǎn)各自歸為一類,其實(shí)這也是由二分類變換而成的。

比如說讓機(jī)器閱讀大量的文章,然后把文章分類。

線性回歸與邏輯回歸的舉例說明,以預(yù)測天氣為例:

  1. 如果要預(yù)測明天的溫度,那就是線性回歸問題;
  2. 如果要預(yù)測明天是否下雨,那就是二分類的邏輯回歸問題;
  3. 如果要預(yù)測明天的風(fēng)級(1級、2級、3級…),那就是多分類的邏輯回歸問題。

05 神經(jīng)網(wǎng)絡(luò)(Neural Networks)

1. 為什么需要神經(jīng)網(wǎng)絡(luò)?

假設(shè)我們現(xiàn)在做的是房價(jià)是升還是降的分類問題,我們之前假設(shè)影響房價(jià)的因素只有住房面積,但是實(shí)際上可能還需要考慮樓層、建筑時(shí)間、地段、售賣時(shí)間、朝向、房間的數(shù)量等等,可能影響因素是成千上萬的。并且各因素之間可能存在關(guān)聯(lián)關(guān)系的。

如果用回歸問題解,則設(shè)置函數(shù):

y=(a1*X1 + a2*X2 + a3*X3 + a4*X4…)+=(b1*X1X2 + b2*X1*X3 + b3*X1X4 …)+(三次項(xiàng)的組合)+(n次項(xiàng)的組合)

普通回歸模型:

對于該模型來說,每個(gè)特征變量的之間的相互組合(二次項(xiàng)或三次項(xiàng))都變成新的特征變量,那么每多一個(gè)高次項(xiàng)時(shí),特征變量就會數(shù)量級的變大,當(dāng)特征變量大于是數(shù)千個(gè)的時(shí)候,用回歸算法就很慢了。而我們轉(zhuǎn)換為神經(jīng)網(wǎng)絡(luò)去求解,就會簡單得多。

神經(jīng)網(wǎng)絡(luò)模型:

2. 為什么叫做神經(jīng)網(wǎng)絡(luò)?

先看下人類神經(jīng)元的鏈接方式:

人的神經(jīng)細(xì)胞連接是錯(cuò)綜復(fù)雜的,一個(gè)神經(jīng)元接受到多個(gè)神經(jīng)元的信息,經(jīng)過對信息處理后,再把信息傳遞給下一個(gè)神經(jīng)元。

神經(jīng)網(wǎng)絡(luò)的設(shè)計(jì)靈感就是來源于神經(jīng)細(xì)胞之間的信息傳遞,我們可以把神經(jīng)網(wǎng)絡(luò)中的每個(gè)圓圈看成是一個(gè)神經(jīng)元,它接受上一級網(wǎng)絡(luò)的輸入,經(jīng)過處理后,再把信息傳遞給下一級網(wǎng)絡(luò)。

3. 為什么要模擬人類的神經(jīng)網(wǎng)絡(luò)?人類的神經(jīng)網(wǎng)絡(luò)有什么神奇的地方?

神經(jīng)系統(tǒng)科學(xué)家做過一個(gè)有趣的實(shí)驗(yàn),把一個(gè)動(dòng)物的聽覺皮層切下來,移植到另一個(gè)動(dòng)物的大腦上,替換其視覺皮層,這樣從眼睛收到的信號將傳遞給移植過來的聽覺皮層,最后的結(jié)果表明這個(gè)移植過來的聽覺皮層也學(xué)會了“看”。

還有很多有趣的實(shí)驗(yàn):

上圖是用舌頭學(xué)會“看”的一個(gè)例子,它能幫助失明人士看見事物。

它的原理是在前額上帶一個(gè)灰度攝像頭,攝像頭能獲取你面前事物的低分辨率的灰度圖像。再連一根線到安裝了電極陣列的舌頭上,那么每個(gè)像素都被映射到你舌頭的某個(gè)位置上。電壓值高的點(diǎn)對應(yīng)一個(gè)暗像素,電壓值低的點(diǎn)對應(yīng)于亮像素,這樣舌頭通過感受電壓的高度來處理分辨率,從而學(xué)會了“看”。

因此,這說明了動(dòng)物神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力有多驚人。也就是說你把感器的信號接入到大腦中,大腦的學(xué)習(xí)算法就能找出學(xué)習(xí)數(shù)據(jù)的方法并處理這些數(shù)據(jù)。

從某種意義上來說如果我們能找出大腦的學(xué)習(xí)算法,然后在計(jì)算機(jī)上執(zhí)行大腦學(xué)習(xí)算法或與之相似的算法,這就是我們要機(jī)器模擬人的原因。

4. 神經(jīng)網(wǎng)絡(luò)跟深度學(xué)習(xí)之間有什么關(guān)系?

1)相同:

都采用了分層結(jié)構(gòu)(輸入層、隱藏層、輸出層)的多層神經(jīng)結(jié)構(gòu)。

2)不同:

  • 層數(shù)不同,通常層數(shù)比較高的我們叫做深度學(xué)習(xí),但具體多少層算高,目前也沒有有個(gè)統(tǒng)一的定義,有人說10層,有人說20層;
  • 訓(xùn)練機(jī)制不同,本質(zhì)上的區(qū)別還是訓(xùn)練機(jī)制的不同。

傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)采用的是back propagation的方式進(jìn)行,這種機(jī)制對于7層以上的網(wǎng)絡(luò),殘差傳播到最前面就變得很小了,所謂的梯度擴(kuò)散。

而深度學(xué)習(xí)采用的訓(xùn)練方法分兩步,第一步是逐層訓(xùn)練,第二步是調(diào)優(yōu)。

深度學(xué)習(xí)中,最出名的就是卷積神經(jīng)網(wǎng)絡(luò)(CNN)和循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)。

關(guān)于深度學(xué)習(xí),在這里就不展開了,之后會單獨(dú)寫一篇文章討論深度學(xué)習(xí),感興趣的同學(xué)可以關(guān)注下。

06 半監(jiān)督學(xué)習(xí)(Semi-supervised Learning)

半監(jiān)督學(xué)習(xí)主要特點(diǎn)是在訓(xùn)練數(shù)據(jù)中,有小部分?jǐn)?shù)據(jù)是有標(biāo)簽,而大部分?jǐn)?shù)據(jù)是無標(biāo)簽的。

半監(jiān)督學(xué)習(xí)更加像人的學(xué)習(xí)方式,就像小時(shí)候,媽媽告訴你這是雞,這是鴨,這是狗,但她不能帶你見過這個(gè)世界上所有的生物;下次見到天上飛的,你可能會猜這是一只鳥,雖然你不知道具體這只鳥叫什么名字。

其實(shí)我們不缺數(shù)據(jù),缺的是有多樣標(biāo)簽的數(shù)據(jù)。因?yàn)槟阋霐?shù)據(jù)很簡單,就放一個(gè)攝像頭不斷拍,放一個(gè)錄音機(jī)不斷錄,就有大量數(shù)據(jù)了。

簡單說一個(gè)半監(jiān)督學(xué)習(xí)的方式:

假設(shè)藍(lán)色的和黃色的是有標(biāo)簽的兩類數(shù)據(jù),而灰色的是無標(biāo)簽的數(shù)據(jù),那么我們先根據(jù)藍(lán)色和黃色的數(shù)據(jù)劃了分類,然后看灰色的數(shù)據(jù)在哪邊,再給灰色的數(shù)據(jù)分別標(biāo)上藍(lán)色或黃色的標(biāo)簽。

所以半監(jiān)督學(xué)習(xí)的一個(gè)重要思想就是:怎么用有標(biāo)簽的數(shù)據(jù)去幫助無標(biāo)簽的數(shù)據(jù)去打上標(biāo)簽。

07 無監(jiān)督學(xué)習(xí)(Unsupervised Learning)

無監(jiān)督學(xué)習(xí)的主要特點(diǎn)是訓(xùn)練數(shù)據(jù)是無標(biāo)簽的,需要通過大量的數(shù)據(jù)訓(xùn)練,讓機(jī)器自主總結(jié)出這些數(shù)據(jù)的結(jié)構(gòu)和特點(diǎn)。

就像一個(gè)不懂得欣賞畫的人去看畫展,看完之后,他可以憑感覺歸納出這是一類風(fēng)格,另外的這些是另一種風(fēng)格,但他不知道原來這是寫實(shí)派,那些是印象派。

比如說給機(jī)器看大量的文章,機(jī)器就學(xué)會把文章分類,但他并不知道這個(gè)是經(jīng)濟(jì)類的、文學(xué)類的、軍事類的等等,機(jī)器并不知道每一類是什么,它只知道把相似的歸到一類。

無監(jiān)督學(xué)習(xí)主要在解決分類和聚類問題方面的應(yīng)用比較典型,比如說Googel和頭條的內(nèi)容分類。

08 強(qiáng)化學(xué)習(xí)(Reinforcement Learning)

先來聊聊強(qiáng)化學(xué)習(xí)跟監(jiān)督學(xué)習(xí)有什么不同。

監(jiān)督學(xué)習(xí)是每輸入一個(gè)訓(xùn)練數(shù)據(jù),就會告訴機(jī)器人結(jié)果。就像有老師手把手在教你,你每做一道題老師都會告訴你對錯(cuò)和原因。

強(qiáng)化學(xué)習(xí)是進(jìn)行完一輪對話之后,才會跟機(jī)器人說這一輪對話好還是壞,具體是語氣不對,還是回答錯(cuò)誤,還是聲音太小,機(jī)器不知道,它只知道結(jié)果是不好的。就像你高考,沒有老師在你身邊告訴你每做的一道題是對或錯(cuò)吧,最終你只會得到一個(gè)結(jié)果:得了多少分。

強(qiáng)化學(xué)習(xí)模型:

首先機(jī)器會觀察它所處的環(huán)境,然后做出行動(dòng);機(jī)器的行動(dòng)會改變環(huán)境;接著機(jī)器再次觀察環(huán)境,再次做出行動(dòng),如此循環(huán)。

每一次訓(xùn)練結(jié)束,機(jī)器都會收到一個(gè)回饋,機(jī)器根據(jù)回饋,不斷調(diào)整模型。

以Alpha Go為例:

首先AlphaGo會觀察棋盤的情況,然后決定下一步落子;待對方落子后,AlphaGo再次根據(jù)棋盤的情況再次進(jìn)行下一步。直到分出勝負(fù)之后,AlphaGo得到的reward是贏或輸。經(jīng)過這樣大量的訓(xùn)練之后,AlphaGo就學(xué)會了,怎樣做才更有可能贏。

強(qiáng)化訓(xùn)練的特點(diǎn):

  • 反饋機(jī)制,根據(jù)反饋不斷調(diào)整自己的策略;
  • 反饋有延遲,不是每次動(dòng)作都會得到反饋;比如說AlphaGo,不是每一次落子都會有反饋,而是下完一整盤才得到勝負(fù)的反饋。

在此就介紹完了機(jī)器學(xué)習(xí)常見的內(nèi)容,若文中有不恰當(dāng)?shù)牡胤剑瑲g迎各路大神批評指正。

 

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

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

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 題主辛苦了,你的這幾篇文章都看了,寫得確實(shí)很通俗;

    回復(fù)
  2. 介紹的很好啊,我剛做數(shù)據(jù)標(biāo)簽幾天,也是剛?cè)脒@行,你說的這些我大概都能理解,就是具體數(shù)據(jù)上理解還有有些困難。但是看了讓我對這行有了更深入的了解,很感謝,希望我以后能在這行有所發(fā)展吧。

    回復(fù)
    1. 你是自學(xué)的么

      來自四川 回復(fù)
    2. 嗯嗯,最近忙,好久沒來這里逛了

      來自北京 回復(fù)