本文參考莫凡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))

arrow
arrow
    文章標籤
    tensorflow 教學
    全站熱搜

    Darwin的AI天地 發表在 痞客邦 留言(9) 人氣()