李 煒,宋 威,2,3,王晨妮,張雨軒
1(江南大學 物聯網工程學院,江蘇 無錫 214122) 2(江南大學 江蘇省模式識別與計算智能工程實驗室,江蘇 無錫 214122) 3(物聯網技術應用教育部工程研究中心,江蘇 無錫 214122)
自2006年以來,以自編碼器(Auto-Encoder,AE)[1]為代表的深層特征表示學習[2]在機器學習領域取得了突破性的進展,這些進展主要應用深度學習進行模型初始化[3].當前針對不同的應用場景,一些AE正則化方法被學者們提出:稀疏自編碼器(Sparse Auto-Encoder,SAE)[4,5]是Bengio于2007年提出,要求隱含層神經元的激活度滿足一定的稀疏性;降噪自編碼器(Denoising Auto-Encoder,DAE)[6,7]是由Vincent等于2008年提出的,是對輸入向量加入干擾,訓練編碼器重構出原始輸入,使網絡具有更好的魯棒性;壓縮自編碼器(Contractive Autoencoder,CAE)[8,9]是Bengio等人在2011年提出,用于獲取魯棒性的中間層特征.雖然無監督預訓練[10]可以獲得數據更有效地語義表達而使優化過程更加有效.然而,上述的AE的演變算法只是基于特征數據表示,而沒有考慮過預訓練階段的標簽信息,因此所得的特征鑒別性能較差,不能達到理想的分類結果[11].
無監督特征學習從數據本身進行分析,通過多層預訓練有效提取出不同抽象級別的特征來表示數據,但由于標簽信息的廣泛缺乏,導致提取的特征不能描述特定類別,因此很難應用于分類.監督學習就可以很好地解決這個問題,它通過計算實際輸出標簽與期望輸出標簽的誤差,反饋調整網絡參數,從而減小標簽誤差,標簽信息的使用能提取出適用分類的特征,但學習到的特征不能很好地表示原始的數據,泛化能力弱,很容易產生過擬合問題.
為了提取出鑒別性高同時表示性能好的數據特征,綜合無監督學習和監督學習方法的優勢,本文中提出了一種標簽約束的半監督棧式自編碼器(a label regularization semi-supervised stacked autoencoder,LSSAE),結合監督學習中反映標簽的鑒別性特征和無監督學習表示性特征來捕捉數據特點,再進一步將這些特征用于分類.事實上,本文標簽約束利用監督學習提高分類的準確率,標簽約束項無需事先假設數據分布,避免了假設分布不準確的問題,同時它不僅可以預測類別,還可以得出各類近似幾率.因此本文提出的LSSAE不但可以有效地從大量數據中提取潛在兼有鑒別性的本質特征,還有助于提高分類的準確度.
為了驗證我們提出方法的有效性,我們在USPS數據庫*http://www. datatang. com/data/11927 [EB/OL].等5個公開數據集*http://archive.ics.uci.edu/ml/datasets.html上做大量的實驗.我們將本文提出的LSSAE方法與AE,SAE、MPN[12]和DBN[13]等算法做比較,實驗結果表明LSSAE具有更好的分類準確性.

在AE中需要調整的參數是θ={W,b,W′,b′},其中b和b′是編碼和解碼的偏置,W和W′是編碼和解碼的權重,W′是W的轉置.通常采用梯度下降法[16]獲得最優值作為參數θ.與有著較大的人工數據特征提取工作量的傳統的BP神經網絡[17]相比,AE可以提高特征提取的工作效率,減少原始輸入數據的維數,還可以很好地學習到給定數據集的壓縮和分布式特征表示.
AE是棧式自編碼器的基本組成模塊,將訓練完成的AE層疊起來,構成具有逐層的特征提取能力[18]的棧式自編碼器,在網絡頂層添加分類器,通過標簽誤差,自頂向下利用反向傳播(back propagation,BP)算法[19]微調整個網絡,使棧式自編碼器能很好的進行分類或預測任務.
將棧式自編碼器用于分類領域,則需要在網絡最后一層加入分類器.為使網絡應用領域更為廣泛,本文使用Softmax分類器來進行分類.
對于訓練集合{(x(1),y(1)),(x(2),y(2)),…,(x(m),y(m))},標簽y取k個不同值,表示k個類別.設p(y=j|x)表示輸入x的前提下,樣本被判定為類別j的概率.因此對于一個k類分類器,分類結果為一個k維向量,分類結果為
(1)

(2)
上式中:1{·}為指示函數,即1{值為真的表達式}=1,1{值為假的表達式}=0.本文使用小批量隨機梯度下降算法來最小化代價函數.
本文提出了一種標簽約束的半監督棧式自編碼器算法(LSSAE),算法中無標簽樣本的無監督學習可提高半監督棧式自編碼器學習的泛化能力,有標簽樣本的監督學習可提升半監督棧式自編碼器模型的分類準確度.

圖1 棧式自編碼器訓練模型Fig.1 Stacked autoencoder training model
在棧式自編碼器預訓練過程中加入標簽誤差項,以減少訓練數據的實際輸出標簽和期望輸出標簽之間的誤差為目標,從而彌補無監督學習分類準確度較低的缺陷.然后將所學到的特征表達輸入分類器中,分類結果驗證了所提出的半監督棧式自編碼器的有效性.圖1顯示的是LSSAE用于分類的框架.LSSAE的代價函數由JAE,Jwd,Jlabel三部分組成.其中,JAE是通過無監督學習計算的輸入與輸出數據的重構誤差項,網絡最小化JAE使得輸入數據盡可能地接近輸出數據,從而更準確地重構出輸出數據.Jwd是為了減小權重的幅度計算的權重二范數正則項,用于防止過度擬合.而Jlabel是通過監督學習計算的實際標簽與期望標簽的標簽誤差項,通過使誤差項最小化調整網絡參數,因此,JAE和Jwd通過無監督學習獲得,Jlabel通過有監督學習獲得.本文提出的半監督自編碼器LSSAE結合了非監督和監督學習的優點,并利用各自對應的約束來調整權值和偏置,提取出數據的特征表達,并結合Softmax分類器,通過構建具有高準確率與高泛化能力的半監督深層學習網絡,進一步實現分類應用.

圖2 LSSAE訓練框架Fig.2 LSSAE training model

(3)

(4)
那么LSSAE的目標函數如下
JLSRAE=αJAE+βJwd+γJlabel
(5)

(6)
用梯度下降法來優化目標函數,更新W和b公式如下:
(7)
(8)

(9)
(10)

(11)
(12)
(13)

(14)
(15)
綜合以上重構誤差,權重衰減項和標簽誤差項的偏導數,我們可以得到LSSAE的目標函數JLSSAE的偏導數為
(16)
(17)
為了驗證本文所提出方法的有效性,將提出的LSSAE與AE、SAE、DBN等在幾個公開數據集上進行對比實驗,然后應用到softmax分類器完成分類.數據集主要包括5個公開數據庫,分別為USPS、PenDigits、Coil20、OptDigits、ORL.具體數據信息如表1所示.
本論文中實驗的開發環境為Matlab2014a,計算機系統配置如下:CPU 為 Intel(R)Core(TM)i3-4170;主頻為 3.70 GHz;內存為 4GB;操作系統為Windows10 64位.
LSSAE算法有參數α,β和γ,這三個參數用于控制目標函數中各項的相對重要性.本文對這些參數進行討論,將這些參數以{1×10e| e =-5,-4,-3,-2,-1,0,1,2,3}的規則變化.圖3討論了LSSAE在PenDigits數據庫上的參數α在{0.00001,0.0001,0.001,0.01,0.1,1,10}時,LSSAE達到最優的情況,圖3中每張圖表示不同γ值的變化范圍.從圖3不難看出,當α=0.00001,β=0.001,γ=0.1時,LSSAE達到最優分類結果,三個參數的量級差是為了調整三組懲罰項趨于同一數量級.
表1 數據集的規格
Table 1 Dataset format

NoDatasetsTrainingTestingTotalAttributesClasses1PenDigits729434981099216102USPS729120079298256103ORL2401604001024404OptDigits38231797562064105Coil2010004401440102420

圖3 不同α,β,γ下LSSAE的分類情況Fig.3 LSSAE classification under different α,β,γ
為公平比較,對比網絡的結構都對應相同,參數討論得出了使得模型分類情況最佳的參數,下一步將研究隱含層層數對性能的影響.本文首先為每個測試數據集確定最佳的模型參數,而后在固定其他參數的前提下討論網絡層數.圖4顯示了Pen Digits、USPS、Opt Digits數據集的分類情況.
從圖4(a)可看出當隱含層為2層時,整體網絡為4層,LSSAE用于分類的準確率已達到一個相對平穩的狀態,準確率超過99%,同樣在(b)(c)子圖可以看出,LSSAE均在雙隱含層下得到最優結果且明顯高于其他算法,不論隱含層層數為多少,LSSAE在兩數據集下的分類準確率分別始終保持在96%和97%以上.
表2中顯示了各分類算法在Pen Digits,USPS,ORL,Opt Digits以及Coil20數據集上的分類情況,每個數據集上均進行20次實驗取均值.其中,每組數據的前一項對應平均分類準確率,后一項對應了準確率波動方差.通過表2可以看出LSSAE算法在各數據集上的分類準確率波動均較小,少量實驗結果波動大于DBN及MPN,但是LSSAE的平均分類準確率高于DBN、MPN等其他算法,因此LSSAE在分類問題上的表現優于其他算法.
表2 各數據集分類準確率(%)
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
本文將標簽正則化加入到棧式自編碼器中提出一個半監督棧式自編碼器(LSSAE).單獨使用重構約束項沒有用到目標信息而不利于分類,單獨使用標簽項導致學習到的特征不能很好的表征原始數據,泛化能力較差,模型容易過度擬合.因此為綜合發揮無監督學習與監督學習的優勢,利用逐層半監督訓練對自編碼參數和分類參數進行共同優化,以達到保留數據本質特征且保證模型泛化能力的同時,又可以實現較好分類效果的目的.