
一、神經網絡模型
神經網絡模型的靈感來源於生物體內的神經網絡,大量的神經元(可以理解為變量)之間相互聯繫,共同協作處理問題。在模型中,同樣存在諸多神經元,他們之間相互聯繫,共同決定了輸出的結果。通過不斷調整輸入神經元的權重,達到目標結果,這也就是訓練的過程
二、BP神經網絡
BP的全稱是Backpropagation,譯為反向傳播,是目前應用最為廣泛的神經網絡模型之一。神經網絡的訓練目的是為了獲得一組權重,使得輸入量帶入模型得出的輸出量與目標變量誤差最小,若誤差值不符合條件,則返回將權重增加或減小,再次帶入模型驗證,這樣的一個反向修改帶入模型的過程就是BP神經網絡的訓練過程
如果輸入神經元與輸出神經元是線性關係,可以直接進行線性回歸,若非線性關係,就可以利用BP神經網絡。BP神經網絡特別適用於存在眾多變量的多層非線性網絡,給出的結果既可以是定性的(如男/女)也可以是定量的(如3/5/7)
三、過程
神經網絡結構圖舉例:
該結構包括1個隱含層,輸入層,隱含層和輸出層分別包含3個,2個和2個神經元

首先確定隱含層數量和隱含層神經元個數分別選擇輸入層至隱含層,隱含層至輸出層的傳遞函數確定初始權重,包括輸入層神經元和隱含層神經元的權重運行模型,得到輸出值,計算輸出值與目標輸出的誤差,如誤差大於預先設定的參數,則返回修改權重,直到誤差降到可以接受的範圍
Note 1:
隱含層太多和層中神經元太多,會產生過度擬合,即模型對於訓練集內的數據測試效果極好,誤差極小,但訓練集外的數據,效果極差,誤差極大
隱含層太少和層中神經元太少,則會在訓練時就產生較大誤差
當前並沒有標準的確定方法,但同常會設定一個隱含層,而隱含層神經元的數量隨著輸入神經元的個數變大變小
隱含層個數和層中神經元個數的確定缺乏理論依據是BP神經網絡的缺點之一,很多時候改變這些就會改變模型的輸出結果,這時候就顯得這個聲名赫赫的模型不靠譜
Note 2:
傳遞函數的存在使得BP神經網絡可以處理非線性問題,他們將上一層神經元的加權和投射到下一層的神經元上。可微分的函數都可以作為傳遞函數,常用的有兩種,一是Sigmoid函數,1/(1+e^(-x)),結果在0到1之間,二是Hyperbolic tangent函數,[(e^x-e^(-x))/[ e^x +e^(-x)] ,結果在-1到1之間
Note 3:
計量輸出值與目標值的偏差時,一般選用均方誤差,即輸出值與目標值差值平方的均值
Note 4:
以流程的訓練過程舉個慄子:輸入層神經元A|B|C → 隱含層神經元J|F → 輸出層M為例,其中w1,w2和w3為輸入層至隱含層神經元J的權重,w4和w5為隱含層至輸出層神經元M的權重,設定初始權重後,兩次的傳遞函數都選擇Sigmoid函數f(x)= 1/(1+e^(-x)),流程大致是
首先計算輸入層神經元加權和:j = w1×A + w2×B + w3× C接著動用傳遞函數,將輸入層的值徹底傳遞到隱含層神經元J: J = f(j) = 1/[(1+e^(-j)]然後計算隱含層神經元加權和:m = w4×J + w5×K繼續動用傳遞函數,將隱含層的值徹底傳遞到輸出層神經元M: M = f(m) = 1/[(1+e^(-m))]計算總誤差:[(M』 – M)^2 + (N』 – N)^2]/2若總誤差可接受,則w1,w2,w3,w4和w5就是所求的權重,帶入模型即可以用於檢驗和預測,如不可接受則更新這5個權重,重新跑流程