深度學習之前饋神經(jīng)網(wǎng)絡(luò)

神經(jīng)網(wǎng)絡(luò)起源于生物神經(jīng)元,學過生物的應(yīng)該都知道生物神經(jīng)元主要由細胞體、樹突、軸突和突觸4個部分構(gòu)成。受生物神經(jīng)元的啟發(fā),有了人工神經(jīng)元模型,稱之為M-P模型。

AN是神經(jīng)網(wǎng)絡(luò)中最小的信息處理單元,AN對數(shù)據(jù)的處理分為兩個階段:第一階段為接收其他神經(jīng)元傳遞過來的輸入信號,然后對這些輸入信號與相應(yīng)的權(quán)重進行加權(quán)求和傳遞給下一階段,這一階段稱為預(yù)激活階段:

h=b+(w*x)

第二階段是把預(yù)激活的加權(quán)結(jié)果傳遞給激活函數(shù),經(jīng)過激活函數(shù)的處理后,預(yù)激活的數(shù)值被壓縮到一個范圍區(qū)間內(nèi),數(shù)值的大小將決定神經(jīng)元到底是處于活躍狀態(tài)還是抑制狀態(tài),最后將輸出結(jié)果傳遞給下一層的神經(jīng)元:

a=f(h) 其中f是激活函數(shù)。

單層感知機

單層感知機是最早被提出的最簡單的神經(jīng)網(wǎng)絡(luò)模型,它僅有輸入層和輸出層構(gòu)成。單層感知機首先在輸入層接受輸入數(shù)據(jù),把輸入數(shù)據(jù)與相應(yīng)權(quán)重參數(shù)累加。然后把累加結(jié)果輸入到激活函數(shù)中,單層感知機的輸出層可以采用Logistic或者softmax函數(shù)作為最后的結(jié)果輸出。

下面分析感知機的工作原理:單層感知機本質(zhì)上是在高維空間中,構(gòu)造出合理的邊界超平面,把不同類別的數(shù)據(jù)集分離,因此,對于線性可分,或者近似線性可分的數(shù)據(jù)集有很好的效果,但對于線性不可分數(shù)據(jù)集,由于沒有一個超平面來分離數(shù)據(jù),因此效果不理想,也導(dǎo)致單層感知機的學習能力非常有限,它甚至不能解決簡單的異或問題。

多層感知機

由于單層感知機對于非線性分類數(shù)據(jù)的效果不太理想,所以在輸入層和輸出層引入的隱藏層,讓網(wǎng)絡(luò)又了更強大的學習能力。對于含有一個隱藏層的前饋神經(jīng)網(wǎng)絡(luò),如果隱藏層可以由任意多的神經(jīng)元構(gòu)成,神經(jīng)網(wǎng)絡(luò)能夠逼近實數(shù)范圍內(nèi)的任意連續(xù)函數(shù)。對于分類問題,隱藏層的作用就是把線性不可分的數(shù)據(jù),通過線性變換(預(yù)激活階段)和非線性的激活(激活階段)的操作,使得數(shù)據(jù)在輸出層變得線性可分。

從理論上來說,神經(jīng)網(wǎng)絡(luò)中包含的隱藏層越深,隱藏層包含的神經(jīng)元越多,它能提取的特征也就越豐富,也就具備更強大的學習能力,但實際效果卻不是這樣,隨著網(wǎng)絡(luò)變得越來越深,神經(jīng)網(wǎng)絡(luò)的性能在達到一個極值后,很快就停止提升,甚至出現(xiàn)下降的情況。

激活函數(shù)

激活函數(shù)是神經(jīng)網(wǎng)絡(luò)設(shè)計的一個核心單元,在神經(jīng)網(wǎng)絡(luò)中,把處在活躍狀態(tài)的神經(jīng)元稱為激活狀態(tài),處在非活躍狀態(tài)的神經(jīng)元稱為抑制態(tài),激活函數(shù)賦予了神經(jīng)元自我學習和適應(yīng)的能力。

激活函數(shù)的作用是為了在神經(jīng)網(wǎng)絡(luò)中引入非線性學習和處理能力,單層感知機之所以學習能力非常有限,是因為模型只能解決線性可分問題。而多層引入隱藏層,使得模型能夠處理非線性數(shù)據(jù),從而有效提高模型的學習能力,但是注意的是,模型提升的能力,并不是因為添加了隱藏層,而是在于隱藏層神經(jīng)元中引入了激活函數(shù)。因為當隱藏層激活函數(shù)為線性函數(shù)時,多層感知機等價于單層感知機。

常用的激活函數(shù)(階躍函數(shù)、sigmoid、tanh和ReLU)

階躍函數(shù):是最理想的激活函數(shù),它直接將輸入數(shù)據(jù)映射為0或1,1代表當前神經(jīng)元處于激活狀態(tài),但它具有不連續(xù)、不光滑、不可導(dǎo)的特點,所以在實際應(yīng)用中,通常不會采用它作為激活函數(shù)。

sigmoid:把輸入數(shù)據(jù)壓縮到[0,1]范圍內(nèi),處在中間部分的數(shù)據(jù)變化大,成為活躍區(qū),處于兩側(cè)的微抑制的狀態(tài),它的不足主要為:第一:利用反向傳播來訓練神經(jīng)網(wǎng)絡(luò)時,會產(chǎn)生梯度消失問題,導(dǎo)致訓練深層網(wǎng)絡(luò)的效果不理想。第二:經(jīng)過sigmoid處理后的輸出數(shù)據(jù)是一個非負值。

tanh:把數(shù)值區(qū)間壓縮到了[-1,1]的范圍內(nèi),可以把它看成對sigmoid函數(shù)進行了按比例的伸縮,與sigmoid函數(shù)相比,它具有更穩(wěn)定的梯度,此外,tanh函數(shù)的導(dǎo)數(shù)區(qū)間為[0,1],比sigmoid函數(shù)的導(dǎo)數(shù)區(qū)間要大,在反向傳播的過程中,衰減速度要比sigmoid函數(shù)慢。但由于tanh函數(shù)的導(dǎo)數(shù)小于1,因此利用反向傳播來最優(yōu)化神經(jīng)網(wǎng)絡(luò)模型時,同樣無法避免梯度消失問題。

ReLU:單側(cè)抑制:當輸入小于0時,神經(jīng)元處于抑制態(tài);相對寬闊的興奮邊界:只要輸入大于0,神經(jīng)元都會處于激活態(tài);稀疏激活性:ReLU直接把抑制態(tài)的神經(jīng)元置為0,使得這些神經(jīng)元不再參與到后續(xù)計算過程中,導(dǎo)致他在實際應(yīng)用中,收斂速度要遠遠快于其他激活函數(shù)。但是它的處理方法也帶來了一些缺點,最主要的缺點是導(dǎo)致神經(jīng)網(wǎng)絡(luò)的訓練在后期變得脆弱,主要是因為ReLU對抑制態(tài)的處理過于極端,導(dǎo)致在后續(xù)的訓練中,抑制態(tài)神經(jīng)元經(jīng)不會參與后面運算。Leaky-ReLU是ReLU的改進版,它的主要改變是在抑制側(cè),把原來的直接置為0重新置為一個很小的實數(shù)a,這個改動能有效緩解稀疏性導(dǎo)致的訓練脆弱問題。

后續(xù)會詳細介紹上文提到的反向傳播和梯度消失的內(nèi)容。

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

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

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