吳恩達機器學習筆記——八、神經網路

lizhaoxin666發表於2020-12-30

為什麼要用神經網路

用來解決特徵太多、引數太多,計算量太大,甚至發生過擬合的問題
對於一個只有兩個變數的二分類問題,我們可以建立以下的分類邊界表示式,並帶入Sigmoid函式中,因為變數較少,我們可以很容易找到兩個變數組合的一次方項、二次方項、三次方項…。通過梯度下降就可以找到如圖所示得到分類邊界:
在這裡插入圖片描述
但是如果我們要對一個一張50×50的灰度圖片進行分類,判定其是否為汽車,則該照片裡共有2500個畫素點,也就有2500個變數,則其進行組合的一次方項、二次方項、三次方項…有非常多,也就導致很多很多的特徵,這不僅增加了計算開銷,還可能引發過擬合。而採用神經網路可以很好的解決這一問題。

神經網路的表示

神經元

Logistics迴歸的函式就是一種簡單的神經元表達模型,對輸入的x1, x2, x3進行一定的計算,然後輸出hθ(x),就像神經元傳遞訊號一樣。有時候還會加上x0=1的輸入項,稱之為偏置神經元或偏置單元。
在這裡插入圖片描述

神經網路

Layer 1也叫輸入層,Layer 2也叫隱層(在訓練過程中看不到,可以不止一個隱層),Layer 3 也叫輸出層。
還可以有更多層,層與層之間神經元的連線方式稱為神經網路的架構。
在這裡插入圖片描述

符號定義

ai(j):第j層第i個神經元的啟用函式,表示將對該神經元的輸入做何種運算。
Θ(j):一個權重矩陣,控制著從第j層到第j+1層的啟用函式的對映
在這裡插入圖片描述
這裡的Θ(1)是3×4的矩陣,即:若神經網路的第j層有sj個神經元,第j+1層有sj+1個神經元,則Θ(j)的維度是sj+1×(sj+1)
將圖片中括號裡的式子分別用z1(2), z2(2), z3(2)表示,其中上標表示第2層,即:

  • z1(2) = Θ10(1)x0 + Θ11(1)x1 + Θ12(1)x2 + Θ13(1)x3
  • z2(2) = ……
  • z3(2) = ……

向量化

在這裡插入圖片描述
注意:老師在課程中說z(2)是三維向量,因為z(2)有三個變數,其本身是一個3×1矩陣(矩陣的維度和向量的維度不是一個概念)
則:在這裡插入圖片描述
其中:z(2)也可以寫為z(2) = Θ(1)a(1),此處把s看做第一個啟用層。把偏置單元加上:
在這裡插入圖片描述
則a(2)就是四維向量了,由此可以通過向量運算的方法計算出hθ(x)。這個過程右稱為前向傳播過程

神經網路所使用的特徵

在這裡插入圖片描述
該神經網路的功能和Logistics迴歸一樣,只不過沒有直接使用x1, x2, x3作為特徵,而是使用了a1(2), a2(2), a3(2)作為特徵,而a1(2), a2(2), a3(2)是它自己訓練出來的。

非線性模型例子

能實現“與”功能的神經網路

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

能實現“或”功能的神經網路

在這裡插入圖片描述

能實現“非”功能的神經網路

在這裡插入圖片描述

能實現“同或”功能的神經網路

在這裡插入圖片描述
在這裡插入圖片描述
其實是簡單功能神經元的堆疊,而堆疊原則與邏輯運算原理有關

實現多分類

建立一個有四個輸出的神經網路(四個Logistics迴歸神經網路),用第一個輸出神經元判斷是否是行人,第二個判斷是否是汽車……
在這裡插入圖片描述
使用訓練集進行訓練:
在這裡插入圖片描述
訓練的目標是:
在這裡插入圖片描述
其中hΘ(x(i))和y(i)都是四維向量

相關文章