吳恩達《Machine Learning》精煉筆記 4:神經網路基礎

紅色石頭發表於2021-01-14

今天帶來第四周課程的筆記:神經網路基礎。

  • 非線性假設
  • 神經元和大腦
  • 模型表示
  • 特徵和直觀理解
  • 多類分類問題

非線性假設Non-linear Hypotheses

線性迴歸和邏輯迴歸的缺點:特徵太多的時候,計算負荷會非常大

假設我們希望訓練一個模型來識別視覺物件(例如識別一張圖片上是否是一輛汽車),我們怎樣才能這麼做呢?一種方法是我們利用很多汽車的圖片和很多非汽車的圖片,然後利用這些圖片上一個個畫素的值(飽和度或亮度)來作為特徵。

假設採用的是50*50畫素的小圖片,將所有的畫素視為特徵,則有2500個特徵。普通的邏輯迴歸模型不能處理的,需要使用神經網路

神經元和大腦

模型表示

模型表示1

每個神經元是可以被認為一個處理單元/神經核processing unit/Nucleus,主要包含:

  • 多個輸入/樹突input/Dendrite
  • 一個輸出/軸突output/Axon

神經網路是大量神經元相互連結並透過電脈衝來交流的一個網路

1.神經網路模型建立在很多神經元之上,每一個神經元又是一個個學習模型
2.神經元稱之為啟用單元activation unit;在神經網路中,引數又可被成為權重(weight)
3.類似神經元的神經網路

神經網路

下圖是邏輯迴歸模型作為自身學習模型的神經元示例

類似神經元的神經網路結構

  • x1,x2,x3是輸入單元,將原始資料輸入給它們
  • 幾個比較基礎的概念
    • 輸入層:資料節點所在的層
    • 網路層:輸出hihi連同它的網路層引數w,bw,b
    • 隱藏層:網路層中間的層
    • 輸出層:最後一層
    • 偏置單元:bias unit,每層加上偏置單元

上面模型的啟用單元和輸出分別表示為:

三個啟用單元的表示式:

輸出的表示式為:

將特徵矩陣的每行(一個訓練例項)餵給了神經網路,最終需要將整個訓練集都餵給神經網路。

這種從左到右計算的演算法稱之為:前向傳播法FORWARD PROPAGATION

模型標記的記憶方法

其尺寸具體表示為:

  • 以第jj 層的啟用單元數量為行數
  • 以第 j+1j+1層的啟用單元數+1為列數的矩陣

模型表示2

FORWARD PROPAGATION相對於使用迴圈來編碼,利用向量化的方法會使得計算更為簡便,

假如現在有:

其中z滿足:

也就是上面三個啟用單元式子中的括號裡面部分,那麼有:

那麼輸出h可以表示為 :

特徵和直觀理解

神經網路中,單層神經元(無中間層)的計算可用來表示邏輯運算,比如邏輯與(AND)、邏輯或(OR)

實現邏輯”與AND”

實現邏輯”或OR”

實現邏輯“非not”

多類分類問題

當輸出中不止有兩種分類時,比如使用神經網路演算法來識別路人、汽車、摩托車等。

  • 輸入向量有3個維度,兩個中間層
  • 輸出層有4個神經元表示4種分類,也就是每一個資料在輸出層都會出現[a,b,c,d]T[a,b,c,d]T,且[a,b,c,d][a,b,c,d]中僅有一個為1,表示當前類

TF中解決辦法

上述多類分類問題和TF中手寫數字問題類似,解決辦法如下:

手寫數字圖片資料

總類別數是10,即輸出節點總數值dout=10dout=10,假設某個樣本的類別是i,即圖片中的數字是ii,需要一個長度為10的向量yy,索引號為ii的位置設定為1,其餘是0。

  • 0的one-hot編碼是[1,0,0,0,….]
  • 1的one-hot編碼是[0,1,0,0,….]
  • 其餘類推

至此,第四周的課程筆記完畢!

系列文章:

吳恩達《Machine Learning》精煉筆記 1:監督學習與非監督學習

吳恩達《Machine Learning》精煉筆記 2:梯度下降與正規方程

吳恩達《Machine Learning》精煉筆記 3:迴歸問題和正則化


本文首發於公眾號:AI有道(ID: redstonewill),歡迎關注!

相關文章