1. 程式人生 > >略講基於cnn的人臉識別模型的網路結構和度量設計

略講基於cnn的人臉識別模型的網路結構和度量設計

前言

人臉識別系統基本流程如下:
這裡寫圖片描述

比如Openface,SeetaFace的系統都是可以學習一下的。強調一下這篇文章主要是講的是特徵提取和分類器分類。

1 模型提升的方法

Nature IDea:boost(提升樹的思想)。從這個角度來說明闡述人臉識別的方法。(是不是感覺很神奇)
這裡寫圖片描述

1.1 DeepID2

Idea:Averaging/voting。思路很簡單就是多個模型,然後做個平均就可以。Deepid2很誇張,訓練了200個cnn模型。處理方法就是第一次選擇最有效的25個模型,然後用PCA的方法降低緯度。然後就是剩下的最有效額25個模型來,然後PCA 的方法來降低緯度。按著這個方法來重複七次。雖然模型是SVM的做最後的特徵融合的。所以,在模型完全訓練完之後,可以採用muti-scale muti-view的方法來提升模型的準確率。這個方法百試不爽。

1.2 VggFace

Idea:stacking。Dtree(決策樹),如果我們決策樹的深度增加,那麼模型的擬合能力也會提高,當時很容易過擬合現象。這個跟神經網路有些性質類似了,神經網路深度越深,模型的擬合能力就越大,比如vggnet,殘差網路等等,如果樣本量少,模型的過擬合情況就比較嚴重。vggface網路上面並沒有很多技巧,用了vgg16 cnn 的模型,比Deepid多了11 layers,然後就拿來用在人臉識別的用途上面,效果上也很不錯。所以現在用殘差網路來訓練人臉識別的特徵提取部分,效能也不會挺好的(前提是你會調參,樣本足夠好)。

1.3 小結

從上面兩個討論來說,其實也說明神經網路的發展方向,go deeper。

2 人臉識別(特徵提取的網路框架)

好的特徵是成功的大半。如果特徵選擇選擇的好,其實分類器差不多的。cnn網路框架的設計,我個人理解是從兩個方向來做的。首先是度量上面的設計(也就是說loss),其次是hidden layer的設計。loss設計也會影響到你的前面hidden的設計,有些論文裡面這兩個方面都是有的。

2.1 度量

softmax(也算吧),siamese loss ,triplet loss,center loss,L-softmax(目前我所瞭解到的loss 設計)

2.2.1 center loss

Link:https://github.com/ydwen/caffe-face


Paper:《A Discriminative Feature Learning Approach for Deep Face Recognition》
loss:其實本質上前面是個softmax,後面就是一個關於center 的loss。他的最終目的是屬於同一類的樣本聚攏在某個中心點。
這裡寫圖片描述
backward computation:
這裡寫圖片描述

效果圖:特徵取個二維特徵,投影到平面,模型最終效果圖如下。
這裡寫圖片描述
這裡寫圖片描述

2.2.2 triplet loss:

Link:https://cmusatyalab.github.io/openface/
Paper:《FaceNet: A Unified Embedding for Face Recognition and Clustering》
loss:
這裡寫圖片描述
triplet是一個三元組,這個三元組是這樣構成的:從訓練資料集中隨機選一個樣本,該樣本稱為Anchor,然後再隨機選取一個和Anchor (記為x_a)屬於同一類的樣本和不同類的樣本,這兩個樣本對應的稱為Positive (記為x_p)和Negative (記為x_n),由此構成一個(Anchor,Positive,Negative)三元組。
這裡寫圖片描述

2.2.3 siamese loss

Paper:我個人覺得來源Deepid。
loss:以前模型都是softmax,也就說在反向傳播的時候增加一個驗證訊號。
這裡寫圖片描述
這裡寫圖片描述
實際上應用的時候,跟Deepid方法不太一樣。
小節:前面所有方法的思想就是:同類的樣本儘可能接近,不同的樣本儘可能距離遠。

2.2.4 L-softmax loss

Paper:《Large-Margin Softmax Loss for Convolutional Neural Networks》
Loss:(還沒看,捂臉)
這裡寫圖片描述
效果圖:
這裡寫圖片描述

3 內部網路結構的設計

3.1 NORMFACE:L2 hypersphere embedding for face Verification

可以看我上面一篇部落格。

3.2 LightCNN

感覺沒什麼東西可以看,作者使用maxout作為啟用函式,實現了對噪聲的過濾和對有用訊號的保留,從而產生更好的特徵圖MFM(Max-Feature-Map)。同時,這個maxout也就是所謂的slice+eltwise。

BN