学习笔记----周志华《机器学习》第五章(神经网络)(一)
? ? 周志華的《機器學習》算作一本入門的寶書。本文是對周志華的機器學習第五章神經網絡的學習筆記。在第五章主要涉及的內容:神經網絡、常見激活函數、感知機、多層前饋神經網絡 、反向傳播算法(BP算法)、全局最小和局部極小、其他神經網絡(RBF、ART、SOM等網絡)、遞歸神經網絡(如Boltzmann機、Elman網絡)。如果哪里有不對的地方,請不吝指點!
一、什么是神經網絡?
? ? ?關于神經網絡的定義有很多,本文對于神經網絡的定義:神經網絡是由具有適應性的簡單單元(實際上是神經元)組成的廣泛并且互聯的網絡,它的組織能夠模擬生物神經系統對真實世界物體所作出的交互反應。
? ? 神經網絡的基本模型為神經元模型(unit或neuron)。我們基本上都可以想到的是,當神經元刺激后,就會相它相鄰的神經元發送“信號”,進而激活其他神經元,當其他神經元的點位超過一定值(閾值),它就會向其他神經元繼續發送化學物質了。這是其中一個激活過程。下面是常見的M-P神經元模型:
? ? M-P神經元模型的工作流程大致描述如下:神經元接收到來自其他n個神經元傳過來的輸入,在通過帶權重的連接,最后這個總輸入就會和該神經元的閾值比較,看所得到的“刺激”能否讓該神經元繼續傳遞下去。最后通過激活函數處理輸出。
常見的激活函數又包含階躍函數、sigmoid函數、softmax函數、ReLU函數等。
(1)階躍函數
? ? ? ? ?階躍函數的定義:值呈階梯式變化,階躍函數以0為界限,輸出從 0 切換為?1(或從 1切換?0)。
(2)sigmoid函數
? ? ? ? ?sigmoid函數是一種很高效的激活函數。它的函數圖形是一條平滑的曲線,輸出sigmoid(x)隨著輸入x發生連續性的變化。而階躍函數是發生突變式的變化。
(3)softmax函數
? ? ? ? ?softmax函數主要用于分類問題。主要公示為:。
? ? ? ? 該函數的分子是輸入信號的指數函數,分母是所有輸入信號的指數函數的和。 在這篇blog中,用到了softmax作正則化的處理,讓最終的輸出為概率,也就是說可以生成百分數的結果,這樣做不僅可以找到最大概率的分類,而且可以知道各個分類計算的概率值。
(4)ReLU函數
? ? ? ? ?其實這個函數我了解的不是很多,在一篇關于兩層神經網絡的知乎文章中有了解過一點。在神經網絡發展的歷史上,sigmoid函數很早就開始被使用了,而最近則主要使用ReLU(Rectified Linear Unit)函數。這里簡單解釋一下。ReLU函數,當輸入為負值時,輸出為0,當輸入為非負,輸出等于輸入。
? ? 看到這里我們可以更直觀、更簡單的描述神經網絡:神經網絡是許多神經元按照某一結構層次組合起來的。? ??
二、感知機(perceptron)和多層前饋神經網絡
? ? ?感知機是由兩層神經元組成(兩個)。輸入層接收外界輸入信號給輸出層,輸出層是M-P神經元。由此可以知道感知機只擁有一層功能神經元,它只有輸出層可以進行激活函數的處理,這個處理能力對我們現實的問題的處理是遠遠不夠的。感知機能處理與、或、非問題。兩層感知機能處理異或問題。兩層感知機包含輸入層、輸出層、隱藏層。
? ? 多層前饋神經網絡:不存在跨層連接,但是同層間可以多條連接,每層神經元與下一層神經元實現全互連。注意:這里的前饋不代表信號不能往回傳!而是指網絡拓撲結構上不存在環或回路。注意:只要包含隱層就是多層網絡,隱層中包含功能神經元!!
? ?所以神經元到底學的什么??神經網絡的學習過程,是根據訓練數據來調整神經元之間的“連接權”以及每個功能神經元的閾值。
三、反向傳播算法(BP算法)
? ? BP算法是一種迭代學習算法,它主要應用于多層前饋神經網絡和其他類型的神經網絡。BP算法給予梯度下降側列,以目標的負梯度方向對參數進行調整,BP算法的最終目標是最小化訓練集D上的累積誤差。它的算法過程如下。
? ?標準的BP算法每次針對一個訓練樣例更新連接權和閾值,更新參數很頻繁,這樣可能將這個更新的效果“抵消”。除了上述“標準”BP算法外,還有累計BP算法。累計BP算法:直接針對累積誤差最小化,它讀取整個訓練集D,讀完一遍后才對參數更新,更新的頻次要少得多。但是累計BP算法對于訓練集非常大時,當累計誤差下降到一定程度后,進一步下降會很緩慢很緩慢,這是一個會舍棄累計BP算法的原因。
? BP算法會出現一個缺點:過擬合。解決它的策略有兩種:(1)早停;(2)正則化。
四、全局最小和局部極小
? ? 有高等數學的基礎,實際上我們可以很直觀的理解什么是全局最小?什么是局部極小?狹義來講全局最小一定是局部極小,反之不成立。我們在實際的算法操作中,是想要直接遇到全局最小,而不是局部最小。所以提出了很多可能的能跳出局部極小的方案。(雖然實際上,可能跳出的是全局最小)
?(1)從多個不同的初始點開始搜索,這樣可能會陷入不同的局部極小,然后選最接近全局最小的。
?(2)模擬退火技術。在每一步都以一定的概率接受比當前解更差的結果,從而有助于跳出。這樣在每次迭代過程中,我接受比當前更差的概率會減小,這樣可以保證算法穩定。
?(3)隨機梯度下降法。加入了隨機因素,這樣即便陷入了局部極小,計算出來的梯度也不為0,這樣就還有機會繼續搜索。
? ??除此之外還有遺傳算法,也常用來訓練神經網絡。
雖然在書上,第五章只有短短三十頁左右。一篇篇幅也是很難完整記錄下來的,今天就寫到這里吧。
總結
以上是生活随笔為你收集整理的学习笔记----周志华《机器学习》第五章(神经网络)(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 到底什么是P问题,NP问题,NPC问题,
- 下一篇: 学习笔记----周志华《机器学习》第五章