陳亞瑞,秦智飛
(天津科技大學人工智能學院,天津 300457)
數(shù)據(jù)降維[1]是指將高維樣本數(shù)據(jù)通過線性或者是非線性變換映射到低維空間,獲得高維數(shù)據(jù)在低維空間的一種表示.近年來,數(shù)據(jù)降維在眾多領域變得越來越重要,高維的數(shù)據(jù)通過數(shù)據(jù)降維可以去除高維空間中不相關或者不重要的屬性,減輕維數(shù)災難,能夠對數(shù)據(jù)的分類、壓縮以及可視化帶來良好效果.目前常用的降維方法有線性判別分析[2](linear discriminant analysis,LDA)、局部線性嵌入[3](locally linear embedding,LLE)、拉普拉斯特征映射[3](laplacian eigenmaps,LE)以及主組件分析[4-5](principal component analysis,PCA).LDA 是一種屬于有監(jiān)督學習降維技術,基本原理是使得投影之后的每一種類別數(shù)據(jù)的投影點盡可能接近,而不同類別數(shù)據(jù)的類別中心之間的距離盡可能大.LDA 在降維過程中可以使用類別的先驗知識經驗,但是LDA 不適合對非高斯樣本分布進行降維,并且最多只能降到類別數(shù)減1 的維度.LLE 屬于流形學[6](manifold learning)的一種.它將高維數(shù)據(jù)投影到低維空間中,并保持數(shù)據(jù)點之間的局部線性關系,其核心思想是每個點都可以由與它相近的多個點的線性組合近似,投影到低維空間之后要保持這種線性重構關系,并且有相同的重構系數(shù).LLE 算法歸結為稀疏矩陣[1]特征分解,計算復雜度相對較小,實現(xiàn)容易,但是算法對最近鄰樣本數(shù)的選擇敏感,不同的最近鄰數(shù)對最后的降維結果有很大影響.LLE 是用局部的角度去構建數(shù)據(jù)之間的關系,它的直觀思想是希望相互間有關系的點(在圖中相連的點)在降維后的空間中盡可能靠近,可以反映出數(shù)據(jù)內在的流形結構,但是局部特征保留特性使得它對孤立點和噪聲不敏感.PCA 的主要思想是將n 維特征映射到k 維上,這k 維是全新的正交特征,也被稱為主組件,是在原有n 維特征的基礎上重新構造出來的k 維特征,消除了特征之間的多重共線性.通過計算數(shù)據(jù)矩陣的協(xié)方差矩陣,然后得到協(xié)方差矩陣特征值的特征向量,選擇特征值最大(即方差最大)的k 個特征所對應的特征向量組成的矩陣.這樣就可以將數(shù)據(jù)矩陣轉換到新的空間當中,實現(xiàn)數(shù)據(jù)特征的降維.但是PCA 在求解時需要計算數(shù)據(jù)的協(xié)方差矩陣,過程較為繁瑣.概率主組件分析[7-9](probabilistic principal component analysis,PPCA)是從概率角度理解PCA,將PCA 納入生成式框架,與傳統(tǒng)的PCA 相比,PPCA 屬于隱變量模型[10],可以使用期望最大化[11](expectation maximization,EM)算法求解,避免了計算數(shù)據(jù)協(xié)方差矩陣.概率模型與EM 的結合能夠處理數(shù)據(jù)集里的缺失值問題.PPCA 也可以用一種生成式的方式運行,生成新的樣本.但是通過傳統(tǒng)EM 算法求解PPCA 模型時會存在參數(shù)更新過慢的問題.
因此,本文首先介紹PPCA,針對PPCA 存在的問題提出基于自然梯度的概率主組件分析在線學習算法,結合實驗驗證該算法的有效性.
對于生成模型[12]p(x,z)=p (z) p(x|z),其中x 表示觀測向量,z 表示連續(xù)隱向量,p (z)表示隱向量先驗概率分布,一般情況下先驗概率分布為p (z)=N(z| 0,I),p (x | z)表示條件概率分布.在生成模型結構下,觀測樣本 xi的生成過程如下:首先從隱變量先驗分布 p (z)中隨機生成一個隱向量樣本 zi,然后根據(jù)條件概率分布 p (x | z)生成樣本 xi.生成過程的概率表示形式為
生成模型 p(x,z)=p (z) p(x|z)對應的概率圖模型形式如圖1 所示,其中白色節(jié)點表示隱向量,黑色節(jié)點表示觀測向量,節(jié)點之間的邊表示變量之間的依賴關系.
圖1 生成模型Fig.1 Generating models
概率主組件分析是生成模型的一種特殊形式,其中D 維觀測變量x 由M 維隱變量z 的一個線性變換附加一個高斯噪聲[13]定義,即
其中W 表示RD×M維的一個參數(shù)矩陣,ε 表示D 維零均值高斯分布的噪聲變量,ε~ N(0,δ2I).
PPCA 模型的觀測樣本 xi的生成過程如下:首先從隱變量先驗分布 p (z)中隨機生成一個樣本 zi,然后根據(jù)條件概率分布 p (x|z)生成樣本 xi,即
對于觀測數(shù)據(jù)集X={ x1,…,xN},其中N 表示觀測樣本的個數(shù),Z={ z1,…,zN}為對應的隱變量據(jù)集.PPCA 的學習任務是通過觀測數(shù)據(jù)X={ x1,…,xN}學習模型(4)中的參數(shù)W、δ2和μ.
EM 算法是求解隱變量模型最大似然問題的經典方法,其基本思想是通過 E(Expectation)步和M(Maximization)步兩步不斷迭代更新模型參數(shù).其中 E 步是通過對完備數(shù)據(jù)集的對數(shù)似然函數(shù)ln p( X,Z | θ)求關于隱變量后驗概率分布p (Z | X,θold)的期望,此步驟的目的是通過隱量后驗概率分布處理隱變量.M 步是對于在E 步中的完備數(shù)據(jù)集對數(shù)似然函數(shù)的期望進行最大化處理,更新模型參數(shù).
對于PPCA 模型,完備數(shù)據(jù)集的對數(shù)似然函數(shù)為
PPCA 模型采用EM 算法迭代計算模型參數(shù).
E 步:對ln p (X,Z | θ)求關于p (Z | X,θold)的期望,即
其中計算E[ zn]和是該步驟的關鍵.根據(jù)后驗概率分布計算可得
其中M=WTW +δ2I .
M 步:是最大化E[ln p (X,Z | μ, W,δ2)]更新模型參數(shù)
進一步求解可得
PPCA 模型EM 算法如下:
根據(jù)PPCA 模型的EM 算法描述,在進行一次參數(shù)更新的時候,需要首先計算出所有樣本的Ε[ zn]和,然后再更新模型參數(shù)Wnew和該算法最大問題是每更新一次參數(shù)需要計算所有樣本的隱變量后驗概率分布的期望,會導致計算過于復雜,參數(shù)更新太慢;同時算法很難擴展到大規(guī)模數(shù)據(jù)集,因為每一次算法更新時都需要遍歷整個數(shù)據(jù)集是不現(xiàn)實的.進一步,當數(shù)據(jù)量不斷增加時,需要采用增量學習[14]算法,隨著數(shù)據(jù)量增加不斷提升算法的性能.基于以上問題,本文提出基于自然梯度的概率主組件分析在線學習[15]算法.
梯度上升方法[16]是求解優(yōu)化問題的重要方法,它通過沿著目標函數(shù)梯度的方向進行參數(shù)迭代更新,求解最優(yōu)化問題.在歐氏空間中,函數(shù)梯度方向是變化最快的方向,也是參數(shù)更新的最優(yōu)方向.但是當優(yōu)化的參數(shù)是概率分布時,歐氏距離不能有效地度量概率分布之間的距離.對稱KL 散度[17](KL divergence)是度量兩個概率分布之間相似性的一種度量方式,數(shù)學表述為
歐氏梯度是歐氏空間中上升最快的方向,而自然梯度[18]是黎曼空間(該空間采用對稱KL 散度度量局部距離)內上升最快的方向.對于目標函數(shù)f(λ),它的自然梯度為
對于PPCA 模型的EM 優(yōu)化算法,其中的最大化問題maxE[ln p (X,Z | μ, W,δ2)],采用自然梯度上升方法求解該優(yōu)化問題.根據(jù)自然梯度(式(13))及平均值場[7](mean field)理論可知
可以得到自然梯度具有以下的簡單形式
在傳統(tǒng)的PPCA 的EM 算法中,每一次參數(shù)的迭代更新都需要計算所有樣本的后驗概率分布,會使得算法的性能變得很差.在基于自然梯度的概率主組件分析在線學習算法中,使用單個樣本對參數(shù)進行局部的更新,并在參數(shù)的更新時引入自然梯度.
對于單樣本 xn,首先是計算樣本所對應的隱變量后驗分布
此時根據(jù)梯度下降算法,更新模型參數(shù)
基于自然梯度的概率主組件分析在線學習算法如下:
本節(jié)在5 個數(shù)據(jù)集下設計一組對比實驗,在不同訓練樣本個數(shù)下設計一組在線學習過程實驗以及在MNIST 數(shù)據(jù)集下設計一組生成樣本數(shù)據(jù)實驗,分析實驗結果,證明本文提出算法的有效性.
本實驗選用了5 個數(shù)據(jù)集,包括MNIST 數(shù)據(jù)集,F(xiàn)ashion-MNIST 數(shù)據(jù)集和 3 個 UCI 數(shù)據(jù)集(HOP、SDD、AREM).其中:MNIST 數(shù)據(jù)集為手寫數(shù)字數(shù)據(jù)集,共有10 類;Fashion_MNIST 數(shù)據(jù)集包含有10 類不同商品的圖片;HOP、SDD 及AREM 數(shù)據(jù)集是進行過特征提取后的數(shù)據(jù)集.數(shù)據(jù)集具體信息見表1.
表1 數(shù)據(jù)集信息Tab.1 Data set information
實驗平臺信息如下:GPU 采用GTX1080,CPU采用i7-8700@3.30 Hz,運行內存為16 GB,操作系統(tǒng)Windows 7 旗艦版,運行平臺工具python3.6.
設計3 組實驗.實驗1(在線學習過程實驗):在基于自然梯度的概率主組件分析在線學習算法中,依次使用遞增的訓練樣本個數(shù)對模型進行訓練,比較分類正確率.實驗2(精度對比實驗):在5 個數(shù)據(jù)集下分別運行PPCA 的EM 算法和基于自然梯度的概率主組件分析在線學習算法,并對比分析了算法運行時間及其分類正確率.實驗3(生成樣本實驗):在基于自然梯度的概率主組件分析在線學習算法中,依次使用遞增的訓練樣本個數(shù)對模型進行訓練,在訓練好的模型中使用隨機生成的隱變量生成新的樣本,比較生成數(shù)據(jù)的效果.
4.2.1 在線學習過程實驗
在基于隨機化近似的在線EM 算法中,依次使用5 000、10 000、20 000、30 000、40 000、>40 000 個數(shù)據(jù)樣本對EM 算法進行訓練,在訓練好的模型下對數(shù)據(jù)進行降維,并將降維后的數(shù)據(jù)按照表2 所示分為訓練集和測試集,通過單隱層全連接神經網絡進行分類,batch-size 為32,在學習率0.1,epoch 為100,得到分類正確比見表3.
表2 分類數(shù)據(jù)集Tab.2 Classified data set
表3 基于不同訓練樣本個數(shù)的分類正確比Tab.3 Classification accuracy ratio based on different training samples
4.2.2 精度對比實驗
在數(shù)據(jù)集上分別運行PPCA 的EM 算法和在訓練基于自然梯度的概率主組件分析在線學習算法時,由于內存的限制,每個數(shù)據(jù)集都隨機選用30 000 個樣本用于訓練EM 算法,最大迭代次數(shù)設置為500.在訓練好的模型中,將MNIST、Fashion_MNIST 的數(shù)據(jù)樣本降到200 維,將HOP 數(shù)據(jù)集樣本降到4 維,將AREM 數(shù)據(jù)集降到5 維,將SDD 數(shù)據(jù)集樣本降到22 維.將降維之后的數(shù)據(jù)集按照表2 所示比例分為訓練樣本和測試樣本,通過單隱層全連接神經網絡進行分類,batch-size 為32,學習率0.1,epoch 為100,得到分類正確比見表4,算法的運行時間見表5.
表4 分類精度Tab.4 Classification accuracy
表5 算法運行時間Tab.5 Algorithm running time s
4.2.3 生成樣本實驗
在基于自然梯度的概率主組件分析在線學習算法中,依次使用 5 000、10 000、20 000、30 000、40 000、>40 000 個MNIST 數(shù)據(jù)樣本對算法進行訓練,隱變量的維度設置為2,從均勻分布中隨機生成隱變量z,利用概率生成模型生成新的樣本,樣本的清晰度比較如圖2 所示.根據(jù)圖2 對比結果可知,在基于自然梯度的概率主組件分析在線學習算法中,隨著訓練樣本的增多,所生成的樣本越來越清晰,生成效果越來越好.
圖2 基于自然梯度的概率主組件分析在線學習算法的生成樣本Fig.2 Generated samples of online learning algorithm based on natural gradient probability main component analysis
本文提出的基于自然梯度的概率主組件分析在線學習算法將自然梯度引入到PPCA 的EM 算法中,提高了算法的效果.實驗證明該算法相比于基于EM的傳統(tǒng)PPCA 在分類精度略有提升,但是算法的運行時間大大減少,并且算法受物理環(huán)境的影響較小,同時,隨著訓練樣本的增加,算法在生成數(shù)據(jù)方面也有比較明顯的提升.