劉 鋼, 王 慧, 王新穎
(長春工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與工程學(xué)院, 長春 130012)
三維信息的快速增長是信息采集、 傳輸和存儲工具快速發(fā)展以及計(jì)算機(jī)社會化的結(jié)果[1]. 從波音、 空中客車等大型飛機(jī)制造公司到小型的模具制造公司, 都保存著許多數(shù)字化的產(chǎn)品模型[2], 各種三維模型數(shù)量龐大, 使得全自動三維模型識別技術(shù)[3]、 投影檢測算法[4]、 三維模型手繪檢索方法[5]等三維模型識別及檢索技術(shù)備受關(guān)注.
目前, 對三維模型的識別和檢索已有多種方法[6]. 傳統(tǒng)的三維模型識別算法: 一方面訓(xùn)練過程采用從三維原始模型中提取出幾何、 拓?fù)洹?外形、 紋理和顏色等低層形狀特征, 將其轉(zhuǎn)換為特征描述符, 然后再進(jìn)行描述符之間的相似度計(jì)算, 對標(biāo)簽樣本的泛化能力較差[7]; 另一方面, 對三維模型的形狀、 顏色和紋理等視覺特征相近的模型干擾較大, 整體精度不高[8].
近年來, 深度學(xué)習(xí)[9]在機(jī)械、 化工、 材料等領(lǐng)域迅速發(fā)展, 深度學(xué)習(xí)方法不僅適用于三維模型小數(shù)據(jù)集, 還可以應(yīng)用在復(fù)雜的三維模型大數(shù)據(jù)中[10]. 本文提出一種改進(jìn)的無監(jiān)督特性的稀疏降噪自編碼模型構(gòu)建深度神經(jīng)網(wǎng)絡(luò), 從而對三維模型信息進(jìn)行加工處理, 最后用softmax回歸處理得到最終的softmax分類器, 進(jìn)而對三維模型進(jìn)行分類識別. 結(jié)果表明, 與棧式自編碼神經(jīng)網(wǎng)絡(luò)和自學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)相比, 該方法識別性能更好.
自編碼(AE)[11]是一種多層前傳神經(jīng)網(wǎng)絡(luò), 通常使用一個輸入層、 一個隱藏層及一個輸出層. 設(shè)輸入樣本的向量表示為X, 隱藏層y和輸出層z的激活函數(shù)為
y=s(WX+b),z=s(W′Y+b′),
其中:s為softmax函數(shù);W為權(quán)值矩陣,b為偏置向量;W′=WT互為轉(zhuǎn)置;b′=b. 自編碼的學(xué)習(xí)目標(biāo)是輸出值hW,b(X)=(x1,x2,…,xn)T與輸入值X=(x1,x2,…,xn)T盡量相等, 對于一個包含m個樣本的數(shù)據(jù)集, 可以用受限的擬牛頓法求解神經(jīng)網(wǎng)絡(luò), 其損失函數(shù)為
JAE=JE+λJW.
(1)
式(1)由兩部分的和組成: 第一部分
是均方差項(xiàng),i為樣本的個數(shù),ti為隱藏單元i的激活值; 第二部分
是權(quán)重差值防止過優(yōu)化的正則化項(xiàng),i和j分別為權(quán)值矩陣行和列序號,n和d分別為權(quán)值矩陣行和列的最大值,λ表示調(diào)節(jié)參數(shù).
降噪自動編碼器(DA)[12]在訓(xùn)練時對輸入進(jìn)行污染, 使自動編碼器更具魯棒性, 更好地對存在噪聲的數(shù)據(jù)進(jìn)行編碼. 稀疏自動編碼器在訓(xùn)練自動編碼器時, 通常還可引入額外的約束, 限制隱層神經(jīng)元的激活數(shù)目, 使得對于一個樣本, 只有少部分隱層神經(jīng)元被激活, 在式(1)的基礎(chǔ)上加入相對熵后, 其損失函數(shù)為
JDA=JE+βJsparse,
(2)
其中
本文提出的改進(jìn)稀疏降噪自編碼(ISDAE)模型包含一個帶有稀疏性的降噪自編碼器和一個softmax分類器. 模型先要計(jì)算隱層權(quán)重W, 然后為了防止模型的過擬合, 采用受限的擬牛頓法計(jì)算JISDAE, 計(jì)算公式如下:
其中:αk表示隱藏層步長;pk表示向量方向;k表示迭代次數(shù). 算法描述如下:
1) 選取最初點(diǎn)W0, 存在誤差ε>0, 保留近期圖片中的某點(diǎn)迭代數(shù)目m(一般m=6);
2)k=0,H0=I,R=WJISDAE(W0);
4) 計(jì)算本次迭代的可行方向pk=-rk;
5) 如果步長αk>0, 則計(jì)算
6) 更新權(quán)重Wk+1=Wk+αkpk;
7) 如果k>m, 則保存近期的m次矢量, 并刪除(sk-m,yk-m);
8) 計(jì)算并保存sk=Wk+1-Wk和yk=f(Wk+1)-f(Wk);
9) 利用遞歸算法求得rk=Hkf(xk),k=k+1, 轉(zhuǎn)3).
訓(xùn)練模型時, 每次操作都需要Hk-m和rk, 經(jīng)多次實(shí)驗(yàn)驗(yàn)證表明,
其中:I表示輸入向量;sk表示相鄰兩次迭代權(quán)重之差;yk表示相鄰兩次迭代偏導(dǎo)之差;rk表示某次偏導(dǎo)值. 為達(dá)到使代價函數(shù)JISDAE的值縮小的目的, 需持續(xù)不斷地重復(fù)受限擬牛頓法的迭代步驟, 從而訓(xùn)練整個神經(jīng)網(wǎng)絡(luò)模型.
(11)
從而可得到一種更有效、 更簡單的表示方法. 本文用線性代數(shù)中的向量形式, 即分量的形式表示系統(tǒng)模型的激活函數(shù)
f([z1,z2,…,z400])=[f(z1),f(z2),…,f(z400)],
于是式(7)~(10)可化簡為
基于稀疏自編碼器和softmax分類器, 構(gòu)建一個含有一個隱藏層與一個最終 softmax分類器的稀疏降噪自編碼神經(jīng)網(wǎng)絡(luò), 如圖1所示. 步驟如下:
1) 數(shù)據(jù)預(yù)處理. 采用PSB中的三維模型標(biāo)準(zhǔn)庫[13]作為實(shí)驗(yàn)數(shù)據(jù)源, 對三維模型經(jīng)過平移、 旋轉(zhuǎn)和縮放, 將規(guī)范化后的數(shù)據(jù)進(jìn)行平行投影, 得到每個三維模型的投影三視圖, 同時將每張投影圖片進(jìn)行歸一化處理.
2) 構(gòu)建ISDAE模型. 采用自編碼恢復(fù)原始數(shù)據(jù)的原理, 獲取隱藏層的權(quán)值W1, 并得到隱藏層的輸出表達(dá)y.
3) 先用步驟2)的特性表達(dá)y作為softmax分類器的輸入數(shù)據(jù), 再用有污染的或插入噪聲的原始信息獲得softmax分類器的權(quán)值W0.
4) 預(yù)訓(xùn)練過程. 用步驟2),3)處理后得到的權(quán)值參數(shù)W0和W1表示網(wǎng)絡(luò)模型的初始化參數(shù), 通過網(wǎng)絡(luò)模型, 最終得到整個模型的損失函數(shù)JISDAE, 即預(yù)訓(xùn)練網(wǎng)絡(luò)模型.
5) 微調(diào)過程. 計(jì)算輸出層和隱含層權(quán)重參數(shù)W, 采用受限的擬牛頓法神經(jīng)網(wǎng)絡(luò)調(diào)整損失函數(shù)JISDAE.
圖1 基于ISDAE的網(wǎng)絡(luò)結(jié)構(gòu)Fig.1 Network structure based on ISDAE
在訓(xùn)練網(wǎng)絡(luò)模型時, 先將輸入數(shù)據(jù)經(jīng)過加污染插入噪聲處理, 并通過持續(xù)不斷地重復(fù)受限擬牛頓法的迭代步驟處理網(wǎng)絡(luò)得到網(wǎng)絡(luò)權(quán)值Wi, 從而得到隱藏層的輸入數(shù)據(jù). 數(shù)據(jù)依次經(jīng)過網(wǎng)絡(luò), 最終被抽象表示為隱藏單元的輸出y, 將y作為softmax分類器的輸入, 得到具有數(shù)字標(biāo)簽?zāi)芰Φ膮?shù)y; 將部分輸入數(shù)據(jù)的標(biāo)簽實(shí)際值與分類輸出結(jié)果進(jìn)行比較, 對分類錯誤的數(shù)值進(jìn)行逆變化傳播給編碼層, 微調(diào)整個網(wǎng)絡(luò)模型, 從而迭代優(yōu)化整個網(wǎng)絡(luò)的參數(shù), 最終獲得改進(jìn)的稀疏降噪自編碼特征提取模型, 并將該模型應(yīng)用于三維模型特征提取和識別.
圖2 由PSB數(shù)據(jù)庫中三維模型庫隨機(jī)選取的數(shù)據(jù)集Fig.2 Random selection of data sets from 3D model base in PSB database
對三維模型進(jìn)行預(yù)處理, 將每個模型進(jìn)行平移、 縮放和旋轉(zhuǎn)變換, 并提取模型的三視圖投影, 即正視圖、 側(cè)視圖和俯視圖, 如圖3所示.圖4為在ISDAE模型中加入少量噪聲后, 利用自編碼重構(gòu)原理訓(xùn)練學(xué)習(xí)得到隱藏層的網(wǎng)絡(luò)參數(shù)權(quán)值的可視化表示.
圖3 提取的三維模型三視圖Fig.3 Three views of extracted 3D model
圖4 特征的可視化表示Fig.4 Visual representation of features
圖5 3種算法的參數(shù)優(yōu)化性能比較Fig.5 Comparison of parameters optimization performance of three algorithms
在相同條件下, 用ISDAE模型選擇隨機(jī)梯度下降法、 受限的擬牛頓法和共軛梯度法, 對3種算法中JISDAE和W的優(yōu)化性能進(jìn)行比較, 結(jié)果如圖5所示. 由圖5可見, 本文的受限擬牛頓算法優(yōu)于其他兩種算法.
在分類實(shí)驗(yàn)中, 采用棧式自編碼神經(jīng)網(wǎng)絡(luò)(SAE)[12]、 自學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)(SL)[14]和改進(jìn)的稀疏降噪自編碼神經(jīng)網(wǎng)絡(luò)(ISDAE)3種方法, 比較這3種方法對三維模型的識別率.圖6為不同隱藏層節(jié)點(diǎn)數(shù)目對網(wǎng)絡(luò)系統(tǒng)的三維模型識別性能的比較結(jié)果. 其中, 網(wǎng)絡(luò)模型為采用6類數(shù)據(jù)集, 經(jīng)過20次實(shí)驗(yàn)取得的均值. 由圖6可見, 隨著隱藏層節(jié)點(diǎn)數(shù)的不斷降低, 三維模型識別性能呈上升趨勢, 當(dāng)隱藏層節(jié)點(diǎn)數(shù)為400時, 性能最優(yōu).
圖7為3種方法分別對6類和9類模型, 采用正視圖(A)和三視圖(B)時的分類平均識別率比較結(jié)果. 其中, 各網(wǎng)絡(luò)模型的輸入單元神經(jīng)元數(shù)量為729, 輸出單元神經(jīng)元數(shù)量為2 116, 隱藏層神經(jīng)元數(shù)量均為400. 由圖7可見: 當(dāng)有少量樣本時, 三視圖比正視圖各算法識別率均增加約3%; 隨著樣本數(shù)量的增加, ISDAE識別率差別較小, 有較強(qiáng)的去噪能力. 因此, 該模型對低質(zhì)量的數(shù)據(jù)有一定的泛化能力和魯棒性.
圖6 隱藏節(jié)點(diǎn)數(shù)對三維模型識別性能的影響Fig.6 Influence of number of hidden nodes on recognition performance of 3D model
圖7 不同算法對三維模型的識別性能Fig.7 Recognition performance of 3D model by different algorithms
圖8為分別采用本文三視圖方法(A)、 形狀分布方法(SD64)[15](B)和表面體素化球面調(diào)和方法(SHV_8_32_F)[16](C)提取三維模型的特征, 并利用ISDAE,SAE和SL模型平均識別率的比較結(jié)果. 由圖8可見, 本文方法在識別率上明顯高于其他兩種特征提取方法.
圖8 不同數(shù)據(jù)預(yù)處理方法對三維模型的識別性能Fig.8 Recognition performance of 3D model by different data preprocessing methods
綜上所述, 本文采用改進(jìn)的稀疏降噪自編碼構(gòu)建深度網(wǎng)絡(luò)模型, 使用無監(jiān)督貪婪預(yù)訓(xùn)練及受限的擬牛頓法計(jì)算方法對自編碼神經(jīng)網(wǎng)絡(luò)進(jìn)行處理, 用得到的特征采用softmax回歸訓(xùn)練最終的softmax分類器, 最后應(yīng)用在三維模型識別上, 取得了較好的分類效果.