Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
+
深層学習
Chapter 3:確率的勾配降下法
@zakktakk
+
⽬次
1. 勾配降下法
2. ニュートン法
3. 確率的勾配降下法
4. ミニバッチ
5. 汎化性能と過適合
6. 過適合の緩和
i. 重み減衰
ii. 重み上限
iii. ドロップアウト
7. 学習のトリック
i. データの正規化
ii....
+
勾配降下法
まずはアニメーションでざっくり理解…
←勾配降下法で最⼩値を求めたい関数
←上の関数の微分
坂道を転がり落ち
てるっぽい
(http://qiita.com/kenmatsu4/items/d282054ddedbd68fecb...
+
勾配降下法
◯勾配降下法とは
Ø ⽬的関数の局所的な最⼩値 (⼤域的な最⼩値とは限らない) を反復計算
で求める⽅法
Ø 何らかの初期値𝑤(#)
を出発点に𝑤(%)
を以下の式で更新する
𝒘(%'()
= 𝒘(%)
− 𝜖𝛻𝐸
𝐸 : ⽬的...
+
ちなみに…
Ø 勾配降下法は関数の最⼩化⼿法で最も単純な⼿法
Ø 最⼩化⼿法にはニュートン法もあるよ!
◯ニュートン法とは
Ø ⽬的関数の2次のテーラー展開を最⼩化するように,パラメータの
修正量を各ステップごとに決定するアルゴリズム
Ø ...
+
確率的勾配降下法
◯確率的勾配降下法(stochastic gradient descent : SGD)とは
𝒘(%'()
= 𝒘(%)
− 𝜖𝛻𝐸7
𝐸7 : サンプルnについての誤差関数
𝜖 : 学習係数
𝑤	: ネットワークの重みと...
+
ミニバッチ
Ø 計算規模の⼤きいニューラルネットワークの学習では計算機
が持つ並列計算資源の利⽤が不可⽋
Ø 重みの更新を少数のサンプルからなる集合(ミニバッチ)単位で
⾏うと効率的
Ø 1つのミニバッチを𝐷%とすると,ミニバッチ単位の重み...
+
可視化して⽐較すると…
(http://sinhrks.hatenablog.com/entry/2014/11/24/205305)
ミニバッチ+SGDは
勾配降下法と確率的勾配降下法の
いいところを両取りしている
+
汎化性能と過適合
Ø これまでは訓練データに対する誤差を最⼩化することを考えていた
Underfitting Overfitting
Ø 実際は「まだ⾒ぬ」サンプルに対して正しく推定を⾏いたい (汎化性能)
Ø 訓練データに対する誤差→訓練...
+
過適合の緩和
Ø 過適合 ↔	学習時に誤差関数の浅い局所解にトラップされた状態
ネットワークの⾃由度(主に重みの数)が⼤きいほど
過適合のリスク and ネットワークの表現能⼒が⾼くなる
学習時に重みの⾃由度を制約する正則化に
よって過適合...
+
過適合の緩和法
◯重み減衰
𝒘(%'() = 𝒘(%) − 𝜖
1
𝑁%
; 𝛻𝐸7 + 𝜆 𝒘(%)
𝐸%(𝒘) ≡
1
𝑁%
; 𝐸7 𝒘 +
𝜆
2
𝒘 6
7∈=>
𝜆 : 正則化パラメータ
通常𝜆=0.01~0.00001
Ø 以...
+
過適合の緩和法
◯重み上限
; 𝑤CD
6
< 𝑐
D
Ø 各ユニットの結合重みの⼆乗和に対し,上限を制約
Ø 上限を超える場合は重みに1以下の定数を掛け,制約を満たす
ようにする
Ø 重み減衰を上回る効果があり,特に後述のドロップアウトと...
+
過適合の緩和法
◯ドロップアウト
Ø 多層ネットワークのユニットを確率的に選別して学習する⽅法
Ø 学習時,中間層と⼊⼒層のユニットを確率𝑝(通常𝑝	=0.5程度)で
ランダムに選出し,それら以外を無効化する
	𝑖
𝑝𝑤(D 𝑧D
𝑝𝑤6D...
+
学習のトリック
この世には学習時に実⾏することで
汎化性能を向上 or 学習を早く進められる
⽅法がいくつか存在する
以降のスライドでは本で紹介されている7つの⽅法を紹介します
より詳しくは → https://www.cs.toronto...
+
データの正規化
𝑥7D ←
𝑥7D − 𝑥̅D
𝜎D
𝜎D : 学習データの標準偏差
𝑥̅D : 全学習データの平均
Ø 訓練データの偏りをなくすような前処理
Ø テストデータおよび推論時の各データにも同じ前処理を施す必要あり
Ø 以下の変...
+
データ拡張
Ø サンプルが画像データならば,平⾏移動・鏡像反転・回転変動・⾊の変動
などの処理を施し,サンプルに追加
Ø 訓練サンプルに何らかの加⼯を施し,量を⽔増しする処理
元データ ⾊の変動 鏡像反転 回転+拡⼤
Ø 訓練サンプルの量が...
+
複数ネットの使⽤
Ø ドロップアウトは単⼀ネットワーク内で実質的にモデル平均を
実⾏している
Ø 「モデル平均」と呼ばれ,機械学習全般で有効な⽅法
Ø 精度は向上するが,学習およびテスト時の計算量が増加してしまう
という⽋点がある
Ø 複数...
+
学習係数の決め⽅
Ø 学習係数を決める際,定番といえる考え⽅は以下の2つ
n 学習の進捗とともに学習係数を⼩さくする
n 層ごとに異なる値を⽤いる
Ø 学習係数を⾃動的に定める(変化させる)⽅法はいくつか存在する
n 本書では最もよく使われ...
+
モメンタム
Ø 重みの修正量に,前回の重みの修正量のいくばくかを加算する⽅法
Ø ミニバッチt-1に対する重みの修正量を∆𝒘(%5()
≡ 𝒘 %5(
− 𝒘(%56)
と
すると,ミニバッチtは以下のように重みを更新
ミニバッチ利⽤時の更...
+
重みの初期化
Ø ガウス分布から⽣成したランダム値を初期値とする⽅法が⼀般的
Ø ガウス分布の標準偏差𝜎は以下のようにするのがbetter
𝜎 =
𝜎X
𝑀
(
6
𝜎X : ユニットの総⼊⼒の標準偏差
𝑀 : ユニットの⼊⼒側結合数
𝜎X...
+
サンプルの順序
Ø 確率的勾配降下法やミニバッチを⽤いる場合,提⽰する
サンプル(集合)の順序には任意性がある
↔ 設計者が⾃由に決められる
Ø ⼀般に,まだよく学習されていないサンプルから順に提⽰すると効果的
Ø ただし,ディープネットで...
Prochain SlideShare
Chargement dans…5
×

機械学習プロフェッショナルシリーズ 深層学習 chapter3 確率的勾配降下法

11 421 vues

Publié le

ゼミ発表用に作成した機械学習プロフェッショナルシリーズ(MLP) 深層学習 第3章 「確率的勾配降下法」まとめスライドです.Deep learning初学者を対象としています.

Publié dans : Technologie
  • Soyez le premier à commenter

機械学習プロフェッショナルシリーズ 深層学習 chapter3 確率的勾配降下法

  1. 1. + 深層学習 Chapter 3:確率的勾配降下法 @zakktakk
  2. 2. + ⽬次 1. 勾配降下法 2. ニュートン法 3. 確率的勾配降下法 4. ミニバッチ 5. 汎化性能と過適合 6. 過適合の緩和 i. 重み減衰 ii. 重み上限 iii. ドロップアウト 7. 学習のトリック i. データの正規化 ii. データ拡張 iii. 複数ネットの平均 iv. 学習係数の決め⽅ v. モメンタム vi. 重みの初期化 vii. サンプルの順序
  3. 3. + 勾配降下法 まずはアニメーションでざっくり理解… ←勾配降下法で最⼩値を求めたい関数 ←上の関数の微分 坂道を転がり落ち てるっぽい (http://qiita.com/kenmatsu4/items/d282054ddedbd68fecb0)
  4. 4. + 勾配降下法 ◯勾配降下法とは Ø ⽬的関数の局所的な最⼩値 (⼤域的な最⼩値とは限らない) を反復計算 で求める⽅法 Ø 何らかの初期値𝑤(#) を出発点に𝑤(%) を以下の式で更新する 𝒘(%'() = 𝒘(%) − 𝜖𝛻𝐸 𝐸 : ⽬的関数 𝜖 : 学習係数 𝑤 : 𝐸の変数 ◯具体的に深層学習のどの場⾯で⽤いられるのか? Ø 順伝播型ネットワークの誤差関数𝐸 𝒘 を最⼩化する際に⽤いる Ø 𝒘はネットワークの重みとバイアス 𝛻𝐸 ≡ 𝜕𝐸 𝜕𝒘 = 𝜕𝐸 𝜕𝑤( … 𝜕𝐸 𝜕𝑤2 3 勾配 のとき
  5. 5. + ちなみに… Ø 勾配降下法は関数の最⼩化⼿法で最も単純な⼿法 Ø 最⼩化⼿法にはニュートン法もあるよ! ◯ニュートン法とは Ø ⽬的関数の2次のテーラー展開を最⼩化するように,パラメータの 修正量を各ステップごとに決定するアルゴリズム Ø 勾配降下法よりも極⼩解への収束が早い 𝒘(%'() = 𝒘(%) − 𝐻5( 𝛻𝐸 𝐸 : ⽬的関数 𝑤 : 𝐸の変数 ヘッセ⾏列(Hessian matrix) 𝐻 = 𝛻6 𝐸 ニュートン法の詳細は → http://www.dais.is.tohoku.ac.jp/~shioura/teaching/mp11/mp11-13.pdf ニュートン法は勾配降下法と違い,学習係数の決定に 学習が⼤きく左右されることがない ディープネットの学習では ⽬的関数の2次微分の計算が 難しいのでニュートン法は つらい
  6. 6. + 確率的勾配降下法 ◯確率的勾配降下法(stochastic gradient descent : SGD)とは 𝒘(%'() = 𝒘(%) − 𝜖𝛻𝐸7 𝐸7 : サンプルnについての誤差関数 𝜖 : 学習係数 𝑤 : ネットワークの重みとバイアス ◯確率的勾配降下法のメリット Ø 計算効率が向上し,学習が速く実⾏できる Ø 望まない局所的な極⼩解にトラップされるリスクを低減 Ø 訓練データの収集と最適化の計算を同時並⾏で⾏える → オンライン学習 Ø 勾配降下法はすべてのサンプルを⽤いて重みを更新 → バッチ学習 Ø 訓練サンプルのうち1つのサンプルだけを使って以下のように パラメータの更新を⾏う⽅法 Ø 重みの更新に⽤いるサンプルは毎回取り替える
  7. 7. + ミニバッチ Ø 計算規模の⼤きいニューラルネットワークの学習では計算機 が持つ並列計算資源の利⽤が不可⽋ Ø 重みの更新を少数のサンプルからなる集合(ミニバッチ)単位で ⾏うと効率的 Ø 1つのミニバッチを𝐷%とすると,ミニバッチ単位の重み更新で⽤いる 誤差関数は以下の通り 𝐸%(𝒘) ≡ 1 𝑁% ; 𝐸7 𝒘 7∈=> 𝐸7 : サンプルnについての誤差関数 𝑁% : ミニバッチが含むサンプル数 Ø ミニバッチのサイズは10~100サンプル前後とすることが多い → サイズを⼤きくし過ぎると計算速度が低下 Ø 多クラス分類の場合はミニバッチに各クラスから1つ以上の サンプルを⼊れるとbetter
  8. 8. + 可視化して⽐較すると… (http://sinhrks.hatenablog.com/entry/2014/11/24/205305) ミニバッチ+SGDは 勾配降下法と確率的勾配降下法の いいところを両取りしている
  9. 9. + 汎化性能と過適合 Ø これまでは訓練データに対する誤差を最⼩化することを考えていた Underfitting Overfitting Ø 実際は「まだ⾒ぬ」サンプルに対して正しく推定を⾏いたい (汎化性能) Ø 訓練データに対する誤差→訓練誤差,テストデータに対する誤差→テスト誤差 学習が進むと,訓練誤差は単調減少するが テスト誤差は訓練誤差と乖離 or 増加 過適合(overfitting) 学習の進⾏のイメージ→ 過適合では外れ値に 対して過剰に反応
  10. 10. + 過適合の緩和 Ø 過適合 ↔ 学習時に誤差関数の浅い局所解にトラップされた状態 ネットワークの⾃由度(主に重みの数)が⼤きいほど 過適合のリスク and ネットワークの表現能⼒が⾼くなる 学習時に重みの⾃由度を制約する正則化に よって過適合の問題を解決 単純にネットワークの⾃由度を減らすことは 過適合のリスクも下げるが,ネットワークの 表現能⼒も下げるため望ましくない
  11. 11. + 過適合の緩和法 ◯重み減衰 𝒘(%'() = 𝒘(%) − 𝜖 1 𝑁% ; 𝛻𝐸7 + 𝜆 𝒘(%) 𝐸%(𝒘) ≡ 1 𝑁% ; 𝐸7 𝒘 + 𝜆 2 𝒘 6 7∈=> 𝜆 : 正則化パラメータ 通常𝜆=0.01~0.00001 Ø 以下のように誤差関数に重みの⼆乗和を加算し, これの最⼩化を⾏う Ø 最終項の追加により,学習時により⼩さい重みが選好される. 勾配降下法の更新式は以下の通り ※重み減衰は通常ネットワークの重みだけに適⽤し, バイアスには適⽤しない 重みは⾃⾝の⼤きさに⽐例した速さで常に減衰
  12. 12. + 過適合の緩和法 ◯重み上限 ; 𝑤CD 6 < 𝑐 D Ø 各ユニットの結合重みの⼆乗和に対し,上限を制約 Ø 上限を超える場合は重みに1以下の定数を掛け,制約を満たす ようにする Ø 重み減衰を上回る効果があり,特に後述のドロップアウトと 共に⽤いると⾼い効果を発揮 正則化の種類 テストデータ分類誤差(%) 重み減衰 1.62 重み上限 1.35 ドロップアウト+重み減衰 1.25 ドロップアウト+重み上限 1.05 表:各正則化⼿法ごとの⼿書き数字認識MNISTの分類精度の⽐較
  13. 13. + 過適合の緩和法 ◯ドロップアウト Ø 多層ネットワークのユニットを確率的に選別して学習する⽅法 Ø 学習時,中間層と⼊⼒層のユニットを確率𝑝(通常𝑝 =0.5程度)で ランダムに選出し,それら以外を無効化する 𝑖 𝑝𝑤(D 𝑧D 𝑝𝑤6D 𝑧D 𝑝𝑤JD 𝑧D 𝑝𝑤KD 𝑧D Ø 学習終了後の推論時にはドロップアウトで無効化 の対象とした層のユニットの全ての出⼒を𝑝倍する 左のネットワークの中間層,⼊⼒層のユニットを 確率𝑝でランダムに選出し,ネットワークの重みを更新
  14. 14. + 学習のトリック この世には学習時に実⾏することで 汎化性能を向上 or 学習を早く進められる ⽅法がいくつか存在する 以降のスライドでは本で紹介されている7つの⽅法を紹介します より詳しくは → https://www.cs.toronto.edu/~hinton/absps/guideTR.pdf その多くは 厳密な理論を伴わないノウハウのようなもの であるが,実際に効果が認められている
  15. 15. + データの正規化 𝑥7D ← 𝑥7D − 𝑥̅D 𝜎D 𝜎D : 学習データの標準偏差 𝑥̅D : 全学習データの平均 Ø 訓練データの偏りをなくすような前処理 Ø テストデータおよび推論時の各データにも同じ前処理を施す必要あり Ø 以下の変換を⾏い,サンプルの各成分の平均を0,分散を1にする (a) 元のサンプル集合 (b) 平均を0にする変換後 (c) 成分ごとの分散を1にする変換後 これもデータの偏りをなくす前処理の⼀つ (d) ⽩⾊化:成分間の相関を0にする変換 𝜎Dが超⼩さい場合は代わり にmax(𝜎,𝜖) (𝜖は⼩さな値) で割ったりする データの正規化
  16. 16. + データ拡張 Ø サンプルが画像データならば,平⾏移動・鏡像反転・回転変動・⾊の変動 などの処理を施し,サンプルに追加 Ø 訓練サンプルに何らかの加⼯を施し,量を⽔増しする処理 元データ ⾊の変動 鏡像反転 回転+拡⼤ Ø 訓練サンプルの量が⾜りないことは過適合の最⼤の原因 Ø しかし,⼤量のサンプルを集めることはコスト⼤ or 不可能 データの⽔増しをしよう! ◯データ拡張とは?
  17. 17. + 複数ネットの使⽤ Ø ドロップアウトは単⼀ネットワーク内で実質的にモデル平均を 実⾏している Ø 「モデル平均」と呼ばれ,機械学習全般で有効な⽅法 Ø 精度は向上するが,学習およびテスト時の計算量が増加してしまう という⽋点がある Ø 複数の異なるニューラルネットを組み合わせる(=複数のネット ワークから得られる出⼒の平均を答えとする)と⼀般に推定精度が 向上 n 具体的には構造の異なるネットワークや構造は同じだが 学習開始時の初期値が異なるネットワークなど
  18. 18. + 学習係数の決め⽅ Ø 学習係数を決める際,定番といえる考え⽅は以下の2つ n 学習の進捗とともに学習係数を⼩さくする n 層ごとに異なる値を⽤いる Ø 学習係数を⾃動的に定める(変化させる)⽅法はいくつか存在する n 本書では最もよく使われる⽅法としてAdaGradを紹介 その他の⽅法は → http://sebastianruder.com/optimizing-gradient-descent/ Ø 勾配法ではパラメータの更新量の⼤きさは学習係数により変化 n 誤差関数の勾配を𝒈% ≡ 𝛻𝐸%と書き,このベクトルの成分を𝑔%,D と書くと,重みの更新量の𝑖成分は以下の通り −𝜖𝑔%,D勾配降下法: − 𝜖 ∑ 𝑔%T,D 6% %TU( 𝑔%,DAdaGrad: 勾配の累積が⼤きいほど学習率を⼩さくする
  19. 19. + モメンタム Ø 重みの修正量に,前回の重みの修正量のいくばくかを加算する⽅法 Ø ミニバッチt-1に対する重みの修正量を∆𝒘(%5() ≡ 𝒘 %5( − 𝒘(%56) と すると,ミニバッチtは以下のように重みを更新 ミニバッチ利⽤時の更新式 モメンタム 𝒘(%'() = 𝒘(%) − 𝜖𝛻𝐸% + 𝜇∆𝒘(%5() 𝜇 : モメンタム係数 通常0.5~0.9程度 Ø 誤差関数が深い⾕状であり,かつ⾕底が平らな時に特に有効 Ø 勾配降下法の収束性能を向上させる⽅法の⼀つ ←⾕状誤差関数の重み探索の様⼦ 左:モメンタム項なし 右:モメンタム項あり(𝜇=0.5) モメンタム項なしではジグザグと探索が進み効率が悪いが, モメンタム項ありでは⾕と直⾏⽅向の動きが平均化され,なくなる
  20. 20. + 重みの初期化 Ø ガウス分布から⽣成したランダム値を初期値とする⽅法が⼀般的 Ø ガウス分布の標準偏差𝜎は以下のようにするのがbetter 𝜎 = 𝜎X 𝑀 ( 6 𝜎X : ユニットの総⼊⼒の標準偏差 𝑀 : ユニットの⼊⼒側結合数 𝜎Xは定数ではなく パラメータです 𝑀は定数です Ø ガウス分布のパラメータ𝜎をどう選ぶかは学習の結果に影響を及ぼす n 例えば活性化関数がロジスティック関数の場合, 𝜎が⼩さすぎる → 等しく0を初期値とするのと同様 𝜎が⼤きすぎる → ユニットの出⼒が値域の上下限いずれかの 値に偏る
  21. 21. + サンプルの順序 Ø 確率的勾配降下法やミニバッチを⽤いる場合,提⽰する サンプル(集合)の順序には任意性がある ↔ 設計者が⾃由に決められる Ø ⼀般に,まだよく学習されていないサンプルから順に提⽰すると効果的 Ø ただし,ディープネットでは処理の効率性に重点が置かれるため あまり⽤いられない Ø 特にクラスごとのサンプル数に偏りがあるクラス分類問題で有効

×