機器學習(十)神經網絡理解及利用向前傳播算法得模型預測函數

機器學習(十)神經網絡理解及利用向前傳播算法得模型預測函數

前言:

我們前面已近學習了線性迴歸解決預測問題,邏輯迴歸解決分類問題,那麼現在我們學習神經網絡能解決什麼問題呢?我認爲它是爲了解決線性迴歸和邏輯迴歸存在的不足而出現的。我們想想對於邏輯迴歸,如果我們的特徵要素比較少的情況下,比如只有x1,x2,x3,那麼我們得到的多項式還能夠接受,但是如果我們問題的特徵要素很多的情況,比如x1,x2,x3,…,x100,有100個特徵要素,那麼對於邏輯迴歸僅僅是二次多項式,我們將會有大概5000個項,如果僅僅三次多項式,我們的多項式將有大概17000項,這對於人類的預測以及計算機的處理都是一個極大的挑戰,並且導致效率極低!!!!因此,人們想到人類的大腦每天處理的信息量更是巨大的,那麼能不能模仿人類神經解決這個問題呢?由此神經網絡應運而生。(這是我個人的主觀理解,如有不當,請評論區指正,謝謝~~)

一、神經網絡的直觀理解

1、大腦中的神經元結構如下

在這裏插入圖片描述
在這裏插入圖片描述

2、參照大腦中的神經元結構得到有個神經元模型如下

在這裏插入圖片描述
關於神經網絡中的激活函數並不一定是上圖中的sigmoid函數,比較常用的還有tanh函數,ReLU函數等,關於激活函數可以參考這篇文章,其中的θ1,θ2,θ3,θ4稱爲權重或者參數,本博文稱仍像前面的線性迴歸、邏輯迴歸一樣稱其爲參數

3、神經網絡就是由上圖的多個神經元組合而成,神經網絡模型如下

在這裏插入圖片描述
神經網絡就是由多個神經元組成的,一個神經元的輸出作爲下一個神經元的輸入。神經網絡有“3”層,包括第一層的輸入層,最後一層的輸出層和中間層的隱藏層,其中輸入層和輸出層都只是一層,而隱藏層可以有多層

符號解釋

aij,在第j層的第i個神經元的激活值;
θikj,第j層的第k個神經元,到第j+1層的第i個神經元的參數(權重);
Sj,第j層神經元的個數,不包括偏差單元
θ(j),權重矩陣,控制第j層到第j+1層的權重;θj的維數是Sj+1 * Sj + 1,上圖θ(1)矩陣如下

在這裏插入圖片描述

上圖神經網絡模型的計算過程

在這裏插入圖片描述

4、向前傳播算法,將神經網絡模型的計算過程矢量化

在這裏插入圖片描述
在這裏插入圖片描述

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
上面向前傳播算法之所以命名爲向前傳播,就是因爲它從前一層向後一層不斷計算,最終計算出預測函數hθ(x),下圖更可以直觀的看到這一由後向前的計算過程
在這裏插入圖片描述

二、神經網絡模型實現邏輯運算符

激活函數g(x)的圖像如下,當x=4.6時,g(x)=0.99;當x=-4.6時,g(x)=0.01;這意味着如果x遠大於4.6則g(x)≈1;如果x遠小於-4.6則g(x)≈0;
在這裏插入圖片描述

1、AND

x1,x2∈{0,1};
y=x1 AND x2;
構建神經網絡模型如下:
在這裏插入圖片描述
hθ(x)對應的真值表如下

x1 x2 hθ(x)
0 0 g(-30)≈0
0 1 g(-10)≈0
1 0 g(-10)≈0
1 1 g(10)≈1

可以發現上面的 hθ(x)滿足: hθ(x)=x1 AND x2;類似這樣的神經網絡模型就實現了本條件下的AND運算符問題

2、OR

x1,x2∈{0,1};
y=x1 OR x2;
構建神經網絡模型如下:
在這裏插入圖片描述
hθ(x)對應的真值表如下

x1 x2 hθ(x)
0 0 g(-10)≈0
0 1 g(10)≈1
1 0 g(10)≈1
1 1 g(30)≈1

可以發現上面的 hθ(x)滿足: hθ(x)=x1 OR x2;類似這樣的神經網絡模型就實現了本條件下的OR運算符問題

3、NOT

x~1∈{0,1};
y=NOT x1
構建神經網絡模型如下:
在這裏插入圖片描述
hθ(x)對應的真值表如下

x1 hθ(x)
0 g(10)≈1
1 g(-10)≈0

可以發現上面的 hθ(x)滿足: hθ(x)=NOT x1 ;類似這樣的神經網絡模型就實現了本條件下的NOT運算符問題

4、(NOT x1) AND (NOT x2 )

x1,x2∈{0,1};
y=x1 OR x2;
構建神經網絡模型如下:
在這裏插入圖片描述
hθ(x)對應的真值表如下

x1 x2 hθ(x)
0 0 g(10)≈1
0 1 g(-10)≈0
1 0 g(-10)≈0
1 1 g(-30)≈0

可以發現上面的 hθ(x)滿足: hθ(x)=(NOT x1) AND (NOT x2) ;類似這樣的神經網絡模型就實現了本條件下的(NOT x1) AND (NOT x2 )運算符問題

5、XNOR

x1,x2∈{0,1};
y=x1 XNOR x2;
XNOR運算法則是如果x1,x2相同則y=1,否則y=0;
構建神經網絡模型如下:
在這裏插入圖片描述
上圖的神經網絡模型,a1(2) 神經元就是x1 AND x2的模型,a2(2) 神經元就是(NOT x1) AND (NOT x2)的模型,a1(3) 神經元就是x1 OR x2的模型。這三個神經元構成了上面的神經網絡。
hθ(x)對應的真值表如下

x1 x2 a1(2) a2(2) hθ(x)
0 0 0 1 1
0 1 0 0 0
1 0 0 0 0
1 1 1 0 1

可以發現上面的 hθ(x)滿足: hθ(x)=(NOT x1) AND (NOT x2) ;類似這樣的神經網絡模型就實現了本條件下的(NOT x1) AND (NOT x2 )運算符問題

三、神經網絡模型多分類問題

上面我們提到的神經網絡的輸出層都只有一個神經元,這屬於二分類問題,即輸出層的神經元取1或者取0;那麼神經網絡如何處理多分類問題呢?多分類問題的神經網絡模型輸出層有多個神經單元,如下圖所示
在這裏插入圖片描述
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章