人工神經網絡是一種計算機算法
考慮以下問題:
假設需要将蘋果和梨按照直徑和重量進行分類任務
注意此時的資料是線性不可分的
如上圖所示,顯然這是線性不可分的
那麼如何實作其可分呢
如果一條直線不可分,那麼可以做多條直線,如下圖中的綠線,每一條線對應的邏輯圖在右邊
z = 1*w0 + 1*w1 + 2*w2
後面的這個
是求一個機率
在最優化以後,就可以得到如圖所示的綠線
第二個圖和第一個圖的差別就是w不同
我們現在把2層拓展到3層,就像這樣
最終的結果就是這樣的
可見,對于線性不可分的模型,多取幾個就可以變成線性可分的模型
以上的線性到非線性的轉變,一個重要的因素就是sigmod激活函數,也就是這裡的:
若不加這個激活函數,則無論w和b是怎麼變化的,其最後一層輸出的結果隻是各個單個線性模型的相加而已,最終得到的還是一個線性模型,證明如下:
顯然最後的結果還是線性模型
而有了非線性的模型,我們就可以解決非線性的問題,為什麼加了激活函數之後,我們就得到了非線性的模型呢,證明如下:
前向傳播就是從左到右
前向傳播的示意圖如下:
這裡的這個:
其實是一個偏置項
這個
乘上
就相當于一個bias
反向傳播的目的是去優化w和b
反向傳播是從loss出發,loss是指我們通過模型算出來的值和真實值之間的差距
這個差距當然是越小越好
如果沒有反向傳播,想得到每一個初始的節點對于loss的貢獻值是難以計算的
但是若使用反向的方法,将loss一級級地往前推
關于前向傳播和反向傳播詳細的介紹,見後面的文章