• / 20
  • 下載費用:30 金幣  

一種支持增量更新的深度計算模型設計方法.pdf

摘要
申請專利號:

CN201510337280.X

申請日:

2015.06.17

公開號:

CN104915566A

公開日:

2015.09.16

當前法律狀態:

撤回

有效性:

無權

法律詳情: 發明專利申請公布后的視為撤回IPC(主分類):G06F 19/00申請公布日:20150916|||實質審查的生效IPC(主分類):G06F 19/00申請日:20150617|||公開
IPC分類號: G06F19/00(2011.01)I 主分類號: G06F19/00
申請人: 大連理工大學
發明人: 陳志奎; 劉思謙; 張清辰; 趙亮
地址: 116024遼寧省大連市甘井子區凌工路2號
優先權:
專利代理機構: 大連理工大學專利中心21200 代理人: 關慧貞; 梅洪玉
PDF完整版下載: PDF下載
法律狀態
申請(專利)號:

CN201510337280.X

授權公告號:

||||||

法律狀態公告日:

2018.04.03|||2015.10.14|||2015.09.16

法律狀態類型:

發明專利申請公布后的視為撤回|||實質審查的生效|||公開

摘要

本發明公開了一種支持增量更新的深度計算模型,包括如下步驟:通過構建高階自動編碼機,并將其擴展到高維張量空間,再使用反向傳播算法得到模型靜態參數;在不改變網絡連接結構的前提下,根據新增數據的特征,將模型的參數由θ更新為θ+Δθ,使得更新后的參數能夠學習新增數據的特征;通過不斷增加隱藏層神經元數目的方式來更新網絡模型,實現對高速動態變化的數據特征提取;本發明針對大數據實時性的特點,設計支持增量更新的深度計算模型,能夠高效實時地提取大數據的手相特征。

權利要求書

權利要求書
1.  一種支持增量更新的深度計算模型設計方法,其特征在于如下步驟:
(1)計算靜態參數
通過將自動編碼機擴展到高維張量空間,并通過反向傳播算法得到靜態參數;
(2)參數更新
在不改變網絡連接結構的前提下,根據新增數據的特征,將模型的參數由θ更新為θ+Δθ,使得更新后的參數能夠學習新增數據的特征;具體步驟如下:
通過前向傳播計算高階自動編碼模型的輸出值
計算高階自動編碼模型的輸出值與x的差值Δx;
通過高階反向傳播算法計算高階自動編碼模型輸出值對原始參數θ的偏導數
計算高階自動編碼模型的參數增量Δθ,將模型的參數更新為θ+Δθ;
(3)模型結構更新
通過不斷增加隱藏層神經元數目的方式來更新網絡模型,實現對高速動態變化的數據特征提取;具體步驟如下:
(1)更新高階自動編碼模型參數結構,對網絡參數進行初始化;
(2)利用前向傳播計算隱藏層神經元輸出值與模型輸出值
(3)計算網絡模型輸出值與輸入數據X的差值Δx及誤差函數J(X,θ~)=12ΔxT·Δx;]]>
(4)利用高階反向傳播算法計算誤差函數對模型參數的偏導數;
(5)利用梯度下降法更新網絡參數;
(6)重復(2)至(5)直至收斂。

說明書

說明書一種支持增量更新的深度計算模型設計方法
技術領域
本發明涉及一種支持增量更新的深度計算模型的設計方法,以應對大數據實時處理帶來的挑戰。
背景技術
大數據時代的到來帶來了很多機遇,也帶來了更多的挑戰。大數據的一個重要特性是具有實時性,即數據以極快的速度產生,其內容和分布特征均處于高速動態變化之中,而且這些數據要求被實時處理。因此要求特征學習算法能夠支持增量式更新,實時的學習高速動態變化數據的特征。增量式學習模型是指建立在已有特征學習模型的基礎上,即不需要歷史數據重新訓練,根據當前的新數據實例更新模型的參數與結構,使之能夠快速學習新數據的特征;同時需要盡力保持模型的原始知識,使得更新模型仍能有效學習歷史數據特征。
傳統的特征學習的高階自動編碼模型,盡管能夠有效的學習數據的特征,然而該模型屬于靜態學習模型。在特征學習過程中,需要將整個數據集加載到內存當中,利用整個數據集訓練模型的參數,無法對模型的參數與結構知識進行動態更新,以適應新增數據的變化,結合歷史知識實時學習新增數據的特征。導致該模型很難實時的學習處于高速動態變化的大數據特征。而實現支持增量更新的自動編碼模型具有兩個大的挑戰:
(1)快速的參數更新:在穩定的環境中,新增數據分布特征變化不大,對于這一類數據,僅通過參數更新即可實現高價自動編碼模型的增量式更新。傳統的增量式機器學習方法在更新參數時時間復雜度高,雖然不需要對歷史數據進行重新訓練,卻未能充分利用現有模型的知識,因此參數更新速度慢,無法滿足大數據實時學習的要求。因此如何充分結合現有模型的知識,根據新增數據的特征,設計快速的參數更新方法是實現支持增量更新的高階自動編碼模型的 關鍵問題。
(2)有效的結構更新:處于動態環境中的大數據,產生速度快,其分布特征變化明顯。對于這一類數據,需要通過增加隱藏層神經元數據,對模型的結構和參數同時進行更新,才能有效學習其分布特征。傳統的機器學習模型,構建在向量空間,因此可以增加任意多個隱藏層神經元。而高階自動編碼模型工作在張量空間,其隱藏層是個高階張量,因此在增加隱藏層神經元時,需要根據其結構確定隱藏層神經元增加數目,確保更新結構的正確性。
深度計算是一種新型技術,它通過過其復雜的網絡結構,學習到高效的特征參數,進而進行有效的分析預測。但該技術模型參數較多,訓練過程較為耗時。因此,在大數據時代,對于其應用造成了極大的挑戰。
(1)增量性:增量性是指模型只需要對新增數據進行訓練,不需要對歷史數據進行重新訓練,在已有模型的基礎上,根據新增數據的特征,直接對現有模型的結構和參數進行更新。
(2)適應性:適應性是指更新后的模型能夠對新增數據進行有效學習,即對新增數據的分類及預測誤差不斷降低。
(3)保持性:保持性是指更新后的模型依然能夠保持原有模型的知識,即更新模型依然能夠有效學習歷史數據的特征。
實現支持增量更新的自動編碼模型具有很多挑戰,本節重點討論以下兩個關鍵問題:
發明內容
傳統的深度計算模型不支持針對高速數據流的參數和結構的快速更新,本發明提供了一種支持增量更新的深度計算模型設計方法,對深度計算網絡模型的參數和結構進行更新,以應對大數據實時高速的特點。
本發明提供了一種支持增量更新的深度計算模型設計方法,包括如下步驟:
構建支持高維張量的高階自動編碼機模型,并采用反向傳播算法得到其靜態模型參數。
參數增量更新是指在不改變網絡連接結構的前提下,根據新增數據的特征,將模型的參數由θ更新為θ+Δθ,使得更新后的參數能夠學習新增數據的特征。為了能夠快速求出模型參數的增量Δθ,本發明使用函數一階近似的思想,提高模型參數更新速度,最大程度滿足大數據特征學習的實時性要求。
結構更新是指通過不斷增加隱藏層神經元數目的方式來更新網絡模型。這種更新方式對于學習處于高速動態變化的數據特征尤為有效。因此,對于快速動態變化的大數據,本發明提出的增量式高階自動編碼模型通過增加隱藏層神經元的方式來更新網絡模型。
支持增量更新的深度計算模型需要兩個階段:預訓練和微調。在預訓練階段,通過參數更新或者結構更新的方法從底向上以增量式的方法依次訓練模型的每個基礎模塊:支持增量更新的高階自動編碼模型。然后將多個增量式高階自動編碼模型堆疊,構建增量式深度計算模型。在微調階段,使用標簽數據對整個模型的參數進行微調,可以有效的避免增量模型陷入局部最優,進而可以獲得最終的參數。
本發明針對大數據的高速增長和實時性的特點設計了支持增量更新的深度極端模型,以克服基本深度計算模型無法對參數和結構進行動態更新,實時的學習新增數據的特征,重點是設計了基于一階近似的參數更新方法和基于增加隱藏層神經元的結構更新方法。
附圖說明
下面將對實施例或現有技術描述中所需要使用的附圖作簡單地介紹,以便更清楚地說明本發明實施例或現有技術中的技術方案。
圖1更新前的模型結構;
圖2更新后的模型結構;
圖3 STL-10數據集實驗結果;
圖4保持性實驗結果;
圖5三個參數的訓練時間;
圖6兩個參數的MSE;
圖7兩個參數的平均平方誤差;
圖8收斂次數實驗結果;
具體實施方式
下面將結合本發明實施例中的附圖,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基于本發明中的實施例,本領域普通技術人員在沒有作出創造性勞動前提下所獲得的所有其它實施例,都屬于本發明保護的范圍。
首先說明構建基于張量的高階自動編碼機模型的過程。在此之前定義所用到的張量和其運算方法:
定義1.張量。令V1,V2,…,VN為維數分別是I1,I2,…,IN的N個有限維歐式空間,設N個向量u1∈V1,u2∈V2,…,uN∈VN,V1×V2×…×VN上的多線性映射(u1οu2ο…οuN)為:

其中,為Vi上的標量積,xi(i=1,2,...,N)為Vi上的任意向量。則全體(u1οu2ο…οuN)構成的空間稱為V1,V2…,VN的張量空間,此空間上的元素稱為V1×V2×…×VN上的N階張量。特別的,如果則此張量空間稱為N階(I1,I2,…,IN)維實張量空間,記為
定義2.張量的n模式展開。令是一個N階量,其n模式展開將形成一個In×(I1I2…In-1In+1…IN)矩陣,記為A(n),其第(in,j)個元素為其對應關系 為:
j=1+Σk=1,k≠nN(ik-1)(Πm=1,m≠nk-1Im)---(2)]]>
特殊的,一個N階張量可以被展開成為一個向量a。張量A中元素被映射成al,其中對應關系為:
l=i1+Σj=2NΠt=1j-1It---(3)]]>
定義3.張量的多點積。對于兩個N階張量A和B的多點積產生一個實數c,且:
c=A·B=Σi1=1,i2=1,...,iN=1I1,I2,...,INAi1i2...,iNBi1i2...,iN---(4)]]>
定義4.張量的外積。對于一個N階張量和一個M階張量它們的外積產生一個(M+N)階張量張量C中的元素被定義為:
ci1,...,iN,j1,...,jM=ai1,...,iN·bj1,...,jM---(5)]]>
其中分別是張量A,B,C中的元素。
定義5張量多點乘積(⊙)。給定一個N+1階張量和一個N階張量其中W具有α個N階子張量,每個子張量為W和A的多點乘積的結果是一個N階張量即H=W⊙A。H中每個元素定義如下:
hj1j2...jn=Wβ·A(β=jn+Σi=1N-1(jt-1)Πt=i+1NJt)---(6)]]>
與基本自動編碼模型機結構相同,高階自動編碼機模型同樣包括一個輸入層、一個隱藏層和一個輸出層。不同的是,高階自動編碼機模型的每一層不再是一個向量,而是一個張量。高階自動編碼機模型形式化描述如下。
假設和分別代表輸入層數據和隱藏層數據。根據自動編 碼機原理,輸入層X經過如下編碼函數f映射到隱藏層H:
H=fθ(W(1)⊙X+b(1))   (7)
其中,θ={W(1),b(1)}為編碼參數,為一個N+1階張量,W(1)具有α=J1×J2×…×JN個子張量,每個子張量為為一個N階張量;f為Sigmoid函數,即f(x)=1/(1+e-x)。
解碼函數g將隱藏層數據映射回重構數據Y:
Y=hW,b(X)=gθ(W(2)⊙H+b(2))   (8)
其中,θ={W(2),b(2)}為參數,為一個的N+1階張量,W(2)具有β=I1×I2×…×IN個子張量,每個子張量為為一個N階張量;g為Sigmoid函數。
為了訓練高階自動編碼機的參數,需要將反向傳播算法從向量空間擴展到張量空間。為了推導反向傳播算法在張量空間的求解過程,下面給出高階自動編碼機模型的序列表示形式。令表示輸入數據,分別表示隱藏層和輸出層神經元的輸入數據,aj1j2...jN(2)(1jiJi,1iN),ai1i2...iN(3)(1ijIj,1jN)]]>分別表示隱藏層和輸出層數據,則高階自動編碼模型可以描述成如下形式:
zj1j2...jn(2)=Wα(1)·X+bj1j2...jn(1)(α=jn+Σi=1N-1(j1-1)Πt=i+1NJt)---(9)]]>
aj1j2...jn(2)=f(zj1j2...jn(2))---(10)]]>
zi2i2...in(3)=Wβ(2)·a(2)+bi1i2...in(2)(β=in+Σj=1N-1(ij-1)Πt=j+1NIt)---(11)]]>
h(i1i2...in)W,b(X)=ai1i2...in(3)=f(zi1i2...in(3))---(12)]]>
為了盡量捕捉數據在張量空間的分布特征,高階自動編碼模型采用張量距離構造重構誤差函數[93]。對于給定的兩個張量和x和y分別表示張量X和Y向量展開后的表示,則張量X和Y之間的張量距離定義為:
dTD=Σl,m=1I1×I2×...×INglm(xl-yl)(xm-ym)=(x-y)TG(x-y)---(13)]]>
其中,glm是系數,G是系數矩陣,反映高階數據不同坐標的內在聯系,定義如下:
glm=12πσ2exp{-||pl-pm||222σ2}---(14)]]>
||pl-pm||2是(與xl相對)和(與xm相對應)之間的位置距離:
||pl-pm||2=(i1-i1)2+(i2-i2)2+...+(iN-iN)2---(15)]]>
假設訓練集{(X(1),Y(1)),...,(X(m),Y(m))}中有m個訓練實例,對于任何一個實例(X,Y),將其展開成對應的向量表示(x,y),則對于該實例而言,其重構誤差函數可以定義為:
JTAE(θ;x,y)=12dTD2=12(hW,b(x)-y)TG(hW,b(x)-y)---(16)]]>
其中,θ={W(1),b(1);W(2),b(2)}表示高階自動編碼模型的參數,對于自動編碼模型來講,令Y=X。
則對于整個訓練集而言,基于張量距離的高階自動編碼模型的重構誤差函數定義為:
JTAE(θ)=[1mΣi=1m(12(hW,b(X(i))-Y(i))TG(hW,b(X(i))-Y(i)))]+λ2(Σp=1J1×J2×...×JnΣi1I1Σi2I2...ΣinIn(Wpi1i2...in(1))2+Σq=1I1×I2×...×InΣj1J1Σj2J2...ΣjnJn(Wqj1j2...jn(2))2)---(17)]]>
其中,第一項表示平均誤差,第二項是一個規范化項,用于防止過度擬合。
2.5高階反向傳播算法
高階自動編碼模型訓練的目標是針對參數θ={W(1),b(1);W(2),b(2)}求重構誤差函數JTAE(θ)的最小值。梯度下降法是求解非凸函數JTAE(θ)參數θ={W(1),b(1);W(2),b(2)}的有效方法。對于單個訓練實例{x,y},假設重構誤差函數對參數的偏導數為和根據梯度下降法,可以利用公式(18)和公式(19)對參 數進行一次迭代更新。
Wji1i2...in(l)=Wji1i2...in(l)-α∂ITAE(θ;x,y)∂Wji1i2...in(l)---(18)]]>
bi1i2...in(l)=bi1i2...in(l)-α∂JTAE(θ;x,y)∂bi1i2...in(l)---(19)]]>
其中,α是學習效率。梯度下降法的關鍵步驟是求得重構誤差函數JTAE(θ)對參數θ={W(1),b(1);W(2),b(2)}的偏導數和一旦求出每個實例的偏導數后,整體代價函數對參數的偏導數由公式(20)和(21)計算。
∂JTAE(θ)∂Wji1i2...in(l)=[1mΣi=1m∂JTAE(θ;x(i),y(i))∂Wji1i2...in(l)]+λWji1i2...in(l)---(20)]]>
bi1i2...in(l)=1mΣi=1m∂JTAE(θ;x(i),y(i))∂Wi1i2...in(l)---(21)]]>
為了計算重構誤差函數JTAE(θ)對參數θ={W(1),b(1);W(2),b(2)}的偏導數和本發明將反向傳播算法從向量空間擴展到張量空間,設計高階反向傳播算法。
高階反向傳播算法包括兩個關鍵步驟:前向傳播與反向傳播。在前向傳播階段,利用公式(10)到公式(12)計算z(2),z(3),a(2),a(3)的輸出值。
在反向傳播階段,首先計算輸出層每個神經元的殘差具體計算過程如下。
σi(3)=∂∂zi(3)J(θ;x,y)=∂Ti∂zi(3)=∂∂zi(3)(12gii(f(zi(3))-yi)2+12Σj=1,j≠iI1×I2×...×Ingij(f(zi(3))-yi)(f(zj(3))-yj))=gii·(f(zi(3))-yi)·f(zi(3))+Σj=1,j≠iI1×I2×...×INgij·(f(zi(3))-yj)·f(zi(3))=f(zi(3))·Σj=1I1×I2×...INgij(aj(3)-yj)=(ai(3)·(1-ai(3)))·Σj=1I1×I2×...×INgij(aj(3)-yj)---(22)]]>
然后計算隱藏層每個神經元的殘差具體計算過程如下:
σj1j2...jn(2)=Σi1=1I1Σi2I2...ΣinIn∂J(θ;x,y)∂zi1i2...in(3)·∂zi1i2...in(3)∂zj1j2...jn(2)=(Σi1=1I1Σi2I2...ΣinInwλj1j2...jn2·σi1i2...in(3))f(zj1j2...jn(2))(λ=in+Σj=1N-1(ij-1)Πt=j+1NIt)---(23)]]>
接下來,隱藏層和輸出層的每個神經元的殘差項,如下:
∂zk=i1i2...in(3)∂Wλj1j2...jn(2)=aλj1j2...jn(2)(λ=in+Σj=1N-1(ij-1)Πt=j+1NIt)---(24)]]>
∂zj1j2...jn(2)∂bμi1i2...in(1)=aμi1i2...in(1)(μ=jn+Σi=1N-1(ji-1)Πt=i+1NJt)---(25)]]>
最后,根據乘法鏈式法則,計算重構誤差函數對參數的偏導數,具體推導過程如下:
∂∂Wηt1t2...tn(l)J(θ;x,y)=∂∂zs1s2...sn(l+1)J(θ;x,y)·∂zs1s2...sn(l+1)∂Wηt1t2...tn(l)=at1t2...tn(l)·σs1s2...sn(l+1)(η=(sn+Σj=1N-1St)---(26)]]>
∂∂bs1s2...sn(l)J(W,b;x,y)=σs1s2...sn(l+1)---(27)]]>
根據以上討論,利用高階反向傳播算法計算計算重構誤差函數JTAE(θ)對參數θ={W(1),b(1);W(2),b(2)}的偏導數和從而可以確定高級深度計算模型的參數。
然后對訓練好的靜態模型進行參數的增量更新。對于高階自動編碼模型來講,其參數θ={W(1),b(1);W(2),b(2)}是由高階張量表示。為了能夠利用函數一階近似的思想快速求出參數的增量Δθ,本發明將高階自動編碼模型的參數展開成其對應的向量形式,在向量空間計算參數的增量。
根據增量式學習的性質,本發明提出的基于參數更新的高階自動編碼模型在更新參數時,要盡力使得更新的模型能夠學習新數據的特征,即模型的適應性; 同時盡力保持模型的原始知識,使得更新后的模型依然能夠有效學習歷史數據的特征,即保持性。因此,對于給定的新增訓練數據X,為了獲得模型的適應性,定義基于權重的適應性誤差函數Jadaption如公式(28)所示:
Jadaption=12ΔxnewTΩΔxnew---(28)]]>
其中,Ω是權重矩陣,典型的權重矩陣取值為表示模型參數由θ更新為θ+Δθ后的重構誤差。θ表示模型的原始參數,Δθ表示參數θ的增量,u表示學習效率,表示靜態模型的輸出。
為了度量參數更新后模型的保持性,定義參數更新誤差函數Jpreservation如公式(29)所示:
Jpreservation=12μΔθTΔθ---(29)]]>
為了兼顧參數更新的適應性與保持性,定義代價函數J(x,θ+Δθ)如公式(30)所示:
J(x,θ+Δθ)=Jadaption+Jpreservation   (30)
基于參數更新的高階自動編碼模型通過最小化代價函數J(x,θ+Δθ)求解模型參數的增量Δθ。很明顯,最小化代價函數J(x,θ+Δθ)是一個典型的非線性優化問題。為了計算參數的增量Δθ,本發明首先利用泰勒定理對展開:

由于Δθ很小,因此可將進行一階近似為:

進一步可得:

因此,代價函數J(x,θ+Δθ)可以近似為:

代價函數J(x,θ+Δθ)對Δθ求導,令導數等于0,求得Δθ的近似計算公式如下:

方程(8)的近似解為:

Δθ的這個近似解與在線梯度下降算法具有相似的形式。不同的是θ和Δθ是參數張量及其增量的向量表示。
基于一階近似的參數更新算法主要步驟如下。
(1)通過前向傳播計算高階自動編碼模型的輸出值
(2)計算高階自動編碼模型的輸出值與x的差值Δx;
(3)通過高階反向傳播算法計算高階自動編碼模型輸出值對原始參數θ的偏導數
(4)根據公式(36)計算高階自動編碼模型的參數增量Δθ,將模型的參數更新為θ+Δθ;
通過基于一階近似的參數更新算法的步驟可知,只需要將當前新的數據實例加載到內存之中,這點有利于學習規模巨大的大數據特征,除此之外,基于一階近似的參數更新算法避免通過迭代更新參數,主要運算是計算對θ的偏導數,因此算法的時間復雜度近似為O(n),n表示網絡模型的參數數目,所以參數更新速度能夠在最大程度上滿足大數據特征學習的實時性要求。
最后本發明將闡述自動編碼機的結構更新方法,進而將其擴展到高階張量空間,獲得高階自動編碼模型結構更新算法的一般形式。
對于一個具有n個輸入分量和m個隱藏層神經元的自動編碼機,其模型結構 如圖1所示。該模型參數θ={W(1),b(1);W(2),b(2)},具有如下形式:
W(1)∈Rm×n,b(1)∈Rm
                                    (37)
W(2)∈Rn×m,b(2)∈Rn
對于圖1顯示的自動編碼網絡,當增加一個隱藏層神經元后,其結構變成如圖2所示。
當增加一個隱藏層神經元后,需要調整參數形式,以適應網絡的連接。具體地說,權重矩陣W(1)與W(2)分別需要增加一行和一列,即W(1)∈R(m+1)×n,W(2)∈Rn×(m+1);同時偏置向量b(1)需要增加一個分量,即b(1)∈Rm+1。
對于自動編碼機而言,增加隱藏層神經元后,本發明將參數新增分量初始值設置為0,或者初始化為接近于0的隨機數。設自動編碼機當前參數為θ={W(1),b(1);W(2),b(2)},增加p個隱藏層神經元后的參數初始形式如下:
W(1)=W(1)0.(p)..0,W(2)=(p)W(2)0...0,b(1)=b(1)0.(p)..0---(38)]]>
更新結構后,以θ′={W(1)′,b(1)′;W(2)′,b(2)′}為初始參數,利用反向傳播算法求得自動編碼機的最終參數。
接下來,本發明將自動編碼機的結構更新算法擴展到高階空間,設計基于增加隱藏層神經元的高階自動編碼模型的結構更新算法。對于自動編碼機而言,一次可以增加一個或者多個神經元。然而,對于高階自動編碼模型而言,一次能夠增加的隱藏層神經元數目取決于高階自動編碼模型的結構。
例如,對于一個輸入為隱藏層結構為的二階自動編碼模型,其參數θ′={W(1),b(1);W(2),b(2)}的形式為:
W(1)∈Rα×I1×I2(α=J1×J2),b(1)∈RJ1×J2E(2)∈Rβ×J1×J2(β=I1×I2),b(2)∈RI1×I2---(38)]]>
對于該二階自動便模型,在增加隱藏層神經元時,每次至少增加J1個神經元或 者J2個神經元。若增加J1個神經元,則隱藏層結構變為更新后的模型參數θ′={W(1)′,b(1)′;W(2)′,b(2)′}形式變為:
W(1)∈Rα×I1×I2(α=J1×(J2+1)),b(1)∈RJ1×(J2+1)W(2)∈Rβ×J1×(J2+1)(β=I1×I2),b(2)∈RI1×I2---(39)]]>
同理,當增加J2個神經元時,隱藏層結構變為更新的模型參數θ″={W(1)″,b(1)″;W(2)″,b(2)″}形式變為:
W(1)∈Rα×I1×I2(α=(J1+1)×J2),b(1)∈R(J1+1)×J2W(2)∈Rβ×(J1+1)×J2(β=I1×I2),b(2)∈RI1×I2---(40)]]>
更一般地,當增加pJ1+qJ2(p,q∈N,p+q≥1)個隱藏層神經元時,隱藏層結構變為H~∈R(J1+q)×(J2+p),]]>更新的模型參數θ~={W~(1),b~(1);W~(2),b~(2)}]]>形式變為:
W~(1)∈Rα~×I1×I2(α~=(J1+q)×(J2+p)),b~(1)∈R(J1+q)×(J2+p)W~(2)∈Rβ×(J1+q)×(J2+p)(β=I1×I2),b~(2)∈RI1×I2---(41)]]>
下面,給出高階自動編碼模型結構更新的一般形式,對于輸入為隱藏層結構為的高階自動編碼模型,其參數θ={W(1),b(1);W(2),b(2)}形式為:
W(1)∈Rα×I1×I2×...×IN(α=J1×J2×...×JN),b(1)∈RJ1×J2×...×JNW(2)∈Rβ×J1×J2×...×JN(β=I1×I2×...×IN),b(2)∈RI1×I2×...×IN---(42)]]>
當增加p1(J2×J3×...×JN)+p2(J1×J3×...×JN)+...+pN(J1×J2×...×JN-1)(pi∈N,1iN,Σi=1Npi≥1)]]>個隱藏層神經元時,其參數θ~={W~(1),b~(1);W~(2),b~(2)}]]>形式變為:
W~(1)∈Rα~×I1×I2×...×IN(a~=(J1+p1)×(J2+p2)×...×(JN+pN))b~(1)∈R(J1+p1)×(J2+p2)×...×(JN+pN)W~(2)∈Rβ×(J1+p1)×(J2+p2)×...×(JN+pN)(β=I1×I2×...×IN),b~(2)∈RI1×I2×...×IN---(43)]]>
結構更新完成后,利用自動編碼機結構更新方法初始化更新后的高階自動編碼模型,即將更新模型參數的新增分量的初始值設置為0。然后利用上一章提出的高階反向傳播算法計算更新的高階自動編碼模型的最終參數。
根據以上分析,基于增加隱藏層神經元的自動編碼機結構更新算法的主要步驟 如下:
(1)根據公式(43)更新高階自動編碼模型參數結構,對網絡參數進行初始化;
(2)利用前向傳播計算隱藏層神經元輸出值與模型輸出值
(3)計算網絡模型輸出值與輸入數據X的差值Δx及誤差函數J(X,θ~)=12ΔxT·Δx;]]>
(4)利用高階反向傳播算法計算誤差函數對模型參數的偏導數;
(5)利用梯度下降法更新網絡參數;
(6)重復步驟2)到步驟5)直至收斂。
增加隱藏層神經元的自動編碼機結構更新算法將新引入的參數與原始參數結合作為更新的高階自動編碼模型的初始參數,充分利用原始參數提供的知識,加快參數求解的收斂速度,使得模型快速收斂,實時的學習大數據特征;從算法的步驟中可知,基于增加隱藏層神經元的結構更新算法主要采用高階反向傳播算法求解網絡誤差函數對網絡參數的偏導數,因此算法的時間復雜度與高階反向傳播算法時間復雜度相同,每次迭代的計算復雜度近似為O(n),n為網絡中的參數數目。
結合本發明的方案,進行實驗分析如下:
為了驗證本發明的有效性,將用增量式深度計算模型和基本的深度計算模型模型進行對比,驗證增量式深度計算模型的有效性。實驗數據集采用STL-10和CUAVE兩個典型的分類數據集。
在基于張量的數據表示模型中,STL-10數據集中的每張圖片被表示成一個三階張量。由于STL-10數據集的訓練集和測試集數據特征變化不明顯,參數更新量很小,僅需要通過參數更新即可使得更新的網絡模型學習新數據的特征。因 此,本發明使用STL-10數據集驗證基于一階近似的參數增量式更新算法的有效性。通過適應性、保持性和更新效率進行驗證。
為了驗證增量式深度計算模型的有效性,根據STL-10數據集設計如下三個子集:
(1)S0:包含500張訓練圖片的預訓練數據集。
(2)S1:從測試數據集中隨機選擇400張圖片作為增量式訓練數據集。
(3)S2:從測試數據集中選擇剩余的400張圖片作為測試數據集。
利用上述三個數據子集訓練如下四種參數:
(1)θ(TAE):在數據集S0上執行基本的深度計算模型,獲得模型的參數θ。
(2)ITAE-1:以θ作為原始參數,在數據集S1上執行基于一階近似的支持增量更新的深度計算模型,獲得增量式模型的更新參數ITAE-1。
(3)TAE-2:在數據集S0+S1上執行基本的深度計算模型,獲得參數TAE-2。
(4)TAE-3:在數據集S2上執行基本的深度計算模型,獲得參數TAE-3。
首先以S2作為測試數據集,通過平均平方誤差(MSE)驗證上述4個參數對這S2分類的正確性。該實驗的目的是驗證四個參數對新數據的適應能力,即更新模型學習處于動態變化中的大數據特征方面的適應性,平均平方誤差越小,說明更新模型對新數據的適應性越強。重復以上實驗過程5次,實驗結果如圖3所示。平均的平方誤差統計結果如表1所示。
表1 平均平方誤差統計結果

從實驗結果可以看出,以θ作為參數對S2進行分類時,得到的MSE最大。這是由于基本的深度計算模型是一種靜態學習模型,一旦參數確定后,便不再進行更新,因此難以有效學習新數據的特征。與基本深度計算模型不同,增量式深度計算模型以增量的方式對參數進行不斷地更新,使得模型能夠學習新數據的特征。因此以ITAE-1作為參數對S2進行分類時,得到的MSE明顯小于θ,這表明增量式深度計算模型在對參數進行更新后,能夠適應新數據的變化,有效學習新數據的特征。同時,可以看到以TAE-2作為參數對S2進行分類獲得的MSE接近于TAE-1,這是因為TAE-2是通過對新數據實例與原始數據整體執行基本深度計算模型獲得的結果,包含了新數據實例的信息,因此以TAE-2作為參數,對新數據進行分類獲得了較好的結果。與此同時,以TAE-3作為參數對S2進行分類時,獲得的MSE最小。
接下來,以S0作為測試數據集驗證四個參數對S0分類的有效性。實驗目的是驗證四個參數對歷史數據的保持性,平均平方誤差越小,說明更新模型對歷史數據的保持性越強。重復實驗5次,實驗結果如圖4所示。平均平方誤差的統計結果如表2所示。
表2 平均平方誤差統計結果

以上實驗結果表明,以θ作為參數對S0進行分類時,得到的MSE最小。這是 由于θ是利用S0進行學習獲得的參數,因此對S0進行分類時,獲得最佳的分類效果。ITAE-1與TAE-2其包含了測試數據的信息,對S0進行分類時,結果比TAE-θ稍差。但是從實驗結果中可以看出,ITAE-1與TAE-2作為參數對S0進行分類時,得到的MSE依然很低,表明兩種算法對歷史數據的特征學習具有良好的保持性,依然能夠有效的學習歷史數據特征。然而以TAE-3作為參數對S0進行分類時,獲得的MSE明顯高于其他三個參數,這是由于TAE-3是對新增數據進行訓練獲得的結果,并不包含S0的特征信息,因此在對歷史數據進行分類時效果最差。
上述兩個實驗結果表明本發明提出的算法通過參數的更新使得更新模型能夠有效的學習新數據的特征,同時有效的保持了網絡結構的原始參數。
接下來,比較ITAE-1、TAE-2和TAE-3的訓練時間,如圖5所示。圖5的顯示結果表明,增量式深度計算模型訓練參數ITAE-1所花費的時間最少,這是因為增量式深度計算模型在模型的原始參數之上,通過一次近似直接求出參數的增量對參數進行更新,無需進行多次迭代。相比之下,TAE-2和TAE-3是通過在不同數據集上執行基本深度計算模型得到的,因此執行時間遠大于獲得ITAE-1參數所需要的時間。其中TAE-2所花費的時間大于TAE-3所花費的時間,因為得到TAE-2的數據集中的數據比執行TAE-3的數據集中的數據多。總之,對于只需要對參數進行更新的網絡更新模型而言,本發明提出的算法具有最高的更新效率。
綜上所述,只有本發明提出的算法同時滿足增量式學習的三個特性:(1)不需要對原始數據重新訓練;(2)有效的學習新數據的特征,即對新數據的適應性;(3)盡可能的保持原始知識,有效學習原始數據的特征,即對歷史數據的保持性;在更新參數過程中,充分利用模型的原始知識,不需多次迭代,提高參數更新效率,最大程度上滿足動態變化的大數據特征的實時性。
在這個實驗中,將利用CUAVE這個數據集驗證基于增加隱藏層神經元的結構更新算法的有效性。
實驗過程如下:首先在訓練集上執行基本的深度計算模型,獲得初始參數θ。接下里從測試集中隨機選擇一部分作為新增訓練集,在參數θ的基礎上訓練本章提出的基于增加隱藏層神經元的結構更新算法,獲得參數θ′和新的模型結構。將測試集中剩余的數據作為測試集1,計算兩個參數對應的平均平方誤差(MSE),通過比較MSE比較兩種方法學習新數據特征的能力,即對新數據的適應性。重復實驗5次,實驗結果如圖6所示。
平均統計結果如表3所示。
表3 平均平方誤差統計結果

從實驗結果中可以看出,以θ為參數對測試集1進行分類,MSE的平均值為0.10左,相比之下,以θ′為參數對測試集1進行分類,MSE的平均值為0.06左右。由于基本的深度計算模型是一種靜態的學習模型,在新的數據到來之后,并不會對模型的結構和參數進行更新,沒有實時的更新模型知識,無法有效的學習新數據的結構,因此在對測試數據集進行分類時,MSE較高。本章提出的增量式深度計算模型可以根據新數據的特征分布,動態調整模型的結構與參數,有效學習處于動態變化之中大數據的特征,因此以θ′為參數對測試集1進行分類得到的平均平方誤差明顯低于以θ為參數對測試集進行分類獲得平均平方誤差。另外,在多次重復實驗中,以θ′為參數對測試集1進行分類時,最差的情況下得到MSE為7.8%,這一數值低于以θ為參數對測試集進行分類時得到的最 好情況,即8.6%。充分說明本發明提出的基于結構更新的增量式學習模型能夠適應新數據的變化,有效的學習新數據的特征。
接下來,以訓練數據集作為測試數據集2,計算兩個參數對應的平均平方誤差(MSE),通過比較MSE驗證本發明提出的算法的保持性,即學習歷史數據特征的能力。實驗結果如圖7所示。平均統計結果如表4所示。
表4 平均平方誤差統計結果

從以上實驗結果可以看出,盡管以θ′為參數對測試集2進行分類所得到的MSE高于以θ為參數對測試集2進行分類得到的MSE,然而二者相差不大,這是因為本發明在更新模型結構與參數時,以模型的原始知識為基礎,在原始結構和參數的基礎上對模型進行更新。更新后的模型結構和參數都包含了歷史數據的特征信息,因此本發明提出的算法對模型進行更新后,更新的模型仍然能夠有效的學習歷史數據的特征,即更新的模型具有很好的保持性。
上述兩個實驗結果表明,本發明提出的基于結構更新的增量式學習模型能夠有效的適應新的數據變化,即有效的學習動態變化的大數據特征;同時有效的保持了對原始知識的保持性,即更新的模型依然能夠有效的學習歷史數據的特征。
接下來,驗證增量式深度計算模型的收斂性。作為對比,在新增的數據集上直接執行基本深度計算模型算法得到參數θ″。將增量式深度計算模型和基本深度計算模型進行對比,二者在新增數據集上訓練參數時采用相同的結構。實驗 結果如圖8所示。
從圖8可以看出,在模型模型結構相同時,在新增數據集上直接執行基本深度計算模型平均需要200次迭代才能收斂,而增量式深度計算模型只需要100次迭代就可以收斂,收斂速度遠遠比基本深度計算模型快。另一方面,基本的深度計算模型算法容易受到數據集和初始化的影響,因此迭代次數不穩定,本發明在更新模型時,結合原始參數對更新后的模型進行初始化,充分利用原有知識,因此在學習新的數據特征的時候,能夠快速收斂且收斂次數穩定,最大程度上滿足動態變化大數據特征學習的實時性要求。

關 鍵 詞:
一種 支持 增量 更新 深度 計算 模型 設計 方法
  專利查詢網所有資源均是用戶自行上傳分享,僅供網友學習交流,未經上傳用戶書面授權,請勿作他用。
關于本文
本文標題:一種支持增量更新的深度計算模型設計方法.pdf
鏈接地址:http://www.rgyfuv.icu/p-6373509.html
關于我們 - 網站聲明 - 網站地圖 - 資源地圖 - 友情鏈接 - 網站客服客服 - 聯系我們

[email protected] 2017-2018 zhuanlichaxun.net網站版權所有
經營許可證編號:粵ICP備17046363號-1 
 


收起
展開
山东11选5中奖结果走势图