Upgrade to Pro — share decks privately, control downloads, hide ads and more …

勾配法・ニュートン法

 勾配法・ニュートン法

このスライドは「連続系と離散系のモデリング」第9回の授業で発表したものです。今回は勾配法とニュートン法のアルゴリズムの説明と流れ、プログラムによる収束の結果を紹介しています。
プログラム以下のリンクです。
https://github.com/ShotaArima/gradient-newton

Shota Arima

October 15, 2024
Tweet

More Decks by Shota Arima

Other Decks in Technology

Transcript

  1. 0. 目 次 1.機械学習と最適化 2.勾配法(Gradient Descent) 3.ニュートン法(Newton ’ s Method)

    4.実験 5.まとめ 2 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  2. 1. 機械学習と最適化 •あるデータで学習し、新しいデータに対して予測や分類を 行 うアルゴリズ ム。 •良い成果を出すために機械学習モデルのパラメータを調整する必要がある →制限の中で関数の値を最 大 最

    小 にしていくことを最適化を 行 う •今回は「勾配法」と「ニュートン法」を取り上げる 3 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太 1 2 3 4 ධՁ 1 A 2 B 3 C 4 B
  3. 2. 勾配法(Gradient Descent) <概要> ・関数の勾配(傾き)を計算し、勾配が 示 す 方 向 に従って徐々に最

    大 (最 小 )値に近づくという 手 法 ・関数 の最 大 値の計算をすることを考える <前提> ・関数 は考えている領域で となる が 一 つしかない f(x) f(x) f′  (x) = 0 x 4 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太 f′  (x0 ) > 0 f′  (x1 ) > 0 f′  (xn ) = 0 xn x1 x0 f′  (x) = 0
  4. 2. 勾配法(Gradient Descent) 1変数関数の場合 < > <ポイント>   ステップ幅 極値へ向かう距離

    大 きいと通り過ぎてしまう 小 さいとなかなか収束しない 必ず増加し、かつなるべく 大 きくしたい search(f(x), f′  (x)) 5 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太 f′  (x0 ) > 0 f′  (x1 ) > 0 f′  (xn ) = 0 xn x1 x0
  5. 2. 勾配法(Gradient Descent) 1変数関数の場合 < >   例 : 1.

    初期値の設定    式 : (hはステップ幅) <例> の初期値を の初期値を search(f(x), f′  (x)) f(x) = − x2 + 4x h ← h0 x 0 h 0.1 6 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太 式 : f(x) = − x2 + 4x
  6. 2. 勾配法(Gradient Descent) 2. の更新    <例> より、 ※sgn()は符号関数 与えられた変数に対して符号を与える

    h h ← sgn(f′  (x))|h|, X ← x, X′  ← x + h f′  (x) = 2x + 2 h ← 1 × 0.1, X′  ← 0 + 0.1 sgn(x) = −1 if x < 0, 0 if x = 0, 1 if x > 0. 7 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  7. 2. 勾配法(Gradient Descent)~ 手 順~ 3. ならば、   i. となるまで

         ii. とおく f(X) < f(X′  ) f(X) ≥ f′  (X) h ← 2h, X ← X′  , X′  ← X + h x ← X, h ← h 2 8 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太 4. でなければ、   i. となるまで      ii. とおく f(X) < f(X′  ) f(X) ≤ f(X′  ) h ← h 2 , X′  ← X′  − h x ← X′  , h ← 2h 3に進み、4は 行 わない f(0) = 0 ≤ f(X′  ) = f(0.1) = 0.39
  8. 2. 勾配法(Gradient Descent) 9 東京都市 大 学 メディア情報学部 情報システム学科 4年

    有 馬 祥太 3. ならば、   i. となるまで    <例> f(X) < f(X′  ) f(X) ≥ f′  (X) h ← 2h, X ← X′  , X′  ← X + h h = 0.2,X = 0.1,X = 0.3 f(X) = f(0.1) = 0.39 f′  (X) = f(0.1) = 3.8 f(X) < f′  (X) 0.1 f′  (0.1) = 3.8
  9. 2. 勾配法(Gradient Descent) 10 東京都市 大 学 メディア情報学部 情報システム学科 4年

    有 馬 祥太 3. ならば、   i. となるまで    <例> f(X) < f(X′  ) f(X) ≥ f′  (X) h ← 2h, X ← X′  , X′  ← X + h h = 0.4,X = 0.3,X = 0.7 f(X) = f(0.3) = 1.11 f′  (X) = f(0.3) = 3.4 f(X) < f′  (X) 0.1 f′  (0.3) = 3.4 0.3
  10. 2. 勾配法(Gradient Descent) 11 東京都市 大 学 メディア情報学部 情報システム学科 4年

    有 馬 祥太 3. ならば、   i. となるまで    <例> f(X) < f(X′  ) f(X) ≥ f′  (X) h ← 2h, X ← X′  , X′  ← X + h h = 0.8,X = 0.7,X = 1.5 f(X) = f(0.7) = 2.31 f′  (X) = f(0.7) = 2.6 f(X) < f′  (X) 0.1 f′  (0.7) = 2.6 0.3 0.7
  11. 2. 勾配法(Gradient Descent) 12 東京都市 大 学 メディア情報学部 情報システム学科 4年

    有 馬 祥太 3. ならば、   i. となるまで    <例> f(X) < f(X′  ) f(X) ≥ f′  (X) h ← 2h, X ← X′  , X′  ← X + h h = 1.6,X = 1.5,X = 3.1 f(X) = f(1.5) = 3.75 f′  (X) = f(1.5) = 1 f(X) ≥ f′  (X) 0.1 f′  (1.5) = 1 0.3 1.5 0.7
  12. 2. 勾配法(Gradient Descent) 13 東京都市 大 学 メディア情報学部 情報システム学科 4年

    有 馬 祥太 3. ならば、   ii. とおく <例> を返す f(X) < f(X′  ) x ← X, h ← h 2 h = 1.6,X = 1.5,X = 3.1 f(X) = f(1.5) = 3.75 f′  (X) = f(1.5) = 1 f(X) ≥ f′  (X) x ← 1.5, h ← 0.8 0.1 f′  (1.5) = 1 0.3 1.5 0.7
  13. 2. 勾配法(Gradient Descent) 5. でないならば2に戻る   <例>   という傾きの集約条件(Scipy: ,

    scikit-learn: )   これよりも内側になるような傾きならば6へ 行 きます   今回 のため2へ ( )     2. というように新しいパラメータで 行 う   集約条件に収まる傾きになった時、極 大 値であると判断する 6. 得られた を返して終了 | f′  (x)| ≤ ϵ ϵ 10−5 10−3 f′  (1.5) = 1 x = 1,5, h = 0.8 h = 0.8, X = 1.5, X′  = 2.3 x 14 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  14. 2. 勾配法(Gradient Descent) 多変数の場合 < >   極値に近い点 を初期値として与える  

    直線探索を繰り返して求めていく   直線探索とは…    勾配 の 方 向の直線上で関数値が最 大 になる点を探すこと    右上の図3.2は、教科書の図である (個 人 的にはイメージできなかった) hill − climbing(f(x), ∇f(x)) (x0 , y0 ) ∇f 15 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  15. 2. 勾配法(Gradient Descent) 直線探索とは…   勾配 の 方 向の直線上で関数値が最 大

    になる点を探すこと    例: について考える    点 について考えます。    この関数の偏微分は    ∇f f(x, y) = − (x2 + y2) (1,1, − 2) ∇f(x, y) = ( ∂f ∂x , ∂f ∂y ) = (−2x, − 2y) 16 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  16. 2. 勾配法(Gradient Descent) 17 東京都市 大 学 メディア情報学部 情報システム学科 4年

    有 馬 祥太 直線探索とは…   勾配 の 方 向の直線上で関数値が最 大 になる点を探すこと       よって、 における勾配ベクトル    のように定義できる    右のように極 大 値に向かって進む    その 方 向に極値があるということが直線探索である    山 登り法 : は学習率、ステップ幅 ∇f ∇f(x, y) = ( ∂f ∂x , ∂f ∂y ) = (−2x, − 2y) (1,1) (−2, − 2) (xk+1 , yk+1 ) = (xk , yk ) + α∇f(xk , yk ) α
  17. 以上より、これらを定理として定義すると 定理3.1    関数 に対する勾配法の直線探索で定まる点では、その点を通る の等値 面 が探索直線に接する。したがって、次の直線探索の 方 向は直前

    の探索 方 向と直 行 する   等値 面 … の値が同じである点の集合。標 高 の同じ等 高 線の断 面 上のような もの ということができる。 ※必要条件のため、等 高 線が変曲点である場合は成り 立 たないことに注意 f(x1 , …, xn ) f(x1 , …, xn ) f(x, y) 2. 勾配法(Gradient Descent) 18 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  18. 2. 勾配法(Gradient Descent) <問題点> 1. 勾配 が都合が悪い場合があること 2. 最 大

    値、最 小 値ではない極値に収束してしまうこと 3. 関数形によってなかなか極値にいきつかない場合があること ∇f 19 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  19. 2. 勾配法(Gradient Descent) 1. 勾配 が都合が悪い場合があること   ・勾配の関数が微分可能ではない    例)

    不連続な関数、尖っているような関数   ・微分可能でも式が複雑なもの 2. 最 大 値、最 小 値ではない極値に収束してしまうこと   ・初期値の与え 方 をミスると最 大 にならない極値に到達してしまう可能性    (参考:教科書P85 図3.3(a) 初期値によっては別の極値に到達する) ∇f 20 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  20. 2. 勾配法(Gradient Descent) 3. 関数形によってなかなか極値にいきつかない場合があること   ・極値がその 長 い尾根の上や細 長

    い 谷 の底にあるときに 生 じやすい    (参考:教科書P85 図3.3(b) なかなか極値に到達しない) 21 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  21. 3. χϡʔτϯ๏ʢNewton's Methodʣ 概要   値 での関数 での接線の傾き を求める式として、以下のように定義 この傾きが0に収束する部分を極値と

    する ¯ x f(x) f′  (x) f′  (x) = f(x) (¯ x − x) 22 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  22. 3. χϡʔτϯ๏ʢNewton's Methodʣ 1階導関数だけでなく2階導関数も計算できる場合、勾配法より効率的な 方 法 で最適化問題を解くことができる x軸上の点 の近くの点 での関数

    の値はテイラー展開して と書ける。ここで の3次以上の項については が 小 さいと急速に 小 さくな るので、無視して考える→2次近似という ¯ x ¯ x + Δx f(x) f(¯ x + Δx) = f(¯ x) + f′  (¯ x)Δx + 1 2 f′  ′  (¯ x)Δx2 + ⋯ Δx Δx fII (x) = f(¯ x) + f′  (¯ x)(x − ¯ x) + 1 2 f′  ′  (¯ x)(x − ¯ x) 23 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  23. 3. χϡʔτϯ๏ʢNewton's Methodʣ 先ほどの式について、 で微分して0とおけば、以下のような式が得られる この解は、 であるから、解 のより良い近似値が次のように 得られる これを反復する

    方 法をニュートン法と呼ぶ Δx f′  (¯ x) + f′  ′  (¯ x) = 0 Δx = − f(¯ x)/f′  ′  (¯ x) x x = ¯ x − f′  (¯ x) f′  ′  (¯ x) 24 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  24. 3. χϡʔτϯ๏ʢNewton's Methodʣ 1変数の場合 < > 1. の初期値を与える 2. とおき、次のように式を更新する

    3. ステップ2に戻り、これを となるまで繰り返す 4. を返す Newton(f′  (x), f′  ′  (x)) x ¯ x ← x x ← ¯ x − f′  (¯ x) f′  ′  (¯ x) |x − ¯ x| < δ x 25 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  25. 3. χϡʔτϯ๏ʢNewton's Methodʣ 例題 : を元に考えていく   1階導関数 :  

    2階導関数 :   2次近似 :   2次近似の導関数 : x3 − 2x2 + x + 3 f′  (x) = 3x2 − 4x + 1 f′  ′  (x)6x − 4 fII (x) = f(¯ x) + (3¯ x2 − 4¯ x + 1)(x − ¯ x) + 1 2 (6¯ x − 4)(x − ¯ x)2 f′  II = 3¯ x2 − 4¯ x + 1 + (6¯ x − 4)(x − ¯ x) 26 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  26. 3. χϡʔτϯ๏ʢNewton's Methodʣ 例題 : を元に考えていく   2次近似の導関数 :   

    これを0とおいて、 について解くと以下のようになる    よって、 が収束するまで反復を 行 う x3 − 2x2 + x + 3 f′  II = 3¯ x2 − 4¯ x + 1 + (6¯ x − 4)(x − ¯ x) x − ¯ x x − ¯ x = − 3¯ x2 − 4¯ x + 1 6¯ x − 4 x ← x − 3¯ x2 − 4¯ x + 1 6¯ x − 4 27 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  27. 3. χϡʔτϯ๏ʢNewton's Methodʣ 1. の初期値を与える を初期値とする を集約条件にする 2. とおき、次のように式を更新する より、

    3. ステップ2に戻り、これを となるまで繰り返す のため、もう 一 度ステップ2に戻る x x0 = 0 ϵ = 10−6 ¯ x ← x0 xnext ← ¯ x − f(¯ x) f′  (¯ x) x1 ← ¯ x − 3¯ x2 − 4¯ x + 1 6¯ x − 4 x1 = 1 4 |x − ¯ x| < δ | 1 4 − 0| = 1 4 < ϵ 28 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  28. 3. χϡʔτϯ๏ʢNewton's Methodʣ 先ほど求めた とする 2. とおき、次のように式を更新する より、 3. ステップ2に戻り、これを

    となるまで繰り返す よってもう 一 度くり返す。 x1 = 1 4 , ϵ = 10−6 ¯ x ← x1 x2 ← ¯ x − 3¯ x2 − 4¯ x + 1 6¯ x − 4 x2 = 13 40 |x − ¯ x| < δ | 13 40 − 1 4 | = 3 40 > ϵ 29 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  29. 3. χϡʔτϯ๏ʢNewton's Methodʣ <問題点> 1. 勾配 が都合が悪い場合があること 2. 最 大

    値、最 小 値ではない極値に収束してしまうこと 3. 関数形によってなかなか極値にいきつかない場合があること 1, 2については、微分を使 用 する 方 法全てに当てはまる 他にも共役勾配法、ガウス・ニュートン法、レーベンバーグ 。マーカート 法にも当てはまる ∇f 30 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  30. 3. χϡʔτϯ๏ʢNewton's Methodʣ 局所解を避ける 手 法として、焼き鈍し法(シミュレーテッドアニーリング)、 遺伝アルゴリズム、タブーサーチなどのいろいろな 手 法が提案されている  

    →局所解から脱出するためのランダムな動きが加えられる 問題点については、それぞれの 手 法に 長 短があり、銀の弾丸がない 以降、今回取り上げた 手 法の 比 較実験を 行 う 31 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  31. 4. ࣮ݧ ޯ഑๏ͱχϡʔτϯ๏ʹ͍ͭͯऩଋ·Ͱͷي੻Λࣔͨ͠ɻ <࢖༻͢Δؔ਺> • • <৚݅> εςοϓ෯ : 0.1,

    ऩଋ৚݅ : , ॳظ஋ : 0, ࠷େճ਺ : 100 ιʔείʔυ͸Githubʹܝࡌ͍ͯ͠·͢ɻ https://github.com/ShotaArima/gradient-newton y = − x2 + 4 y = x3 − 2x2 + x + 3 ϵ = 10−6 32 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  32. 4. ࣮ݧ ޯ഑๏ʹ͍ͭͯ͸9ճ໨Ҏ߱ৼಈ͢Δ y = − x2 + 4 33

    東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太 ޯ഑๏ χϡʔτϯ๏ 1 0 0 2 0.1 2.0 3 0.33 4 0.77 5 1.5 6 2.3 7 1.9 8 2.1 9 1.9 : 100 2.1
  33. 4. ࣮ݧ ޯ഑๏͸ऩଋ͞Εͳ͔ͬͨ y = x3 − 2x2 + x

    + 3 34 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太 ޯ഑๏ χϡʔτϯ๏ 1 0 0 2 0.1 0.25 3 0.300000000 0.325 4 0.4 0.3323170731 5 0.350000000 0.3333333178 6 0.3 0.3333333333 7 0.325 : 100 0.333333349
  34. 4. ࣮ݧ χϡʔτϯ๏ͷํ͕ҎԼͷࢦ ඪͰείΞ͕ྑ͔ͬͨ ɾऩଋ·Ͱͷճ਺ ɾਫ਼౓ࢦඪ 35 東京都市 大 学

    メディア情報学部 情報システム学科 4年 有 馬 祥太 ਫ਼౓ ޯ഑๏ χϡʔτϯ๏ 2.1 2.0 0.333333349 0.3333333333 y = − x2 + 4 y = x3 − 2x2 + x + 3 ऩଋ·Ͱͷճ਺ ޯ഑๏ χϡʔτϯ๏ 100回(振動) 2回 100回(収束せず) 6回 y = − x2 + 4 y = x3 − 2x2 + x + 3
  35. 5. ·ͱΊ • ࠷దԽख๏ͷൺֱ ◦ ޯ഑๏͸ɺ؆୯ͳܭࢉ͕ଟ͍ͨΊɺ୯७ͳߏ଄ͱͯ͠ѻ͑Δ ◦ খن໛ͳ໰୊΍େن໛σʔλʹ޲͖΍͍͢ ◦ χϡʔτϯ๏͸ɺ2ճඍ෼΍2࣍ۙࣅͳͲܭࢉίετ͕ߴ͘ͳΓ΍͍͢

    ◦ ऩଋ଎౓͕଎͘ɺਫ਼౓ͷߴ͍࠷దԽ͕ٻΊΔ͜ͱ͕Ͱ͖Δ 36 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  36. ෇࿥ • ޯ഑๏ͷऩଋ৚݅ • Ҡಈྔ͕ඍগྔ ҎԼʹͳΔ͜ͱΛ࢖༻Մೳ( ) • ͨͩ͠ղΛؚΉ޿͍ൣғͰ ͷͱ͖͸ऩଋʹ͕͔͔࣌ؒΔ

    • ੔਺ Λ༩͑ͯɺղͷҠಈྔΛղͱͷൺ͕ ҎԼʹͳΔ͜ͱΛ࢖༻Մೳ • ( )͜ͷΑ͏ʹͯ͠ٻΊͨղ͸ ܻͷਫ਼౓Λग़ͤΔ δ |h| ≤ δ f′  (x) ≈ 0 d 10−d | h x | ≤ 10−d d 37 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  37. ෇࿥ • ޯ഑๏Ҏ֎ͷ1ม਺ؔ਺ͷۃ஋ͷٻΊํ(xͷൣғͰ1ͭͷۃ஋Λ࣋ͭ৔߹) • །Ұͷۃ஋Λ࣋ͭ৔߹ɺ܏͖ͷූ߸͕ೖΕସΘΔ • ͕ͨͬͯ͠ೖΕସΘΔॠ͕ؒۃ஋Ͱ͋Δ͜ͱ͔ΒҎԼͷํ๏͕ߟ͑ΒΕΔ • ೋ෦୳ࡧ๏ •

    ηΧϯτ๏ • ͸͞Έ͏ͪ๏ • ٯ2࣍ิؒ๏ • ۃ஋Λғ͍ࠐΉํ๏΋͋Γɺʮԫۚ෼ׂ๏ʯʮٯ2࣍ิؒ๏ʯ΋͋Δ 38 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  38. ෇࿥ χϡʔτϯ๏ͷྫ୊ (ڭՊॻP87~) ʲྫ୊3.1ʳ ʹ͍ͭͯߟ͑Δ 1. ͜ͷؔ਺ ͷ ʹ͓͚Δೋ࣍ۙࣅ ΛٻΊΔ

    2. ͦͷೋ࣍ۙࣅ ͕ۃ஋ΛऔΔ఺ΛٻΊΑ 3. ؔ਺ ͕ۃ஋ΛͱΔ఺Λχϡʔτϯ๏Ͱܭࢉ͢Δʹ͸ͲͷΑ͏ʹͨ͠Β ྑ͍͔ f(x) = x3 − 2x2 + x + 3 f(x) x = 2 fII (x) fII (x) f(x) 39 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  39. ෇࿥ ʲྫ୊3.1ʳ ʹ͍ͭͯߟ͑Δ 1. ͜ͷؔ਺ ͷ ʹ͓͚Δೋ࣍ۙࣅ ΛٻΊΔ ɹ Ͱ୅ೖͯ͠ܭࢉ͢Δͱ

    2. ͦͷೋ࣍ۙࣅ ͕ۃ஋ΛऔΔ఺ΛٻΊΑ ΑΓɺ0ͱ͓͘ͱ ɹ f(x) = x3 − 2x2 + x + 3 f(x) x = 2 fII (x) f′  (x) = 3x2 − 4x + 1, f′  ′  (x) = 6x − 4 x = 2 fII (x) = 5 + 5(x − 2) + 4(x − 2)2 fII (x) f′  II (x) = 5 + 8(x − 2) x = 2 − 5 8 = 11 8 40 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太
  40. ෇࿥ ʲྫ୊3.1ʳ ʹ͍ͭͯߟ͑Δ 3. ؔ਺ ͕ۃ஋ΛͱΔ఺Λχϡʔτϯ๏Ͱܭࢉ͢Δʹ͸ͲͷΑ͏ʹͨ͠Β ྑ͍͔ εϥΠυp25Ͱղઆ͍ͯ͠·͢ɻ ɹ f(x)

    = x3 − 2x2 + x + 3 f(x) 41 東京都市 大 学 メディア情報学部 情報システム学科 4年 有 馬 祥太