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

deep learning book 8.1

E-musu
October 26, 2017
47

deep learning book 8.1

E-musu

October 26, 2017
Tweet

Transcript

  1. • コスト関数 ü 利⽤可能な何らかの決定や⾏動をとったときに⽣じる損失を表す尺度 ü ⽬標は全体の損失を最⼩化すること • 経験損失(empirical risk) ü真の分布についての期待値は直接評価は不可,よって訓練データで定

    義される経験分布に置き換え近似 機械学習のシナリオではコスト関数の導⼊により⽬的を定式化 8.1 How learning differs from pure optimization 2 ・L:サンプル当たりの損失関数 ・f(x;θ):⼊⼒xに対し予測される出⼒ ・pdata :データの⽣成分布 ・y:⽬標出⼒
  2. 8.1.2 Surrogate Loss Functions and Early Stopping • 実際に対象としたい損失関数は効率的に最適化できない •

    分類問題において,「0/1損失」は最も直感的な損失関数 ü正解すれば0,不正解だと1の損失(損失はそのまま誤分類標本数に) üどの場所でも導関数は 0 になるか,あるいは定義されない • 代わりに代理損失関数を最適化 ü具体的には⼆乗損失やクロスエントロピーなど ü学習アルゴリズムは通常は極⼩点でも停⽌せず, Early Stoppingによ り収束判断がなされた時点で停⽌ 3
  3. 8.1.3 Batch and minibatch algorithms • 機械学習における最適化アルゴリズムでは⽬的関数を訓練データに ついての和として分解 üデータの⼀部のみを⽤いてコスト関数の期待値を推定,パラメータの更新 •

    勾配についても実際にはランダムにサンプルしたデータについて期 待値を計算 ü厳密な計算をすれば全てのデータを使う必要があるため計算コストが⾼い 4 例)最尤推定
  4. 8.1.3 Batch and minibatch algorithms 少数の訓練データから勾配を統計的に推定する理由 • 平均標準誤差について,サンプルを増やしても利益は線形以下 ün個のサンプルから推定される平均標準誤差は/√n ü

    例えば100件の訓練データを100倍に増やした計10,000件の訓練データを⽤いて勾配 を計算しても標準誤差は1/10しか減らない ü近似的な勾配を速く計算した⽅が,正確な勾配をゆっくり計算するより最終的に より⾼速な収束が期待 • 訓練データの冗⻑性 ü⼤半が似たデータの場合,サンプリングに基づく勾配の推定では1つのサンプル で正確な勾配を計算できる場合 5
  5. 8.1.3 Batch and minibatch algorithms 紛らわしい⽤語の注意 • バッチ(batch)/決定論的(deterministic)勾配法 ü全ての訓練データを使⽤ ü「バッチ」⾃体は全訓練データの意味合いは無い.

    ⼀般的に「バッチサイズ」はミニバッチのサイズを指す • 確率的(stochastic)/オンライン(online)勾配法 ü1サンプルのみを使⽤ • ミニバッチ/確率的ミニバッチ勾配法 ü複数の訓練データを使⽤(全てでは無い) ü最近では単に「確率的勾配法」とも 6
  6. 8.1.3 Batch and minibatch algorithms • ミニバッチのサイズは⼀般的に以下の観点で決定 üバッチサイズが⼤きい → 勾配の推定は正確(が,利益は線形以下)

    üメモリとの兼ね合い ü特にGPUを使う場合,2のべき乗のサイズ ü実⾏時間の短縮 üよく32~256の範囲で使われる ü⼩さなバッチは正則化の効果をもたらす? üミニバッチが学習の過程で無作為性を追加 • データセットは予めシャッフル(ただし1回でOK) ü多くのデータ内の連続するサンプルは⾼い相関をもつ üサンプル間は独⽴させる 7