神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)基礎(chǔ)筆記

前進(jìn)的道路上涨冀,我們將擴(kuò)展出很多關(guān)于神經(jīng)網(wǎng)絡(luò)的關(guān)鍵的思想,其中包括兩個(gè)重要的人工神經(jīng)元 (感知機(jī)和 S 型神經(jīng)元)炕泳,以及標(biāo)準(zhǔn)的神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法贝奇,即隨機(jī)梯度下降算法钢属。自始至終,我專(zhuān)注于解釋事情的原委叔收,并構(gòu)筑你對(duì)神經(jīng)網(wǎng)絡(luò)的直觀感受尝江。

感知機(jī)


感知機(jī)在20世紀(jì)五啸驯、 六十年代由科學(xué)家 Frank Rosenblatt 發(fā)明客扎,其受到 Warren McCulloch 和 Walter Pitts 早期著 作的影響。今天罚斗,使用其它人工神經(jīng)元模型更為普遍---在這本書(shū)中徙鱼,以及更多現(xiàn)代的神經(jīng)網(wǎng)絡(luò)著作中,主要使用的是一種叫做 S 型神經(jīng)元的神經(jīng)元模型针姿。我們很快會(huì)講到S型神經(jīng)元袱吆。但是要理解為什么S型神經(jīng)元被定義為那樣的方式,值得花點(diǎn)時(shí)間先來(lái)理解下感知機(jī)距淫。

感知機(jī)是如何工作的呢?

一個(gè)感知機(jī)接受幾個(gè)二進(jìn)制輸入绞绒,x1, x2, . . .,并產(chǎn)生一個(gè)二進(jìn)制輸 出:

image.png

示例中的感知機(jī)有三個(gè)輸入榕暇,x1, x2, x3蓬衡。通常可以有更多或更少輸入拐揭。Rosenblatt 提議一個(gè)簡(jiǎn)單的規(guī)則來(lái)計(jì)算輸出撤蟆。他引入權(quán)重奕塑,w1, w2, . . .堂污,表示相應(yīng)輸入對(duì)于輸出重要性的實(shí)數(shù)。神經(jīng) 元的輸出龄砰,0 或者 1盟猖,則由分配權(quán)重后的總和 ∑ wjxj 小于或者大于一些閾值決定。和權(quán)重一樣换棚,閾值是一個(gè)實(shí)數(shù)式镐,一個(gè)神經(jīng)元的參數(shù)。用更精確的代數(shù)形式:

image.png

這就是感知機(jī)要做的事情固蚤,一個(gè)基本的數(shù)學(xué)模型娘汞。

image.png

在這個(gè)網(wǎng)絡(luò)中,第一列感知機(jī) —— 我們稱(chēng)其為第一層感知機(jī) —— 通過(guò)權(quán)衡輸入依據(jù)做出三 個(gè)非常簡(jiǎn)單的決定夕玩。那第二層的感知機(jī)呢?每一個(gè)都在權(quán)衡第一層的決策結(jié)果并做出決定你弦。以這種方式,一個(gè)第二層中的感知機(jī)可以比第一層中的做出更復(fù)雜和抽象的決策燎孟。在第三層中的感 知機(jī)甚至能進(jìn)行更復(fù)雜的決策禽作。以這種方式,一個(gè)多層的感知機(jī)網(wǎng)絡(luò)可以從事復(fù)雜巧妙的決策揩页。
順便提一下旷偿,當(dāng)我定義感知機(jī)時(shí)我說(shuō)的是感知機(jī)只有一個(gè)輸出。在上面的網(wǎng)絡(luò)中感知機(jī)看上 去像是有多個(gè)輸出。實(shí)際上萍程,他們?nèi)匀皇菃屋敵龅拇蓖6鄠€(gè)感知機(jī)輸出箭頭僅僅便于說(shuō)明一個(gè)感 知機(jī)的輸出被用于其它感知機(jī)的輸入。

讓我們簡(jiǎn)化感知機(jī)的數(shù)學(xué)描述尘喝。條件 ∑ wjxj 看上去有些冗?磁浇,我們可以創(chuàng)建兩個(gè)符號(hào)的變動(dòng)來(lái)簡(jiǎn)化。第一個(gè)變動(dòng)是把∑wjxj 改寫(xiě)成點(diǎn)乘朽褪,w · x ≡ ∑wjxj置吓,這里 w 和 x 對(duì)應(yīng)權(quán)重和輸入的向量。第二個(gè)變動(dòng)是把閾值移到不等式的另一邊缔赠,并用感知機(jī)的偏置 b ≡ ?threshold 代替衍锚。用偏置而不是閾值,那么感知機(jī)的規(guī)則可以重寫(xiě)為:

image.png

S型神經(jīng)元


我們用描繪感知機(jī)的相同方式來(lái)描繪 S 型神經(jīng)元:

image.png

正如一個(gè)感知機(jī)嗤堰,S型神經(jīng)元有多個(gè)輸入戴质,x1,x2,...。但是這些輸入可以取 0 和 1 中的任意值踢匣,而不僅僅是 0 或 1告匠。例如,0.638 . . . 是一個(gè)S型神經(jīng)元的有效輸入离唬。同樣后专,S型神經(jīng)元對(duì)每個(gè)輸入有權(quán)重,w1,w2,...输莺,和一個(gè)總的偏置戚哎,b。但是輸出不是 0 或 1嫂用。相反型凳,它現(xiàn)在是 σ(w · x + b),這里 σ 被稱(chēng)為S 型函數(shù)嘱函,定義為:

image.png

把它們放在一起來(lái)更清楚地說(shuō)明甘畅,一個(gè)具有輸入 x1, x2, . . .,權(quán)重 w1, w2, . . .往弓,和偏置 b 的 S 型神經(jīng)元的輸出是:

image.png

為了理解和感知機(jī)模型的相似性疏唾,假設(shè) z ≡ w · x + b 是一個(gè)很大的正數(shù)。那么 e?z ≈ 0 而 σ(z) ≈ 1亮航。即荸实,當(dāng) z = w · x + b 很大并且為正,S 型神經(jīng)元的輸出近似為 1缴淋,正好和感知機(jī)一樣准给。 相反地泄朴,假設(shè) z = w·x+b 是一個(gè)很大的負(fù)數(shù)。那么 e?z → ∞露氮,σ(z) ≈ 0祖灰。所以當(dāng) z = w·x+b 是一個(gè)很大的負(fù)數(shù),S 型神經(jīng)元的行為也非常近似一個(gè)感知機(jī)畔规。只有在 w · x + b 取中間值時(shí)局扶, 和感知機(jī)模型有比較大的偏離。

σ 的精確形式不重要 —— 重要的是這個(gè)函數(shù)繪制的形狀叁扫。是這樣:

image.png

這個(gè)形狀是階躍函數(shù)平滑后的版本:

image.png

如果 σ 實(shí)際是個(gè)階躍函數(shù)三妈,既然輸出會(huì)依賴(lài)于 w · x + b 是正數(shù)還是負(fù)數(shù)2,那么 S 型神經(jīng)元會(huì)成為一個(gè)感知機(jī)莫绣。利用實(shí)際的 σ 函數(shù)畴蒲,我們得到一個(gè),就像上面說(shuō)明的对室,平滑的感知機(jī)模燥。確實(shí),σ函數(shù)的平滑特性掩宜,正
是關(guān)鍵因素蔫骂,而不是其細(xì)部形式。σ 的平滑意味著權(quán)重和偏置的微小變化牺汤,即 ?wj 和 ?b辽旋,會(huì)從神經(jīng)元產(chǎn)生一
個(gè)微小的輸出變化 ?output。實(shí)際上慧瘤,微積分告訴我 們 ?output 可以很好地近似表示為:

image.png

它的意思非常簡(jiǎn)單:?output 是一個(gè)反映權(quán)重和偏置變化 —— 即 ?wj 和 ?b —— 的線性函數(shù)戴已。利用這個(gè)線性特性固该,我們比較容易細(xì)微地修改權(quán)重 和偏置的值锅减,從而獲得我們需要的細(xì)微的輸出變化。所以伐坏,因?yàn)镾型神經(jīng)元具有與感知機(jī)類(lèi)似的本質(zhì)行為怔匣,它們可以幫助我們了解權(quán)重和偏置的變化如何影響輸出值。

我們應(yīng)該如何解釋一個(gè) S 型神經(jīng)元的輸出呢? 很明顯桦沉,感知機(jī)和 S 型神經(jīng)元之間一個(gè)很大的不同是 S 型神經(jīng)元不僅僅輸出 0 或 1每瞒。它可以輸出 0 到 1 之間的任何實(shí)數(shù),所以諸如 0.173和0.689的值是合理的輸出纯露。

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


image.png

這個(gè)網(wǎng)絡(luò)中最左邊的稱(chēng)為輸入層剿骨,其中的神經(jīng)元稱(chēng)為輸入神經(jīng)元。最右邊的埠褪, 輸出層包含有輸出神經(jīng)元浓利,在本例中挤庇,輸出層只有一個(gè)神經(jīng)元。中間層贷掖,既然這層中的神經(jīng)元既不是輸入也不是輸出嫡秕,則被稱(chēng)為隱藏層

相比于神經(jīng)網(wǎng)絡(luò)中輸入輸出層的直觀設(shè)計(jì)苹威,隱藏層的設(shè)計(jì)則堪稱(chēng)一?藝術(shù)昆咽。特別是,通過(guò)一些簡(jiǎn)單的經(jīng)驗(yàn)法則來(lái)總結(jié)隱藏層的設(shè)計(jì)流程是不可行的牙甫。相反掷酗,神經(jīng)網(wǎng)絡(luò)的研究人員已經(jīng)為隱藏層開(kāi)發(fā)了許多設(shè)計(jì)最優(yōu)法則,這有助于網(wǎng)絡(luò)的行為能符合人們期望的那樣窟哺。例如汇在,這些法則可以用于幫助權(quán)衡隱藏層數(shù)量和訓(xùn)練網(wǎng)絡(luò)所需的時(shí)間開(kāi)銷(xiāo)。

目前為止脏答,我們討論的神經(jīng)網(wǎng)絡(luò)糕殉,都是以上一層的輸出作為下一層的輸入。這種網(wǎng)絡(luò)被稱(chēng)為前饋神經(jīng)網(wǎng)絡(luò)殖告。這意味著網(wǎng)絡(luò)中是沒(méi)有回路的 —— 信息總是向前傳播阿蝶,從不反向回饋。如果確 實(shí)有回路黄绩,我們最終會(huì)有這樣的情況:σ 函數(shù)的輸入依賴(lài)于輸出羡洁。

一個(gè)簡(jiǎn)單的分類(lèi)手寫(xiě)數(shù)字的網(wǎng)絡(luò)


定義神經(jīng)網(wǎng)絡(luò)后,讓我們回到手寫(xiě)識(shí)別上來(lái)爽丹。我們可以把識(shí)別手寫(xiě)數(shù)字的問(wèn)題分成兩個(gè)子問(wèn)題筑煮。
首先,我們希望有個(gè)方式把包含許多數(shù)字的圖像分成一系列單獨(dú)的圖像粤蝎,每個(gè)包含單個(gè)數(shù)字真仲。
其次,我們將專(zhuān)注于編程解決第二個(gè)問(wèn)題初澎,識(shí)別單獨(dú)的數(shù)字秸应。

我們將使用一個(gè)三層神經(jīng)網(wǎng)絡(luò)來(lái)識(shí)別單個(gè)數(shù)字:

image.png

網(wǎng)絡(luò)的輸出層包含有 10 個(gè)神經(jīng)元。如果第一個(gè)神經(jīng)元激活碑宴,即輸出 ≈ 1软啼,那么表明網(wǎng)絡(luò)認(rèn)為數(shù)字是一個(gè)0。如果第二個(gè)神經(jīng)元激活延柠,就表明網(wǎng)絡(luò)認(rèn)為數(shù)字是一個(gè)1祸挪。依此類(lèi)推。更確切地說(shuō)贞间,我們把輸出神經(jīng)元的輸出賦予編號(hào) 0 到 9贿条,并計(jì)算出那個(gè)神經(jīng)元有最高的激活值盈罐。比如,如果編號(hào)為 6 的神經(jīng)元激活闪唆,那么我們的網(wǎng)絡(luò)會(huì)猜到輸入的數(shù)字是6盅粪。其它神經(jīng)元相同。

你可能會(huì)好奇為什么我們用 10 個(gè)輸出神經(jīng)元悄蕾。畢竟我們的任務(wù)是能讓神經(jīng)網(wǎng)絡(luò)告訴我們哪個(gè)數(shù)字(0, 1, 2, . . . , 9 )能和輸入圖片匹配票顾。一個(gè)看起來(lái)更自然的方式就是使用4個(gè)輸出神經(jīng)元,把每一個(gè)當(dāng)做一個(gè)二進(jìn)制值帆调,結(jié)果取決于它的輸出更靠近 0 還是 1 奠骄。四個(gè)神經(jīng)元足夠編碼這個(gè)問(wèn)題了,因?yàn)?2 ^ 4 = 16 大于 10 種可能的輸入番刊。為什么我們反而要用 10 個(gè)神經(jīng)元呢? 這樣做難道效率不低嗎? 最終的判斷是基于經(jīng)驗(yàn)主義的: 我們可以實(shí)驗(yàn)兩種不同的網(wǎng)絡(luò)設(shè)計(jì)含鳞,結(jié)果證明對(duì)于這個(gè)特定的問(wèn)題而言,10個(gè)輸出神經(jīng)元的神經(jīng)網(wǎng)絡(luò)比 4 個(gè)的識(shí)別效果更好芹务。但是令我們好奇的是為什么使用 10 個(gè)輸出神經(jīng)元的神經(jīng)網(wǎng)絡(luò)更有效呢蝉绷。有沒(méi)有什么啟發(fā)性的方法能提前告訴我們用10個(gè)輸出編碼比使用4個(gè)輸出編碼更有好呢?

為了理解為什么我們這么做,我們需要從根本原理上理解神經(jīng)網(wǎng)絡(luò)究竟在做些什么枣抱。首先考 慮有 10 個(gè)神經(jīng)元的情況熔吗。我們首先考慮第一個(gè)輸出神經(jīng)元,它告訴我們一個(gè)數(shù)字是不是 0佳晶。它能那么做是因?yàn)榭梢詸?quán)衡從隱藏層來(lái)的信息桅狠。隱藏層的神經(jīng)元在做什么呢?假設(shè)隱藏層的第一個(gè)神經(jīng)元只是用于檢測(cè)如下的圖像是否存在:

image.png

為了達(dá)到這個(gè)目的,它通過(guò)對(duì)此圖像對(duì)應(yīng)部分的像素賦予較大權(quán)重轿秧,對(duì)其它部分賦予較小 的權(quán)重中跌。同理,我們可以假設(shè)隱藏層的第二菇篡,第三漩符,第四個(gè)神經(jīng)元是為檢測(cè)下列圖片是否存在:

image.png

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

image.png

如果所有隱藏層的這四個(gè)神經(jīng)元被激活那么我們就可以推斷出這個(gè)數(shù)字是 0逸贾。當(dāng)然陨仅,這不是 我們推斷出 0 的唯一方式 —— 我們能通過(guò)很多其他合理的方式得到 0 (舉個(gè)例子來(lái)說(shuō)津滞,通過(guò)上述圖像的轉(zhuǎn)換铝侵,或者稍微變形)。但至少在這個(gè)例子中我們可以推斷出輸入的數(shù)字是 0触徐。

假設(shè)神經(jīng)網(wǎng)絡(luò)以上述方式運(yùn)行咪鲜,我們可以給出一個(gè)貌似合理的理由去解釋為什么用 10 個(gè)輸 出而不是 4 個(gè)。如果我們有 4 個(gè)輸出撞鹉,那么第一個(gè)輸出神經(jīng)元將會(huì)盡力去判斷數(shù)字的最高有效位是什么疟丙。把數(shù)字的最高有效位和數(shù)字的形狀聯(lián)系起來(lái)并不是一個(gè)簡(jiǎn)單的問(wèn)題颖侄。很難想象出有 什么恰當(dāng)?shù)臍v史原因,一個(gè)數(shù)字的形狀要素會(huì)和一個(gè)數(shù)字的最高有效位有什么緊密聯(lián)系享郊。

上面我們說(shuō)的只是一個(gè)啟發(fā)性的方法览祖。沒(méi)有什么理由表明這個(gè)三層的神經(jīng)網(wǎng)絡(luò)必須按照我所 描述的方式運(yùn)行,即隱藏層是用來(lái)探測(cè)數(shù)字的組成形狀炊琉≌沟伲可能一個(gè)聰明的學(xué)習(xí)算法將會(huì)找到一 些合適的權(quán)重能讓我們僅僅用 4 個(gè)輸出神經(jīng)元就行。但是這個(gè)啟發(fā)性的方法通常很有效苔咪,它會(huì)節(jié)省你大量時(shí)間去設(shè)計(jì)一個(gè)好的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)锰悼。

使用梯度下降算法進(jìn)行學(xué)習(xí)


我們將使用 MNIST 數(shù)據(jù)集,其包含有數(shù)以萬(wàn)計(jì)的連 帶著正確分類(lèi)器的手寫(xiě)數(shù)字的掃描圖像团赏。MNIST 的名字來(lái)源于 NIST ——美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù) 研究所 —— 收集的兩個(gè)數(shù)據(jù)集改進(jìn)后的子集箕般。

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

image.png

這里 w 表示所有的網(wǎng)絡(luò)中權(quán)重的集合体谒,b 是所有的偏置丙者,n 是訓(xùn)練輸入數(shù)據(jù)的個(gè)數(shù),a 是表示當(dāng)輸入為 x 時(shí)輸出的向量营密,求和則是在總的訓(xùn)練輸入 x 上進(jìn)行的械媒。當(dāng)然,輸出 a 取決于 x, w 和 b评汰,但是為了保持符號(hào)的簡(jiǎn)潔性纷捞,我沒(méi)有明確地指出這種依賴(lài)關(guān)系。符號(hào) ∥v∥ 是指向量 v 的模被去。我們把 C 稱(chēng)為二次代價(jià)函數(shù);有時(shí)也被稱(chēng)為均方誤差或者 MSE主儡。

觀察二次代價(jià)函數(shù)的形式我們可以看到 C(w, b)是非負(fù)的,因?yàn)榍蠛凸街械拿恳豁?xiàng)都是非負(fù)的惨缆。此外糜值,代價(jià)函數(shù) C(w,b) 的值相當(dāng)小,即 C(w,b) ≈ 0坯墨,精確地說(shuō)寂汇,是當(dāng)對(duì)于所有的訓(xùn)練輸入 x,y(x) 接近于輸出 a 時(shí)捣染。因此如果我們的學(xué)習(xí)算法能找到合適的權(quán)重和偏置骄瓣,使得 C(w, b) ≈ 0,它就能很好地工作耍攘。相反榕栏,當(dāng) C(w, b) 很大時(shí)就不怎么好了畔勤,那意味著對(duì)于大量地輸入,y(x) 與輸出 a 相差很大扒磁。 因此我們的訓(xùn)練算法的目的庆揪,是最小化權(quán)重和偏置的代價(jià)函數(shù) C(w, b)。換句話說(shuō)妨托,我們想要找到一系列能讓代價(jià)盡可能小的權(quán)重和偏置嚷硫。我們將采用稱(chēng)為梯度下降的算法來(lái)達(dá)到這個(gè)目的。

假設(shè) C 是一個(gè)有 m 個(gè)變量 v1, ..., vm 的多元函數(shù)始鱼。那么對(duì) C 中 自變量的變化 ?v = (?v1, ..., ?vm)T 仔掸,?C 將會(huì)變?yōu)?

image.png

這里的梯度 ?C 是向量

image.png

我們可以選取

image.png

這里的 η 是個(gè)很小的正數(shù)(稱(chēng)為學(xué)習(xí)速率) 。

這給了我們一種方式從梯度中去取得最小值医清, 即使 C 是任意的多元函數(shù)起暮,我們也能重復(fù)運(yùn)用更新規(guī)則

image.png

事實(shí)上,甚至有一種觀點(diǎn)認(rèn)為梯度下降法是求最小值的最優(yōu)策略会烙。假設(shè)我們正在努力去改變 ?v 來(lái)讓 C 盡可能地減小负懦。這相當(dāng)于最小化 ?C ≈ ?C · ?v。我們首先限制步?為小的固定值柏腻, 即 ∥?v∥ = ε纸厉,ε > 0。當(dāng)步?固定時(shí)五嫂,我們要找到使得 C 減小最大的下降方向颗品。可以證明沃缘,使得 ?C ·?v 取得最小值的 ?v 為 ?v = ?η?C躯枢,這里 η = ε/∥?C∥ 是由步?限制 ∥?v∥ = ε 所決定的。因此槐臀,梯度下降法可以被視為一種在 C 下降最快的方向上做微小變化的方法锄蹂。

反向傳播


反向傳播算法最初在 1970 年代被提及,但是人們直到 David Rumelhart水慨、Geo rey Hinton 和 Ronald Williams 的著名的 1986 年的論文中才認(rèn)識(shí)到這個(gè)算法的重要性得糜。這篇論文描述了對(duì)一些神經(jīng)網(wǎng)絡(luò)反向傳播要比傳統(tǒng)的方法更快,這使得使用神經(jīng)網(wǎng)絡(luò)來(lái)解決之前無(wú)法完成的問(wèn)題變得可行∥鳎現(xiàn)在朝抖,反向傳播算法已經(jīng)是神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)的重要組成部分了。

反向傳播的核心是一個(gè)對(duì)代價(jià)函數(shù) C 關(guān)于任何權(quán)重 w (或者偏置 b )的 偏導(dǎo)數(shù) ?C/?w 的表達(dá)式欢顷。這個(gè)表達(dá)式告訴我們?cè)诟淖儥?quán)重和偏置時(shí)槽棍,代價(jià)函數(shù)變化的快慢。盡管表達(dá)式會(huì)有點(diǎn)復(fù)雜抬驴,不過(guò)里面也包含一種美感炼七,就是每個(gè)元素其實(shí)是擁有一種自然的直覺(jué)上的解釋。所以反向傳播不僅僅是一種學(xué)習(xí)的快速算法布持。實(shí)際上它讓我們細(xì)致領(lǐng)悟如何通過(guò)改變權(quán) 重和偏置來(lái)改變整個(gè)網(wǎng)絡(luò)的行為豌拙。因此,這也是學(xué)習(xí)反向傳播細(xì)節(jié)的重要價(jià)值所在题暖。

反向傳播的四個(gè)基本方程

image.png

輸出層誤差的方程

image.png

使用下一層的誤差來(lái)表示當(dāng)前層的誤差

image.png

代價(jià)函數(shù)關(guān)于網(wǎng)絡(luò)中任意偏置的改變率

image.png

代價(jià)函數(shù)關(guān)于任何一個(gè)權(quán)重的改變率

image.png

兩個(gè)神經(jīng)元之間的連接其實(shí)是關(guān)聯(lián)與一個(gè)變化率因子按傅,這僅僅是一個(gè)神經(jīng)元的激活值相對(duì)于其他神經(jīng)元的激活值的偏導(dǎo)數(shù)。從第一個(gè)權(quán)重到第一個(gè)神經(jīng)元的變化率因子是 ?a /?w 胧卤。路徑的變化率因子其實(shí)就是這條路徑上的眾多因子的乘積唯绍。而整個(gè)的變化率就是對(duì)于所有可能的從初始權(quán)重到最終輸出的代價(jià)函數(shù)的路徑的變化率因子的和。

反向傳播就是一種巧妙地追蹤權(quán)重(和偏置)微小變化的傳播枝誊,抵達(dá)輸出層影響代價(jià)函數(shù)的技術(shù)况芒。

改進(jìn)神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)方法

涉及的技術(shù)包括:更好的代價(jià)函數(shù)的選擇 —— 交叉熵代價(jià)函數(shù);四種稱(chēng)為“正則化”的 方法(L1 和 L2 正則化,棄權(quán)和訓(xùn)練數(shù)據(jù)的人為擴(kuò)展)叶撒,這會(huì)讓我們的網(wǎng)絡(luò)在訓(xùn)練集之外的數(shù)據(jù) 上更好地泛化;更好的權(quán)重初始化方法;還有幫助選擇好的超參數(shù)的啟發(fā)式想法绝骚。

交叉熵代價(jià)函數(shù)

假設(shè),我們現(xiàn)在要訓(xùn)練一 個(gè)包含若干輸入變量的的神經(jīng)元祠够,x1, x2, . . . 對(duì)應(yīng)的權(quán)重為 w1, w2, . . . 和偏置 b:

image.png

神經(jīng)元的輸出就是 a = σ(z)压汪,其中 z = ∑ wj xj + b 是輸入的帶權(quán)和。我們?nèi)缦露x這個(gè)神經(jīng)元的交叉熵代價(jià)函數(shù):

image.png

當(dāng)我們使用二次代價(jià)函數(shù)時(shí)古瓤,學(xué)習(xí)在神經(jīng)元犯了明顯的錯(cuò)誤的時(shí)候卻比學(xué)習(xí)快接近 真實(shí)值的時(shí)候緩慢;而使用交叉熵學(xué)習(xí)正是在神經(jīng)元犯了明顯錯(cuò)誤的時(shí)候速度更快止剖。特別地,當(dāng) 我們使用二次代價(jià)函數(shù)時(shí)落君,當(dāng)神經(jīng)元在接近正確的輸出前犯了明顯錯(cuò)誤的時(shí)候滴须,學(xué)習(xí)變得更加緩慢;而使用交叉熵,在神經(jīng)元犯明顯錯(cuò)誤時(shí)學(xué)習(xí)得更快叽奥。這些現(xiàn)象并不依賴(lài)于如何設(shè)置學(xué)習(xí)速率扔水。

過(guò)度擬合與正則化


過(guò)度擬合是神經(jīng)網(wǎng)絡(luò)的一個(gè)主要問(wèn)題。這在現(xiàn)代網(wǎng)絡(luò)中特別正常朝氓,因?yàn)榫W(wǎng)絡(luò)權(quán)重和偏置數(shù)量巨大魔市。為了高效地訓(xùn)練,我們需要一種檢測(cè)過(guò)度擬合是不是發(fā)生的技術(shù)赵哲,這樣我們不會(huì)過(guò)度訓(xùn)練待德。并且我們也想要找到一些技術(shù)來(lái)降低過(guò)度擬合的影響。

一般來(lái)說(shuō)枫夺,最好的降低過(guò)度擬合的方式之一就是增加訓(xùn)練樣本的量将宪。有了足夠的訓(xùn)練數(shù)據(jù),就算是一個(gè)規(guī)模非常大的網(wǎng)絡(luò)也不大容易過(guò)度擬合。不幸的是较坛,訓(xùn)練數(shù)據(jù)其實(shí)是很難或者很昂貴的資源印蔗,所以這不是一種太切實(shí)際的選擇。

幸運(yùn)的是丑勤,還有其他的技術(shù)能夠緩解過(guò)度擬合华嘹,即使我們只有一個(gè)固定的網(wǎng)絡(luò)和固定的訓(xùn)練集合。這種技術(shù)就是正則化法竞。本節(jié)耙厚,我會(huì)給出一種最為常用的正則化手段 —— 有時(shí)候被稱(chēng)為權(quán)重衰減或者 L2正則化。L2 正則化的想法是增加一個(gè)額外的項(xiàng)到代價(jià)函數(shù)上岔霸,這個(gè)項(xiàng)叫做正則化項(xiàng)薛躬。下面是正則化的交叉熵:

image.png

其中第一個(gè)項(xiàng)就是常規(guī)的交叉熵的表達(dá)式。第二個(gè)現(xiàn)在加入的就是所有權(quán)重的平方的和呆细。然 后使用一個(gè)因子 λ/2n 進(jìn)行量化調(diào)整型宝,其中 λ > 0 可以稱(chēng)為規(guī)范化參數(shù),而 n 就是訓(xùn)練集合的 大小侦鹏。我們會(huì)在后面討論 λ 的選擇策略诡曙。需要注意的是,正則化項(xiàng)里面并不包含偏置略水。

直覺(jué)地看价卤,正則化的效果是讓網(wǎng)絡(luò)傾向于學(xué)習(xí)小一點(diǎn)的權(quán)重,其他的東西都一樣的渊涝。大的權(quán)重只有能夠給出代價(jià)函數(shù)第一項(xiàng)足夠的提升時(shí)才被允許慎璧。換言之,正則化可以當(dāng)做一種尋找小 的權(quán)重和最小化原始的代價(jià)函數(shù)之間的折中跨释。這兩部分之間相對(duì)的重要性就由 λ 的值來(lái)控制了: λ 越小胸私,就偏向于最小化原始代價(jià)函數(shù),反之鳖谈,傾向于小的權(quán)重岁疼。

正則化在實(shí)踐中能夠減少過(guò)度擬合了。這是令人振奮的缆娃,不過(guò)捷绒,這背后的原 因還不得而知!通常的說(shuō)法是:小的權(quán)重在某種程度上,意味著更低的復(fù)雜性贯要,也就對(duì)數(shù)據(jù)給出了一種更簡(jiǎn)單卻更強(qiáng)大解釋?zhuān)虼藨?yīng)該優(yōu)先選擇暖侨。

所以,我們應(yīng)當(dāng)時(shí)時(shí)記住這一點(diǎn)崇渗,正則化的神經(jīng)網(wǎng)絡(luò)常常能夠比非正則化的泛化能力更強(qiáng)字逗, 這只是一種實(shí)驗(yàn)事實(shí)(empirical fact)京郑。

激活函數(shù)的作用


摘自:https://www.zhihu.com/question/22334626

激活函數(shù)(Activation Function)是用來(lái)加入非線性因素的,因?yàn)榫€性模型的表達(dá)能力不夠葫掉。

以下些举,同種顏色為同類(lèi)數(shù)據(jù)。
某些數(shù)據(jù)是線性可分的挖息,意思是金拒,可以用一條直線將數(shù)據(jù)分開(kāi)兽肤。比如下圖:

image.png

這時(shí)候你需要通過(guò)一定的機(jī)器學(xué)習(xí)的方法套腹,比如感知機(jī)算法(perceptron learning algorithm) 找到一個(gè)合適的線性方程。
但是有些數(shù)據(jù)不是線性可分的资铡。比如如下數(shù)據(jù):

image.png

第二組數(shù)據(jù)你就沒(méi)有辦法畫(huà)出一條直線來(lái)將數(shù)據(jù)區(qū)分開(kāi)电禀。
這時(shí)候有兩個(gè)辦法,第一個(gè)辦法笤休,是做線性變換(linear transformation)尖飞,比如講x,y變成x2,y2,這樣可以畫(huà)出圓形店雅。如圖所示:

image.png

如果將坐標(biāo)軸從x,y變?yōu)橐詘2,y2為標(biāo)準(zhǔn)政基,你會(huì)發(fā)現(xiàn)數(shù)據(jù)經(jīng)過(guò)變換后是線性可分的了。大致示意圖如下:

image.png

另外一種方法是引入非線性函數(shù)闹啦。
我們來(lái)看異或問(wèn)題(xor problem)沮明。以下是xor真值表:

image.png

個(gè)真值表不是線性可分的,所以不能使用線性模型窍奋,如圖所示:

image.png

我們可以設(shè)計(jì)一種神經(jīng)網(wǎng)絡(luò)荐健,通過(guò)激活函數(shù)來(lái)使得這組數(shù)據(jù)線性可分。
激活函數(shù)我們選擇閥值函數(shù)(threshold function)琳袄,也就是大于某個(gè)值輸出1(被激活了)江场,小于等于則輸出0(沒(méi)有激活)。這個(gè)函數(shù)是非線性函數(shù)窖逗。
神經(jīng)網(wǎng)絡(luò)示意圖如下:

image.png

其中直線上的數(shù)字為權(quán)重址否。圓圈中的數(shù)字為閥值。第二層碎紊,如果輸入大于1.5則輸出1佑附,否則0;第三層矮慕,如果輸入大于0.5帮匾,則輸出1,否則0痴鳄。

我們來(lái)一步步算瘟斜。第一層到第二層(閥值1.5):

image.png

第二層到第三層(閥值0.5):

image.png

可以看到第三層輸出就是我們所要的xor的答案。
經(jīng)過(guò)變換后的數(shù)據(jù)是線性可分的(n維,比如本例中可以用平面)螺句,如圖所示:

image.png


這是一個(gè)單層的感知機(jī), 也是我們最常用的神經(jīng)網(wǎng)絡(luò)組成單元啦. 用它可以劃出一條線, 把平面分割開(kāi):

image.png

那么很容易地我們就會(huì)想用多個(gè)感知機(jī)來(lái)進(jìn)行組合, 獲得更強(qiáng)的分類(lèi)能力, 這是沒(méi)問(wèn)題的啦~~~~ 如圖所示:

image.png

那么我們動(dòng)筆算一算, 就可以發(fā)現(xiàn), 這樣一個(gè)神經(jīng)網(wǎng)絡(luò)組合起來(lái),輸出的時(shí)候無(wú)論如何都還是一個(gè)線性方程哎~~~~納尼, 說(shuō)好的非線性分類(lèi)呢?

我們?cè)诿恳粚盈B加完了以后, 加一個(gè)激活函數(shù), 如圖中的
y=\sigma(a)
y=\sigma(a)

.
這樣輸出的就是一個(gè)不折不扣的非線性函數(shù)!

image.png

有了這樣的非線性激活函數(shù)以后, 神經(jīng)網(wǎng)絡(luò)的表達(dá)能力更加強(qiáng)大虽惭。

image.png

加上非線性激活函數(shù)之后, 我們就有可能學(xué)習(xí)到這樣的平滑分類(lèi)平面。

image.png

所以到這里為止蛇尚,我們就解釋了這個(gè)觀點(diǎn)芽唇,加入激活函數(shù)是用來(lái)加入非線性因素的,解決線性模型所不能解決的問(wèn)題取劫。

image.png
最后編輯于
?著作權(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)離奇詭異咆课,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)扯俱,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門(mén)书蚪,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人迅栅,你說(shuō)我怎么就攤上這事殊校。” “怎么了库继?”我有些...
    開(kāi)封第一講書(shū)人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵箩艺,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我宪萄,道長(zhǎng)艺谆,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任拜英,我火速辦了婚禮静汤,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘居凶。我一直安慰自己虫给,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布侠碧。 她就那樣靜靜地躺著抹估,像睡著了一般。 火紅的嫁衣襯著肌膚如雪弄兜。 梳的紋絲不亂的頭發(fā)上药蜻,一...
    開(kāi)封第一講書(shū)人閱讀 51,688評(píng)論 1 305
  • 那天瓷式,我揣著相機(jī)與錄音,去河邊找鬼语泽。 笑死贸典,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的踱卵。 我是一名探鬼主播廊驼,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼惋砂!你這毒婦竟也來(lái)了妒挎?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤班利,失蹤者是張志新(化名)和其女友劉穎饥漫,沒(méi)想到半個(gè)月后榨呆,有當(dāng)?shù)厝嗽跇?shù)林里發(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
  • 文/蒙蒙 一敬鬓、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧笙各,春花似錦钉答、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至惶楼,卻和暖如春右蹦,著一層夾襖步出監(jiān)牢的瞬間虏缸,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工嫩实, 沒(méi)想到剛下飛機(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)容

  • #自我管理之年復(fù)盤(pán)# 我覺(jué)得能夠成功實(shí)現(xiàn)自我管理最有效的方法就是每日檢視與反思慨灭,這樣搭配才能更好地達(dá)到自我管理! ...
    JessicaPeng閱讀 241評(píng)論 0 1
  • 去掉標(biāo)簽之間的空格或換行inline-block元素之間有空格或換行時(shí)球及,會(huì)產(chǎn)生縫隙氧骤。所以要想除去縫隙可以刪除空格或...
    __Qiao閱讀 582評(píng)論 0 2
  • 對(duì)我來(lái)說(shuō)寫(xiě)作靠的就是興趣和堅(jiān)持,或者只有不斷的日積月累吃引,當(dāng)我能更熟練的筹陵、更真實(shí)的描述一件事或心有所感時(shí),并且讓讀者...
    龍膽閱讀 173評(píng)論 0 1
  • 我最喜歡的一位美國(guó)作家海明威曾在《致下一場(chǎng)戰(zhàn)爭(zhēng):一封主題嚴(yán)肅的信件》寫(xiě)道:“在現(xiàn)代戰(zhàn)爭(zhēng)里,你只能像牲畜一樣毫無(wú)意義...
    先生文字工作坊閱讀 9,975評(píng)論 2 9
  • 有一個(gè)怪博士庐氮,因?yàn)樽约焊冻隽撕芏嘤锍恚拮訏仐壸约憾ィ秃捱@個(gè)世界弄砍,造出機(jī)器人控制世界仙畦,因?yàn)闄C(jī)器人是知道聽(tīng)話的,人...
    王以薩閱讀 417評(píng)論 0 0