1. 程式人生 > 其它 >fegin引數傳遞測試總結

fegin引數傳遞測試總結

機器學習說白了就是個劃分邊界的問題,如何把一類物品和其他類更好的分開就是目標。有了目標就需要一個判斷標準,這個判斷標準就是損失函式,等於給模型打分,損失函式值越低,分越高。所以目標就是找到一個完美的劃分平面,使得分數最高。那麼至於怎麼找這個劃分面呢?

1. 多個自變數的線性組合在高維空間裡是一個超平面,理論上可以劃分一切邊界,這裡也就是sum(w_i*x_i+b)的由來,其中b就是偏置項,這裡如果沒有b,函式就恆過原點了。經過不同w和x出來的y喂到下一層作為自變數x,不斷往復,最後出來10個最終的z,把這些z經過softmax函式後出來一個0-1的概率,取概率最大的那一個作為模型的預測值。
2. 拿我們的預測值和真實的值比較,等於說對答案,看看我們能得多少分,這個評分標準就是剛才的損失函式。看到分數之後開始想辦法讓這個分高(也就是損失分更低),這時候就用到梯度下降,因為梯度方向是下降最快的,於是開始求偏導,這一部的目標是,通過預測的結果一步步往回求導,找梯度,也就是反向傳播。我們的目標是通過反向傳播更新最開始輸入端的權重w。
3. 不斷重複1,2,直到我們的預測結果和真實結果之間的損失分不能再降低了(人為給定個閾值),那麼我們就訓練完了。拿著這個結果去跑測試集,等於之前是在做練習題,現在去高考了,高考完就結束了,所以沒有反向傳播的學習過程了,最終考下來的結果也就是準確率,越高越好。

這個就是大概神經網路的原理,至於其中就會涉及到很多數學問題,比如怎麼避免在梯度下降時找到的是極小值而不是最小值?如何提高效率和準確度?如何在高維特徵中保持可解釋性等等,這就要求有很強的數學功底和邏輯思維能力了。