本文參考莫凡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))
#訂出要學習的函數 這裡要學的是 weight:0.3 biases:0.3
y_data = x_data*0.1+0.3
請問一下註解中的weight是0.1嗎?
版主回覆:(01/13/2017 05:50:20 PM)
抱歉! 這個是筆誤 已經改過來了
謝謝 ^.^
成功了!感謝大大
寫得很不錯 ^^
版主回覆:(03/21/2017 02:09:45 PM)
謝謝~
謝謝你的分享,正常執行
版主回覆:(03/24/2017 11:51:00 AM)
不客氣喔~~^.^
Thanks for sharing , it’s helpful for me
版主回覆:(08/22/2017 07:25:26 PM)
Always glad to help XD
請問定了 x_data為一個長度100的array
是在每一次sess.run(train) 對這x_data做的事情是什麼?
那這樣跟x_data的維度設為2有什麼差別嗎
版主回覆:(12/19/2017 04:41:49 PM)
那是亂數產生100筆data的意思
這X就是input
如果改成1000就是產生出1000筆資料喔~~
您好,
想請問loss那樣子定義的原因?
其中tf.reduce_mean與tf.square扮演的角色是?
版主回覆:(01/08/2018 10:14:45 AM)
這個loss 是機器學習中很有名的L2 loss
相關的Loss 還有L1 loss, entropy 之類的
上網搜尋一下就有很多資料囉~~~
請問我的 x_data = np.random.rand(100).astypeno.float32) 這行顯示 語法錯誤 原因是什麼呢? 我是使用python 3.5.1
上面原因是我多了一個空格 以解決
請問要怎麼在python shell裡執行這個py檔
這個困擾我好久了
版主回覆:(11/09/2018 09:44:30 AM)
在命令提示列裡打入
python 檔名.py
即可執行