深度學習筆記(45) 人臉驗證與二分類

深度學習筆記(45) 人臉驗證與二分類


1. 二分類問題

深度學習筆記(44) Triplet 損失 的Triplet loss是一個學習人臉識別卷積網絡參數的好方法
還有其他學習參數的方法
可以嘗試將人臉識別當成一個二分類問題
在這裏插入圖片描述
另一個訓練神經網絡的方法是選取一對神經網絡,選取Siamese網絡
使其同時計算這些嵌入,比如說128維的嵌入(編號1),或者更高維
然後將其輸入到邏輯迴歸單元,然後進行預測
如果是相同的人,那麼輸出是1,若是不同的人,輸出是0
這就把人臉識別問題轉換爲一個二分類問題,訓練這種系統時可以替換Triplet loss的方法


2. 邏輯迴歸單元的處理

最後的邏輯迴歸單元的處理
比如說sigmoid函數應用到某些特徵上,相比起直接放入這些編碼(f(x(i)),f(x(j)))
可以利用編碼之間的不同
在這裏插入圖片描述
f(x(i))k 代表圖片x^((i))的編碼,下標 k 代表選擇這個向量中的第 k 個元素
|f(x(i))k - f(x(j))k |對這兩個編碼取元素差的絕對值
可能想把這128個元素當作特徵,然後把他們放入邏輯迴歸中
最後的邏輯迴歸可以增加參數 wi 和 b ,就像普通的邏輯迴歸一樣
將在這128個單元上訓練合適的權重,用來預測兩張圖片是否是一個人
這是一個很合理的方法來學習預測0或者1,即是否是同一個人

在這裏插入圖片描述
還有其他不同的形式來計算綠色標記的這部分公式(|f(x(i))k - f(x(j))k|)
比如說,公式可以是
在這裏插入圖片描述
這個公式也被叫做 χ2公式,是一個希臘字母 χ,也被稱爲 χ平方相似度

這些公式及其變形在這篇DeepFace論文中有討論,深度學習筆記(44) Triplet 損失 也引用過

但是在這個學習公式中:
在這裏插入圖片描述
輸入是一對圖片,這是訓練輸入x(編號1、2)
輸出y是0或者1,取決於輸入是相似圖片還是非相似圖片
與之前類似,正在訓練一個Siamese網絡
意味着上面這個神經網絡擁有的參數和下面神經網絡的相同(編號3和4所示的網絡)
兩組參數是綁定的,這樣的系統效果很好


3. 計算技巧

之前提到一個計算技巧可以顯著提高部署效果

在這裏插入圖片描述
如果這是一張新圖片(編號1),當員工走進門時,希望門可以自動爲他們打開
這個(編號2)是在數據庫中的圖片,不需要每次都計算這些特徵(編號6),不需要每次都計算這個嵌入
可以提前計算好,那麼當一個新員工走近時,可以使用上方的卷積網絡來計算這些編碼(編號5)
然後使用它,和預先計算好的編碼進行比較,然後輸出預測值

因爲不需要存儲原始圖像,如果有一個很大的成員數據庫,不需要爲每個成員每次都計算這些編碼
這個預先計算的思想,可以節省大量的計算,這個預訓練的工作可以用在Siamese網路結構中
將人臉識別當作一個二分類問題,也可以用在學習和使用Triplet loss函數上

總結一下,把人臉驗證當作一個監督學習,創建一個只有成對圖片的訓練集
不是三個一組,而是成對的圖片
目標標籤是1表示一對圖片是一個人,目標標籤是0表示圖片中是不同的人
利用不同的成對圖片,使用反向傳播算法去訓練神經網絡,訓練Siamese神經網絡


參考:

《神經網絡和深度學習》視頻課程


相關推薦:

深度學習筆記(44) Triplet 損失
深度學習筆記(43) Siamese網絡
深度學習筆記(42) 人臉識別
深度學習筆記(41) 候選區域
深度學習筆記(40) YOLO


謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章