今天我們要學(xué)習(xí)的就是之前提到過的使用深度學(xué)習(xí)進行人臉識別的神經(jīng)網(wǎng)絡(luò),Siamese network。

其實Siamese跟之前我們所使用的神經(jīng)網(wǎng)絡(luò)在前面的部分都是大致相同的,通過了卷積層,池化層等等進入全連接層。分類類的神經(jīng)網(wǎng)絡(luò)一般會在后面加上一個softmax分類器,輸出它的類別。
但是Siamese在全連接層的最后一層就停止了。
我們會把一張圖片輸入到卷積神經(jīng)網(wǎng)絡(luò)當中,得到一個全連接層,我們就稱這個全連接層是這個圖片的編碼f(x)。(要注意的是:這里的編碼不是指把圖片的像素一個一個解讀出來,而是把它的數(shù)據(jù)處理之后提取的特征做成編碼)
那么假設(shè)我們輸入兩張圖片,我們就會得到兩個f(x),我們所要做的就是比較兩個f(x)的差異,來判斷兩張圖片是否是同一張圖片。
這里的公式是d(x1,x2)=||f(x1)-f(x2)||,這里的兩個豎代表的是范數(shù)范數(shù),范數(shù)是某種意義上向量的一個長度,通過長度大小比較可以發(fā)現(xiàn)兩張圖片的差異性。

那么理所當然的,我們可以知道,范數(shù)的差值越小,就能說明這兩張圖越有可能是同一個人,差值越大,則兩張圖越有可能不是同一個人。
下一節(jié)課會講到這個神經(jīng)網(wǎng)絡(luò)的損失函數(shù)。
記
其實吳恩達在卷積神經(jīng)網(wǎng)絡(luò)的課程后部設(shè)計這一個人臉識別的課題是別有用心的,這個課題其實并不是非常的難,用的基本上也是之前學(xué)過的知識。
其實深度網(wǎng)絡(luò)在大部分領(lǐng)域都可以應(yīng)用,哪怕現(xiàn)在我們是一個人只有一張圖片的數(shù)據(jù)庫,我們也可以通過另外一個角度來訓(xùn)練這個模型。(也就是我們可以通過很多人來訓(xùn)練這個模型的差值)
一般來說,不同的應(yīng)用場景,差別就在于輸出端究竟是什么,可以是一個分類,或者是一個編碼,或者是什么別的東西。