01.31 人工智能之--神經網絡沒那麼神祕,一文看懂

神經網絡與反向傳播(注重思想,如非必要儘量不提數學公式)

人工智能之--神經網絡沒那麼神秘,一文看懂


基於神經網絡的學習算法是一種樸素的生物仿生學思想。與最早的飛機設計一樣,試圖模擬鳥類的飛行動作來發明飛行器。神經網絡算法試圖模擬人腦的運作模式。神經元是神經系統的最小單位,它是一種特殊的細胞如下圖,樹突可以看作是神經原細胞的輸入,而軸突則可以視為神經元細胞的輸出。軸突會連接到其他神經元細胞的樹突從而形成了了一個非常複雜的網絡。這裡提示了一個很深刻的哲學思想,簡單元素的的簡單連接,可以實現非常複雜功能。所有複雜的神經網絡的基本原始模型源自於此。如何用數學模型來表達呢?我們可以用輸入向量的分量代表樹突,權重代表樹突連接的強度,所有輸入與強度和達到一個閾值則會激活軸突向下傳遞一個型號,所以可以用一個閾值函數來表達軸突傳遞過程。這個閾值函數就是大家耳熟能詳的sigmod函數,為什麼是這個函數呢?因為它起到了一個階梯函數的作用,同時保持了連續性。sigmod的函數有很多形式,用1/1+e(-x)形式,完全是因為後續計算的便利性。偉大的發現很多都是科學家在家孜孜不倦猜出來的,所以愛因斯坦說他發現了相對論不是因為他有多偉大,而是他與問題待的夠久,有了靈感。


人工智能之--神經網絡沒那麼神秘,一文看懂

圖1 神經元結構示意圖

神經網絡數學模型搭建好了以後,如何求其連接的權重(參數)變成了非常難的問題,直到反向傳播算法被應用到這裡面。用兩個神經元的連接可以示意最簡單的神經網絡,包括w1,w2兩個參數的訓練。基本思想是求理想輸出與實際訓練數據的差(性能函數)作為優化對象,指示參數調整的方向(也就是我們常說的梯度方向),梯度方向也就是性能函數與w1,w2兩個參數的偏導數。反向傳播算同構鏈式求導法則的推導,並結婚了simod函數的特徵使得每層神經元的參數只與上層輸入、本層的輸出相關,從而使計算由全局計算變成了局部計算,從而使得逐層訓練參數成為可能。

神經網絡看上去很棒,但應用起來有幾個地方需要注意:1、神經網絡本質上是函數擬合,無法證明它比其他方法更好,所以不是神藥應用需冷靜;2、神經網絡的輸入需要預處理體現問題的本質,這個環節還沒有處理太好;3、神經網絡會出現過擬合現象,也就對訓練樣本擬合的很好,但對測試樣本效果不佳;4、參數的步長選擇更多的是經驗性的,如果步長過長則會產生正反饋引起結果震盪,這個步驟會比較花時間去調參。


分享到:


相關文章: