一、激活函數
激活函數也稱為響應函數,用於處理神經元的輸出,理想的激活函數如階躍函數,Sigmoid函數也常常作為激活函數使用。
在階躍函數中,1表示神經元處於興奮狀態,0表示神經元處於抑制狀態。
二、感知機
感知機是兩層神經元組成的神經網絡,感知機的權重調整方式如下所示:
按照正常思路wi+△wi是正常y的取值,wi是y'的取值,所以兩者做差,增減性應當同(y-y')xi一致。參數η是一個取值區間在(0,1)的任意數,稱為學習率。如果預測正確,感知機不發生變化,否則會根據錯誤的程度進行調整。
不妨這樣假設一下,預測值不准確,說明Δw有偏差,無理x正負與否,w的變化應當和(y-y')xi一致,分情況討論一下即可,x為負數,當預測值增加的時候,權值應當也增加,用來降低預測值,當預測值減少的時候,權值應當也減少,用來提高預測值;x為正數,當預測值增加的時候,權值應當減少,用來降低預測值,反之亦然。(y-y')是出現的誤差,負數對應下調,正數對應上調,乘上基數就是調整情況,因為基數的正負不影響調整情況,畢竟負數上調需要減少w的值。
感知機只有輸出層神經元進行激活函數處理,即只擁有一層功能的神經元,其學習能力可以說是非常有限了。如果對於兩參數據,他們是線性可分的,那么感知機的學習過程會逐步收斂,但是對於線性不可分的問題,學習過程將會產生震盪,不斷地左右進行搖擺,而無法恆定在一個可靠地線性准則中。
三、多層網絡
使用多層感知機就能夠解決線性不可分的問題,輸出層和輸入層之間的成為隱層/隱含層,它和輸出層一樣都是擁有激活函數的功能神經元。
神經元之間不存在同層連接,也不存在跨層連接,這種神經網絡結構稱為多層前饋神經網絡。換言之,神經網絡的訓練重點就是鏈接權值和閾值當中。
四、誤差逆傳播算法
誤差逆傳播算法換言之BP(BackPropagation)算法,BP算法不僅可以用於多層前饋神經網絡,還可以用於其他方面,但是單單提起BP算法,訓練的自然是多層前饋神經網絡。
整理一下對於一個單隱層的BP算法中,我們知道的僅僅是各層點的個數和輸入層的值,兩組權值還有兩組閾值均需要推算,在這里,先初略的統計所有的已知條件:
1. a個輸入層神經元個數、b個隱層神經元個數、c個輸出層神經元個數
2. a到b的權值wab,b到c的權值vbc
3. b上的閾值pb,c上的閾值qc
那么可以得到第i個隱層神經元的輸入為和第j個輸出神經元的輸出為:
神經網絡給的輸出為f(Bc-qc),輸出層-閾值作為Sigmoid函數的輸入點,則均方誤差應當為:
BP算法是基於梯度下降策略,以目標的負梯度方向對參數進行調整,調整公式如下,那么問題來了,為什么是對目標的負梯度進行調整?
根據公式Bc對vbc求導就等價於yb,至於其他的部分,因為sigmoid存在f(x)求導=f(x)(1-f(x)),可以將前半部分化簡並得到目標值的調整情況:
簡言之,按照順序來進行確立的話,步驟如下:
1. 確定誤差函數,誤差函數為了抹去常數,要在前面加上1/2
2. 根據梯度下降法確定如何調整參數
3. 通過確定影響順序,確定求導連乘式子並化簡
4. 在化簡過程中因為激活函數的特征性可以簡單進行化簡f(x)=f(x)(1-f(x))
至於理解為逆向傳播是因為先得到后續內容,才可以更新前續內容。
通過上面一系列的步驟可以不難看出,標准的BP算法是針對每一個樣本進行調整網絡,最終達到最小化訓練集上的累積誤差。換句話講,一個樣本的進入就要調整一次閾值和權值,每次更新的情況都是根據單次誤差來統計的,導致出現如下情況:權值閾值更新太過於頻繁,導致對於不同樣例的更新效果呈現“抵消”現象。
標准BP算法--》累積BP算法(累積誤差逆傳播算法):直接針對累積誤差進行更新,在讀取全部訓練集之后更新權值和閾值,能夠有效的降低更新頻率。當然可以配合使用兩種方法,因為累積誤差下降到一定程度后,進一步下降會特別的緩慢,對數據量特別大的訓練集而言,后續使用標准BP算法能夠更有效的得到最優解。
神經網絡優秀於其他機器學習算法的主要原因是,只要該神經網絡擁有足夠多的隱層,多層前饋神經網絡就能逼近任意復雜度的連續函數。但是這也會造成一個很嚴肅的問題:過擬合
因為太過於強大,過擬合在所難免,訓練誤差降低,但是測試誤差攀升。解決方法如下:
1. 早停:將訓練集再次進行分割,分割成真.訓練集和驗證集,驗證集合一旦出現問題,那么就停止訓練,同時返回具有最小驗證集誤差的連接權值和閾值。
2. 正則化:誤差函數中添加用於影響模型復雜度的因子(例如:連接權值和閾值的平方和),同時對經驗誤差和網絡復雜度同時進行分析,交叉驗證法即可進行估計判斷。
五、局部最小問題
類似於極值和最值的問題一樣,我們分析二維函數的時候,可能會出現在某個鄰域區間內,該點的值相對最小,對於神經網絡訓練集的誤差和也一樣,它分為全局最小值和局部最小值。
負梯度方向是根據函數值下降最快的方向來找尋最優解,當誤差函數在下降梯度值為0的情況下,說明找到局部最小,更新變量將成為0(也就是無法更新),這也意味着迭代終止,但是可能對於這個函數他有很多個局部最小值點,不能保證他一定在全劇最小的情況下,也就是我們常說的參數尋優陷入局部極小。
1. 多進行:同時使用多組初始值來同時調整網絡,選擇最好的那個就好了。
2. 模擬退火:每一次,允許一定概率接受比自己差的結果,當然,這個概率需要逐步調整(降低),用於保證最后結果趨於穩定。
3. 隨機梯度下降:加入隨機影響,即使陷入局部極小值的全套,也不能為0,也可以有機會跳出。
4. 遺傳算法:遺傳算法也可以喲,之前用到過,防止其陷入局部最小,不斷的生成子代。
六、常見的其他神經網絡
1. RBF(Radial Basis Function)徑向基函數——網絡
網絡結構:單隱層神經網絡
激活函數:徑向基函數(徑向基使用高斯徑向基函數)
網絡函數:徑向基函數的確定主要根據輸入和隱層神經元所對應的中心,中心確定方法可以是隨機采樣,聚類等。通過BP算法計算w和β
在高斯函數中,σ稱為徑向基函數的擴展常數,它反應了函數圖像的寬度,σ越小,寬度越窄,函數越具有選擇性。
既然提到激活函數就好好搞一下:
a. sigmoid函數——總所周知 1/(1+e^-x)
優點:能夠把輸入的連續實值壓縮到0到1之間;
缺點:
(1)容易飽和,當輸入非常大或非常小的時候,神經元的梯度就接近0了,這使得在反向傳播算法中反向傳播接近於0的梯度,導致最終權重基本沒什么更新;
(2)Sigmoid的輸出不是0均值的,這會導致后層的神經元的輸入是非0均值的信號,這會對梯度產生影響,假設后層神經元的輸入都為正(e.g. x>0elementwise in f=wTx+b),那么對w求局部梯度則都為正,這樣在反向傳播的過程中w要么都往正方向更新,要么都往負方向更新,導致有一種捆綁的效果,使得收斂緩慢。
解決方法:注意參數的初始值設置來避免飽和情況。
b. tanh函數——sigmoid變形 2*sigmoid(2*x)-1
優點:0均值,能夠壓縮數據到-1到1之間;
缺點:同Sigmoid缺點第二個,梯度飽和;
c. ReLU函數——線性函數 max(0,x)
優點:
(1)因為是線性,而且梯度不會飽和,所以收斂速度會比Sigmoid/tanh快很多;
(2)相比於Sigmoid/tanh需要計算指數等,計算復雜度高,ReLU只需要一個閾值就可以得到激活值;
缺點:訓練的時候很脆弱,有可能導致神經元壞死。舉個例子:由於ReLU在x<0時梯度為0,這樣就導致負的梯度在這個ReLU被置零,而且這個神經元有可能再也不會被任何數據激活。如果這個情況發生了,那么這個神經元之后的梯度就永遠是0了,也就是ReLU神經元壞死了,不再對任何數據有所響應。實際操作中,如果你的learning rate 很大,那么很有可能你網絡中的40%的神經元都壞死了。
解決方法:設置合適的較小的learning rate.
d. Softplus函數——ReLU平滑版本 log(1+e^x)
一般來說,在分類問題上建議首先嘗試 ReLU,其次ELU,這是兩類不引入額外參數的激活函數。然后可考慮使用具備學習能力的PReLU和MPELU,並使用正則化技術,例如應該考慮在網絡中增加Batch Normalization層。
通常來說,很少會把各種激活函數串起來在一個網絡中使用的。
2. ART(Adaptive Resonance Theory)自適應諧振理論——網絡
網絡結構:比較層+識別層(雙層)
原理:競爭型無監督學習網絡結構,輸出神經元相互競爭(勝者通吃)。比較層+識別層+識別閾值+重置模塊。在識別層每個神經元對應一個模式類,神經元數目可以在訓練過程中動態增加,換句話講,就是增加新的模式類。
競爭方式:計算輸入向量和各個識別層中神經元所對應模式類的代表向量的距離,距離最小的就獲勝。
神經元生成:獲勝神經元會告訴其他神經元,這個人是我的,你們都別搶,抑制其他神經元激活。
輸入向量&獲勝神經元對應模式類的代表向量相似度大於識別閾值——歸類為代表向量的所屬類別,權值更新指示相似輸入能夠獲得更多的勝出幾率。
輸入向量&代表向量相似度不大於識別閾值——重置模塊中生成新的神經元+對應模式+代表向量(就是這個輸入向量喲)。
閾值定義:識別閾值的定義直接影響到無監督學習的分類情況,識別閾值較高,就將樣本分的比較詳細,反之則產生較少、比較粗略的分類情況。
競爭學習:競爭學習中一個很重要的點是“可塑性-穩定性窘境”,可塑性指的是神經網絡需要有學習新知識的能力;穩定性指的是神經網絡學習新東西要保留舊東西的記憶。換句話講,就是增量學習or在線學習。
3. SOM(Self-Organizing Map)自映射組織——網絡
網絡結構:輸入+輸出(雙層)
原理:競爭型無監督學習網絡結構,將高維輸入數據映射到低維空間,同時保持輸入數據在高維空間的拓撲結構。換句話講,高維空間中相似的樣本點映射到網絡輸出層中的鄰近神經元。
競爭方式:網絡接受到輸入向量后,每個輸出神經元會計算該樣本和自身所帶權向量之間的距離,距離最小的就獲勝。
權向量調整:和ART中調整每個神經元的閾值一樣,SOM中的每個神經元都有權值,調整最佳匹配單元及其臨近神經元的權向量(使權向量和當前輸入樣本距離縮小),迭代進行,直到收斂。(每個輸出神經元都有自己的鄰近神經元,調整就好了,嘖嘖)
4. 沒縮寫(Cascade-Correlation)級聯相關——網絡
網絡結構:單隱層神經網絡