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

1. 感知器

一個(gè)感知器接受幾個(gè)二進(jìn)制的輸入憨奸,并產(chǎn)生一個(gè)二進(jìn)制的輸出灾螃。其中,每個(gè)輸入都配有相應(yīng)的權(quán)重來表示輸入對(duì)于輸出的重要性宽涌。和權(quán)重一樣平夜,閾值是一個(gè)實(shí)數(shù)。

2. S型神經(jīng)元

由于在網(wǎng)絡(luò)中卸亮,單個(gè)感知機(jī)上一個(gè)權(quán)重或者偏置的微小改動(dòng)有時(shí)候會(huì)引起那個(gè)感知器的輸出完全翻轉(zhuǎn)忽妒。那樣的翻轉(zhuǎn)可能接下來引起其余網(wǎng)絡(luò)的行為以極其復(fù)雜的方式完全改變。這使得逐步修改權(quán)重和偏置來讓網(wǎng)絡(luò)接近期望行為變得困難兼贸。所以段直,引入一種稱為S型的神經(jīng)元來克服這個(gè)問題。S型神經(jīng)元和感知器類似溶诞,但是被修改為權(quán)重和偏置的微小改動(dòng)只會(huì)引起輸出的微小變化鸯檬。這對(duì)于讓神經(jīng)元網(wǎng)絡(luò)學(xué)習(xí)起來是很關(guān)鍵的。

正如一個(gè)感知器螺垢,S型神經(jīng)元有多個(gè)輸入喧务,但是這些輸入可以取0和1中的任何值赖歌,而不僅僅是0和1。同樣蹂楣,S型神經(jīng)元對(duì)每個(gè)輸入有權(quán)重和一個(gè)總的偏置俏站。但是,輸出不是0或者1痊土。相反肄扎,它現(xiàn)在是sigma(w*x+b),這里的sigma被稱為S型函數(shù)赁酝。

S型神經(jīng)元和感知器模型具有很大的相似性犯祠,假設(shè)z=w*x+b是一個(gè)很大的正數(shù),那么e^-z約等于0而sigma(z)約等于1酌呆。即當(dāng)z=w*x+b很大并且為正衡载,S型神經(jīng)元的輸出近似為1,正好和感知器一樣隙袁。反之亦同痰娱。

3. 神經(jīng)網(wǎng)絡(luò)的架構(gòu)

網(wǎng)絡(luò)中最左邊的部分稱為輸入層,其中的神經(jīng)元稱為輸入神經(jīng)元菩收。最右邊的梨睁,即輸出層包含輸出神經(jīng)元。中間的那些層娜饵,被稱為隱藏層坡贺。

以上一層的輸出作為一下層的輸入的網(wǎng)絡(luò),我們稱為前饋神經(jīng)網(wǎng)絡(luò)箱舞。這意味著網(wǎng)絡(luò)中是沒有回路的遍坟,信息總是向前傳播,從不反向反饋晴股。如果確實(shí)有回路愿伴,那么最終的情況是sigma函數(shù)的輸入會(huì)依賴于輸出。這將難于理解队魏,所以我們不允許這樣的環(huán)路公般。

然而,也有些人工神經(jīng)網(wǎng)絡(luò)的模型胡桨,其中反饋環(huán)路是可行的官帘。這些模型被稱為遞歸神經(jīng)網(wǎng)絡(luò)。遞歸神經(jīng)網(wǎng)絡(luò)比前饋網(wǎng)絡(luò)影響力小得多昧谊,部分原因是遞歸網(wǎng)絡(luò)的學(xué)習(xí)算法不夠強(qiáng)大刽虹。

此外,我們要從根本原因上理解神經(jīng)網(wǎng)絡(luò)究竟在做些什么呢诬。以MNIST手寫數(shù)據(jù)庫為例涌哲,為了識(shí)別0-9的數(shù)字胖缤,我們要考慮有10個(gè)輸出神經(jīng)元。我們首先要考慮第一個(gè)輸出神經(jīng)元阀圾,它告訴我們是不是0哪廓。它能那么做是因?yàn)樗梢詸?quán)衡從隱藏層來的信息。

比如初烘,隱藏層的第一個(gè)神經(jīng)元是用于檢測(cè)如下圖形是否存在:

為了達(dá)到這個(gè)目的园骆,它通過對(duì)此圖形部分的像素賦予較大權(quán)重抗斤,對(duì)其他部分賦予較小的權(quán)重茅特。同理娇斑,我們可以假設(shè)隱藏層的第二,第三吗铐,第四個(gè)神經(jīng)元是為檢測(cè)下列圖片是否存在:

就像你能猜到的东亦,這四幅圖像組合在一起構(gòu)成了前面顯示的一行數(shù)字圖像中的0:

如果所有隱藏層的這四個(gè)神經(jīng)元被激活那么我們就可以推斷出這個(gè)數(shù)字是0。

4. 梯度下降

我們希望有個(gè)算法唬渗,能讓我們找到權(quán)重和偏置典阵,以至于網(wǎng)絡(luò)的輸出能夠擬合所有的訓(xùn)練輸入。為了量化我們?nèi)绾螌?shí)現(xiàn)這個(gè)目標(biāo)镊逝,我們定義一個(gè)代價(jià)函數(shù):

這里w表示所有的網(wǎng)絡(luò)中權(quán)重的集合萄喳,b是所有的偏置,n是訓(xùn)練輸入數(shù)據(jù)的個(gè)數(shù)蹋半,a是表示當(dāng)輸入為x的時(shí)候輸出的向量。我們把C稱為二次代價(jià)函數(shù)充坑,有時(shí)候也被稱為均方誤差或者MSE减江。代價(jià)函數(shù)的值相當(dāng)小的時(shí)候,是當(dāng)對(duì)于所有的訓(xùn)練輸入x捻爷,y(x)接近于輸出a時(shí)辈灼。因此如果我們的學(xué)習(xí)算法能找到合適的權(quán)重和偏置,使得C(w,b)約等于0也榄,它就能很好地工作巡莹。反之亦然。

因此甜紫,我們訓(xùn)練算法的目的是最小化權(quán)重和偏置的代價(jià)函數(shù)C(w,b)降宅。換句話說,我們想要找到一系列能讓代價(jià)盡可能小的權(quán)重和偏置囚霸。我們將采用稱為梯度下降的算法達(dá)到這個(gè)目的腰根。

為什么要用二次代價(jià)函數(shù)呢?畢竟我們最初感興趣的內(nèi)容不就是能正確分類的圖像的數(shù)量嘛拓型?為什么不試著最大化這個(gè)數(shù)量额嘿,而是去最小化一個(gè)類似于二次代價(jià)的間接評(píng)量呢瘸恼?這么做是因?yàn)樵谏窠?jīng)網(wǎng)絡(luò)中,被正確分類的圖像數(shù)量所關(guān)于權(quán)重和偏置的函數(shù)并不是一個(gè)平滑的函數(shù)册养。大多情況下东帅,對(duì)權(quán)重和偏置做出的微小變動(dòng)完全不會(huì)影響被正確分類的圖像的數(shù)量。這會(huì)導(dǎo)致我們很難去解決如何改變權(quán)重和偏置來取得改進(jìn)的性能球拦。而用一個(gè)類似二次代價(jià)的平滑代價(jià)函數(shù)則能更好的解決如何用權(quán)重和偏置中的微小變化來取得更好的效果靠闭。

強(qiáng)調(diào)一下,我們訓(xùn)練神經(jīng)網(wǎng)絡(luò)的目的是能找到一個(gè)最小化二次代價(jià)函數(shù)的權(quán)重和偏置刘莹。

所以阎毅,問題轉(zhuǎn)化為求二次代價(jià)函數(shù)的最小值。

那么一種解決問題的方法是微積分点弯。我們可以計(jì)算導(dǎo)數(shù)去尋找C的極值點(diǎn)扇调。運(yùn)氣好的話,C是一個(gè)或者幾個(gè)變量的函數(shù)抢肛。但是狼钮,如果變量過多的話,那就是噩夢(mèng)捡絮。而且我們神經(jīng)網(wǎng)絡(luò)中經(jīng)常需要用到大量的變量--那么最大的神經(jīng)網(wǎng)絡(luò)有依賴于數(shù)億權(quán)重和偏置的代價(jià)函數(shù)熬芜,極其復(fù)雜。所以用微積分來計(jì)算最小值是不可能的福稳。

所以另一個(gè)方法就是梯度下降涎拉。首先,我們將函數(shù)想象為一個(gè)山谷的圆。我們想象有一個(gè)小球從山谷的斜坡滾下來鼓拧。我們?nèi)粘5慕?jīng)驗(yàn)告訴我們,這個(gè)球最終會(huì)滾落到谷底越妈。也許我們可以用這個(gè)想法來找到函數(shù)的最小值季俩。我們可以為假想的球體隨機(jī)選擇一個(gè)起始位置,然后模擬球體滾落到谷底的運(yùn)動(dòng)梅掠。我們通過計(jì)算C的導(dǎo)數(shù)來模擬這個(gè)過程酌住。

為了更精確地描述這個(gè)問題,讓我們思考一下阎抒,我們?cè)趘1和v2方向上分別將球體移動(dòng)一個(gè)很小的量酪我,球體會(huì)發(fā)生什么變化:

我們要尋找一種選擇delta1和delta2使得deltaC為負(fù)值。我們選擇它們是為了讓球體滾落且叁。我們用deltaC來表示梯度向量:

所以上面可以重寫為:

這個(gè)表達(dá)式解釋了為什么deltaC被稱為梯度向量祭示,因?yàn)閐eltaC把v的變化關(guān)聯(lián)為C的變化。這個(gè)方程的興奮之處是它讓我們看到了如何選取deltav才能讓C的變化值為負(fù)。

總結(jié)一下质涛,梯度下降算法工作的方式就是重復(fù)計(jì)算梯度deltaC稠歉,然后沿著相反的方向移動(dòng),沿著山谷滾落汇陆。

為了使梯度下降能夠正確的運(yùn)行怒炸,我們需要選擇足夠小的學(xué)習(xí)速率才能使方程更好的近似。如果不這樣毡代,我們會(huì)以C的變化址為正而結(jié)束阅羹,這顯然不好。但是如果學(xué)習(xí)速率太小教寂,那么使得v變化太小捏鱼,梯度下降就會(huì)進(jìn)行的非常緩慢。在真正的實(shí)現(xiàn)中酪耕,學(xué)習(xí)速率是不斷的變化的导梆。

所以,將上面推到的例子運(yùn)用到神經(jīng)網(wǎng)絡(luò)中來迂烁。那么就是利用梯度下降算法去尋找使得二次代價(jià)函數(shù)最小的權(quán)重和偏置看尼。

應(yīng)用梯度下降規(guī)則有很多挑戰(zhàn)。代價(jià)函數(shù)有著這樣的形式

即盟步,它是遍歷每個(gè)訓(xùn)練樣本代價(jià)Cx的平均值藏斩。在實(shí)踐中,為了計(jì)算梯度deltaC却盘,我們需要為每個(gè)訓(xùn)練輸入x單獨(dú)地計(jì)算梯度值狰域,然后再求平均值。不幸的是黄橘,當(dāng)訓(xùn)練輸入的數(shù)量過大的時(shí)候北专,會(huì)花費(fèi)很長(zhǎng)的時(shí)間,這樣會(huì)使得學(xué)習(xí)變得很緩慢旬陡。

4.1 離線學(xué)習(xí)(Offline Learning)

上面提到的梯度下降,就是Batch learning或者叫offline learning语婴,強(qiáng)調(diào)的是每次訓(xùn)練都需要使用全量的樣本描孟,因而可能會(huì)面臨數(shù)據(jù)量過大的問題。offline learning包括的批量梯度下降法(BGD)和隨機(jī)梯度下降法(SGD)砰左。首先明確BGD和SGD都屬于batch learing匿醒,都需要全量訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練,需要遍歷所有樣本缠导。

(1) 批量梯度下降法

BGD在每次更新模型的時(shí)候廉羔,都要使用全量樣本來計(jì)算更新的梯度值。如果有m個(gè)樣本僻造,迭代n輪憋他,那么需要是m*n的計(jì)算復(fù)雜度孩饼。

(2) 隨機(jī)梯度下降法

SGD在每次更新模型的時(shí)候,只要當(dāng)前遍歷到的樣本來計(jì)算更新的梯度值就行了竹挡。如果迭代n輪镀娶,則只需要n的計(jì)算復(fù)雜度,因?yàn)槊枯喼挥?jì)算一個(gè)樣本揪罕。其思想就是通過隨機(jī)選取小量訓(xùn)練輸入樣本計(jì)算deltaCx,進(jìn)而估計(jì)deltaC梯码。通過計(jì)算少量樣本的平均值,我們可以快速的得到一個(gè)對(duì)于實(shí)際梯度值很好的估算好啰,這有助于加速梯度下降轩娶。

隨機(jī)梯度下降通過隨機(jī)的選取并訓(xùn)練輸入的小批量數(shù)據(jù)來工作:

其中兩個(gè)求和符合是在當(dāng)前小批量數(shù)據(jù)中的所有訓(xùn)練樣本Xj上進(jìn)行的。然后我們?cè)偬暨x另一隨機(jī)選定的小批量數(shù)據(jù)去訓(xùn)練框往。直到我們用完了所有的訓(xùn)練輸入鳄抒,這被稱為完成了一個(gè)訓(xùn)練迭代期(epoch)。然后我們就會(huì)開始一個(gè)新的訓(xùn)練迭代期搅窿。

BGD和SGD的區(qū)別嘁酿,容易看出,BGD的優(yōu)勢(shì)在于計(jì)算的是全局最優(yōu)解男应,效果較SGD會(huì)好一些闹司,劣勢(shì)在于計(jì)算開銷大;SGD則相反沐飘,優(yōu)勢(shì)在于計(jì)算開銷減小很多游桩,劣勢(shì)在于計(jì)算的是局部最優(yōu)解,可能最終達(dá)不到全局最優(yōu)解耐朴。在數(shù)據(jù)量大的時(shí)候借卧,SGD是較好的折衷選擇。

4.2 在線學(xué)習(xí)(Online Learning)

Offline learning一般進(jìn)行多輪迭代來向最優(yōu)解靠近筛峭。Online learning沒有多輪的概念铐刘,如果數(shù)據(jù)量不夠或訓(xùn)練數(shù)據(jù)不夠充分,通過copy多份同樣的訓(xùn)練數(shù)據(jù)來模擬batch learning的多輪訓(xùn)練也是有效的方法影晓。

梯度下降算法一個(gè)極端的版本是把小批量數(shù)據(jù)的大小設(shè)為1镰吵。即假設(shè)一個(gè)訓(xùn)練輸入x,我們按照規(guī)則更新我們的權(quán)重和偏置挂签。然后我們選取另一個(gè)訓(xùn)練輸入疤祭,再一次更新權(quán)重和偏置。如此重復(fù)饵婆。這個(gè)過程被稱為在線學(xué)習(xí)或者遞增學(xué)習(xí)勺馆。

online learning強(qiáng)調(diào)的是學(xué)習(xí)是實(shí)時(shí)的,流式的,每次訓(xùn)練不用使用全部樣本草穆,而是以之前訓(xùn)練好的模型為基礎(chǔ)灌灾,每來一個(gè)樣本就更新一次模型,這種方法叫做OGD(online gradient descent)续挟。這樣做的目的是快速地進(jìn)行模型的更新紧卒,提升模型時(shí)效性

5. 反向傳播(backpropagation)

前面我們知道了可以用梯度下降算法來學(xué)習(xí)他們自身的權(quán)重和偏置诗祸。但是跑芳,如何計(jì)算代價(jià)函數(shù)的梯度?這個(gè)是很大的缺失直颅。所以博个,我們將用反向傳播來計(jì)算梯度。

反向傳播的核心是一個(gè)對(duì)代價(jià)函數(shù)C關(guān)于任何權(quán)重w或者偏置b的偏導(dǎo)數(shù)的表達(dá)式功偿。這個(gè)表達(dá)式告訴我們?cè)诟淖儥?quán)重和偏置的時(shí)候盆佣,代價(jià)函數(shù)變化的快慢。所以反向傳播不僅僅是一種學(xué)習(xí)的快速算法械荷,實(shí)際上它讓我們細(xì)致領(lǐng)悟如何通過改變權(quán)重和偏置來改變整個(gè)網(wǎng)絡(luò)的行為共耍。

(1) 反向傳播的四大公式及其推導(dǎo)


(2) 反向傳播與梯度下降的關(guān)系

梯度下降方法是給出了一種學(xué)習(xí)權(quán)重和偏置的方法,但是這個(gè)方法不包含計(jì)算代價(jià)函數(shù)的梯度吨瞎。而反向傳播則是一種能夠快速計(jì)算代價(jià)函數(shù)梯度的方法痹兜。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市颤诀,隨后出現(xiàn)的幾起案子字旭,更是在濱河造成了極大的恐慌,老刑警劉巖崖叫,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遗淳,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡心傀,警方通過查閱死者的電腦和手機(jī)屈暗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來脂男,“玉大人养叛,你說我怎么就攤上這事〗海” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵陕贮,是天一觀的道長(zhǎng)堕油。 經(jīng)常有香客問我,道長(zhǎng),這世上最難降的妖魔是什么掉缺? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任卜录,我火速辦了婚禮,結(jié)果婚禮上眶明,老公的妹妹穿的比我還像新娘艰毒。我一直安慰自己,他們只是感情好搜囱,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布丑瞧。 她就那樣靜靜地躺著,像睡著了一般蜀肘。 火紅的嫁衣襯著肌膚如雪绊汹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天扮宠,我揣著相機(jī)與錄音西乖,去河邊找鬼。 笑死坛增,一個(gè)胖子當(dāng)著我的面吹牛获雕,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播收捣,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼届案,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了坏晦?” 一聲冷哼從身側(cè)響起萝玷,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎昆婿,沒想到半個(gè)月后球碉,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡仓蛆,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年睁冬,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片看疙。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡豆拨,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出能庆,到底是詐尸還是另有隱情施禾,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布搁胆,位于F島的核電站弥搞,受9級(jí)特大地震影響邮绿,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜攀例,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一船逮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧粤铭,春花似錦挖胃、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至加袋,卻和暖如春凛辣,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背职烧。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工扁誓, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人蚀之。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓蝗敢,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親足删。 傳聞我的和親對(duì)象是個(gè)殘疾皇子寿谴,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355

推薦閱讀更多精彩內(nèi)容

  • 前進(jìn)的道路上,我們將擴(kuò)展出很多關(guān)于神經(jīng)網(wǎng)絡(luò)的關(guān)鍵的思想失受,其中包括兩個(gè)重要的人工神經(jīng)元 (感知機(jī)和 S 型神經(jīng)元)讶泰,...
    郭少悲閱讀 1,077評(píng)論 0 0
  • 引言 機(jī)器學(xué)習(xí)欄目記錄我在學(xué)習(xí)Machine Learning過程的一些心得筆記,涵蓋線性回歸拂到、邏輯回歸痪署、Soft...
    hfk閱讀 4,361評(píng)論 4 18
  • 初二的冬天,吹著大風(fēng)兄旬,天又冷狼犯。中午放學(xué),頂著風(fēng)騎車回家领铐。手套不管用悯森,手都麻木了。到家好像手被凍掉了绪撵,沒有知覺瓢姻。又紅...
    不到6塊腹肌不改名閱讀 410評(píng)論 0 0