1、,神經網路有幾種不同學習規則: 例如聯想式學習、競爭式學習;性能學習之目的: 調整網路參數以最佳化網路性能最佳化過程分兩步驟: (1) 定義性能指標, 找到衡量網路性能的定量標準(性能指標在網路性能良好時很小);(2) 搜索減少性能指標的參數空間(即調整加權值、偏權值)以多變數泰勒級數展開式的近似作為性能指標: Suppose a function F(x)=F(x1,x2,xn) of n variables. Then the expansion of Taylor Series at point x* is as follows. F(x)=F(x*)+ |x=x* (x1-x1*)+
2、|x=x* (x2-x2*) + |x=x* (xn-xn*)+ |x=x* (x1-x1*)2 + |x=x* (x1-x1*)(x2-x2*) + Matrix form: F(x)=F(x*+x)=F(x*)+F(x)T |x=x*(x-x*)+ (x-x*)T 2F(x)|x=x* (x-x*)+,=F(x*)+F(x)T|x=x* x+ xT2F(x)|x=x* x+ (1)Hessian:,F(x)的第 i 個元素 是F(x)在 xi軸上的 first-order derivative2F(x)的第 i 個對角元素 是性能指標 F 沿 xi軸的 second-order deriv
3、ativeDirectional derivative: (設 P 為沿所求導數方向上的向量) 沿 P 方向的二階導數: (2) Note1: 一階導數為斜率函數, 且 pTF(x) 為內積, 故與梯度正交的 方向之斜率為 0 (即, 與輪廓線/等高線/等位線(contour)相切的 方向之斜率為 0 ); 最大斜率出現在同方向上 Note2: F(x1,x2,xn) = ci (constant) 的一系列曲線圖稱輪廓線 (i=1,2,),最佳化的必要條件: 當x0, 則高階導數項可略 (1) F(x*+x) F(x*) + F(x)T|x=x* x .(3) Suppose x* is t
4、he point of local min, and x 0 Let F(x*) F(x*+x) be true, then F(x)T|x=x* x 0 But if F(x)T|x=x* x 0 then F(x*+(-x) F(x*) F(x)T|x=x* x 0 , then F(x*) 0 , then A is positive definite (for any vector z),Ax=x i0 Matrix A: positive definite for all i=1,2, i.e. we can employ eigenvaluei to verify whether
5、a matrix is positive definite. Note: 二階導數為0, 三階導數為正時, 仍可能存在local min 正定的Hessian為充分條件另一性能指標: 二次函數 F(x) = xTAx+BTx+f = ax2+bxy+cy2+dx+ey+f .(A) = x y x yT+d eTx y+f F(x)=Ax+B, 2F(x) =A= (Hessian) .(B)Note: 三階以上導數為0 以A的eigenvalue/eigenvector(z1,z2, )作為新基底向量, 因A為symmetric matrix, 其eigenvector兩兩正交, let:
6、C=z1,z2, , zn ; suppose zk normalized C-1 = CT,基底變換:= CTAC = or A=CCT Let p=Ch ; h corresponds to p which are vectors along the eigenvectors of A ; furthermore pT=(Ch)T=hTCT If p=zmax then h=CTp=CTzmax =0 0 1 0 0T which means h only exists at the corresponding max since eigenvectors are orthogonal.t
7、hen (2) pTAp/|p|2= = = =maxi.e. 在最大特徵值的特徵向量方向上, 存在最大的二階導數 (事實上, 在每個特徵向量方向的二階導數, 都等於相對應的特徵值; 在其他方向上的二階導數, 等於特徵值的加權平均值),Note1:特徵向量被稱為函數輪廓線的主軸 (即定義了二次交叉項(xy)為0的座標系統); 特徵值絕對值愈大,曲率半徑(二階導數 )愈大, 輪廓線愈密 (輪廓線之間的距離愈小)Note2:上述只在所有特徵值同號, 才有效! Specifically 所有特徵值為正, 則有極小值; 所有特徵值為負, 則有極大值. 特徵值有正有負, 為saddle pt ; eig
8、envalue(H) 0, 可能無極小值. eigenvalue(H) 0,可能無極大值,最陡坡降法: 利用一階泰勒展開 pk為搜索方向, 先給定一初始猜測值 x0 , 依照等式 xk+1=xk+kpk xk = xk+1 xk = kpk (3) F(xk+1 )=F(xk+xk) F(xk) +gkTxk where gk=F(x)|x=xk F(xk+1 ) F(xk) gkTxk=kgkTpk0 gkTpk 0 滿足gkTpk 0 的pk稱坡降方向 gkTpk為最大負數時, 即為最陡坡降方向 (在pk方向上函數遞減速度最快); 又由於gkTpk為內積, 故當gk與pk反向時, 絕對值最
9、大 pk = -gk ; xk+1 = xk kgk (4)學習率快, 可快速收斂. 但學習率太大, 演算法會不穩定(振盪, 甚至可能跳過極小點); 較小的學習率, 最速下降的軌跡, 總是與輪廓線正交; 此乃因梯度與輪廓線正交.,如何確定最大可行的學習率? 對於任何函數, no way! 但對於二次函數, 卻有上限. F(x)= xTAx+BTx+f (suppose : const) F(x)=Ax+B 代入(4) xk+1 = xk (Axk+B) 或 xk+1 = I A xk-B (此為線性動態系統) . (5) Substituting with eigenvalue(i) and
10、eigenvector(zi) of Hessian A, we get I A zi = zi-A zi = zi-i zi=(1-i) ziI A與A的eigenvector相同, eigenvalue為1-i 線性動態系統 (5) 的 eigenvalue of I A 1 則系統就是穩定的1 |1-i| =i -1 1 (i0 if having mininum) 2/i 2/max 學習率與Hessian的特徵值成反比;又, 前述 :在最大特徵值的特徵向量方向上演算法收斂最快 最小特徵值與學習率決定演算法收斂的快慢; 特徵值的大小相差愈大, 最陡坡降法收斂愈慢1Modern Cont
11、rol Theory by W.L. Brogan,另一法: 沿直線最小化, 利用k使每次疊代的性能指標最小化; 即每次疊代, 使 F(xk+1) = F(xk+kpk) 最小化 對任意函數的這種最小化, 需作線性搜索 (後述:修正的牛頓法); 對二次函數的這種最小化, 如下 (3) (6) 令該導數為 0 , 求出k= (7) Ak:在xk的Hessian matrix , 即 Ak= (Ak不是k的函數) (6)以連鎖定律驗證正交 所以在極小點, 該導數為 0 , 梯度與前一步搜索方向正交,演算法的每次疊代都是正交的; 因為沿直線的最小化, 總會在輪廓線的切線上一點停止, 又由於梯度正交輪
12、廓線, 沿梯度相反方向的下一步就與前一步正交牛頓法: 求 F(x) 的二次近似的駐點 比較 (1), (A), (B) 求此二次函數對 xk 的梯度, 並設它為 0 , 得到 故牛頓法定義為 (D) 因為牛頓法總是用二次函數逼近 F(x) , 然後求其駐點; 所以, 原函數若為二次函數且有極小點, 它就能一步最小化. 如果原函數不是二次函數, 則牛頓法無法一步實現最小化 (雖然疊代是朝全域極小點方向進行); 實際上, 根本無法確定它是否收斂 (因為這又取決於具體的函數本身與初始點) 牛頓法在許多應用中, 都能快速收斂; 此乃因解析函數能被二次函數精確近似 Remark: 何謂解析函數 ?,牛頓
13、法無法區別 local min, global min, or saddle pt , 因為它將函數近似為二次函數; 而二次函數只有一個極小點, 故與最陡坡降法一樣也依賴曲面特徵(一階與二階導數). 它無法弄清函數的全域特徵牛頓法二次近似的駐點, 雖然總在相對應的駐點附近; 但可能收斂於原函數的鞍點 (即使初始點離局部極小點較近) -此點與最陡坡降法不同. 也可能初始點離局部極小點較遠 (相對於距離鞍點), 卻收斂於局部極小點.牛頓法可以產生難以預料的結果 (雖然收斂速度比最陡坡降法更快)牛頓法還可能振盪與發散, 故其表現頗複雜; 尤其, 又需對赫森矩陣及其反矩陣的計算與儲存. 比較(4),
14、(D) 當 , 它們的搜索方向將相同! 由此, 又導出所謂的類牛頓法或單步正割法(one-step-secant methods) -該法使用正定矩陣 Hk 代替Ak ,不需轉置且每次疊代都更新, 這類演算法能使 Hk 收斂於 A-12另有修正的牛頓法, 克服原標準演算法的缺點 (例如, 赫森為 0 的奇異性, 牛頓法不收斂); 在自適應演算法中每次輸入/輸出對, 都使網路參數被更新2 P.E. Gill, W. Murray and M.H. Wright, “Practical Optimization”,共軛梯度法: 用於二次函數, 只需一階導數, 但具有二次終結性質 -在有限的疊代次數
15、內, 使二次函數極小化 (牛頓法即稱為二次終結法) 回憶(A): ; if and only if , kj (E) 稱向量集合pk, 對於正定赫森矩陣 A 互相共軛 驗證 A 的特徵向量是共軛的, 以 zk 代替 pk , 得 (因為對稱矩陣的特徵向量彼此正交, 所以 ) (kj) 回憶(B): F(x)=Ax+B, 2F(x) =A 在k+1 次疊代時, 梯度的變化如下: and 選擇 使函數 F(x) 在 pk 方向上極小化 (E) , kjNote: 已不需求赫森矩陣,如果搜索方向(pj)與梯度變化方向( )垂直, 則它們共軛; 第一次搜索方向 p0 是任意的, 而 p1 只要與 垂直
16、即可通常由最陡坡降法的方向開始搜索 p0=-g0 且疊代形式可簡化為3 (8)確定 的方法常用有三種 (9)歸納共軛梯度法, 如下: (i) p0=-g0 作為第一次搜索方向 (ii) 作為進一步搜索, 確定 使函數 F(x) 沿 pk 方向上極小化 ; 對於二次函數, 可使用(7) (iii) 根據(8)確定下一次搜索方向, 利用(9)計算 (iv) 若演算法不收斂, 則回到(ii)Note:共軛梯度法會調整下一次搜索方向 (以通過極小點, 尤其對二次函數而言)3 C.E. Scales, Intro. To Non-Linear Optimization,多層感知機每一層可有不同數目的神經
17、元, 轉移函數也可不同. W1表示第一層加權值矩陣, b2s2表示第二層第S個神經元的雜訊,.,輸入,第一層,第二層,第三層,f1,b11,b12,.,b1s1,w11,1,W1s1, r,p1,p2,p3,pr,n11,f1,n12,.,f1,n1s1,.,a11,w21,1,a12,.,a1s1,w2s2, s1,b21,b12,b2s2,f2,n21,f2,n22,f2,n2s2,.,a21,a22,.,a2s2,w31,1,w3s3,s2,簡化成矩陣形式第一層(隱藏層)的偏權值可用於確定曲線的位置, 加權值可確定曲線的坡度; 第二層(輸出層)的偏權值會使網路的響應曲線上移或下移. 研究
18、證實, 在兩層網路的隱藏層中使用S-形活化函數, 在輸出層中使用線性轉移函數, 就幾乎可以任意精密度近似有興趣的函數, 只要隱藏層中有足夠的單元可用,-輸入-第一層-第二層-,w1,p,r x 1,s1 x r,b1,1,s1 x 1,+,r,f1,n1,s1 x 1,w2,a1,s1 x 1,s2 x s1,b2,1,s2 x 1,+,f2,s1,s2,n2,s2 x 1,A1 = logsig(W1P+B1),A2 = purelin(W2A1+B2),a2,s2x1,第一層的神經元從外部接收輸入: a0 = p (也是方程式 am+1=fm+1(wm+1am+bm+1) 的起點, m=0
19、,1,2, , M-1 M 是網路的層數)最後一層神經元的輸出是網路的輸出: a = aM多層網路的BP演算法使用的性能指標: 均方誤差 演算法的輸入是網路正確行為的樣本集合: p1, t1, p2, t2, , pQ, tQ ; 每輸入一個樣本, 便將網路輸出與目標輸出相比較, 以調整網路參數使均方誤差最小化: F(x) = Ee2 = E(t-a)2 , x是加權值與偏權值的向量若網路有多個輸出, 則為一般形式, 如下: F(x) = EeTe = E(t-a)T(t-a)以第 k 次疊代時的均方誤差 (x) 近似均方誤差F(x) (即代替均方誤差的期望值EeTe ),即 (x)=(t(k
20、)-a(k)T(t(k)-a(k)=eT(k)e(k)根據最陡坡降法: xk+1 = xk kgk 近似均方誤差的最陡坡降演算法為 wi,jm(k+1)=wi,jm(k) - bim(k+1)=bim(k) - .(1) 偏導數的計算(應用連鎖法則) . (2) 定義 (F對 m 層輸入的第 i 個元素的靈敏性) (2) ,現在將(1)表示成 . (5) . (6)用矩陣形式表示 sm 靈敏性的倒傳遞 (再次使用連鎖法則, 第 m 層的靈敏性透過第m+1 層的靈敏性來計算) 先使用雅可比矩陣(如上, 右式)推導出靈敏性的循環關係 其中一個:,雅可比矩陣改寫成 Where 利用矩陣形式的連鎖法則
21、, 得到靈敏性的倒傳遞 (BP) 關係 . (4)靈敏性的倒傳遞關係BP演算法為了計算梯度, 須先找出靈敏性的倒傳遞關係; 優點: 可有效地實現連鎖法則,但如何找起始 sM ?由於 . (3)歸納BP演算法, 步驟如下:(i) 透過網路將輸入向前傳遞: a0 = p am+1 = fm+1(wm+1am+bm+1) , m = 0,1,2, , M-1 a = aM(ii) 透過網路將靈敏性倒傳遞: 即執行(3), (4)(iii) 使用近似的最陡坡降法更新加權值與偏權值: 即執行(5), (6),例一: 一動態系統 y(k+1) = f(y(k) 要求選擇初始條件 y(0) , 使得在某一終
22、止時刻 k = K, 系統的輸出 y(K) , 將盡可能地接近某一目標輸出 t , 並以最陡坡降法使性能指標 F(y(0) = (t y(K)2 最小化 ? 本題展示連鎖法則計算梯度, 如下: 梯度為 (4) y(K) 不是 y(0) 的顯函數 無法直接求得 定義 (2) 使用連鎖法則 (1) 由已知 y(k+1) = f(y(k) 因此r(k)的循環方程式為 , k=0,1,2,K-1 (3) 在 k = 0 的初始值為 (2) 整個計算梯度過程為 r(0) = 1 (3) (4)(2),例二: How to get the derivatives of activation functio
23、ns, logsig and tansig,例三: 如圖所示的兩層網路, 初始加權值與偏權值為 w1=1 , b1=1 , w2=-2 , b2=1 ; 輸入與輸 出目標對為 (p=1 , t=1 )(i)求均方誤差, e2(ii)求初始值的 (iii)以倒傳遞法求 並與 (ii) 比較,p,輸入- 隱藏層 -輸出層 -,w1,logsig,n1,b1,a1,w2,b2,purelin,n2,a2,1,1,例四: 下圖的兩層網路, w1(0)= -1 , b1(0)=1 , w2(0)= -2 , b2(0)=1 ; ( p= -1 , t=1 ) ; 設=1 , 執行一次倒傳遞疊代 ?,p,
24、輸入 - 雙曲正切-s形隱藏層 - 雙曲正切-s形輸出層 -,w1,b1,1,tansig,n1,a1,w2,b2,1,tansig,n2,a2,倒傳遞演算法是近似最陡坡降的方法, 最陡坡降法 (SDBP) 是簡單但速度較慢的最小化方法; 共軛梯度法與牛頓法一般有較快的收斂, 但對實際應用而言, 仍嫌太慢. 因此有很多提高演算法收斂速度的研究, 上述後兩者屬標準數值最佳化技術, 另一類為利用啟發式訊息, 針對倒傳遞演算法特定性能的研究, 例如: 可變學習率, 動量的引用等倒傳遞演算法利用結果的導數來回溯修正加權值、偏權值,BP演算法輸入向量X決定BP之輸入層處理單元數, 目標向量T決定BP之輸
25、出層處理單元數第 m 層的第 j 個處理單元的輸出值為該處理單元的淨輸入值之非線性轉換BP學習目的: 降低輸出單元的輸出值與目標值之誤差; 一般以能量函數或誤差函數或稱性能函數 E 表示(如下), 其值愈小代表誤差小, 學習品質好 (或學習品質高)BP一般採用最陡坡降法使誤差函數最小化: 每輸入一個訓練範例, 網路即調整其內部權值; 調整的幅度與誤差函數對該權值的敏感度成正比, 也就是與誤差函數對權值的偏微分值的大小成正比, 如下所示,由(5)得知, E對某輸出處理單元之輸出 的偏微分值, 單純地只與該處理單元的誤差量有關 (即與 有關),再作整理(甲) 處於隱藏層與輸出層之間 將(5),(7
26、),(8)代入(4), 得 另可將(8),(10)代入(9), 得(乙) 非處於隱藏層與輸出層之間 將(7),(8),(14)代入(4), 得 一樣可將(8),(10)代入(9), 得 比較(12),(15), 得 因此, 不論 是否處於隱藏層與輸出層之間, 皆可以(12)為通式; 只是 代表所連接較後層之處理單元的誤差量, 須以(13)求出 (若較後層是輸出層), 否則以(16)求解將(12)代入(17)得關鍵公式,以 logsig 轉移函數為例, 即 且將(19)代入(13)與(16), 可分別求得 所連接之較後層處理單元為輸出層或隱藏層的利用(20),(21),(18)可求出權值修正量 ; 閥值或門檻值亦可以相同方法修正, 即第 m 層第 j 個處理單元的閥值調整量為當BP使用固定學習率訓練時, 常遭遇減緩現象與跳脫現象, 可以 Extended Delta-Bar-Delta Algorithm by A.A. Minia , 使學習速率與精度提高,