鮑毛毛 茅廷 陳宇珽 方曉 邱媛媛
摘要:近年來,隨著人工智能的飛速發(fā)展,深度學(xué)習(xí)領(lǐng)域也得到了極大關(guān)注。卷積神經(jīng)網(wǎng)路是深度學(xué)習(xí)研究領(lǐng)域中的一個(gè)重要方向。然而現(xiàn)有的卷積神經(jīng)網(wǎng)路模型在卷積核層面只能處理二維數(shù)據(jù)。鑒于此目的,該文提出四元數(shù)卷積神經(jīng)網(wǎng)絡(luò)模型(Quaternions Convolutional Neural Network,QCNN),目的是在卷積核層面可以處理三維數(shù)據(jù),充分挖掘圖像信息。該文首先介紹了四元數(shù)神經(jīng)元模型,然后提出了四元數(shù)感受野模型、四元數(shù)卷積神經(jīng)網(wǎng)絡(luò)的輸入和四元數(shù)特征圖生成模型,創(chuàng)建了四元數(shù)卷積神經(jīng)網(wǎng)絡(luò),并層次遞進(jìn)的構(gòu)建了四元數(shù)卷積神經(jīng)網(wǎng)絡(luò)模型的拓?fù)浣Y(jié)構(gòu),最后用四元數(shù)BP算法訓(xùn)練學(xué)習(xí)整個(gè)網(wǎng)絡(luò)。QCNN將CNN的數(shù)據(jù)處理從2維擴(kuò)展到3維,并利用四元數(shù)的代數(shù)幾何理論,充分融合不同維度的特征信息。
關(guān)鍵詞:卷積神經(jīng)網(wǎng)路;四元數(shù);四元數(shù)編碼
中圖分類號(hào):TP393 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)31-0269-04
1 緒論
近年來,隨著人工智能的飛速發(fā)展,深度學(xué)習(xí)領(lǐng)域也得到了極大關(guān)注。深度學(xué)習(xí)是模式識(shí)別和機(jī)器學(xué)習(xí)研究領(lǐng)域中的一個(gè)新的方向。其中卷積神經(jīng)網(wǎng)絡(luò)(Convolution Neural Network ,CNN)通過對(duì)樣本的自動(dòng)學(xué)習(xí),根據(jù)系統(tǒng)需要解決問題的復(fù)雜度,抽取樣本的局部特征計(jì)算比較,從而推理形成一個(gè)自動(dòng)學(xué)習(xí)特征的識(shí)別系統(tǒng)。Cire?an等利用multi-stage卷積神經(jīng)網(wǎng)絡(luò)識(shí)別分類[1]。這種方法僅僅以圖像為單位,沒有利用視頻中每一幀的關(guān)聯(lián)信息。Karpathy介紹了通過改變第一個(gè)卷積層的結(jié)構(gòu),使它可以接受多個(gè)幀作為輸入,然后隱層融合特征[2]。但是這些都是基于傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),并沒有改變神經(jīng)元和特征圖的傳導(dǎo)方式,對(duì)于信息的融合并不是特別充分。
基于四元數(shù)對(duì)彩色圖像的識(shí)別技術(shù)已經(jīng)得到一定發(fā)展和實(shí)際應(yīng)用,最廣泛的做法是將彩色圖像的RGB通道編碼在四元數(shù)的三個(gè)虛軸上,從四元數(shù)理論上做數(shù)學(xué)分析。郎方年等和黎云漢等[3-4]將四元數(shù)主成分分析(Quaternion principal component analysis, QPCA) 應(yīng)用于彩色人臉識(shí)別; Lu等[5]基于四元數(shù)理論提出了局部四元數(shù) Gabor二值模塊描述子的算法, 并且在文中和文獻(xiàn) [35]中的算法進(jìn)行了對(duì)比; Ding 等[6]利用四元數(shù)K-L變化(Quaternion K-L Transform)和仿生模式識(shí)別方法(Biomimetic Pattern Recognition)進(jìn)行人臉識(shí)別; Sun 等[7]基于QPCA提出了兩種彩色人臉識(shí)別的算法, 分別是基于四元數(shù)的二維PCA (2D Principal component analysis, 2DPCA)和基于四元數(shù)的雙向PCA (Quaternion bidirectional PCA, QBDPCA)。另外,也有將四元數(shù)拓展到BP神經(jīng)網(wǎng)絡(luò)的研究和應(yīng)用[8]。而且,有一些研究者已經(jīng)基于克利福德(Clifford)代數(shù)提出克利福德神經(jīng)網(wǎng)絡(luò)(CliffordNeuralNetworks)。目的是為四元數(shù)以及四元數(shù)神經(jīng)網(wǎng)絡(luò)建立一個(gè)統(tǒng)一的理論基礎(chǔ)[9]。
鑒于以上背景,本文基于四元數(shù)理論框架和卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),提出了四元數(shù)卷積神經(jīng)網(wǎng)絡(luò)模型。
2 系統(tǒng)結(jié)構(gòu)
傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)輸入只能是一個(gè)灰度圖,所以它的輸入和卷積核都是標(biāo)量,只能是2維數(shù)據(jù)的輸入,這樣丟失了數(shù)據(jù)不同維度之間的相關(guān)性,損失了大量信息。在彩色圖像的各種表示方法中,目前四元數(shù)的表示方法頗為流行,可以將彩色圖像的RGB通道編碼在四元數(shù)的三個(gè)虛軸上。結(jié)合傳統(tǒng)CNN和四元數(shù)理論,本文提出了一種基于四元數(shù)的卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),主要思想是將輸入和卷積核都擴(kuò)展為四元數(shù),利用四元數(shù)的性質(zhì)進(jìn)行前向和反饋,訓(xùn)練整個(gè)四元數(shù)卷積神經(jīng)網(wǎng)絡(luò)。
四元數(shù)卷積神經(jīng)網(wǎng)絡(luò)模型如圖1所示,本文會(huì)將網(wǎng)絡(luò)模型分為四元數(shù)神經(jīng)元模型,四元數(shù)感受野模型、四元數(shù)卷積神經(jīng)網(wǎng)絡(luò)的輸入、四元數(shù)特征圖生成模型、四元數(shù)卷積神經(jīng)網(wǎng)絡(luò)的下采樣和全連接介紹,并相應(yīng)闡述它的拓?fù)浣Y(jié)構(gòu),最后介紹四元數(shù)卷積神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)算法。
2.1 四元數(shù)代數(shù)和幾何理論
四元數(shù)代數(shù)和幾何理論是四元數(shù)卷積神經(jīng)網(wǎng)絡(luò)的理論基礎(chǔ),本小節(jié)先介紹四元數(shù)的代數(shù)定義,再介紹四元數(shù)三維空間的幾何理論。
四元數(shù)是復(fù)數(shù)的推廣,將復(fù)數(shù)的一個(gè)虛部擴(kuò)展為三個(gè)虛部,其定義如下:
[q=qr+qii+qjj+qkk],[q∈K4] (1)
其中,[qr]為[q]的實(shí)部,記為[Req=qr],[qii+qjj+qkk]為[q]的虛部,記作[Imq=qii+qjj+qkk],[K4]表示四元數(shù)集合。
三個(gè)虛部滿足如下法則:
[i2=j2=k2=-1] (2)
[ij=-ji=k;jk=-kj=i;ki=-ik=j] (3)
四元數(shù)共軛的定義位為
[q*r=qr,-w=qr-qii-qjj-qkk] (4)
四元數(shù)的基本性質(zhì)與實(shí)復(fù)數(shù)稍有些區(qū)別。
1. 純四元數(shù)定義為,四元數(shù)[q]的實(shí)部[qr]為0,[q∈I],[I]表示純四元數(shù)集合。
2. 四元數(shù)相等定義為:兩個(gè)四元數(shù)有相等的實(shí)部和虛部。
3. 兩個(gè)四元數(shù)的和差定義為其系數(shù)做代數(shù)相加減:
[q1±q2=qr1±qr2,v±w]
[=qr1±qr2,qi1±qi2,qj1±qj2,qk1±qk2] (5)
4. 實(shí)數(shù)與一個(gè)四元數(shù)的乘積等于系數(shù)相乘。
[K*q=K*qr+K*qii+K*qjj+K*qkk] (6)
5. 兩個(gè)四元數(shù)的乘法定義為:
[q1?q2=qr1qr2-v?w,qr1w+qr2v+v×w] (7)
其中[?和×]分別代表向量的點(diǎn)乘和叉乘。
6. 四元數(shù)點(diǎn)乘類似于復(fù)數(shù)的點(diǎn)乘,定義如下:
[q1☉q2=qr1qr2, qi1qi2,qj1qj2,qk1qk2] (8)
7. 四元數(shù)模定義為:
[q=q2r+q2i+q2j+q2k] (9)
利用四元數(shù)理論可以很好的描述3D空間的幾何變換。3D空間的幾何變換共有三種形式:平移,膨脹和旋轉(zhuǎn)。
(1) 平移:坐標(biāo)x和y為兩個(gè)純虛四元數(shù),三個(gè)虛軸可以編碼到3D空間的三維向量。那么x、y的和:[x+y],即是坐標(biāo)x在3D空間通過坐標(biāo)y的偏移,類似于2D空間的向量相加方式。
(2) 膨脹:膨脹操作也類似于2D空間中的方法:[bx]代表向量x通過實(shí)數(shù)b縮放。
(3) 旋轉(zhuǎn):旋轉(zhuǎn)方法[g]被定義為:
[g=w?v?w*] (10)
其中[w]滿足模為1的四元數(shù)([x=1]),[v]是一個(gè)模為1的純虛四元數(shù)([v=1])。四元數(shù)[w]被定義為:
[w=cosα+sinαu] (11)
這其中[α]是一個(gè)滿足[α≤π]的角度,[u]是一個(gè)滿足[u=1]純虛四元數(shù)。公式總可以用[u]和[v]表示,無論[u]和[v]是否正交。所以對(duì)于旋轉(zhuǎn)[g]的表示,公式可以重寫為:
[g=cos2αv+sin2αu×v] (12)
這個(gè)公式體現(xiàn)出向量[v]可以通過向量[u]旋轉(zhuǎn)2[α]角度得到。如圖2所示。
如果[u]和[v]非正交,則公式可以重寫為:
[ g=w?v1+v2?w*]
=[w?v1?w*+w?v2?w*]
=[v1+sin2αu×v2+cos2αv2], (13)
其中[v1]和[v2]是向量[v]的兩個(gè)向量分量,滿足[v1]∥[u],[v1]⊥[u]。公式也體現(xiàn)出向量[v]可以通過向量[u]旋轉(zhuǎn)2[α]角度得到
2.2 四元數(shù)神經(jīng)元模型
相比較于傳統(tǒng)的神經(jīng)元模型,四元數(shù)神經(jīng)元將每個(gè)點(diǎn)擴(kuò)展為四元數(shù),如圖3所示。對(duì)于一個(gè)輸入四元數(shù)數(shù)據(jù)[x=pii+pjj+pkk],[x∈I],其中實(shí)部[pr]為0,[I]表示純虛四元數(shù)集合。四元數(shù)神經(jīng)元的權(quán)值[w=qr+qii+qjj+qkk],[w?K4],[K4]表示四元數(shù)集合,對(duì)應(yīng)此四元數(shù)神經(jīng)元的輸出[y]:
[y=fs] (14)
其中[s]表示為:
[s=w?x?w*w±b=1q2r+q2i+q2j+q2kq2rpi+q2ipi-q2jpi-q2kpi+2qrqjpk+2qiqjpj+2qiqkpk-2qrqkpji+q2rpj-q2ipj+q2jpj-q2kpj+2qrqkpi+2qiqjpi+2qjqkpk-2qrqipkj+q2rpk-q2ipk-q2jpk+q2kpk+2qrqipj+2qiqkpi+2qjqkpj-2qrqjpik±b] (15)
從公式中可以反映出輸入的三維信息[x]通過四元數(shù)的乘法規(guī)則,在不同的虛軸上進(jìn)行了充分的融合。輸出神經(jīng)元y需要激活函數(shù)產(chǎn)生一個(gè)非線性狀態(tài),該文使用的激活函數(shù)為Sigmoid函數(shù):
[fs=fsii+fsjj+fskk],
[fx=11+e-x]。 (16)
2.3 四元數(shù)卷積神經(jīng)網(wǎng)絡(luò)的感受野模型
四元數(shù)感受野(以下簡(jiǎn)稱感受野)模型如圖4所示,輸入矩陣A的每個(gè)點(diǎn)都是一個(gè)純虛四元數(shù),圖中用[I]表示,大小為4*4,感受野即為四元數(shù)卷積核,圖中樣例的感受野大小是3*3,每個(gè)點(diǎn)是四元數(shù),用[K4]表示。圖4中表示矩陣A中左上角的3*3矩陣和感受野做運(yùn)算,生成B中的第一個(gè)四元數(shù)像素點(diǎn)。運(yùn)算方法如下,由于圖像卷積中會(huì)將模板旋轉(zhuǎn)180度,因此這里先將感受野旋轉(zhuǎn)180度,將旋轉(zhuǎn)后的感受野矩陣和輸入A中虛線框矩陣的對(duì)應(yīng)點(diǎn)做公式(15)運(yùn)算,矩陣大小為3*3,所以對(duì)公式(15)一共做了9次運(yùn)算,得到9個(gè)純虛四元數(shù):q1、q2、…、q9,然后求這9個(gè)純虛四元數(shù)的和,再做一個(gè)參數(shù)為[b]的四元數(shù)平移運(yùn)算,即可得到輸出信號(hào)[s]。公式(17)表達(dá)了上述過程。
[s=w?x?w*|w|+b] (17)
其中[w]為感受野中的每個(gè)四元數(shù),[x]為輸入A虛線框矩陣中的每個(gè)像素點(diǎn),[s]是輸出信號(hào)矩陣[S]中的一個(gè)像素點(diǎn)。為了最大程度提取圖像的低尺度全局信息,我們不會(huì)對(duì)邊界處理,即類似于數(shù)字圖像處理中的內(nèi)卷積操作,所以輸出矩陣大小應(yīng)該為[n-k+12],其中[n]為輸入矩陣大小,[k]表示感受野矩陣大小。對(duì)應(yīng)圖4中,輸入圖像矩陣[n=4],感受野矩陣[k=3],所以輸出矩陣大小為[2*2],每個(gè)輸出信號(hào)矩陣相比于輸入矩陣A在橫向和縱向各減少兩個(gè)像素點(diǎn)。最后對(duì)矩陣[S]中的每個(gè)純虛四元數(shù)像素點(diǎn)做非線性變換,如公式(18)所示。
[Y]=[ FS] (18)
其中函數(shù)[F]表示對(duì)于矩陣[S]中每個(gè)純虛四元數(shù)像素點(diǎn)做公式(16)運(yùn)算,輸出[Y]即是特征矩陣B。
2.4 四元數(shù)卷積神經(jīng)網(wǎng)絡(luò)的輸入
四元數(shù)卷積神經(jīng)網(wǎng)絡(luò)的輸入如圖5所示。輸入是一個(gè)純虛四元數(shù)矩陣,由A表示,通過2.2節(jié)感受野模型中計(jì)算特征矩陣B的方式,將感受野在輸入四元數(shù)矩陣上滑動(dòng),由n個(gè)四元數(shù)卷積核[G1G2…Gn],生成n個(gè)輸出信號(hào)矩陣[S1S2…Sn],再對(duì)每個(gè)輸出信號(hào)矩陣做非線性變換,得到特征矩陣[B1B2…Bn]。通過這個(gè)模型,我們可以由一個(gè)輸入得到任意多張四元數(shù)特征圖用于QCNN隱層的訓(xùn)練學(xué)習(xí)。
2.5 四元數(shù)特征圖生成模型
四元數(shù)隱層的卷積層輸入包含多個(gè)特征矩陣,生成一張?zhí)卣骶仃嚨倪^程如圖6所示。對(duì)于每一個(gè)輸入矩陣[An],都有一個(gè)四元數(shù)卷積核[Gn],并用3.2四元數(shù)感受野模型中計(jì)算輸出信號(hào)矩陣的方法得到[Sn]矩陣,[Sn]矩陣中每個(gè)點(diǎn)都是應(yīng)用公式(17)將四元數(shù)卷積核在輸入特征矩陣中滑動(dòng)計(jì)算得到。所以輸入有n個(gè)矩陣,則將生成n個(gè)輸出信號(hào)矩陣:[S1、S2、…、Sn]。將這n個(gè)輸出信號(hào)矩陣相加得到矩陣[S],對(duì)矩陣[S]中的每個(gè)純虛四元數(shù)像素點(diǎn)做非線性變換,如公式(19)所示:
[Y=FS1+S2+…+Sn]=[ FS] (19)
如果我們通過n張輸入特征圖生成m張輸出特征圖,則可對(duì)生成一張四元數(shù)特征圖的過程重復(fù)m次運(yùn)算,四元數(shù)卷積核的數(shù)量為n*m。生成特征圖的過程,其實(shí)是特征提取的過程,我們稱之為四元數(shù)卷積層。
2.6 四元數(shù)卷積神經(jīng)網(wǎng)絡(luò)下采樣和全連接
傳統(tǒng)卷積神經(jīng)網(wǎng)絡(luò)為了變換不變性、模擬視皮層的類似側(cè)抑制效應(yīng)和減少參數(shù)防止過擬合而加入下采樣層,據(jù)此,我們提出四元數(shù)下采樣,具體做法是將四元數(shù)卷積層后得到的四元數(shù)特征圖,分別提取三個(gè)虛軸矩陣,即得到三個(gè)標(biāo)量矩陣,然后對(duì)各個(gè)標(biāo)量矩陣做傳統(tǒng)的下采樣操作。這個(gè)過程我們稱之為四元數(shù)下采樣層。
將多個(gè)四元數(shù)卷積層和四元數(shù)下采樣層組合即可組成四元數(shù)卷積神經(jīng)網(wǎng)絡(luò)模型。最后是四元數(shù)全連接層,將最末下采樣層得到的特征矩陣變換為1*kn的特征向量,n為特征矩陣純虛四元數(shù)像素點(diǎn)的個(gè)數(shù),k為四元數(shù)特征圖的數(shù)量。例如最后下采樣層有3張?zhí)卣鲌DB1、B2,B3,每個(gè)特征圖大小為3*3,每個(gè)特征圖中的每個(gè)點(diǎn)均為純虛四元數(shù),則將每個(gè)特征矩陣按行排列變成1*9的向量,三個(gè)特征圖拼接,則為1*27的向量,特征向量的每個(gè)點(diǎn)為純虛四元數(shù),用[xi]表示,i為對(duì)應(yīng)列。如果是2分類,則輸出應(yīng)有兩個(gè)神經(jīng)元,用[sj]表示,j為對(duì)應(yīng)輸出神經(jīng)元序號(hào)。權(quán)值[wji]大小為27*2的矩陣,矩陣的每個(gè)點(diǎn)為四元數(shù)。如圖7所示。
圖7 四元數(shù)全連接示意圖
圖中[xi]即表示最后的特征向量,[wji]是第j個(gè)輸出神經(jīng)元和第i個(gè)輸入神經(jīng)元的權(quán)值,[yj]表示輸出標(biāo)簽。整個(gè)過程用公式表達(dá)為:
[sj=iwji?xi?wji*|wji|±b],
[yj=fsj],
[fs=fsii+fsjj+fskk],
[fx=11+e-x], (20)
得到輸出表示第j個(gè)神經(jīng)元的輸出四元數(shù)標(biāo)簽,輸出四元數(shù)標(biāo)簽也為純虛四元數(shù)。
2.7 四元數(shù)卷積神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)算法
我們采用四元數(shù)BP反向傳播算法來訓(xùn)練我們的網(wǎng)絡(luò),定義E是網(wǎng)絡(luò)輸出值和目標(biāo)標(biāo)簽值的誤差,計(jì)算公式為:
[E=12ndn-yn2=12nv∈i,j,kdvn-yvn2] (21)
其中[dvn]表示當(dāng)前樣本n個(gè)類別的實(shí)際標(biāo)簽,[yvn]表示通過公式(20)計(jì)算的網(wǎng)絡(luò)輸出值。參數(shù)p的更新方式為通過誤差E相對(duì)p的梯度:
[pnew=pold+ Δp]
[Δp=-η.?E?p] (22)
此處p是QCNN的各個(gè)網(wǎng)絡(luò)層的參數(shù)w和b。則輸出層的更新方式為:
[ΔbL=yn-dn⊙f'sL]
[ΔwL=1|wL|ΔbLwL?yL-1?w*L|wL|2wL-2bL?wL?y*L-1] (23)
此處[wL,bL,yL,sL]表示輸出層的權(quán)值、偏置、輸出值和輸入信號(hào)。[yL-1]表示輸出層上一層的輸出值即最后一個(gè)下采樣層的輸出。其中:
[f's??fsi?sii+ ?fsj?sjj+ ?fsk?skk] (24)
隱層的權(quán)值更新公式:
[Δbl=l+1w*l+1?Δbl+1?wl+1|wl+1|⊙f'sl]
[Δwl=1|wl|Δblwl?yl-1?w*l|wl|2wl-2bl?wl?y*l-1] (25)
此處[wl,bl,yl,sl]表示第[l]層的權(quán)值、偏置、輸出值和輸入信號(hào)。
3 結(jié)論
本文提出了四元數(shù)卷積神經(jīng)網(wǎng)絡(luò)模型,首先介紹了四元數(shù)的代數(shù)和幾何理論,然后從四元數(shù)神經(jīng)元、四元數(shù)感受野、四元數(shù)卷積神經(jīng)網(wǎng)絡(luò)的輸入、四元數(shù)特征圖生成模型、四元數(shù)卷積神經(jīng)網(wǎng)絡(luò)的下采樣層和全連接,層次遞進(jìn)地介紹了QCNN模型的拓?fù)浣Y(jié)構(gòu),最后介紹了QCNN的學(xué)習(xí)算法。四元數(shù)卷積神經(jīng)網(wǎng)絡(luò)可以處理三維數(shù)據(jù),并利用四元數(shù)原理,很好的融合了不同維度的相關(guān)性。
參考文獻(xiàn):
[1] Cire?an D, Meier U, Masci J, et al. Multi-column deep neural network for traffic sign classification[J]. Neural Networks, 2012, 32: 333-338.
[2] Karpathy A, Toderici G, Shetty S, et al. Large-scale video classification with convolutional neural networks[C]//Proceedings of the IEEE conference on Computer Vision and Pattern Recognition. 2014: 1725-1732.
[3] Yunhan L, Shanan Z, Lei Z. Quaternion principal component analysis algorithm for face recognition[J]. Signal Processing, 2007, 23(2):214-216.
[4] Lang F N, Zhou J L, Yan B, et al. Obtain method of quaternion matrix orthogonal eigenvector set and its application in color face recognition[J]. Acta AutomaticaSinica, 2008, 34(2):121-129.
[5] Lu W, Xu Y, Yang X K, Song L. Local quaternionic Gabor binary patterns for color face recognition. In: Proceedings of the 2008 IEEE International Conference on Acoustics, Speech, and Signal Processing. Piscataway, USA: IEEE, 2008. 741?744.
[6] Ding L J, Feng H. Quaternion K-L transform and biomimetic pattern recognition approaches for color-face recognition. In: Proceedings of the 2009 IEEE International Conference on Intelligent Computing and Intelligent. Piscataway, USA: IEEE, 2009. 165?169
[7] Sun Y F, Chen S Y, Yin B C. Color face recognition Based on quaternion matrix representation. Pattern Recognition Letters, 2011,32(4):597?605
[8] P. Arena, R. Caponetto, L. Fortuna, G. Muscato and M.G. Xibilia, Quaternionic Multilayer Perceptrons for Chaotic Time Series Prediction, IEICE Transaction on Fundamentals of Electronics, Communications and Computer Sciences E79A(10) (1996), 1682-1688.
[9] S. Buchholz and G. Sommer, Introduction to neural computation in clifford algebra, and clifford algebra multilayer perceptrons, in: Geometric Computing with Clifford Algebras, G. Sommer, ed., ch. 12 and 13, Springer, 2001, pp. 291-314 and 315-334.