深扒人臉識別技術的原理、算法(下)
發布時間:2018-02-06 來源:Imagination Tech 責任編輯:lina
【導讀】前qian文wen說shuo過guo,根gen據ju有you限xian的de訓xun練lian集ji,去qu適shi應ying無wu限xian的de測ce試shi集ji,當dang然ran訓xun練lian集ji容rong量liang越yue大da效xiao果guo就jiu越yue好hao。但dan是shi,訓xun練lian集ji如ru果guo很hen大da,那na麼me每mei次ci都dou根gen據ju全quan部bu數shu據ju執zhi行xing梯ti度du下xia降jiang計ji算suan量liang就jiu太tai大da了le。此ci時shi,我wo們men選xuan擇ze每mei次ci隻zhi取qu全quan部bu訓xun練lian集ji中zhong的de一yi小xiao部bu分fen(究竟多少,一般根據內存和計算量而定),執行梯度下降,不斷的迭代,根據經驗一樣可以快速地把梯度降下來。這就是隨機梯度下降。
三、梯度的下降(下)
前文的梯度下降法隻能對f函數的w權重進行調整,而上文中我們說過實際是多層函數套在一起,例如f1(f2(x;w2);w1),那麼怎麼求對每一層函數輸入的導數呢?這也是所謂的反向傳播怎樣繼續反向傳遞下去呢?這就要提到鏈式法則。其實質為,本來y對x的求導,可以通過引入中間變量z來實現,如下圖所示:
這樣,y對x的導數等價於y對z的導數乘以z對x的偏導。當輸入為多維時則有下麵的公式:
如此,我們可以得到每一層函數的導數,這樣可以得到每層函數的w權重應當調整的步長,優化權重參數。
由於函數的導數很多,例如resnet等網絡已經達到100多層函數,所以為區別傳統的機器學習,我們稱其為深度學習。
深shen度du學xue習xi隻zhi是shi受shou到dao神shen經jing科ke學xue的de啟qi發fa,所suo以yi稱cheng為wei神shen經jing網wang絡luo,但dan實shi質zhi上shang就jiu是shi上shang麵mian提ti到dao的de多duo層ceng函han數shu前qian向xiang運yun算suan得de到dao分fen類lei值zhi,訓xun練lian時shi根gen據ju實shi際ji標biao簽qian分fen類lei取qu損sun失shi函han數shu最zui小xiao化hua後hou,根gen據ju隨sui機ji梯ti度du下xia降jiang法fa來lai優you化hua各ge層ceng函han數shu的de權quan重zhong參can數shu。人ren臉lian識shi別bie也ye是shi這zhe麼me一yi個ge流liu程cheng。以yi上shang我wo們men初chu步bu過guo完wan多duo層ceng函han數shu的de參can數shu調tiao整zheng,但dan函han數shu本ben身shen應ying當dang如ru何he設she計ji呢ne?
四、基於CNN卷積神經網絡進行人臉識別
我們先從全連接網絡談起。Google的TensorFlow遊樂場裏可以直觀的體驗全連接神經網絡的威力,這是遊樂場的網址:http://playground.tensorflow.org/,瀏覽器裏就可以做神經網絡訓練,且過程與結果可視化。如下圖所示:

這個神經網絡遊樂場共有1000個訓練點和1000個測試點,用於對4種不同圖案劃分出藍色點與黃色點。DATA處可選擇4種不同圖案。
整個網絡的輸入層是FEATURES(待解決問題的特征),例如x1和x2表示垂直或者水平切分來劃分藍色與黃色點,這是最容易理解的2種劃分點的方法。其餘5種其實不太容易想到,這也是傳統的專家係統才需要的,實際上,這個遊樂場就是為了演示,1、好的神經網絡隻用最基本的x1,x2這樣的輸入層FEATURES就可以完美的實現;2、即使有很多種輸入特征,我們其實並不清楚誰的權重最高,但好的神經網絡會解決掉這個問題。
隱層(HIDDEN LAYERS)keyisuiyishezhicengshu,meigeyincengkeyishezhishenjingyuanshu。shijishangshenjingwangluobingbushizaijisuanlizugoudeqingkuangxia,cengshuyueduoyuehaohuozhemeicengshenjingyuanyueduoyuehao。haodeshenjingwangluojiagoumoxingshihennanzhaodaode。benwenhoumianwomenhuizhongdianjiangjigeCNN經典網絡模型。然而,在這個例子中,多一些隱層和神經元可以更好地劃分。
epoch是訓練的輪數。紅色框出的loss值是衡量訓練結果的最重要指標,如果loss值一直是在下降,比如可以低到0.01這樣,就說明這個網絡訓練的結果好。loss也可能下降一會又突然上升,這就是不好的網絡,大家可以嚐試下。learning rate初始都會設得高些,訓練到後麵都會調低些。Activation是激勵函數,目前CNN都在使用Relu函數。
了解了神經網絡後,現在我們回到人臉識別中來。每一層神經元就是一個f函數,上麵的四層網絡就是f1(f2(f3(f4(x))))。然(ran)而(er),就(jiu)像(xiang)上(shang)文(wen)所(suo)說(shuo),照(zhao)片(pian)的(de)像(xiang)素(su)太(tai)多(duo)了(le),全(quan)連(lian)接(jie)網(wang)絡(luo)中(zhong)任(ren)意(yi)兩(liang)層(ceng)之(zhi)間(jian)每(mei)兩(liang)個(ge)神(shen)經(jing)元(yuan)都(dou)需(xu)要(yao)有(you)一(yi)次(ci)計(ji)算(suan)。特(te)別(bie)之(zhi)前(qian)提(ti)到(dao)的(de),複(fu)雜(za)的(de)分(fen)類(lei)依(yi)賴(lai)於(yu)許(xu)多(duo)層(ceng)函(han)數(shu)共(gong)同(tong)運(yun)算(suan)才(cai)能(neng)達(da)到(dao)目(mu)的(de)。當(dang)前(qian)的(de)許(xu)多(duo)網(wang)絡(luo)都(dou)是(shi)多(duo)達(da)100層以上,如果每層都有3*100*100個神經元,可想而知計算量有多大!於是CNN卷積神經網絡應運而生,它可以在大幅降低運算量的同時保留全連接網絡的威力。
CNN認為可以隻對整張圖片的一個矩形窗口做全連接運算(可稱為卷積核),滑動這個窗口以相同的權重參數w遍曆整張圖片後,可以得到下一層的輸入,如下圖所示:

CNN中zhong認ren為wei同tong一yi層ceng中zhong的de權quan重zhong參can數shu可ke以yi共gong享xiang,因yin為wei同tong一yi張zhang圖tu片pian的de各ge個ge不bu同tong區qu域yu具ju有you一yi定ding的de相xiang似si性xing。這zhe樣yang原yuan本ben的de全quan連lian接jie計ji算suan量liang過guo大da問wen題ti就jiu解jie決jue了le,如ru下xia圖tu所suo示shi:

結合著之前的函數前向運算與矩陣,我們以一個動態圖片直觀的看一下前向運算過程:

這裏卷積核大小與移動的步長stride、輸出深度決定了下一層網絡的大小。同時,核大小與stride步長在導致上一層矩陣不夠大時,需要用padding來補0(如上圖灰色的0)。以上就叫做卷積運算,這樣的一層神經元稱為卷積層。上圖中W0和W1表示深度為2。
CNN卷juan積ji網wang絡luo通tong常chang在zai每mei一yi層ceng卷juan積ji層ceng後hou加jia一yi個ge激ji勵li層ceng,激ji勵li層ceng就jiu是shi一yi個ge函han數shu,它ta把ba卷juan積ji層ceng輸shu出chu的de數shu值zhi以yi非fei線xian性xing的de方fang式shi轉zhuan換huan為wei另ling一yi個ge值zhi,在zai保bao持chi大da小xiao關guan係xi的de同tong時shi約yue束shu住zhu值zhi範fan圍wei,使shi得de整zheng個ge網wang絡luo能neng夠gou訓xun練lian下xia去qu。在zai人ren臉lian識shi別bie中zhong,通tong常chang都dou使shi用yongRelu函數作為激勵層,Relu函數就是max(0,x),如下所示:

可見 Relu的計算量其實非常小!
CNN中還有一個池化層,當某一層輸出的數據量過大時,通過池化層可以對數據降維,在保持住特征的情況下減少數據量,例如下麵的4*4矩陣通過取最大值降維到2*2矩陣:

上圖中通過對每個顏色塊篩選出最大數字進行池化,以減小計算數據量。
通常網絡的最後一層為全連接層,這樣一般的CNN網絡結構如下所示:

CONV就是卷積層,每個CONV後會攜帶RELU層。這隻是一個示意圖,實際的網絡要複雜許多。目前開源的Google FaceNet是采用resnet v1網絡進行人臉識別的,關於resnet網絡請參考論文https://arxiv.org/abs/1602.07261,其完整的網絡較為複雜,這裏不再列出,也可以查看基於TensorFlow實現的Python代碼https://github.com/davidsandberg/facenet/blob/master/src/models/inception_resnet_v1.py,注意slim.conv2d含有Relu激勵層。
以上隻是通用的CNN網絡,由於人臉識別應用中不是直接分類,而是有一個注冊階段,需要把照片的特征值取出來。如果直接拿softmax分(fen)類(lei)前(qian)的(de)數(shu)據(ju)作(zuo)為(wei)特(te)征(zheng)值(zhi)效(xiao)果(guo)很(hen)不(bu)好(hao),例(li)如(ru)下(xia)圖(tu)是(shi)直(zhi)接(jie)將(jiang)全(quan)連(lian)接(jie)層(ceng)的(de)輸(shu)出(chu)轉(zhuan)化(hua)為(wei)二(er)維(wei)向(xiang)量(liang),在(zai)二(er)維(wei)平(ping)麵(mian)上(shang)通(tong)過(guo)顏(yan)色(se)表(biao)示(shi)分(fen)類(lei)的(de)可(ke)視(shi)化(hua)表(biao)示(shi):

可見效果並不好,中間的樣本距離太近了。通過centor loss方法處理後,可以把特征值間的距離擴大,如下圖所示:

這樣取出的特征值效果就會好很多。
實際訓練resnet v1網絡時,首先需要關注訓練集照片的質量,且要把不同尺寸的人臉照片resize到resnet1網絡首層接收的尺寸大小。另外除了上麵提到的學習率和隨機梯度下降中每一批batchsize圖片的數量外,還需要正確的設置epochsize,因為每一輪epoch應當完整的遍曆完訓練集,而batchsize受限於硬件條件一般不變,但訓練集可能一直在變大,這樣應保持epochsize*batchsize接近全部訓練集。訓練過程中需要密切關注loss值是否在收斂,可適當調節學習率。
最後說一句,目前人臉識別效果的評價唯一通行的標準是LFW(即Labeled Faces in the Wild),它包含大約6000個不同的人的12000張(zhang)照(zhao)片(pian),許(xu)多(duo)算(suan)法(fa)都(dou)依(yi)據(ju)它(ta)來(lai)評(ping)價(jia)準(zhun)確(que)率(lv)。但(dan)它(ta)有(you)兩(liang)個(ge)問(wen)題(ti),一(yi)是(shi)數(shu)據(ju)集(ji)不(bu)夠(gou)大(da),二(er)是(shi)數(shu)據(ju)集(ji)場(chang)景(jing)往(wang)往(wang)與(yu)真(zhen)實(shi)應(ying)用(yong)場(chang)景(jing)並(bing)不(bu)匹(pi)配(pei)。所(suo)以(yi)如(ru)果(guo)某(mou)個(ge)算(suan)法(fa)稱(cheng)其(qi)在(zai)LFW上的準確率達到多麼的高,並不能反應其真實可用性。
特別推薦
- 噪聲中提取真值!瑞盟科技推出MSA2240電流檢測芯片賦能多元高端測量場景
- 10MHz高頻運行!氮矽科技發布集成驅動GaN芯片,助力電源能效再攀新高
- 失真度僅0.002%!力芯微推出超低內阻、超低失真4PST模擬開關
- 一“芯”雙電!聖邦微電子發布雙輸出電源芯片,簡化AFE與音頻設計
- 一機適配萬端:金升陽推出1200W可編程電源,賦能高端裝備製造
技術文章更多>>
- 築基AI4S:摩爾線程全功能GPU加速中國生命科學自主生態
- 一秒檢測,成本降至萬分之一,光引科技把幾十萬的台式光譜儀“搬”到了手腕上
- AI服務器電源機櫃Power Rack HVDC MW級測試方案
- 突破工藝邊界,奎芯科技LPDDR5X IP矽驗證通過,速率達9600Mbps
- 通過直接、準確、自動測量超低範圍的氯殘留來推動反滲透膜保護
技術白皮書下載更多>>
- 車規與基於V2X的車輛協同主動避撞技術展望
- 數字隔離助力新能源汽車安全隔離的新挑戰
- 汽車模塊拋負載的解決方案
- 車用連接器的安全創新應用
- Melexis Actuators Business Unit
- Position / Current Sensors - Triaxis Hall
熱門搜索
微波功率管
微波開關
微波連接器
微波器件
微波三極管
微波振蕩器
微電機
微調電容
微動開關
微蜂窩
位置傳感器
溫度保險絲
溫度傳感器
溫控開關
溫控可控矽
聞泰
穩壓電源
穩壓二極管
穩壓管
無焊端子
無線充電
無線監控
無源濾波器
五金工具
物聯網
顯示模塊
顯微鏡結構
線圈
線繞電位器
線繞電阻




