【學習筆記】吳恩達老師《深度學習工程師》三
二週目課程
第一課 二分分類
二分類問題,說白了就是結果只有兩種可能。老師以識別影象中是否為貓作為舉例,首先講解了神經網路中常用的符號規定。當給我們一幅圖:
我們需要得到的結果是,圖片中是否是貓呢?顯然結果僅有兩種:是(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為一個nx行m列的矩陣。在Python中,用X.shape = (nx,m)來表示
同理,輸出y亦可用一個矩陣Y表示。
Y是一個1行,m列的矩陣。在Python中,用Y.shape = (1,m)來表示Y的大小。
第二課 logistic迴歸
這節課說了sigmoid函式。 我們對於任何一次預測,都渴望得到一個結果例如,它是1或者0.。 我們構建網路時引入權值w和偏差b,自然的我們想到=wx+b,但是這樣定義,使得變為了一個線性函式,而且可能性(的取值)很可能不是介於0-1之間,甚至可能是負數。 怎麼辦?
引入sigmoid非線性函式:
函式式為:
即=, so that,結果將被擠壓在0~1之間。
不難看出:
l 若
l 若Z是一個很小或者很大的負數,那麼δ(z)=0
l 若Z=0,那麼δ(z)=0.5
定義了 ,我們如何知道它與標準結果y之間的誤差呢?就要定義損失函式。