神經網絡入門必備知識

人工神經網絡(簡稱:神經網絡)的思路是利用計算模擬生物神經網絡的信息處理的能力,來進行數據分析。它是人工智能研究的範疇,更是屬於機器學習算法領域。是一種分析數據的模型。
這裏寫圖片描述


我們先來看一下生物神經元的構造:
這裏寫圖片描述
神經元主要由中心的細胞核、多個樹突和一個軸突組成:
1、通過樹突的端口突觸接受來自外界的信號輸入;
2、細胞覈對輸入的信號進行處理;
3、軸突將細胞核處理後的信息傳遞到神經末梢並由末端端口傳給下一層的多個神經元。
這樣單個神經元就完成了信號處理的過程。


那麼神經網絡是怎麼模擬神經元的信號處理來分析數據的呢?
從單層感知器說起
最早的神經網絡–單層感知器是由1957年Rosenblatt提出來的。思路是:利用數據計算來模擬單個生物神經元的信息處理的能力。當時主要用於模式識別和二分類過程。
計算過程:
1、通過加權求和求得輸入的數據總和,每個輸入會有一個影響權重w1,w2,w3,…wn。利用赫布理論通過不斷刺激調整權重。
2、用閾值函數對總和進行判斷,大於閾值的輸出爲1,小於閾值的輸出爲0.
計算過程非常像信號中的信號感知,信號強就輸出促進的信號,信號弱的輸出抑制的信號或者不輸出。
這裏寫圖片描述
單層感知器的結構很簡單,能模擬任何線性的函數,能對任何線性二分類可分的情況進行處理。但是很難處理非線性的數據情況。

多層神經網絡
後來基於單層感知器的計算原理,多層感知器甚至各種神經網絡被提出來了。神經網絡是由多個神經元相互連接,通過神經元之間的刺激不斷調整之間的節點關係(權重)的自適應系統。
這裏寫圖片描述
神經網絡是一個有向循環圖,由輸入層,中間層(可以沒有,也可以多層),輸出層組成。每層的神經元逐層跟下一層的神經元進行連接,每一個的神經元的輸出由輸入,連接權重以及激活函數決定。
輸入層:特殊層,沒有信息處理。
中間層:每個神經元對輸入進行加權求和,以及激活函數的處理得到中間輸出。多箇中間層相當於從不同角度和維度對特徵進行提取和處理的功能。
輸出層:每個神經元對輸入進行加權求和,以及激活函數的處理得到最後的預測值。


每一層之間的連接會有非常多的權重,這些權重是怎麼進行訓練和更新的呢?
這就要講到神經網絡的訓練過程了
正向傳播和反向訓練
比如我現在輸入一隻貓的各種特徵,通過正向逐層計算輸出預測值,假如預測出來一隻貓,或者一隻狗。這就完成了一次正向預測的過程;不管是一隻貓還是一隻狗,神經網絡都會這次訓練都會記錄下來,並且計算偏差,也叫做損失函數,通過梯度下降法找到損失下降的最快的方向更新權重。這就是反向訓練的過程。
以下是單個權重的損失函數圖,通過通過梯度下降的方法找到每個點的切線方向進行權重更新的過程,當到達低點(梯度爲0)時權重爲最優權重且不再更新。
這裏寫圖片描述
當有多個極小值點時,會陷入局部最優
梯度下降法只能找到局部最優點,也就是鞍點。當有多個鞍點時,找到的最優點並不是全局最優,而是局部最優。
這裏寫圖片描述
解決辦法:
1、多次隨機初始化權重;
2、隨機梯度下降可以跳出局部最優。

總結:神經網絡通過不斷的正向傳播和反饋訓練來調整連接權重得到最優的參數,當所有的權重定下來了,神經網絡模型就定下來了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章