1 / 30

神經網路有幾種 不同學習規則 : 例如聯想式學習、競爭式學習; 性能學習 之目的 : 調整網路參數以最佳化網路性能

神經網路有幾種 不同學習規則 : 例如聯想式學習、競爭式學習; 性能學習 之目的 : 調整網路參數以最佳化網路性能 最佳化過程 分兩步驟 : (1) 定義性能指標 , 找到衡量網路性能的定量標準 ( 性能指標在網路性能良好時很小 ) ; (2) 搜索減少性能指標的參數空間 ( 即調整加權值、偏權值 ) 以多變數泰勒級數展開式的近似作為性能指標 :

chessa
Télécharger la présentation

神經網路有幾種 不同學習規則 : 例如聯想式學習、競爭式學習; 性能學習 之目的 : 調整網路參數以最佳化網路性能

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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*)+ |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*)+…

  2. =F(x*)+∇F(x)T|x=x* ∆x+ ∆xT∇2F(x)|x=x* ∆x+ … (1) • Hessian:

  3. ∇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,…)

  4. 最佳化的必要條件: 當∆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)

  5. ∵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

  6. 基底變換:Λ= [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. 在最大特徵值的特徵向量方向上, 存在最大的二階導數 (事實上, 在每個特徵向量方向的二階導數, 都等於相對應的特徵值; 在其他方向上的二階導數, 等於特徵值的加權平均值)

  7. Note1:特徵向量被稱為函數輪廓線的主軸(即定義了二次交叉項(xy)為0的座標系統); 特徵值絕對值愈大,曲率半徑(二階導數 )愈大, 輪廓線愈密 (輪廓線之間的距離愈小) Note2:上述只在所有特徵值同號, 才有效! Specifically 所有特徵值為正, 則有極小值; 所有特徵值為負, 則有極大值. 特徵值有正有負, 為saddle pt ; eigenvalue(H) ≧ 0, 可能無極小值. eigenvalue(H) ≦ 0,可能無極大值

  8. 最陡坡降法: 利用一階泰勒展開 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) • 學習率快, 可快速收斂. 但學習率太大, 演算法會不穩定(振盪, 甚至可能跳過極小點); 較小的學習率, 最速下降的軌跡, 總是與輪廓線正交; 此乃因梯度與輪廓線正交.

  9. 如何確定最大可行的學習率? 對於任何函數, 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

  10. ※另一法: 沿直線最小化, 利用αk使每次疊代的性能指標最小化; 即每次疊代, 使 F(xk+1) = F(xk+αkpk) 最小化 對任意函數的這種最小化, 需作線性搜索(後述:修正的牛頓法); 對二次函數的這種最小化, 如下 (3) ⇒ …(6) 令該導數為 0 , 求出αk= …(7) Ak:在xk的Hessian matrix , 即 Ak= (Ak不是k的函數) (6)以連鎖定律驗證正交⇒ 所以在極小點, 該導數為 0 , 梯度與前一步搜索方向正交

  11. 演算法的每次疊代都是正交的; 因為沿直線的最小化, 總會在輪廓線的切線上一點停止, 又由於梯度正交輪廓線, 沿梯度相反方向的下一步就與前一步正交 ※牛頓法: 求 F(x) 的二次近似的駐點 比較 (1), (A), (B) ⇒ 求此二次函數對 ∇xk 的梯度, 並設它為 0 , 得到 故牛頓法定義為 ……(D) 因為牛頓法總是用二次函數逼近 F(x) , 然後求其駐點; 所以, 原函數若為二次函數且有極小點, 它就能一步最小化.如果原函數不是二次函數, 則牛頓法無法一步實現最小化 (雖然疊代是朝全域極小點方向進行); 實際上, 根本無法確定它是否收斂 (因為這又取決於具體的函數本身與初始點) 牛頓法在許多應用中, 都能快速收斂; 此乃因解析函數能被二次函數精確近似 Remark: 何謂解析函數 ?

  12. 牛頓法無法區別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”

  13. ※共軛梯度法: 用於二次函數, 只需一階導數,但具有二次終結性質 ---在有限的疊代次數內, 使二次函數極小化 (牛頓法即稱為二次終結法) 回憶(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: 已不需求赫森矩陣

  14. ․如果搜索方向(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

  15. 輸入 第一層 第二層 第三層 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

  16. --輸入--第一層--------------------------------第二層------------------------------輸入--第一層--------------------------------第二層---------------------------- 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)

  17. 第一層的神經元從外部接收輸入: 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] )

  18. 即 (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) ⇒

  19. 現在將(1)表示成 …. (5) …. (6) 用矩陣形式表示 sm≡ 靈敏性的倒傳遞(再次使用連鎖法則, 第 m 層的靈敏性透過第m+1 層的靈敏性來計算) 先使用雅可比矩陣(如上, 右式)推導出靈敏性的循環關係 其中一個:

  20. 雅可比矩陣改寫成 Where 利用矩陣形式的連鎖法則, 得到靈敏性的倒傳遞 (BP) 關係 …. (4) • 靈敏性的倒傳遞關係 • BP演算法為了計算梯度, 須先找出靈敏性的倒傳遞關係; 優點: 可有效地實現連鎖法則

  21. 但如何找起始 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)

  22. 例一: 一動態系統 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)

  23. 例二: How to get the derivatives of activation functions, logsig and tansig

  24. 輸入---- 隱藏層 ----------------------------------輸出層 --------------------- 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

  25. 輸入 ----- 雙曲正切-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

  26. 倒傳遞演算法是近似最陡坡降的方法, 最陡坡降法 (SDBP) 是簡單但速度較慢的最小化方法; 共軛梯度法與牛頓法一般有較快的收斂, 但對實際應用而言, 仍嫌太慢. • 因此有很多提高演算法收斂速度的研究, 上述後兩者屬標準數值最佳化技術, 另一類為利用啟發式訊息, 針對倒傳遞演算法特定性能的研究, 例如: 可變學習率, 動量的引用等 • 倒傳遞演算法利用結果的導數來回溯修正加權值、偏權值

  27. BP演算法 • 輸入向量X決定BP之輸入層處理單元數, 目標向量T決定BP之輸出層處理單元數 • 第 m 層的第 j 個處理單元的輸出值為該處理單元的淨輸入值之非線性轉換 • BP學習目的:降低輸出單元的輸出值與目標值之誤差; 一般以能量函數或誤差函數或稱性能函數 E 表示(如下), 其值愈小代表誤差小, 學習品質好 (或學習品質高) • BP一般採用最陡坡降法使誤差函數最小化: 每輸入一個訓練範例, 網路即調整其內部權值; 調整的幅度與誤差函數對該權值的敏感度成正比,也就是與誤差函數對權值的偏微分值的大小成正比,如下所示

  28. 由(5)得知, E對某輸出處理單元之輸出 的偏微分值, 單純地只與該處理單元的誤差量有關 (即與 有關)

  29. 再作整理 (甲) 處於隱藏層與輸出層之間 將(5),(7),(8)代入(4), 得 另可將(8),(10)代入(9), 得 (乙) 非處於隱藏層與輸出層之間 將(7),(8),(14)代入(4), 得 一樣可將(8),(10)代入(9), 得 比較(12),(15), 得 因此, 不論是否處於隱藏層與輸出層之間, 皆可以(12)為通式;只是 代表 所連接較後層之處理單元的誤差量, 須以(13)求出 (若較後層是輸出層), 否則以(16)求解 ※將(12)代入(17)得關鍵公式

  30. 以 logsig 轉移函數為例, 即 且 • 將(19)代入(13)與(16), 可分別求得 所連接之較後層處理單元為輸出層或隱藏層的 • 利用(20),(21),(18)可求出權值修正量 ; 閥值或門檻值亦可以相同方法修正, 即第 m 層第 j 個處理單元的閥值調整量為 ※當BP使用固定學習率訓練時, 常遭遇減緩現象與跳脫現象, 可以 Extended Delta-Bar-Delta Algorithm by A.A. Minia , 使學習速率與精度提高

More Related