3.7 为什么需要非线性激活函数-深度学习-Stanford吴恩达教授
| 3.6 激活函數(shù) | 回到目錄 | 3.8 激活函數(shù)的導(dǎo)數(shù) |
為什么需要非線性激活函數(shù) (Why do you need non-linear activation function?)
為什么神經(jīng)網(wǎng)絡(luò)需要非線性激活函數(shù)?事實(shí)證明:要讓你的神經(jīng)網(wǎng)絡(luò)能夠計(jì)算出有趣的函數(shù),你必須使用非線性激活函數(shù),證明如下:
這是神經(jīng)網(wǎng)絡(luò)正向傳播的方程,現(xiàn)在我們?nèi)サ艉瘮?shù) ggg ,然后令 a[1]=z[1]a^{[1]}=z^{[1]}a[1]=z[1] ,或者我們也可以令 g(z)=zg(z)=zg(z)=z ,這個(gè)有時(shí)被叫做線性激活函數(shù)(更學(xué)術(shù)點(diǎn)的名字是恒等激勵函數(shù),因?yàn)樗鼈兙褪前演斎胫递敵?#xff09;。為了說明問題我們把 a[2]=z[2]a^{[2]}=z^{[2]}a[2]=z[2] ,那么這個(gè)模型的輸出 yyy 或僅僅只是輸入特征 xxx 的線性組合。
如果我們改變前面的式子,令: (1) a[1]=z[1]=W[1]x+b[1]a^{[1]}=z^{[1]}=W^{[1]}x+b^{[1]}a[1]=z[1]=W[1]x+b[1]
(2) a[2]=z[2]=W[2]a[1]+b[2]a^{[2]}=z^{[2]}=W^{[2]}a^{[1]}+b^{[2]}a[2]=z[2]=W[2]a[1]+b[2] 將式子(1)代入式子(2)中,則:a[2]=z[2]=W[2](W[1]x+b[1])+b[2]a^{[2]}=z^{[2]}=W^{[2]}(W^{[1]}x+b^{[1]})+b^{[2]}a[2]=z[2]=W[2](W[1]x+b[1])+b[2]
(3) a[2]=z[2]=W[2]W[1]x+W[2]b[1]+b[2]a^{[2]}=z^{[2]}=W^{[2]}W^{[1]}x+W^{[2]}b^{[1]}+b^{[2]}a[2]=z[2]=W[2]W[1]x+W[2]b[1]+b[2] 簡化多項(xiàng)式得 a[2]=z[2]=W′x+b′a^{[2]}=z^{[2]}=W^{'}x+b^{'}a[2]=z[2]=W′x+b′ 如果你是用線性激活函數(shù)或者叫恒等激勵函數(shù),那么神經(jīng)網(wǎng)絡(luò)只是把輸入線性組合再輸出。
我們稍后會談到深度網(wǎng)絡(luò),有很多層的神經(jīng)網(wǎng)絡(luò),很多隱藏層。事實(shí)證明,如果你使用線性激活函數(shù)或者沒有使用一個(gè)激活函數(shù),那么無論你的神經(jīng)網(wǎng)絡(luò)有多少層一直在做的只是計(jì)算線性函數(shù),所以不如直接去掉全部隱藏層。在我們的簡明案例中,事實(shí)證明如果你在隱藏層用線性激活函數(shù),在輸出層用sigmoid函數(shù),那么這個(gè)模型的復(fù)雜度和沒有任何隱藏層的標(biāo)準(zhǔn)Logistic回歸是一樣的,如果你愿意的話,可以證明一下。
在這里線性隱層一點(diǎn)用也沒有,因?yàn)檫@兩個(gè)線性函數(shù)的組合本身就是線性函數(shù),所以除非你引入非線性,否則你無法計(jì)算更有趣的函數(shù),即使你的網(wǎng)絡(luò)層數(shù)再多也不行;只有一個(gè)地方可以使用線性激活函數(shù)------ g(z)=zg(z)=zg(z)=z ,就是你在做機(jī)器學(xué)習(xí)中的回歸問題。 yyy 是一個(gè)實(shí)數(shù),舉個(gè)例子,比如你想預(yù)測房地產(chǎn)價(jià)格, yyy 就不是二分類任務(wù)0或1,而是一個(gè)實(shí)數(shù),從0到正無窮。如果 yyy 是個(gè)實(shí)數(shù),那么在輸出層用線性激活函數(shù)也許可行,你的輸出也是一個(gè)實(shí)數(shù),從負(fù)無窮到正無窮。
總而言之,不能在隱藏層用線性激活函數(shù),可以用ReLU或者tanh或者leaky ReLU或者其他的非線性激活函數(shù),唯一可以用線性激活函數(shù)的通常就是輸出層;除了這種情況,會在隱層用線性函數(shù)的,除了一些特殊情況,比如與壓縮有關(guān)的,那方面在這里將不深入討論。在這之外,在隱層使用線性激活函數(shù)非常少見。因?yàn)榉績r(jià)都是非負(fù)數(shù),所以我們也可以在輸出層使用ReLU函數(shù)這樣你的 y^\hat{y}y^? 都大于等于0。
理解為什么使用非線性激活函數(shù)對于神經(jīng)網(wǎng)絡(luò)十分關(guān)鍵,接下來我們討論梯度下降,并在下一個(gè)視頻中開始討論梯度下降的基礎(chǔ)——激活函數(shù)的導(dǎo)數(shù)。
課程PPT
| 3.6 激活函數(shù) | 回到目錄 | 3.8 激活函數(shù)的導(dǎo)數(shù) |
總結(jié)
以上是生活随笔為你收集整理的3.7 为什么需要非线性激活函数-深度学习-Stanford吴恩达教授的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3.6 激活函数-深度学习-Stanfo
- 下一篇: 3.8 激活函数的导数-深度学习-Sta