神經(jīng)網(wǎng)絡(luò)簡介及CNN

注意:本文為學(xué)習(xí)筆記,大量直接復(fù)制于參考文章中的原文字及圖片

一、神經(jīng)網(wǎng)絡(luò)簡介

神經(jīng)網(wǎng)絡(luò)由大量神經(jīng)元組成。每個(gè)神經(jīng)元獲得線性組合的輸入,經(jīng)過非線性的激活函數(shù),然后得到非線性的輸出。
如下圖所示:



x1,x2表示輸入向量,w1,w2表示權(quán)重,b為偏置值(bias),a為輸出。

1. 激活函數(shù)

激活函數(shù)到底是一個(gè)什么東西,主要有哪些激活函數(shù),以及在什么情況下適合使用什么激活函數(shù),接下來我們一探究竟。
激活函數(shù)是為了給神經(jīng)元引入非線性因素,使得神經(jīng)網(wǎng)絡(luò)可以逼近任意非線性函數(shù),這樣神經(jīng)網(wǎng)絡(luò)就可以應(yīng)用于眾多的非線性模型中。
常見的幾個(gè)激活函數(shù)有sigmod,Tanh,ReLU,softmax。

1.1 sigmod函數(shù)(logistic 函數(shù))

下圖為對應(yīng)的公式和曲線以及對應(yīng)的求導(dǎo)曲線圖:


取值范圍(0,1),可以用來做二分類。
不過這個(gè)函數(shù)現(xiàn)在已經(jīng)很少用了,主要原因如下:

  • Sigmoids saturate and kill gradients
    激活函數(shù)計(jì)算量大,反向傳播(見下文)求誤差梯度時(shí),求導(dǎo)涉及除法。反向傳播時(shí),很容易就會(huì)出現(xiàn)梯度消失的情況,從而無法完成深層網(wǎng)絡(luò)的訓(xùn)練
  • Sigmod的output不是0均值
    因?yàn)槊恳粚拥妮敵龆家鳛橄乱粚拥妮斎耄?中心化會(huì)直接影響梯度下降,我們這么舉個(gè)例子吧,如果輸出的結(jié)果均值不為0,舉個(gè)極端的例子,全部為正的話(例如f=w^Tx+b中所有x>0),那么關(guān)于w的梯度在反向傳播的過程中,將會(huì)要么全部是正數(shù),要么全部是負(fù)數(shù)(具體依整個(gè)表達(dá)式f而定),這帶來的后果是,梯度更新的時(shí)候,不是平緩地迭代變化,而是類似鋸齒狀的突變。當(dāng)然,要多說一句的是,這個(gè)缺點(diǎn)相對于第一個(gè)缺點(diǎn),還稍微好一點(diǎn),當(dāng)把整個(gè)批量的數(shù)據(jù)的梯度被加起來后,對于權(quán)重的最終更新將會(huì)有不同的正負(fù),這樣就從一定程度上減輕了這個(gè)問題,第一個(gè)缺點(diǎn)的后果是,很多場景下,神經(jīng)網(wǎng)絡(luò)根本沒辦法學(xué)習(xí)。
1.2 Tanh函數(shù)

和sigmod相比,優(yōu)點(diǎn)是output是0均值的,但是還是沒有解決上文說的第一個(gè)問題。


1.3 ReLU(Rectified Linear Unit)

優(yōu)點(diǎn):實(shí)驗(yàn)表明,它的使用,相對于sigmoid和tanh,可以非常大程度地提升隨機(jī)梯度下降的收斂速度。
缺點(diǎn):例如,一個(gè)非常大的梯度流過一個(gè) ReLU 神經(jīng)元,更新過參數(shù)之后,這個(gè)神經(jīng)元再也不會(huì)對任何數(shù)據(jù)有激活現(xiàn)象了,那么這個(gè)神經(jīng)元的梯度就永遠(yuǎn)都會(huì)是 0.
如果 learning rate 很大,那么很有可能網(wǎng)絡(luò)中的 40% 的神經(jīng)元都”dead”了。
當(dāng)然,如果你設(shè)置了一個(gè)合適的較小的learning rate,這個(gè)問題發(fā)生的情況其實(shí)也不會(huì)太頻繁。
(learning rate:學(xué)習(xí)率決定了權(quán)值更新的速度,設(shè)置得太大會(huì)使結(jié)果越過最優(yōu)值,太小會(huì)使下降速度過慢。下圖中的n為學(xué)習(xí)率。)

1.4 Softmax

用于多分類神經(jīng)網(wǎng)絡(luò)輸出,公式如下:


公式的圖解

就是如果某一個(gè) zj 大過其他 z, 那這個(gè)映射的分量就逼近于 1,其他就逼近于 0,主要應(yīng)用就是多分類。
為什么要取指數(shù),第一個(gè)原因是要模擬 max 的行為,所以要讓大的更大。
第二個(gè)原因是需要一個(gè)可導(dǎo)的函數(shù)。
(假如說輸入都比較大,會(huì)使得區(qū)分度更大,假如輸入都比較小,可能會(huì)使得更平均?)

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

神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)
  • 輸入層(Input layer):眾多神經(jīng)元(Neuron)接受大量非線形輸入訊息。輸入的訊息稱為輸入向量。
  • 輸出層(Output layer):訊息在神經(jīng)元鏈接中傳輸、分析、權(quán)衡,形成輸出結(jié)果。輸出的訊息稱為輸出向量。
  • 隱藏層(Hidden layer):簡稱“隱層”,是輸入層和輸出層之間眾多神經(jīng)元和鏈接組成的各個(gè)層面。如果有多個(gè)隱藏層,則意味著多個(gè)激活函數(shù)。

3. CNN之卷積計(jì)算層

未知圖案的局部和標(biāo)準(zhǔn)X圖案的局部一個(gè)一個(gè)比對時(shí)的計(jì)算過程,便是卷積操作。卷積計(jì)算結(jié)果為1表示匹配,否則不匹配。


對圖像(不同的數(shù)據(jù)窗口數(shù)據(jù))和濾波矩陣(一組固定的權(quán)重:因?yàn)槊總€(gè)神經(jīng)元的多個(gè)權(quán)重固定,所以又可以看做一個(gè)恒定的濾波器filter)做內(nèi)積(逐個(gè)元素相乘再求和)的操作就是所謂的『卷積』操作,也是卷積神經(jīng)網(wǎng)絡(luò)的名字來源。
非嚴(yán)格意義上來講,下圖中紅框框起來的部分便可以理解為一個(gè)濾波器,即帶著一組固定權(quán)重的神經(jīng)元。多個(gè)濾波器疊加便成了卷積層。


相當(dāng)于如果想提取圖像的不同特征,則用不同的濾波器filter。

  • 權(quán)值共享:數(shù)據(jù)窗口滑動(dòng),導(dǎo)致輸入在變化,但中間濾波器Filter w0的權(quán)重(即每個(gè)神經(jīng)元連接數(shù)據(jù)窗口的權(quán)重)是固定不變的,這個(gè)權(quán)重不變即所謂的CNN中的參數(shù)(權(quán)重)共享機(jī)制。

4. CNN之池化層

池化,簡言之,即取區(qū)域平均或最大,如下圖所示:

參考文章:
CNN筆記:通俗理解卷積神經(jīng)網(wǎng)絡(luò)
常用激活函數(shù)比較
神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)與神經(jīng)元激勵(lì)函數(shù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容