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