0
本文作者: 楊文 | 2017-12-14 10:49 |
雷鋒網(wǎng)AI研習(xí)社按:在當(dāng)今AI時(shí)代中,CNN和RNN都被廣泛關(guān)注,并且有很多相關(guān)討論,而最基礎(chǔ)的神經(jīng)網(wǎng)絡(luò)DNN,它的研究和曝光度卻相對(duì)較少。DNN是所有其它神經(jīng)網(wǎng)絡(luò)的基礎(chǔ),所以對(duì)它有一定了解是必要的。本文為大家詳細(xì)介紹了傳統(tǒng)機(jī)器學(xué)習(xí)的基本概念和神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu),以及如何設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)讓神經(jīng)網(wǎng)絡(luò)表達(dá)出樸素貝葉斯和決策樹(shù)這兩大傳統(tǒng)算法模型。文章內(nèi)容根據(jù)AI研習(xí)社線(xiàn)上分享課整理而成。
我們都知道神經(jīng)網(wǎng)絡(luò)很強(qiáng),但卻只有很少人去思考它為什么這么強(qiáng)。在近期雷鋒網(wǎng)AI研習(xí)社的線(xiàn)上分享會(huì)上,資深Python工程師何宇健為我們分享了如何設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)讓神經(jīng)網(wǎng)絡(luò)表達(dá)出樸素貝葉斯和決策樹(shù)這兩大傳統(tǒng)算法模型。希望這種設(shè)計(jì)能讓大家從直觀上感受到神經(jīng)網(wǎng)絡(luò)的強(qiáng)大。
何宇健,《Python與機(jī)器學(xué)習(xí)實(shí)戰(zhàn)》作者,來(lái)自北京大學(xué)數(shù)學(xué)系,有多年P(guān)ython開(kāi)發(fā)經(jīng)驗(yàn),在GitHub上擁有并維護(hù)著一個(gè)純Python編寫(xiě)的機(jī)器學(xué)習(xí)算法庫(kù)(180個(gè)stars,100個(gè)forks)。曾在創(chuàng)新工場(chǎng)AI工程院負(fù)責(zé)研發(fā)適用于結(jié)構(gòu)化數(shù)據(jù)的新型神經(jīng)網(wǎng)絡(luò)。希望這種設(shè)計(jì)能讓大家從直觀上感受到神經(jīng)網(wǎng)絡(luò)的強(qiáng)大。
分享內(nèi)容:
機(jī)器學(xué)習(xí)的基本概念與神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)
樸素貝葉斯、決策樹(shù)算法簡(jiǎn)介以及它和神經(jīng)網(wǎng)絡(luò)的關(guān)系
具體的實(shí)現(xiàn)說(shuō)明,以及可以做出改進(jìn)與創(chuàng)新
大家好,我是何宇健。在當(dāng)今的AI時(shí)代中,CNN和RNN都被廣泛關(guān)注,并且有很多相關(guān)討論,’而最基礎(chǔ)的神經(jīng)網(wǎng)絡(luò)DNN,它的研究和曝光度卻相對(duì)比較少。DNN是所有其它神經(jīng)網(wǎng)絡(luò)的基礎(chǔ),所以對(duì)它有一定了解是必要的。有些同學(xué)可能對(duì)機(jī)器學(xué)習(xí)相關(guān)概念不熟悉,因此分享的所有內(nèi)容都從最基礎(chǔ)的開(kāi)始講起。
分享主要內(nèi)容通過(guò)設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)來(lái)讓神經(jīng)網(wǎng)絡(luò)表達(dá)出樸素畢葉思和決策樹(shù)這兩大傳統(tǒng)算法模型。希望這種設(shè)計(jì)能讓大家從直觀上感受到神經(jīng)網(wǎng)絡(luò)的強(qiáng)大。
機(jī)器學(xué)習(xí)的基本概念及神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)
本次分享涉及的問(wèn)題都是有監(jiān)督學(xué)習(xí)問(wèn)題。所謂有監(jiān)督學(xué)習(xí),就是對(duì)一個(gè)模型來(lái)說(shuō),它的輸入都會(huì)對(duì)著一個(gè)目標(biāo)。最終目的是模型的輸出和目標(biāo)盡可能接近。
機(jī)器學(xué)習(xí)術(shù)語(yǔ):
特征向量:模型接受的輸入通常稱(chēng)為特征向量,用字母X代指。
標(biāo)簽:模型擬合的目標(biāo)通常稱(chēng)為標(biāo)簽,用字母Y代指。
樣本:通常聽(tīng)到的“樣本”概念是特征向量+標(biāo)簽的組合,用d=(x,y)代指
數(shù)據(jù)集:就是很多個(gè)樣本的集合,通常用D=(d1,d2,...dn)代指。
損失函數(shù):計(jì)算單個(gè)樣本上模型的“損失”的函數(shù)。
代價(jià)函數(shù):計(jì)算整個(gè)數(shù)據(jù)集上模型的“代價(jià)”的函數(shù)。
接下里進(jìn)入神經(jīng)網(wǎng)絡(luò)正題的討論。
神經(jīng)網(wǎng)絡(luò)包含輸入層,隱藏層,輸出層。在說(shuō)有多少層神經(jīng)網(wǎng)絡(luò)時(shí),我們不會(huì)把第一層算入其中,也就是輸入層。
層與層之間的溝通方式
每一層的每個(gè)神經(jīng)元都會(huì)和下一層中的每個(gè)神經(jīng)元連接,這種方式稱(chēng)為全連接。在數(shù)學(xué)公式中,這種全連接稱(chēng)為矩陣乘法。線(xiàn)性映射和激活函數(shù)是神經(jīng)網(wǎng)絡(luò)的基本運(yùn)算單元。
偏置量:打破對(duì)稱(chēng)性
除非數(shù)據(jù)集本身是中心對(duì)稱(chēng),否則現(xiàn)在的神經(jīng)網(wǎng)絡(luò)就不可能學(xué)到數(shù)據(jù)集背后的規(guī)律?,F(xiàn)在的神經(jīng)網(wǎng)絡(luò)只能學(xué)到中心對(duì)稱(chēng)的規(guī)律。
神經(jīng)網(wǎng)絡(luò)的基本算法
前向傳導(dǎo)算法,它是神經(jīng)網(wǎng)絡(luò)計(jì)算模型輸出的過(guò)程。就是一步步將當(dāng)前值往前傳,往前計(jì)算。
梯度下降法,神經(jīng)網(wǎng)絡(luò)進(jìn)行訓(xùn)練的算法。梯度下降中的梯度就是使得函數(shù)值上升最快的方向,我們的目的是最小化損失函數(shù),如果梯度是使得函數(shù)值上升最快的方向,那么負(fù)梯度方向是使得函數(shù)值下降的方向。
神經(jīng)網(wǎng)絡(luò)和傳統(tǒng)機(jī)器學(xué)習(xí)算法的對(duì)比
傳統(tǒng)機(jī)器學(xué)習(xí)貝葉斯
樸素貝葉斯思想:出現(xiàn)概率越大的樣本就是越好的樣本。知道思想后, 如何具體進(jìn)行操作呢,如何估計(jì)出樸素貝葉斯公式中涉及到的概率呢?它會(huì)用頻率估計(jì)概率的方法來(lái)把各個(gè)概率都估計(jì)出來(lái),說(shuō)的直白點(diǎn)就是數(shù)數(shù)。
事實(shí)證明我們確實(shí)能通過(guò)一個(gè)數(shù)據(jù)集把樸素貝葉斯模型生成出來(lái)。
下面來(lái)看看如何用神經(jīng)網(wǎng)絡(luò)來(lái)表達(dá)生成出來(lái)的樸素貝葉斯模型。樸素貝葉斯里面用到非常多乘法,而線(xiàn)性模型里面全都是加法,此時(shí)會(huì)想到用到對(duì)數(shù)函數(shù)log。
我們證明了樸素貝葉斯是線(xiàn)性模型,而神經(jīng)網(wǎng)路能退化為線(xiàn)性模型,從而意味著神經(jīng)網(wǎng)路能將樸素貝葉斯表達(dá)出來(lái)。
接下來(lái)介紹決策樹(shù)和神經(jīng)網(wǎng)路關(guān)系。同樣會(huì)證明神經(jīng)網(wǎng)路能將決策樹(shù)表達(dá)出來(lái)。
決策樹(shù)很簡(jiǎn)單,它會(huì)先把特征向量空間劃分為一個(gè)一個(gè)互不相交的子空間,劃分完之后會(huì)給子空間打標(biāo)簽。做預(yù)測(cè)的時(shí)候,會(huì)根據(jù)輸入的X,看它是屬于哪個(gè)子空間,然后將相應(yīng)的標(biāo)簽輸出給它。
決策樹(shù)也有很多問(wèn)題,但只要給了數(shù)據(jù)集,不出現(xiàn)同一個(gè)特征向量對(duì)應(yīng)兩種不同標(biāo)簽的情況,那么決策樹(shù)是百分百可以將數(shù)據(jù)集的所有樣本擬合正確。因?yàn)樗恍枰粩鄬⒆涌臻g細(xì)分就可以了。
設(shè)計(jì)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)以表達(dá)出決策樹(shù)的算法
設(shè)計(jì)的關(guān)鍵思想總結(jié)為以下三點(diǎn):
第一個(gè)隱藏層能表達(dá)出決策樹(shù)的中間節(jié)點(diǎn)所對(duì)應(yīng)的超平面。
第二個(gè)隱藏層能夠表達(dá)出各個(gè)決策路徑
第二個(gè)隱藏層和輸出層之間的權(quán)值矩陣能夠表達(dá)出各個(gè)葉節(jié)點(diǎn)。
我們可以看到,第二個(gè)隱藏層和輸出層之間的權(quán)值矩陣確實(shí)能夠表達(dá)出各個(gè)葉節(jié)點(diǎn)。因此也完成了決策樹(shù)往神經(jīng)網(wǎng)絡(luò)的轉(zhuǎn)化。
具體實(shí)現(xiàn)與改進(jìn)創(chuàng)新
如何進(jìn)行具體的實(shí)現(xiàn)以及改進(jìn)和創(chuàng)新。事實(shí)證明確實(shí)可以將傳統(tǒng)算法轉(zhuǎn)化為神經(jīng)網(wǎng)絡(luò),但是這種轉(zhuǎn)化是否真正有意義呢?通過(guò)改變決策樹(shù)對(duì)應(yīng)的神經(jīng)網(wǎng)絡(luò)的激活函數(shù),其實(shí)可以得到一些有意思的結(jié)果??梢躁P(guān)注AI研習(xí)社看直播視頻回放。
決策樹(shù)轉(zhuǎn)換為神經(jīng)網(wǎng)絡(luò)的例子
右邊的結(jié)果不一定更好,但至少?gòu)闹庇^上看邊界可能更舒服一點(diǎn)。
總結(jié):
更多詳細(xì)內(nèi)容,請(qǐng)點(diǎn)擊:http://www.mooc.ai/open/course/299
雷鋒網(wǎng)提醒:關(guān)注微信公眾號(hào):AI研習(xí)社,定期有免費(fèi)干貨內(nèi)容分享。
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。