前向傳播法是什麼?
前向傳播法是用在當類神經網路已經訓練完畢的時候,給定新的輸入到類神經網路中,計算推論得到新輸出的一個過程。
更簡單來說,就是將訓練完成的類神經網路應用在實際的情境下,針對新給定的輸入來預測新的輸出。
前向傳播法
假設給定總共有三層的類神經網路,分別有輸入、隱藏、輸出層,為了要說明計算方式,我們簡化這個類神經網路的結構,採用稀疏連結方式,以減少許多計算的權重。
而下方就是前向傳播法的計算方式,我們以符號來呈現。一開始輸入為x1、x2、x3、x4,權重為w1、w2、w3、w4,當輸入訊號傳遞到隱藏層的兩個節點中,對於上面節點而言,訊號彙整為w1x1+w2x2,下面節點而言,訊號彙整為w3x3+w4x4。先前我們有提到過,在輸出節點的部分還需要將訊號彙整進行啟動函數的運算,因此上面節點的輸出為f(w1x1+w2x2),下面節點的輸出為g(w3x3+w4x4),其中f和g就代表啟動函數。最終在最後輸出的部分,就會把訊號彙整,因此在上下兩節點的訊號彙整即為w5f(w1x1+w2x2)加上w6g(w3x3+w4x4),而最終輸出節點還要經過啟動函數h的運算,因此,最終輸出為h(w5f(w1x1+w2x2)+w6g(w3x3+w4x4))。
前向傳播法的概念就是從最前面輸入開始,一步一步把這些訊號彙整計算,從輸入一路計算到輸出。
以上為前向傳播法的計算公式,接下來,我們舉計算範例來說明,假設輸入分別為1、0.6、0.7、0.8,而權重w1到w4分別為0.1、-0.2、0.3、0.4,在隱藏層上下兩節點的輸出即為f(0.1*1+-0.2*0.6)與g(0.3*0.7+0.4*0.8),假設權重w5、w6為-0.3和0.4,再計算到最終輸出的部分即為h(-0.3*f(0.1*1+-0.2*0.6)+0.4*g(0.3*0.7+0.4*0.8))
接下來我們把上述在啟動函數內的訊號彙整加總完成,以得到比較簡潔的形式,這時候我們就發現到,輸出形式為h(-0.3*f(-0.02)+10*g(0.53)),換句話說,把這個公式計算出來,我們就可得到最終輸出的值。
在計算出h(-0.3*f(-0.02)+10*g(0.53)),我們需要先把在前面隱藏層的輸出也就是f(-0.02)與g(0.53)給計算出來。那一般在隱藏層的計算中,因為要有篩選掉不重要訊號的機制,所以通常在隱藏層選擇的啟動函數就是relu函數,因此,我們假設f與g函數為relu,從relu的圖形可以發現,f(-0.02)就會是等於零,而g(0.53)就會是0.53,這是因為-0.02代表x值為負值,而relu函數在x為負值的部分即為零。而在x為正值的部分,即為線性函數,輸入為輸出,因此g(0.53)就會是0.53。
緊接著,我們將上述計算結果代入h的計算式當中,可得到最終輸出就會等於h(5.3)
接下來就要計算h(5.3),不同的問題在輸出層會有不同的啟動函數選擇,舉例來說,以回歸問題而言,在輸出層的啟動函數即為線性函數。而對分類問題而言,在輸出層的啟動函數即為sigmoid函數。
接下來我們分別來看,不同問題的計算結果。
假設是回歸問題,h為線性函數,則h(5.3)就會等於5.3,而5.3這個數值就是最終輸出的結果。
假設是分類問題,h為sigmoid函數,則h(0.53)會等於0.995,在分類問題上會採用四捨五入,最終結果即為1,代表這個樣本是分類在類別1。
結論
一般採用python程式在計算類神經網路過程,通常只要給定新的輸入到已經訓練完成的類神經網路當中,即可快速計算得到輸出。這邊我們選擇細講一下類神經網路在前向傳播法的計算過程,讓大家對於這樣的計算方式更有感,也讓大家以後在用程式計算的時候,更可以了解到原來程式內部的運作原理的樣貌。
[參考資料]:
2.機器學習與人工神經網路(二):深度學習(Deep Learning)
[類神經網路基礎系列專文]:
1.類神經網路(Deep neural network, DNN)介紹
3.類神經網路—啟動函數介紹(一): 深入解析Relu與Sigmoid函數:如何影響類神經網路的學習效果?
4.類神經網路—啟動函數介紹(二): 回歸 vs. 分類: 線性函數與Tanh函數之原理探索
5.類神經網路—啟動函數介紹(三): 掌握多元分類的核心技術:不可不知的softmax函數原理
6.類神經網路—啟動函數介紹(四): 如何選擇最適當的啟動函數?用一統整表格讓您輕鬆掌握
8.類神經網路—反向傳播法(一): 白話文帶您了解反向傳播法
10.類神經網路—反向傳播法(三): 五步驟帶您了解梯度下降法
11.類神經網路—反向傳播法(四): 揭開反向傳播法神秘面紗
12.機器學習訓練原理大揭秘:六步驟帶您快速了解監督式學習的訓練方法
13.類神經網路—反向傳播法(五): 用等高線圖讓您對學習率更有感
[機器學習基礎系列專文]:
1.機器學習訓練原理大揭秘:六步驟帶您快速了解監督式學習的訓練方法
[類神經網路延伸介紹]:
1.卷積類神經網路(Convolution neural network,CNN)介紹
2.遞迴類神經網路(Recurrent neural network,RNN)介紹
[ChatGPT系列專文]:
2.從ChatGPT探索GPT的原理概念:少量數據的解方—遷移學習技巧
3.ChatGPT是什麼?探索GPT原理:遷移學習(transfer learning)的奧秘—微調(fine-tuning)技巧