深度應用 一文搞懂深度學習人臉識別模型開發流程

2021-09-24 15:08:53 字數 1219 閱讀 5276

度量學習(metric learning),也稱距離度量學習(distance metric learning,dml) 屬於機器學習的一種。其本質就是相似度的學習,也可以認為距離學習。因為在一定條件下,相似度和距離可以相互轉換。比如在空間座標的兩條向量,既可以用余弦相似度的大小,也可以使用歐式距離的遠近來衡量相似程度。

常見的人臉識別與聲紋識別都屬於度量學習。

一般的度量學習包含以下步驟:

encoder編碼模型:用於把原始資料編碼為特徵向量(重點如何訓練模型

相似度判別演算法:將一對特徵向量進行相似度比對(重點如何計算相似度,閾值如何設定

通過使用大量資料集進行網路模型訓練。使編碼模型可以實現對原始資料提取特徵向量的功能。

基於深度學習的度量學習演算法中,可以分為兩個流派:

網路設計派:代表孿生神經網路(siamese network)

損失改進派:代表 xx-softmax

本文主要講整體開發流程,具體細節請自行查閱。

通過對編碼模型訓練,得到了具備提取特徵的encoder模型,讓原始資料通過encoder模型就可以對應特徵向量:

x = encoder(row)

下面就是利用這個encoder模型,作為特徵提取器,進行相似度判別。

在第一步(1.編碼模型訓練)完成後,獲得了具備特徵提取的編碼模型,就可以利用此encoder網路進行驗證系統開發。

首先要對在第一步得到的編碼模型進行效能測試。步驟如下:

使用測試資料生成測試對,需要保證盡量隨機取對和正負資料平衡,同一種標籤為1,不同種為0

使用編碼模型得到所有特徵向量

根據測試對的特徵向量計算相似度,可選余弦距離度/歐式距離

根據測試對的相似度與標籤,設定合理閾值範圍,解析度取0.0001,遍歷閾值計算 far(錯誤接受率)frr(錯誤拒絕率),兩者相等得到eer(等錯誤概率),此時的閾值也是較優閾值。(也可以使用類似方法驗證準確率)

通過上述步驟就可以獲得模型的識別效能和應用閾值。

如若想提高閾值的泛化能力,可以採用測試與驗證的方法計算閾值:

將測試對分為10組,用來確定閾值並驗證精讀。

使用其中1組,同種判斷錯誤和不同種判定錯誤的個數。

選擇錯誤個數最少的那個閾值,用剩餘9組,判斷識別精度。

步驟2和3執行10次,將每次3獲取的精度進行累加並求平均,得到最終判定精度。記錄下精度最高的那次的閾值,記為最優閾值

1.

深度應用 一文搞懂深度學習人臉識別模型開發流程

度量學習 metric learning 也稱距離度量學習 distance metric learning,dml 屬於機器學習的一種。其本質就是相似度的學習,也可以認為距離學習。因為在一定條件下,相似度和距離可以相互轉換。比如在空間座標的兩條向量,既可以用余弦相似度的大小,也可以使用歐式距離的遠...

一文搞懂python中的is和 (深度解析)

python中的is用於比較物件的識別符號是否相等。是比較值是否相等。物件的識別符號可以簡單地理解成物件的記憶體位址,在生命週期中是固定不變的。id 可以得到物件識別符號的整數表示。示例如下 person1 person2 person3 person1 輸出各個字典物件的識別符號,系統不同,得到的...

一文讀懂深度學習時序分析

作者 prakhar ganesh 編譯 安然 圖靈topia 近日,發表在 datascience 上的一篇文章,使用深度學習方法,從資料處理 迴圈網路 rnn上的lstm cnn lstms等方面介紹了時間序列分析,同時解釋了時間序列的概念以及為什麼選擇深度學習的方法等問題。什麼是時間序列分析?...