想入門AI,機(jī)器學(xué)習(xí)你知多少了?
有意轉(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ù)測天氣為例:
- 如果要預(yù)測明天的溫度,那就是線性回歸問題;
- 如果要預(yù)測明天是否下雨,那就是二分類的邏輯回歸問題;
- 如果要預(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é)議。
題主辛苦了,你的這幾篇文章都看了,寫得確實(shí)很通俗;
介紹的很好啊,我剛做數(shù)據(jù)標(biāo)簽幾天,也是剛?cè)脒@行,你說的這些我大概都能理解,就是具體數(shù)據(jù)上理解還有有些困難。但是看了讓我對這行有了更深入的了解,很感謝,希望我以后能在這行有所發(fā)展吧。
你是自學(xué)的么
嗯嗯,最近忙,好久沒來這里逛了