文/王同磊
在人工神經網絡這一領域的研究過程中,衍生出了深度學習這一概念。例如,多層感知器,也就是含多隱層的感知器,這一類就屬于深度的學習結構。深度學習是如何表示的呢?通常而言,是通過各種組合,將低層特征形成某種抽象特征,或者是屬性類別等,通過這些過程,將發現的數據以分布式特征進行表示。
2006年,Hinton等人首次將深度學習這一概念提出。他們基于(DBN),也就是深信度網這一概念,提出了一種訓練算法,稱為非監督貪心算法。這一算法為解決與深層結構等內容有關的優化類難題帶來可能性。并且據此又提出了自動編碼器這種深層結構。另外,由其他研究學者提出了例證,卷積神經這種網絡就是例證,它是首個真正意義上的正多層類型的學習算法。具體內容是依據空間的這種相對關系,從而減少參數,用以提高神經的訓練性能。
人臉識別這一技術,主流觀點認為,分兩部分:一為前端人臉活檢。這一技術支持iOS和安卓等程序平臺。具體過程是:用戶通過點頭或搖頭,以及眨眼等各種動作進行智能檢測,目的是確定機器設備前是真人人臉。二為基于后臺功能的人臉識別。這種技術以第一部分為基礎,在其基礎之上,獲取到全臉圖像之后,經過掃描,識別用戶的身份證,身份證頭像與前端活檢人像對比而后做出判斷,得出是否是同一人的結論。

圖1
活體檢測,通俗意義上理解,就是判斷人臉活檢這一過程中是真人臉還是靜態假臉,比如照片打印的人臉,電腦中的人臉,甚至說是面具等;人臉活檢這項技術目前我們可以看到,經常應用在iOS、安卓等系統的移動平臺中,比如APP等。同時,由于這項對比技術運算量超級大,所以必須使用大量服務器支持,常見的是win平臺,國外也會使用Linux等平臺。
活檢的應用領域非常廣泛,我們熟知的應用場景有:銀行金融、各種支付以及安保門禁等。活體檢測通常是嵌套程序模塊使用。將人臉識別與活檢二者結合使用,成功的案例很多,比如實名認證等領域,避免了各種漏洞與攻擊。
實際上就是分類,用計算機語言說是1和0,也就是真和假,還有一種是多分類。前面提到的照片攻擊、面具攻擊,還有真人等。
首先我們從基礎開始說起,首先定義一個神經網絡。
在圖1中需要我們最先了解的是ωljk。k,位于右下角,它代表第k個神經元位于L-L層;L, 位于右上角,代表層數,即“輸入”與權重w這一項結合;j,位于右下角的,代表第j個神經元位于L層。
這么寫看起來好像比較奇怪,因為直覺上說,k在L之前,才是更符合我們認知的理解方式。但是后面我們可以看到,在這種處理方法之后,我們可以得到一種更簡潔的處理式子。比較而言,這種前后稍微顛倒下,也無所謂了,適應下就好了。
如圖2所示,除了權重w之外,我們還有 b和 a。
b是我們的偏差,a是我們的輸入向量經過激活函數之后的結果,也就是α=δ(z)。
在表現形式上,b跟a有這類似的特點:右上角的值是所在的層數;右下角數值,代表所在的神經元位置。據此,結合之前的公式,我們可以得出以下算式結論:

這個式子看起來好像復雜,但實際上很簡單,而且完全描述了我們剛才說的神經網絡的問題,當然,這里的αlj是其中的一個神經元,它位于第L層的第j個。
這個神經元的得來,就是從前一層L層的所有神經元,與與之對應的權重結合之后,所有的相加,經過激活函數得來的。
在矩陣中,我們要求的某個值,就是行與列對應位置的值相乘之后相加得到的。可以看出,k即對應的位置。例如,我們有公式

圖2

這個公式就是典型的矩陣相乘求值的公示,那么我們轉成矩陣相乘:
li=minj
可以把αlj理解成第l行第j列的值,那么我們采用矩陣相乘的方法來計算,就得到了:
αl=δ(ωlαl-1+bl)
下面,我們來總結一下,可以看到簡化的算式。并且很顯然,還能得出l與k顛倒的優點。為了更方便,我們設定:
于是,我們很輕松的得出αl=σ(zl)接下來,該backpropagation了,為了計算這一項,我們可以進行兩個假設。第一,代價方程寫為:

這里面,x代表輸入樣本點,n代表樣本數,y(x)代表輸出值,而αL(x)代表的輸出值是神經網絡。其中L代表的就是層數,神經網絡的,很明顯也是最后一層。
第一個將 remote pluse 應用到活體檢測中,多幀輸入
(交代下背景:在CVPR2014,Xiaobai Li已經提出了從人臉視頻里測量心率的方法)算法流程:
(1)通過 pluse 在頻域上分布不同先區分 活體 or 照片攻擊 (因為照片中的人臉提取的心率分布不同)
(2)若判別1結果是活體,再 cascade一個 紋理LBP 分類器,來區分 活體 or 屏幕攻擊(因為屏幕視頻中人臉心率分布與活體相近),如圖3所示。
Pros: 通常意義上,按照學術界的觀點,引入了新模態——心理信號,這是很大意義上的進步;從另一個角度而言,也就是工業發展的領域,加入做不到一步到位,還可以通過Cascade這一方式進行部署,這也是進步的。
Cons: 因為remote heart rate這一算法有它的局限性,所以結果來看,pulse-feature存在判別能力不足的弱點,加上顯示器里video的視頻中,人臉的pulse-feature方面是不是還存在比較細微的差別,這一方面還不確定,需要更進一步的驗證。
正面人臉圖像檢測方法

圖4
矩陣 Yi∈R64×64為第 i個個體的人臉圖像矩陣,Di 為第i個個體所有人臉圖像集合,Yi∈Di。正面人臉檢測公式為:

我們通過訓練深度神經網絡來進行人臉重建。loss函數為:

I代表第i個,k代表i中第k張。X^{0}代表的是訓練圖像,Y代表的是目標圖像。
深度的神經網絡,它包含三層。max pooling是與前兩層相接;全連接層是與第三層相接。與傳統統卷積神經網絡不同,我們的fi lters不共享權重(我們認為人臉的不同區域存在不同類型的特征)。以下是第l層的卷積層算式:經過這些計算,我們終于可以得出人像圖了。下面就是經過訓練之后,生成的canonical view:如圖4所示。

目前的研究水平,要想達到人臉識別和深度學習的全部結合,可以說路漫漫其修遠兮,還有很多探索空間。比如說雙胞胎識別,比如說妝前和妝后的識別,要達到一定的準確度,還存在一定難度。相信不久的將來人臉識別系統將在速度、可靠性、穩定性,成本取得更好的。從而能夠為人類的進步貢獻力量。