4.5 人脸验证与二分类-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
| 4.4 Triplet 損失 | 回到目錄 | 4.6 什么是神經(jīng)風(fēng)格轉(zhuǎn)換? |
人臉驗(yàn)證與二分類 (Face Verification and Binary Classification)
Triplet loss是一個(gè)學(xué)習(xí)人臉識別卷積網(wǎng)絡(luò)參數(shù)的好方法,還有其他學(xué)習(xí)參數(shù)的方法,讓我們看看如何將人臉識別當(dāng)成一個(gè)二分類問題。
另一個(gè)訓(xùn)練神經(jīng)網(wǎng)絡(luò)的方法是選取一對神經(jīng)網(wǎng)絡(luò),選取Siamese網(wǎng)絡(luò),使其同時(shí)計(jì)算這些嵌入,比如說128維的嵌入(編號1),或者更高維,然后將其輸入到邏輯回歸單元,然后進(jìn)行預(yù)測,如果是相同的人,那么輸出是1,若是不同的人,輸出是0。這就把人臉識別問題轉(zhuǎn)換為一個(gè)二分類問題,訓(xùn)練這種系統(tǒng)時(shí)可以替換Triplet loss的方法。
最后的邏輯回歸單元是怎么處理的?輸出 y^\hat{y}y^? 會(huì)變成,比如說sigmoid函數(shù)應(yīng)用到某些特征上,相比起直接放入這些編碼( f(x(i),f(x(j)))f(x^{(i)},f(x^{(j)}))f(x(i),f(x(j))) ),你可以利用編碼之間的不同。
y^=σ(∑k=1128wi∣f(x(i))k?(x(j))k∣+b\hat{y}=\sigma(\sum_{k=1}^{128}w_i|f(x^{(i)})_k-(x^{(j)})_k|+by^?=σ(∑k=1128?wi?∣f(x(i))k??(x(j))k?∣+b
我解釋一下,符號 f(x(i))kf(x^{(i)})_kf(x(i))k? 代表圖片 x(i)x^{(i)}x(i) 的編碼,下標(biāo) kkk 代表選擇這個(gè)向量中的第 kkk 個(gè)元素, ∣f(x(i))k?f(x(j))k∣|f(x^{(i)})_k-f(x^{(j)})_k|∣f(x(i))k??f(x(j))k?∣ 對這兩個(gè)編碼取元素差的絕對值。你可能想,把這128個(gè)元素當(dāng)作特征,然后把他們放入邏輯回歸中,最后的邏輯回歸可以增加參數(shù) wiw_iwi? 和 bbb ,就像普通的邏輯回歸一樣。你將在這128個(gè)單元上訓(xùn)練合適的權(quán)重,用來預(yù)測兩張圖片是否是一個(gè)人,這是一個(gè)很合理的方法來學(xué)習(xí)預(yù)測0或者1,即是否是同一個(gè)人。
還有其他不同的形式來計(jì)算綠色標(biāo)記的這部分公式( ∣f(x(i))k?f(x(j))k∣|f(x^{(i)})_k-f(x^{(j)})_k|∣f(x(i))k??f(x(j))k?∣ ),比如說,公式可以是 (f(x(i))k?f(x(j))k)2f(x(i))k+f(x(j))k\frac{(f(x^{(i)})_k-f(x^{(j)})_k)^2}{f(x^{(i)})_k+f(x^{(j)})_k}f(x(i))k?+f(x(j))k?(f(x(i))k??f(x(j))k?)2? ,這個(gè)公式也被叫做 χ2\chi^2χ2 公式,是一個(gè)希臘字母 χ\chiχ ,也被稱為 χ\chiχ 平方相似度。
? Yaniv Taigman, Ming Yang, Marc’Aurelio Ranzato, Lior Wolf (2014). DeepFace:Closing the gap to human-level performance in face verification
這些公式及其變形在這篇DeepFace論文中有討論,我之前也引用過。
但是在這個(gè)學(xué)習(xí)公式中,輸入是一對圖片,這是你的訓(xùn)練輸入 xxx (編號1、2),輸出 yyy 是0或者1,取決于你的輸入是相似圖片還是非相似圖片。與之前類似,你正在訓(xùn)練一個(gè)Siamese網(wǎng)絡(luò),意味著上面這個(gè)神經(jīng)網(wǎng)絡(luò)擁有的參數(shù)和下面神經(jīng)網(wǎng)絡(luò)的相同(編號3和4所示的網(wǎng)絡(luò)),兩組參數(shù)是綁定的,這樣的系統(tǒng)效果很好。
之前提到一個(gè)計(jì)算技巧可以幫你顯著提高部署效果,如果這是一張新圖片(編號1),當(dāng)員工走進(jìn)門時(shí),希望門可以自動(dòng)為他們打開,這個(gè)(編號2)是在數(shù)據(jù)庫中的圖片,不需要每次都計(jì)算這些特征(編號6),不需要每次都計(jì)算這個(gè)嵌入,你可以提前計(jì)算好,那么當(dāng)一個(gè)新員工走近時(shí),你可以使用上方的卷積網(wǎng)絡(luò)來計(jì)算這些編碼(編號5),然后使用它,和預(yù)先計(jì)算好的編碼進(jìn)行比較,然后輸出預(yù)測值 y^\hat{y}y^? 。
因?yàn)椴恍枰鎯?chǔ)原始圖像,如果你有一個(gè)很大的員工數(shù)據(jù)庫,你不需要為每個(gè)員工每次都計(jì)算這些編碼。這個(gè)預(yù)先計(jì)算的思想,可以節(jié)省大量的計(jì)算,這個(gè)預(yù)訓(xùn)練的工作可以用在Siamese網(wǎng)路結(jié)構(gòu)中,將人臉識別當(dāng)作一個(gè)二分類問題,也可以用在學(xué)習(xí)和使用Triplet loss函數(shù)上,我在之前的視頻中描述過。
總結(jié)一下,把人臉驗(yàn)證當(dāng)作一個(gè)監(jiān)督學(xué)習(xí),創(chuàng)建一個(gè)只有成對圖片的訓(xùn)練集,不是三個(gè)一組,而是成對的圖片,目標(biāo)標(biāo)簽是1表示一對圖片是一個(gè)人,目標(biāo)標(biāo)簽是0表示圖片中是不同的人。利用不同的成對圖片,使用反向傳播算法去訓(xùn)練神經(jīng)網(wǎng)絡(luò),訓(xùn)練Siamese神經(jīng)網(wǎng)絡(luò)。
這個(gè)你看到的版本,處理人臉驗(yàn)證和人臉識別擴(kuò)展為二分類問題,這樣的效果也很好。我希望你知道,在一次學(xué)習(xí)時(shí),你需要什么來訓(xùn)練人臉驗(yàn)證,或者人臉識別系統(tǒng)。
課程板書
| 4.4 Triplet 損失 | 回到目錄 | 4.6 什么是神經(jīng)風(fēng)格轉(zhuǎn)換? |
總結(jié)
以上是生活随笔為你收集整理的4.5 人脸验证与二分类-深度学习第四课《卷积神经网络》-Stanford吴恩达教授的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 4.4 Triplet 损失-深度学习第
- 下一篇: 4.6 什么是神经风格迁移-深度学习第四