AI產(chǎn)品:BP前饋神經(jīng)網(wǎng)絡(luò)與梯度問(wèn)題

1 評(píng)論 4638 瀏覽 15 收藏 10 分鐘

通過(guò)上一章《神經(jīng)元與神經(jīng)網(wǎng)絡(luò)》,我們大概了解了單個(gè)神經(jīng)元的工作模式和簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)的基本結(jié)構(gòu)。接下來(lái)就要正式進(jìn)入關(guān)于“神經(jīng)網(wǎng)絡(luò)”這個(gè)重頭戲的學(xué)習(xí)了,神經(jīng)網(wǎng)絡(luò)分為“淺層”和“深層”,今天我們來(lái)探討一下“淺層學(xué)習(xí)”中最經(jīng)典的BP前饋神經(jīng)網(wǎng)絡(luò),只要把它的工作原理搞清楚,其實(shí)后面的深度神經(jīng)網(wǎng)絡(luò)、卷積神經(jīng)網(wǎng)絡(luò)和循環(huán)神經(jīng)網(wǎng)絡(luò)都是在它基礎(chǔ)上的變體。

一. BP前饋神經(jīng)網(wǎng)絡(luò)

1. BP前饋神經(jīng)網(wǎng)絡(luò)核心理念

BP前饋神經(jīng)網(wǎng)絡(luò)的英文全稱為 Back Propagation Networks(反響傳播網(wǎng)絡(luò)),怎么理解這個(gè)“反響傳播”呢,我們已經(jīng)了解其實(shí)DL的核心理念就在于找到全局性誤差函數(shù)Loss符合要求的,對(duì)應(yīng)的權(quán)值“w”與“b”,也知道數(shù)據(jù)是從神經(jīng)網(wǎng)絡(luò)的輸入層,進(jìn)入隱含層,最后通過(guò)輸出層輸出的工作流程。

那么問(wèn)題就來(lái)了,當(dāng)?shù)玫降恼`差Loss不符合要求(即誤差過(guò)大),就可以通過(guò)“反響傳播”的方式,把輸出層得到的誤差反過(guò)來(lái)傳到隱含層,并分配給不同的神經(jīng)元,以此調(diào)整每個(gè)神經(jīng)元的“權(quán)值”,最終調(diào)整至Loss符合要求為止,這就是“誤差反響傳播”的核心理念

2. 從“找關(guān)系”到“求誤差”

前面我們已經(jīng)多次提到”y=wx+b”,現(xiàn)在我給這個(gè)函數(shù)加一個(gè)“e”代表誤差,其他的含義均不變

下面的轉(zhuǎn)換,別被它嚇到,其實(shí)很好理解,e的誤差等于“真實(shí)數(shù)據(jù)y”減去“擬合值”,i代表數(shù)據(jù)的個(gè)數(shù)(簡(jiǎn)單理解為1、2、3……)

接下來(lái)點(diǎn)更好玩的(其實(shí)已經(jīng)省略了一些步驟),我們一步一步來(lái)解釋,Loss相信大家很熟悉了,就是所謂“全局性誤差函數(shù)”,我們的最終目的,不就是讓Loss等于“0”最好嘛,這就相當(dāng)于是“現(xiàn)實(shí)的值”與“擬合值”完全吻合,也就是找到了數(shù)據(jù)與某種特征的現(xiàn)實(shí)“對(duì)應(yīng)關(guān)系”。

前面那個(gè)怪怪的圖形,表示所有數(shù)據(jù)的“加和”(不然海量數(shù)據(jù)是咋來(lái)的呢),為什么要把誤差“e”平方呢?其實(shí)是做了個(gè)“非負(fù)化”的處理,這樣更方便運(yùn)算嘛,正負(fù)不重要,重要的是“絕對(duì)值”。

最后,讓我們看看我們得到了個(gè)什么東西:

請(qǐng)各位不要慌,它就是一個(gè)“二次函數(shù)”,簡(jiǎn)化理解它的圖像如下:

一切就到這里,通過(guò)上述過(guò)程的轉(zhuǎn)換,讓Loss這個(gè)全局性誤差等于“0”,不就是轉(zhuǎn)換成了求得這個(gè)函數(shù)“極小值”的問(wèn)題了么!

理解到這一層,我想是時(shí)候?qū)C(jī)器學(xué)習(xí)其中的一個(gè)本質(zhì)做個(gè)總結(jié):我們通過(guò)對(duì)數(shù)據(jù)進(jìn)行“標(biāo)簽化”、提取特征“向量化”,將現(xiàn)實(shí)客觀世界的“關(guān)系問(wèn)題”,描述轉(zhuǎn)換成數(shù)學(xué)函數(shù)中求“誤差”的問(wèn)題,又通過(guò)函數(shù)性質(zhì)轉(zhuǎn)換成求“極值”問(wèn)題。換句話說(shuō),找到了這個(gè)數(shù)學(xué)的“解”,也就找到了現(xiàn)實(shí)世界的“關(guān)系描述”。情不自禁感嘆“數(shù)學(xué)之美”!

二. 梯度下降與梯度消失/爆炸

1. 迭代法

我們已經(jīng)理解到“求極值”這一層面,但還有問(wèn)題等待解決。在一個(gè)算法模型訓(xùn)練最開(kāi)始,權(quán)值w和偏置b都是隨機(jī)賦予的,理論上它可能是出現(xiàn)在整個(gè)函數(shù)圖像中的任何位置,那如何讓他去找到我們所要求的那個(gè)值呢。

這里就要引入“迭代”的思想:我們可以通過(guò)代入左右不同的點(diǎn)去嘗試,假設(shè)代入當(dāng)前x左面的一個(gè)點(diǎn)比比右面的更小,那么不就可以讓x變?yōu)樽竺娴狞c(diǎn),然后繼續(xù)嘗試,直到找到“極小值”么。這也是為什么算法模型需要時(shí)間去不斷迭代很訓(xùn)練的原因

2. 梯度下降

使用迭代法,那么隨之而來(lái)另外一個(gè)問(wèn)題,這樣一個(gè)一個(gè)嘗試,雖然最終結(jié)果是一定會(huì)找到我們所需要的值,但有沒(méi)有什么方法可以讓它離“極值”遠(yuǎn)的時(shí)候,挪動(dòng)的步子更大,離“極值”近的時(shí)候,挪動(dòng)的步子變小(防止越過(guò)極值),實(shí)現(xiàn)更快更準(zhǔn)確地“收斂”

請(qǐng)觀察上面那個(gè)“二次函數(shù)”的圖像,如果取得點(diǎn)越接近“極小值”,是不是在這個(gè)點(diǎn)的函數(shù)“偏導(dǎo)”越小呢?(偏導(dǎo)即“在那個(gè)點(diǎn)的函數(shù)斜率”),接下來(lái)引出下面這個(gè)方法:

梯度下降核心思想:Xn代表的就是挪動(dòng)的“步長(zhǎng)”,后面的表示當(dāng)前這個(gè)點(diǎn)在函數(shù)的“偏導(dǎo)”,這樣也就代表當(dāng)點(diǎn)越接近極值點(diǎn),那么“偏導(dǎo)”越小,所以挪動(dòng)的“步長(zhǎng)”就短;反之如果離極值點(diǎn)很遠(yuǎn),則下一次挪動(dòng)的“步長(zhǎng)”越大。

把這個(gè)公式換到我們的算法模型,就找到了“挪動(dòng)步長(zhǎng)”與Loss和(w,b)之間的關(guān)系,實(shí)現(xiàn)快速“收斂”:

通過(guò)“迭代法”和“梯度下降法”的配合,我們實(shí)現(xiàn)了一輪一輪地迭代,每次更新都會(huì)越來(lái)越接近極值點(diǎn),直到更新的值非常小或已經(jīng)滿足我們的誤差范圍內(nèi),訓(xùn)練結(jié)束,此時(shí)得到的(w,b)就是我們尋找的模型。

怎么樣,現(xiàn)在是不是開(kāi)始覺(jué)得對(duì)ML的本質(zhì)理解的越來(lái)越深入,一旦轉(zhuǎn)換成數(shù)學(xué)問(wèn)題,我們就有很多方法可以實(shí)現(xiàn)我們的目標(biāo)

3. 梯度消失

梯度消失,即在反響傳播的過(guò)程中,因?yàn)閷訑?shù)太多或神經(jīng)元激勵(lì)函數(shù)作用,導(dǎo)致網(wǎng)絡(luò)前端的w幾乎沒(méi)有變化,越往前的隱含層這種情況就越嚴(yán)重。

解決方式:目前常用的解決方式是選取合適的激勵(lì)函數(shù),如把Sigmoid函數(shù)換位ReLU函數(shù),原理在這里就不過(guò)多解釋了

4. 梯度爆炸

梯度爆炸,可以理解為梯度消失的“反向概念”,梯度消失本質(zhì)是網(wǎng)絡(luò)前層w權(quán)值變化太小,導(dǎo)致無(wú)法收斂,而梯度爆炸則是w權(quán)值一次的變化量太大,這樣可能會(huì)導(dǎo)致直接挪動(dòng)越過(guò)“極值點(diǎn)”。

最后

到這里已經(jīng)基本介紹完神經(jīng)網(wǎng)絡(luò)BP前饋的基本原理,有沒(méi)有覺(jué)得其實(shí)并沒(méi)有想象中的那么難?而深度學(xué)習(xí)中的DNN(深度神經(jīng)網(wǎng)絡(luò)),如果不嚴(yán)格細(xì)糾的話,是可以簡(jiǎn)單理解為“隱含層層數(shù)”的增加的,基本的訓(xùn)練方法和工作原理也是一樣通過(guò)誤差反響傳播,當(dāng)然也做了很多優(yōu)化來(lái)解決BP前饋網(wǎng)絡(luò)的“缺陷”,這個(gè)我們?cè)诤竺孢€會(huì)講到~

相關(guān)閱讀

AI產(chǎn)品之路:神經(jīng)元與神經(jīng)網(wǎng)絡(luò)

 

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

題圖來(lái)自u(píng)nsplash,基于CC0協(xié)議

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 純算法小白特地注冊(cè)來(lái)感謝作者的講解,確實(shí)從字里行間都能感受到作者對(duì)于小白的照顧,不知道作者5年后已經(jīng)進(jìn)步成什么樣子了,作為一個(gè)從事剛產(chǎn)品兩年的小白很想有機(jī)會(huì)能認(rèn)識(shí)大佬,很多問(wèn)題想請(qǐng)教溝通??!

    來(lái)自廣東 回復(fù)