【學習筆記】吳恩達老師《深度學習工程師》三

二週目課程

第一課 二分分類

二分類問題,說白了就是結果只有兩種可能。老師以識別圖像中是否爲貓作爲舉例,首先講解了神經網絡中常用的符號規定。

當給我們一幅圖:

我們需要得到的結果是,圖片中是否是貓呢?顯然結果僅有兩種:是(1)和不是(0)。

那麼神經網絡是如何處理圖片呢?圖片由三種顏色(三個通道)組成,RGB,如果這幅圖是64*64像素,那麼它在計算機中結果如下:


每一個數字代表了像素的亮度(就和畫畫調色一樣,不同的RGB亮度組合最終變成了不同顏色)。因此,一副64*64像素的圖片,最終變爲了3個64*64的堆疊矩陣。

而這些數字可以用來組成一個n維的特徵向量。在機器學習和深度學習中,特徵向量代表一個目標,本例中,代表是否是一隻貓。

爲了創造一個特徵向量x,那些代表像素亮度值的數字將被按照不同顏色「鋪開」或「重組(reshape)」。而一個64*64像素的圖片,最終形成的特徵向量的維度爲nx=64*64*3=12 288。

符號約定:

(x,y)表示一個單獨的樣本;x是一個n維的特徵向量,輸出y{0,1}

訓練集由m個樣本組成:(x(1),y(1))表示樣本一,(x(2),y(2))表示樣本二……

mtrain表示訓練集的樣本數、mtest表示測試集的樣本數

將訓練樣本更緊湊的表示,使用一個矩陣X,如下圖所示:

X爲一個nxm列的矩陣。在Python中,用X.shape = nxm)來表示X的大小。

同理,輸出y亦可用一個矩陣Y表示。

Y是一個1行,m列的矩陣。在Python中,用Y.shape = 1m)來表示Y的大小。

第二課 logistic迴歸

這節課說了sigmoid函數。 我們對於任何一次預測,都渴望得到一個結果例如,它是1或者0.。  我們構建網絡時引入權值w和偏差b,自然的我們想到=wx+b,但是這樣定義,使得變爲了一個線性函數,而且可能性(的取值)很可能不是介於0-1之間,甚至可能是負數。  怎麼辦?

引入sigmoid非線性函數:


函數式爲:

=, so that,結果將被擠壓在0~1之間。

不難看出:

Z是一個很大的正數,那麼δ(z)=1

Z是一個很小或者很大的負數,那麼δ(z)=0

Z=0,那麼δ(z)=0.5

定義了 ,我們如何知道它與標準結果y之間的誤差呢?就要定義損失函數。