我們通過神經網路模型實現xnor(異或非)運算。當2個輸入端中有且只有乙個0時,輸出為0,也就是當輸入相同時,輸出為1。
and運算是當且僅當兩者都為1時結果為1。我們使用如下的神經網路模型實現:
這時候,我們的輸出函式hθ(
x)h_\theta(x)
hθ(x)
即為:hθ(
x)=g
(−30+
20x1+
20x2)
h_\theta(x)=g\left( -30+20x_1+20x_2 \right)
hθ(x)
=g(−
30+2
0x1
+20x
2),我們的sigmoid函式是這樣的:
所以,當x1和
x2x_和x_
x1和x2
都為0時,hθ(
x)=g
(−30)
h_\theta(x)=g\left(-30 \right)
hθ(x)
=g(−
30),結果約等於0;當x1和
x2x_和x_
x1和x2
都為1時,hθ(
x)=g
(10)h_\theta(x)=g\left(10 \right)
hθ(x)
=g(1
0),結果約等於1;當x1和
x2x_和x_
x1和x2
有乙個為0,另乙個為1時,hθ(
x)=g
(−10)
h_\theta(x)=g\left(-10 \right)
hθ(x)
=g(−
10),結果同樣約等於0。我們可以得到如下結果:
所以這樣乙個模型實現了hθ(
x)≈x
1andx2
hθ(x)
≈x1
andx2
。我們也可以看出,模型引數的值時可以更改的,能夠實現功能就可以。
or運算是只要兩者有乙個或兩個為1時結果就為1。我們使用如下的神經網路模型實現:
原理和and相同,可以自行驗證。
not運算是輸入為0則輸出1,輸入為1則輸入0。我們使用如下的神經網路模型實現:
分析一下就可以得到,當且僅當x1和x2都為0時,輸出才為1。我們使用如下的神經網路模型實現:
我們實現以上四個功能一方面是為了熟悉神經網路執行過程,一方面就是為了實現xnor功能。xnor可以用以下組合表示出來:
xnor=(
x1,and,x
2)or(
(not,x
1)and(
not,x2
))\text=( \text_1, \text, \text_2 ) \text \left( \left( \text, \text_1 \right) \text \left( \text, \text_2 \right) \right)
xnor=(
x1,
and,x2
)or(
(not,x
1)and
(not,x
2))
先對x1和x2實現and運算,再對not x1和not x2 實現and運算,最後對兩者進行or運算,方法就是將上述介紹的實現過程組合起來,如圖:
另外說明,xnor運算不能像前面介紹的四個一樣只用兩層就能實現。由此我們初步感受了神經網路模型的執行過程。最後了解一下神經網路模型處理多分類問題是如何實現的。
結合上圖進行說明。假設我們要實現乙個區分行人、汽車、電單車和卡車的功能,我們希望輸出值是乙個4維的向量,對應位置為1(或者是值最大的)說明**結果為對應的物體。要想實現這樣的輸出對輸入也有要求,我們要求輸入也是4維的,對應的物體處標為1,其餘標為0。例如,當第乙個數字為1時對應行人,第二個數字為1的時候對應汽車,以此類推。
吳恩達 機器學習 4 神經網路
當特徵數量大時,在進行邏輯回歸和線性回歸時要包含所有的相關項,二項式的個數以n 2的量級增長,最終的結果可能過擬合,同時計算量也過大。model representation x 0x 0 x0 為偏置單位,總是等於1,x是輸入,h x h theta x h x 是輸出,theta 是權重即函式的...
吳恩達機器學習筆記 9 神經網路學習
本章講述了神經網路的起源與神經元模型,並且描述了前饋型神經網路的構造。在傳統的線性回歸或者邏輯回歸中,如果特徵很多,想要手動組合很多有效的特徵是不現實的 而且處理這麼大的特徵資料量,計算上也很複雜。神經網路最開始起源於生物資訊中的大腦,在上世紀80 90年代的時候很火,後來就沒什麼訊息了。在神經網路...
《吳恩達機器學習》學習筆記004 神經網路
假使我們採用的都是50x50畫素的小,並且我們將所有的畫素視為特徵,則會有 2500個特徵,如果我們要進一步將兩兩特徵組合構成乙個多項式模型,則會有約 2 個 接近3百萬個 特徵。普通的邏輯回歸模型,不能有效地處理這麼多的特徵,這時候我們需要神經網路。當資料的特徵太多,比如影象識別,一般就不能使用邏...