機器學習:如何理解神經網路可以用來解決複雜的非線性函式
阿新 • • 發佈:2019-01-01
我們知道神經網路裡面有很多的層,每一層又有很多的神經元。看起來就非常複雜,似乎輸入與輸出都很凌亂,對它的理解也很難。那麼我們可以從單個神經元入手,考慮單個神經元的輸入與輸出之間的關係,再擴充套件到整個神經網路。
從圖中可以得到:
假如x1和x2的組合如下:
x1 | x2 | y |
---|---|---|
0 | 0 | 0 |
0 | 1 | 0 |
1 | 0 | 0 |
1 | 1 | 1 |
我們將x1和x2輸入到假設函式,可以得到:
g(-30+20*0+20*0)=g(-30)≈0
g(-30+20*0+20*1)=g(-10)≈0
g(-30+20*1+20*0)=g(-10)≈0
g(-30+20*1+20*1)=g(10)≈1
事實上,這就像是一個“與”操作。
那麼對於“或”操作也是類似的。“或”操作的
g(-10+20*0+20*0)=g(-10)≈0
g(-10+20*0+20*1)=g(10)≈1
g(-10+20*1+20*0)=g(10)≈1
g(-10+20*1+20*1)=g(30)≈1
可以看到,通過選擇不同的
那麼對於複雜一點的操作,比如“異或”操作呢?
“異或”操作使用兩層神經元。通過選擇如圖的引數,我們可以知道:
所以,經過一個神經元,其實就是在做一種判斷,像“與”,“或”這種簡單的邏輯。單個神經元就可以做到了,但是對於複雜的判斷,就不是一個神經元就可以搞定的。隨著複雜程度的增加,神經網路也就形成了。
其實這跟數位電路還有點像。以前學習數位電路的時候,也是從簡單的與非門,或門等簡單的邏輯電路學起,然後複雜的邏輯都是通過簡單邏輯的組合得到的。