李 煒,宋 威,2,3,王晨妮,張雨軒
1(江南大學(xué) 物聯(lián)網(wǎng)工程學(xué)院,江蘇 無錫 214122) 2(江南大學(xué) 江蘇省模式識(shí)別與計(jì)算智能工程實(shí)驗(yàn)室,江蘇 無錫 214122) 3(物聯(lián)網(wǎng)技術(shù)應(yīng)用教育部工程研究中心,江蘇 無錫 214122)
自2006年以來,以自編碼器(Auto-Encoder,AE)[1]為代表的深層特征表示學(xué)習(xí)[2]在機(jī)器學(xué)習(xí)領(lǐng)域取得了突破性的進(jìn)展,這些進(jìn)展主要應(yīng)用深度學(xué)習(xí)進(jìn)行模型初始化[3].當(dāng)前針對(duì)不同的應(yīng)用場景,一些AE正則化方法被學(xué)者們提出:稀疏自編碼器(Sparse Auto-Encoder,SAE)[4,5]是Bengio于2007年提出,要求隱含層神經(jīng)元的激活度滿足一定的稀疏性;降噪自編碼器(Denoising Auto-Encoder,DAE)[6,7]是由Vincent等于2008年提出的,是對(duì)輸入向量加入干擾,訓(xùn)練編碼器重構(gòu)出原始輸入,使網(wǎng)絡(luò)具有更好的魯棒性;壓縮自編碼器(Contractive Autoencoder,CAE)[8,9]是Bengio等人在2011年提出,用于獲取魯棒性的中間層特征.雖然無監(jiān)督預(yù)訓(xùn)練[10]可以獲得數(shù)據(jù)更有效地語義表達(dá)而使優(yōu)化過程更加有效.然而,上述的AE的演變算法只是基于特征數(shù)據(jù)表示,而沒有考慮過預(yù)訓(xùn)練階段的標(biāo)簽信息,因此所得的特征鑒別性能較差,不能達(dá)到理想的分類結(jié)果[11].
無監(jiān)督特征學(xué)習(xí)從數(shù)據(jù)本身進(jìn)行分析,通過多層預(yù)訓(xùn)練有效提取出不同抽象級(jí)別的特征來表示數(shù)據(jù),但由于標(biāo)簽信息的廣泛缺乏,導(dǎo)致提取的特征不能描述特定類別,因此很難應(yīng)用于分類.監(jiān)督學(xué)習(xí)就可以很好地解決這個(gè)問題,它通過計(jì)算實(shí)際輸出標(biāo)簽與期望輸出標(biāo)簽的誤差,反饋調(diào)整網(wǎng)絡(luò)參數(shù),從而減小標(biāo)簽誤差,標(biāo)簽信息的使用能提取出適用分類的特征,但學(xué)習(xí)到的特征不能很好地表示原始的數(shù)據(jù),泛化能力弱,很容易產(chǎn)生過擬合問題.
為了提取出鑒別性高同時(shí)表示性能好的數(shù)據(jù)特征,綜合無監(jiān)督學(xué)習(xí)和監(jiān)督學(xué)習(xí)方法的優(yōu)勢,本文中提出了一種標(biāo)簽約束的半監(jiān)督棧式自編碼器(a label regularization semi-supervised stacked autoencoder,LSSAE),結(jié)合監(jiān)督學(xué)習(xí)中反映標(biāo)簽的鑒別性特征和無監(jiān)督學(xué)習(xí)表示性特征來捕捉數(shù)據(jù)特點(diǎn),再進(jìn)一步將這些特征用于分類.事實(shí)上,本文標(biāo)簽約束利用監(jiān)督學(xué)習(xí)提高分類的準(zhǔn)確率,標(biāo)簽約束項(xiàng)無需事先假設(shè)數(shù)據(jù)分布,避免了假設(shè)分布不準(zhǔn)確的問題,同時(shí)它不僅可以預(yù)測類別,還可以得出各類近似幾率.因此本文提出的LSSAE不但可以有效地從大量數(shù)據(jù)中提取潛在兼有鑒別性的本質(zhì)特征,還有助于提高分類的準(zhǔn)確度.
為了驗(yàn)證我們提出方法的有效性,我們?cè)赨SPS數(shù)據(jù)庫*http://www. datatang. com/data/11927 [EB/OL].等5個(gè)公開數(shù)據(jù)集*http://archive.ics.uci.edu/ml/datasets.html上做大量的實(shí)驗(yàn).我們將本文提出的LSSAE方法與AE,SAE、MPN[12]和DBN[13]等算法做比較,實(shí)驗(yàn)結(jié)果表明LSSAE具有更好的分類準(zhǔn)確性.
在AE中需要調(diào)整的參數(shù)是θ={W,b,W′,b′},其中b和b′是編碼和解碼的偏置,W和W′是編碼和解碼的權(quán)重,W′是W的轉(zhuǎn)置.通常采用梯度下降法[16]獲得最優(yōu)值作為參數(shù)θ.與有著較大的人工數(shù)據(jù)特征提取工作量的傳統(tǒng)的BP神經(jīng)網(wǎng)絡(luò)[17]相比,AE可以提高特征提取的工作效率,減少原始輸入數(shù)據(jù)的維數(shù),還可以很好地學(xué)習(xí)到給定數(shù)據(jù)集的壓縮和分布式特征表示.
AE是棧式自編碼器的基本組成模塊,將訓(xùn)練完成的AE層疊起來,構(gòu)成具有逐層的特征提取能力[18]的棧式自編碼器,在網(wǎng)絡(luò)頂層添加分類器,通過標(biāo)簽誤差,自頂向下利用反向傳播(back propagation,BP)算法[19]微調(diào)整個(gè)網(wǎng)絡(luò),使棧式自編碼器能很好的進(jìn)行分類或預(yù)測任務(wù).
將棧式自編碼器用于分類領(lǐng)域,則需要在網(wǎng)絡(luò)最后一層加入分類器.為使網(wǎng)絡(luò)應(yīng)用領(lǐng)域更為廣泛,本文使用Softmax分類器來進(jìn)行分類.
對(duì)于訓(xùn)練集合{(x(1),y(1)),(x(2),y(2)),…,(x(m),y(m))},標(biāo)簽y取k個(gè)不同值,表示k個(gè)類別.設(shè)p(y=j|x)表示輸入x的前提下,樣本被判定為類別j的概率.因此對(duì)于一個(gè)k類分類器,分類結(jié)果為一個(gè)k維向量,分類結(jié)果為
(1)
(2)
上式中:1{·}為指示函數(shù),即1{值為真的表達(dá)式}=1,1{值為假的表達(dá)式}=0.本文使用小批量隨機(jī)梯度下降算法來最小化代價(jià)函數(shù).
本文提出了一種標(biāo)簽約束的半監(jiān)督棧式自編碼器算法(LSSAE),算法中無標(biāo)簽樣本的無監(jiān)督學(xué)習(xí)可提高半監(jiān)督棧式自編碼器學(xué)習(xí)的泛化能力,有標(biāo)簽樣本的監(jiān)督學(xué)習(xí)可提升半監(jiān)督棧式自編碼器模型的分類準(zhǔn)確度.
圖1 棧式自編碼器訓(xùn)練模型Fig.1 Stacked autoencoder training model
在棧式自編碼器預(yù)訓(xùn)練過程中加入標(biāo)簽誤差項(xiàng),以減少訓(xùn)練數(shù)據(jù)的實(shí)際輸出標(biāo)簽和期望輸出標(biāo)簽之間的誤差為目標(biāo),從而彌補(bǔ)無監(jiān)督學(xué)習(xí)分類準(zhǔn)確度較低的缺陷.然后將所學(xué)到的特征表達(dá)輸入分類器中,分類結(jié)果驗(yàn)證了所提出的半監(jiān)督棧式自編碼器的有效性.圖1顯示的是LSSAE用于分類的框架.LSSAE的代價(jià)函數(shù)由JAE,Jwd,Jlabel三部分組成.其中,JAE是通過無監(jiān)督學(xué)習(xí)計(jì)算的輸入與輸出數(shù)據(jù)的重構(gòu)誤差項(xiàng),網(wǎng)絡(luò)最小化JAE使得輸入數(shù)據(jù)盡可能地接近輸出數(shù)據(jù),從而更準(zhǔn)確地重構(gòu)出輸出數(shù)據(jù).Jwd是為了減小權(quán)重的幅度計(jì)算的權(quán)重二范數(shù)正則項(xiàng),用于防止過度擬合.而Jlabel是通過監(jiān)督學(xué)習(xí)計(jì)算的實(shí)際標(biāo)簽與期望標(biāo)簽的標(biāo)簽誤差項(xiàng),通過使誤差項(xiàng)最小化調(diào)整網(wǎng)絡(luò)參數(shù),因此,JAE和Jwd通過無監(jiān)督學(xué)習(xí)獲得,Jlabel通過有監(jiān)督學(xué)習(xí)獲得.本文提出的半監(jiān)督自編碼器LSSAE結(jié)合了非監(jiān)督和監(jiān)督學(xué)習(xí)的優(yōu)點(diǎn),并利用各自對(duì)應(yīng)的約束來調(diào)整權(quán)值和偏置,提取出數(shù)據(jù)的特征表達(dá),并結(jié)合Softmax分類器,通過構(gòu)建具有高準(zhǔn)確率與高泛化能力的半監(jiān)督深層學(xué)習(xí)網(wǎng)絡(luò),進(jìn)一步實(shí)現(xiàn)分類應(yīng)用.
圖2 LSSAE訓(xùn)練框架Fig.2 LSSAE training model
(3)
(4)
那么LSSAE的目標(biāo)函數(shù)如下
JLSRAE=αJAE+βJwd+γJlabel
(5)
(6)
用梯度下降法來優(yōu)化目標(biāo)函數(shù),更新W和b公式如下:
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
綜合以上重構(gòu)誤差,權(quán)重衰減項(xiàng)和標(biāo)簽誤差項(xiàng)的偏導(dǎo)數(shù),我們可以得到LSSAE的目標(biāo)函數(shù)JLSSAE的偏導(dǎo)數(shù)為
(16)
(17)
為了驗(yàn)證本文所提出方法的有效性,將提出的LSSAE與AE、SAE、DBN等在幾個(gè)公開數(shù)據(jù)集上進(jìn)行對(duì)比實(shí)驗(yàn),然后應(yīng)用到softmax分類器完成分類.數(shù)據(jù)集主要包括5個(gè)公開數(shù)據(jù)庫,分別為USPS、PenDigits、Coil20、OptDigits、ORL.具體數(shù)據(jù)信息如表1所示.
本論文中實(shí)驗(yàn)的開發(fā)環(huán)境為Matlab2014a,計(jì)算機(jī)系統(tǒng)配置如下:CPU 為 Intel(R)Core(TM)i3-4170;主頻為 3.70 GHz;內(nèi)存為 4GB;操作系統(tǒng)為Windows10 64位.
LSSAE算法有參數(shù)α,β和γ,這三個(gè)參數(shù)用于控制目標(biāo)函數(shù)中各項(xiàng)的相對(duì)重要性.本文對(duì)這些參數(shù)進(jìn)行討論,將這些參數(shù)以{1×10e| e =-5,-4,-3,-2,-1,0,1,2,3}的規(guī)則變化.圖3討論了LSSAE在PenDigits數(shù)據(jù)庫上的參數(shù)α在{0.00001,0.0001,0.001,0.01,0.1,1,10}時(shí),LSSAE達(dá)到最優(yōu)的情況,圖3中每張圖表示不同γ值的變化范圍.從圖3不難看出,當(dāng)α=0.00001,β=0.001,γ=0.1時(shí),LSSAE達(dá)到最優(yōu)分類結(jié)果,三個(gè)參數(shù)的量級(jí)差是為了調(diào)整三組懲罰項(xiàng)趨于同一數(shù)量級(jí).
表1 數(shù)據(jù)集的規(guī)格
Table 1 Dataset format
NoDatasetsTrainingTestingTotalAttributesClasses1PenDigits729434981099216102USPS729120079298256103ORL2401604001024404OptDigits38231797562064105Coil2010004401440102420
圖3 不同α,β,γ下LSSAE的分類情況Fig.3 LSSAE classification under different α,β,γ
為公平比較,對(duì)比網(wǎng)絡(luò)的結(jié)構(gòu)都對(duì)應(yīng)相同,參數(shù)討論得出了使得模型分類情況最佳的參數(shù),下一步將研究隱含層層數(shù)對(duì)性能的影響.本文首先為每個(gè)測試數(shù)據(jù)集確定最佳的模型參數(shù),而后在固定其他參數(shù)的前提下討論網(wǎng)絡(luò)層數(shù).圖4顯示了Pen Digits、USPS、Opt Digits數(shù)據(jù)集的分類情況.
從圖4(a)可看出當(dāng)隱含層為2層時(shí),整體網(wǎng)絡(luò)為4層,LSSAE用于分類的準(zhǔn)確率已達(dá)到一個(gè)相對(duì)平穩(wěn)的狀態(tài),準(zhǔn)確率超過99%,同樣在(b)(c)子圖可以看出,LSSAE均在雙隱含層下得到最優(yōu)結(jié)果且明顯高于其他算法,不論隱含層層數(shù)為多少,LSSAE在兩數(shù)據(jù)集下的分類準(zhǔn)確率分別始終保持在96%和97%以上.
表2中顯示了各分類算法在Pen Digits,USPS,ORL,Opt Digits以及Coil20數(shù)據(jù)集上的分類情況,每個(gè)數(shù)據(jù)集上均進(jìn)行20次實(shí)驗(yàn)取均值.其中,每組數(shù)據(jù)的前一項(xiàng)對(duì)應(yīng)平均分類準(zhǔn)確率,后一項(xiàng)對(duì)應(yīng)了準(zhǔn)確率波動(dòng)方差.通過表2可以看出LSSAE算法在各數(shù)據(jù)集上的分類準(zhǔn)確率波動(dòng)均較小,少量實(shí)驗(yàn)結(jié)果波動(dòng)大于DBN及MPN,但是LSSAE的平均分類準(zhǔn)確率高于DBN、MPN等其他算法,因此LSSAE在分類問題上的表現(xiàn)優(yōu)于其他算法.
表2 各數(shù)據(jù)集分類準(zhǔn)確率(%)
Table 2 Accuracy of different datasets classification(%)
Datasets MPNAESAEDBNLSSAEPen Digits88.92±0.2192.87±0.6393.35±0.7394.55±0.7398.91±0.44USPS93.27±0.1394.38±1.0794.42±0.9194.69±0.6797.25±0.37ORL92.33±095.67±0.8296.02±1.5796.54±098.28±1.32Opt Digits95.24±0.9895.41±1.2695.90±1.1496.28±0.5898.53±1.08Coil2089.14±093.75±1.0395.07±0.6996.42±097.92±0.95
本文將標(biāo)簽正則化加入到棧式自編碼器中提出一個(gè)半監(jiān)督棧式自編碼器(LSSAE).單獨(dú)使用重構(gòu)約束項(xiàng)沒有用到目標(biāo)信息而不利于分類,單獨(dú)使用標(biāo)簽項(xiàng)導(dǎo)致學(xué)習(xí)到的特征不能很好的表征原始數(shù)據(jù),泛化能力較差,模型容易過度擬合.因此為綜合發(fā)揮無監(jiān)督學(xué)習(xí)與監(jiān)督學(xué)習(xí)的優(yōu)勢,利用逐層半監(jiān)督訓(xùn)練對(duì)自編碼參數(shù)和分類參數(shù)進(jìn)行共同優(yōu)化,以達(dá)到保留數(shù)據(jù)本質(zhì)特征且保證模型泛化能力的同時(shí),又可以實(shí)現(xiàn)較好分類效果的目的.