本文參考莫凡youtube 教學:
本文摘要自 網路上youtube 莫凡教學
其實我覺得莫凡講得很好 很適合初學者
有時間的話可以把他一系列的影片都看過一遍
本教學 教你 如何建置一個最基礎的神經網路
用建置的神經網路
學習一個簡單方程式 y=0.1x+0.3
這裡我們要學習的就是 W(weight)=0.1 b(biase)=0.3
如果我們每次輸入網路的 X 例如:打入10
都可以變成 10*0.1 +0.3 =1.3 的話
那麼我們就會說 這個網路已經學習完成了
下圖即為我們要學習的網路
輸入一個神經元
輸出一個神經元
但這後來被證明 連一個簡單的Xor 函數都學不起來
因此進入類神經的寒冬
後人們發現中間加一層隱藏層即可解決此問題
因此類神經又興盛起來
但研究人員發現他的效果還是有限
尤其要訓練大網路的時候
會遇到Error 往前傳越小的問題
具體說明可以看這個:https://www.youtube.com/watch?v=YoiUlN_77LU
深度學習解決了這個問題
因此類神經又再度興起了!!!
這是小編覺得講得很好的一個網站
http://neuralnetworksanddeeplearning.com/chap4.html
他用可視化證明了 一個類神經網路 只要給他足夠的神經元
就可以模擬任何非線性函數
讀者有時間也可以看看其他章節
講的也很棒
下面是簡單的小例子 模擬類神經網路學習的情形~
總共更新201次weights
並且每訓練20次印出一次
小編把每一行代碼都清清楚楚的加上註解了
希望各位可以經由這小小的範例
慢慢進入這 Tensorflow 神聖之殿中
如果有任何不懂得可以在下面留言問小編喔~~
祝大家學習愉快~~
程式碼:
程式輸出:
(0, array([ 0.30737674], dtype=float32), array([ 0.25841016], dtype=float32))
(20, array([ 0.13939281], dtype=float32), array([ 0.27776307], dtype=float32))
(40, array([ 0.10886393], dtype=float32), array([ 0.29499638], dtype=float32))
(60, array([ 0.10199451], dtype=float32), array([ 0.29887414], dtype=float32))
(80, array([ 0.10044879], dtype=float32), array([ 0.29974666], dtype=float32))
(100, array([ 0.10010101], dtype=float32), array([ 0.299943], dtype=float32))
(120, array([ 0.10002275], dtype=float32), array([ 0.29998717], dtype=float32))
(140, array([ 0.10000515], dtype=float32), array([ 0.29999712], dtype=float32))
(160, array([ 0.10000117], dtype=float32), array([ 0.29999936], dtype=float32))
(180, array([ 0.10000026], dtype=float32), array([ 0.29999986], dtype=float32))
(200, array([ 0.10000011], dtype=float32), array([ 0.29999995], dtype=float32))
留言列表