吳恩達機器學習筆記 神經網路實現XNOR功能

2021-10-08 14:04:49 字數 2559 閱讀 1584

我們通過神經網路模型實現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百萬個 特徵。普通的邏輯回歸模型,不能有效地處理這麼多的特徵,這時候我們需要神經網路。當資料的特徵太多,比如影象識別,一般就不能使用邏...