300 likes | 611 Views
神經網路有幾種 不同學習規則 : 例如聯想式學習、競爭式學習; 性能學習 之目的 : 調整網路參數以最佳化網路性能 最佳化過程 分兩步驟 : (1) 定義性能指標 , 找到衡量網路性能的定量標準 ( 性能指標在網路性能良好時很小 ) ; (2) 搜索減少性能指標的參數空間 ( 即調整加權值、偏權值 ) 以多變數泰勒級數展開式的近似作為性能指標 :
E N D
神經網路有幾種不同學習規則: 例如聯想式學習、競爭式學習; • 性能學習之目的: 調整網路參數以最佳化網路性能 • 最佳化過程分兩步驟: (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*)+ |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+ ∆xT∇2F(x)|x=x* ∆x+ … (1) • Hessian:
∇F(x)的第 i 個元素 是F(x)在 xi軸上的 first-order derivative • ∇2F(x)的第 i 個對角元素 是性能指標F 沿 xi軸的 second-order derivative ․Directional derivative: (設 P 為沿所求導數方向上的向量) 沿 P 方向的二階導數: …… (2) Note1: 一階導數為斜率函數, 且 pT∇F(x) 為內積, 故與梯度正交的 方向之斜率為 0 (即, 與輪廓線/等高線/等位線(contour)相切的 方向之斜率為 0 ); 最大斜率出現在同方向上 Note2: F(x1,x2,…,xn) = ci (constant) 的一系列曲線圖稱輪廓線 (i=1,2,…)
最佳化的必要條件: 當∆x→0, 則高階導數項可略 (1) ⇒ F(x*+∆x) ≃ F(x*) + ∇F(x)T|x=x* ∆x ……..(3) Suppose x* is the 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 < F(x*) (inconsistent with x* being the point of local min) so, ∇F(x)T|x=x*∆x = 0 , i.e. ∇F(x)T|x=x* = 0 x* is called a stationery pt (不是充分條件, ∵ maybe asaddle pt) ‧二階條件: ∵ ∇F(x)T|x=x* = 0 ∴ (1) ⇒ F(x*+∆x) = F(x*) + ∆xT∇2F(x)|x=x*∆x + … if ∆xT∇2F(x)|x=x*∆x > 0 , then F(x*) < F(x*+ ∆x) i.e. Hessian matrix is positive definite Remark: if zTAz > 0 , then A is positive definite (for any vector z)
∵Ax=λx ∴λi>0⇒ Matrix A: positive definite for all i=1,2, … i.e. we can employ eigenvalueλi to verify whether 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 y]T+[d e]T[x y]+f ▽F(x)=Ax+B, ▽2F(x) =A= (Hessian) …..(B) Note: 三階以上導數為0 以A的eigenvalue/eigenvector(z1,z2, …)作為新基底向量, 因A為symmetric matrix, 其eigenvector兩兩正交, let: C=[z1,z2, …, zn] ; suppose zk normalized ⇒ C-1 = CT
基底變換:Λ= [CTAC] = or A=CΛCT 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 …0]T which means h only exists at the corresponding λmax since eigenvectors are orthogonal. then (2) ⇒ pTAp/|p|2= = = =λmax i.e. 在最大特徵值的特徵向量方向上, 存在最大的二階導數 (事實上, 在每個特徵向量方向的二階導數, 都等於相對應的特徵值; 在其他方向上的二階導數, 等於特徵值的加權平均值)
Note1:特徵向量被稱為函數輪廓線的主軸(即定義了二次交叉項(xy)為0的座標系統); 特徵值絕對值愈大,曲率半徑(二階導數 )愈大, 輪廓線愈密 (輪廓線之間的距離愈小) Note2:上述只在所有特徵值同號, 才有效! Specifically 所有特徵值為正, 則有極小值; 所有特徵值為負, 則有極大值. 特徵值有正有負, 為saddle pt ; eigenvalue(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) +gkTΔxk where gk=∇F(x)|x=xk ∵ F(xk+1 ) < F(xk) ∴ gkTΔxk=αkgkTpk<0 ⇒ gkTpk <0 滿足gkTpk <0 的pk稱坡降方向 gkTpk為最大負數時, 即為最陡坡降方向 (在pk方向上函數遞減速度最快); 又由於gkTpk為內積, 故當gk與pk反向時, 絕對值最大 ⇒ 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 eigenvector(zi) of Hessian A, we get [I –αA] zi = zi-αA zi = zi-αλi zi=(1-αλi) zi • [I –αA]與A的eigenvector相同, eigenvalue為1-αλi 線性動態系統 (5) 的 eigenvalue of [I –αA] < 1 則系統就是穩定的[1] ⇒ |1-αλi| =αλi -1 < 1 (λi>0 if having mininum) ⇒ α< 2/λi ⇒ α< 2/λmax ⇒ 學習率與Hessian的特徵值成反比;又, 前述 :在最大特徵值的特徵向量方向上演算法收斂最快 ⇒ 最小特徵值與學習率決定演算法收斂的快慢; 特徵值的大小相差愈大, 最陡坡降法收斂愈慢 [1]Modern Control 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 , 梯度與前一步搜索方向正交
演算法的每次疊代都是正交的; 因為沿直線的最小化, 總會在輪廓線的切線上一點停止, 又由於梯度正交輪廓線, 沿梯度相反方向的下一步就與前一步正交 ※牛頓法: 求 F(x) 的二次近似的駐點 比較 (1), (A), (B) ⇒ 求此二次函數對 ∇xk 的梯度, 並設它為 0 , 得到 故牛頓法定義為 ……(D) 因為牛頓法總是用二次函數逼近 F(x) , 然後求其駐點; 所以, 原函數若為二次函數且有極小點, 它就能一步最小化.如果原函數不是二次函數, 則牛頓法無法一步實現最小化 (雖然疊代是朝全域極小點方向進行); 實際上, 根本無法確定它是否收斂 (因為這又取決於具體的函數本身與初始點) 牛頓法在許多應用中, 都能快速收斂; 此乃因解析函數能被二次函數精確近似 Remark: 何謂解析函數 ?
牛頓法無法區別local min, global min, or saddle pt , 因為它將函數近似為二次函數;而二次函數只有一個極小點, 故與最陡坡降法一樣也依賴曲面特徵(一階與二階導數). 它無法弄清函數的全域特徵 • 牛頓法二次近似的駐點, 雖然總在相對應的駐點附近; 但可能收斂於原函數的鞍點 (即使初始點離局部極小點較近) ---此點與最陡坡降法不同. 也可能初始點離局部極小點較遠 (相對於距離鞍點), 卻收斂於局部極小點.牛頓法可以產生難以預料的結果 (雖然收斂速度比最陡坡降法更快) • 牛頓法還可能振盪與發散,故其表現頗複雜; 尤其, 又需對赫森矩陣及其反矩陣的計算與儲存.比較(4), (D) ⇒ 當 , 它們的搜索方向將相同! 由此, 又導出所謂的類牛頓法或單步正割法(one-step-secant methods) ---該法使用正定矩陣 Hk 代替Ak ,不需轉置且每次疊代都更新,這類演算法能使 Hk 收斂於 A-1[2] • 另有修正的牛頓法, 克服原標準演算法的缺點 (例如, 赫森為 0的奇異性, 牛頓法不收斂); 在自適應演算法中每次輸入/輸出對, 都使網路參數被更新 [2] P.E. Gill, W. Murray and M.H. Wright, “Practical Optimization”
※共軛梯度法: 用於二次函數, 只需一階導數,但具有二次終結性質 ---在有限的疊代次數內, 使二次函數極小化 (牛頓法即稱為二次終結法) 回憶(A): ; if and only if , k≠j …(E) 稱向量集合{pk}, 對於正定赫森矩陣 A 互相共軛 驗證 A 的特徵向量是共軛的, 以 zk代替 pk , 得 (因為對稱矩陣的特徵向量彼此正交, 所以 ) (k≠j) 回憶(B): ▽F(x)=Ax+B, ▽2F(x) =A 在k+1 次疊代時, 梯度的變化如下: and 選擇 使函數 F(x) 在 pk方向上極小化 ∴(E) ⇒ , k≠j Note: 已不需求赫森矩陣
․如果搜索方向(pj)與梯度變化方向( )垂直, 則它們共軛; 第一次搜索方向 p0是任意的, 而 p1 只要與 垂直即可 ∴通常由最陡坡降法的方向開始搜索 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
輸入 第一層 第二層 第三層 n21 n11 a11 w21,1 a21 w31,1 w11,1 Σ f1 Σ f2 p1 • 多層感知機 • 每一層可有不同數目的神經元, 轉移函數也可不同. W1表示第一層加權值矩陣, b2s2表示第二層第S個神經元的雜訊 b11 b21 a12 n22 a22 n12 p2 Σ f1 Σ f2 ……. b12 ….. b12 ….. p3 ….. ….. …... ….. n1s1 a1s1 n2s2 a2s2 Σ f1 Σ f2 W1s1, r w2s2, s1 w3s3,s2 pr b2s2 b1s1
--輸入--第一層--------------------------------第二層------------------------------輸入--第一層--------------------------------第二層---------------------------- p a1 a2 • 簡化成矩陣形式 • 第一層(隱藏層)的偏權值可用於確定曲線的位置, 加權值可確定曲線的坡度; 第二層(輸出層)的偏權值會使網路的響應曲線上移或下移. 研究證實, 在兩層網路的隱藏層中使用S-形活化函數, 在輸出層中使用線性轉移函數, 就幾乎可以任意精密度近似有興趣的函數, 只要隱藏層中有足夠的單元可用 w1 f1 w2 f2 r x 1 s1 x 1 s2x1 s1 x r s2 x s1 n2 n1 + + s1 x 1 s2 x 1 1 b1 1 b2 r s1 s2 s1 x 1 s2 x 1 A1 = logsig(W1P+B1) A2 = purelin(W2A1+B2)
第一層的神經元從外部接收輸入: a0 = p (也是方程式 am+1=fm+1(wm+1am+bm+1) 的起點, m=0,1,2, …, M-1 M 是網路的層數) • 最後一層神經元的輸出是網路的輸出: a = aM • 多層網路的BP演算法使用的性能指標: 均方誤差 演算法的輸入是網路正確行為的樣本集合: {p1, t1}, {p2, t2}, …, {pQ, tQ} ; 每輸入一個樣本, 便將網路輸出與目標輸出相比較, 以調整網路參數使均方誤差最小化: F(x) = E[e2] = E[(t-a)2] , x是加權值與偏權值的向量 .若網路有多個輸出, 則為一般形式, 如下: F(x) = E[eTe] = E[(t-a)T(t-a)] .以第 k 次疊代時的均方誤差 (x) 近似均方誤差F(x) (即代替均方誤差的期望值E[eTe] )
即 (x)=(t(k)-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 利用矩陣形式的連鎖法則, 得到靈敏性的倒傳遞 (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) , 使得在某一終止時刻 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 functions, logsig and tansig
輸入---- 隱藏層 ----------------------------------輸出層 --------------------- w1 n1 a1 w2 n2 a2 ∑ logsig ∑ purelin p 例三: 如圖所示的兩層網路, 初始加權值與偏權值為 w1=1 , b1=1 , w2=-2 , b2=1 ; 輸入與輸 出目標對為 (p=1 , t=1 ) (i)求均方誤差, e2 (ii)求初始值的 (iii)以倒傳遞法求 並與 (ii) 比較 b1 b2 1 1
輸入 ----- 雙曲正切-s形隱藏層 -------------------------- 雙曲正切-s形輸出層------------- w1 n1 a1 w2 n2 a2 ∑ tansig ∑ tansig 例四: 下圖的兩層網路, w1(0)= -1 , b1(0)=1 , w2(0)= -2 , b2(0)=1 ; ( p= -1 , t=1 ) ; 設α=1 , 執行一次倒傳遞疊代 ? p b1 b2 1 1
倒傳遞演算法是近似最陡坡降的方法, 最陡坡降法 (SDBP) 是簡單但速度較慢的最小化方法; 共軛梯度法與牛頓法一般有較快的收斂, 但對實際應用而言, 仍嫌太慢. • 因此有很多提高演算法收斂速度的研究, 上述後兩者屬標準數值最佳化技術, 另一類為利用啟發式訊息, 針對倒傳遞演算法特定性能的研究, 例如: 可變學習率, 動量的引用等 • 倒傳遞演算法利用結果的導數來回溯修正加權值、偏權值
BP演算法 • 輸入向量X決定BP之輸入層處理單元數, 目標向量T決定BP之輸出層處理單元數 • 第 m 層的第 j 個處理單元的輸出值為該處理單元的淨輸入值之非線性轉換 • BP學習目的:降低輸出單元的輸出值與目標值之誤差; 一般以能量函數或誤差函數或稱性能函數 E 表示(如下), 其值愈小代表誤差小, 學習品質好 (或學習品質高) • BP一般採用最陡坡降法使誤差函數最小化: 每輸入一個訓練範例, 網路即調整其內部權值; 調整的幅度與誤差函數對該權值的敏感度成正比,也就是與誤差函數對權值的偏微分值的大小成正比,如下所示
由(5)得知, E對某輸出處理單元之輸出 的偏微分值, 單純地只與該處理單元的誤差量有關 (即與 有關)
再作整理 (甲) 處於隱藏層與輸出層之間 將(5),(7),(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 , 使學習速率與精度提高