深度學習(一) BP神經網絡


怎樣理解非線性變換和多層網絡后的線性可分,神經網絡的學習就是學習如何利用矩陣的線性變換加激活函數的非線性變換

線性可分:

  • 一維情景:以分類為例,當要分類正數、負數、零,三類的時候,一維空間的直線可以找到兩個超平面(比當前空間低一維的子空間。當前空間是直線的話,超平面就是點)分割這三類。但面對像分類奇數和偶數無法找到可以區分它們的點的時候,我們借助 x % 2(除2取余)的轉變,把x變換到另一個空間下來比較0和非0,從而分割奇偶數。

  •  

  • 二維情景:平面的四個象限也是線性可分。但下圖的紅藍兩條線就無法找到一超平面去分割。

    神經網絡的解決方法依舊是轉換到另外一個空間下,用的是所說的5種空間變換操作。比如下圖就是經過放大、平移、旋轉、扭曲原二維空間后,在三維空間下就可以成功找到一個超平面分割紅藍兩線 (同SVM的思路一樣)。

  • 上面是一層神經網絡可以做到的空間變化。若把y⃗ y→ 當做新的輸入再次用這5種操作進行第二遍空間變換的話,網絡也就變為了二層。最終輸出是y⃗ =a2(W2(a1(W1x⃗ +b1))+b2)y→=a2(W2⋅(a1(W1⋅x→+b1))+b2)。設想當網絡擁有很多層時,對原始輸入空間的“扭曲力”會大幅增加,如下圖,最終我們可以輕松找到一個超平面分割空間。

  • 當然也有如下圖失敗的時候,關鍵在於“如何扭曲空間”。所謂監督學習就是給予神經網絡網絡大量的訓練例子,讓網絡從訓練例子中學會如何變換空間。每一層的權重WW就控制着如何變換空間,我們最終需要的也就是訓練好的神經網絡的所有層的權重矩陣。。這里有非常棒的可視化空間變換demo,一定要打開嘗試並感受這種扭曲過程。 更多內容請看Neural Networks, Manifolds, and Topology
    • 線性可分視角:神經網絡的學習就是學習如何利用矩陣的線性變換加激活函數的非線性變換,將原始輸入空間投向線性可分/稀疏的空間去分類/回歸。

      增加節點數:增加維度,即增加線性轉換能力。

      增加層數:增加激活函數的次數,即增加非線性轉換次數。

數學表達式
 
上面數學思維角度學習了神經網絡的原理。下面推到數學表達式
神經網絡如下圖:
因為每一個節點都是一個神經元。有  Y=a*(W*X+b)   a 是激活函數。w是權值,b是偏移量。
對於a4有如下
 
 
y1有如下的表達式
 
所以有如下表達式:
 
然后:令
代入上面的的方程得到
 
 再帶入帶入
得到y1 = f(w8*a8)
其中w8= [w84 w85 w86 w87 w8b]
a = [a4,a5,a6,a7,1]
所以對於多次網絡
 
可以寫成
 
 
訓練參數
 因為所有的參數都不能通過求解獲得,而是根據不同的輸入和輸出的比較訓練出來的,所以都是監督學習。
 
結論:
  (這里在下節會介紹推理過程,為什么要這樣調整權值呢?因為原式為:Wji(新)<-Wji(舊)-(步長*(誤差函數對權值的偏導數)))
 
過程如圖:注意里面的變量符號:&
從輸出層到&有如下表達式:推倒過程下一個節分析
 
其中,&是節i的誤差項, 是節點的輸出值,是樣本對應於節點的目標值。舉個例子,根據上圖,對於輸出層節點8來說,它的輸出值是,而樣本的目標值是,帶入上面的公式得到節點8的誤差項應該是:
 
同時對於隱含層有
 
所以有
 將③和④合並,然后求出w有
 
所以有:
 有
 
這個過程叫做BP過程,下一個章節重點分析過程的推倒和原理。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM