search
尋找貓咪~QQ 地點 桃園市桃園區 Taoyuan , Taoyuan

FaceNet---深度學習與人臉識別的二次結合

今天我給大家帶來一篇來自谷歌的文章,眾所周知,谷歌是全世界最有情懷,最講究技術的公司,比我們天朝的莆田廣告商良心多了。還有就是前段時間的最強大腦,莆田廣告商的那個小機器,也就忽悠忽悠行外人了,懂的人深深知道。感覺自己就是黑子,當然,最強大腦節目組本身就是演員。

傳統的進行人臉識別的模型一般都是這樣:

但是現在我們要換個思路了,facenet直接學習圖像到歐式空間上的映射,那麼如果兩張圖片在歐式空間的距離很近,是不是說明就是很相似?如果離得遠就不相似,也就不是同一個人?

下面的圖詳細的說明了,具體過程。

你看如果是一個人的照片,他們的距離就會低於這個閥值,此處應該是1.05左右。這個有點類似於LDA的思想了。類內的距離就小,類間的距離就大,其實本質上並沒有什麼差別。

Facenet的結構如下圖:

前面就是一個傳統的卷積神經網路,然後在求L2范數之前進行歸一化,就建立了這個嵌入空間,最後的損失函數,就是本文的最大亮點。

Triplet loss三重損失函數:以前我們的損失函數一般都是一個的,或者是兩個的。這裡弄三個,結構圖如下:

我來帶大家理解這個結構圖。現在我們有一個樣本名字叫anchor,還有兩個樣本名字叫positive,另外一個叫Negative。一開始啊,我們都以為這個三個人是親兄弟,但是呢Negative一個是隔壁老王的,而且這個人和我們的Anchor關係很好,這不行,這是仇人的孩子,我們得讓這兩個人遠離,於是我們就讓神經網路學習,讓positive和anchor近一點,讓Negative滾蛋。(當然例子可能取的不恰當,還請見諒,哈哈)

課外補充:在高維或者無窮維中,距離的度量沒有意義的,因為他們都在一個超球面上,你又如何度量他們的遠近呢(這就是為什麼不能直接用KNN分類的原因,他在處理高維數據就玩不轉了),所以我們才要用深度卷積神經網路進行訓練啊,至於其中的原理,神經網路就是一個黑匣子,我不懂啊,鬼知道他是怎麼玩的。

記住下面的所有數據都是經過歸一化的,沒有經過歸一化求距離就是胡扯!

,和分別代表三個不同的樣本,我們一定想要:

這個是我們前面所說的參數。

那麼我們的優化函數就出來了:

優化問題解決:

但是呢,知道這些還不夠,為什麼呢,一個演算法的優劣,還要通過他的時間複雜度來判斷,這裡一定要確保他的收斂速度。

那麼我們怎做呢,其實也很簡單,假設給你一個anchor,我們找一個positive就要在這一類中找到一個最難分類的,什麼樣叫最難分類呢,就是在歐式空間距離最遠的那個,但是屬於一類,這叫hard_positive,另外找nepositive那就找最近的,這樣不就完美解決了么。當然在找nepositive很容易產生局部最優,所以我們要滿足:。這叫semi-hard,防止找到他一類里了。

本文的CNN結構:

一種是來自M. D. Zeiler and R. Fergus. Visualizing and understanding convolutional networks. CoRR, abs/1311.2901, 2013. 2, 4, 6。

結構:

另一種來自:C. Szegedy, W. Liu, Y. Jia, P. Sermanet, S. Reed,D. Anguelov, D. Erhan, V. Vanhoucke,and A. Rabinovich.Going deeper with convolutions. CoRR, abs/1409.4842,2014. 2, 4, 5, 6, 9

結構:

結果在LFW上正確率很高,在這裡我就不說了。

論文:FaceNet: A Unified Embedding for Face Recognition and Clustering



熱門推薦

本文由 yidianzixun 提供 原文連結

寵物協尋 相信 終究能找到回家的路
寫了7763篇文章,獲得2次喜歡
留言回覆
回覆
精彩推薦