継続は力なり

タイトル通り定期的な更新を心掛けるブログです。

ゼロから始めるディープラーニング 4章

タダです。

今回は4章のニューラルネットワークの学習に関する勉強まとめです。

※記事は理解ができるたびに何度もアップデートしていこうと思います。 www.oreilly.co.jp

目次

なお、各章の内容は次の通りです。

4.1

  • 4章における「学習」 = 訓練データから最適な重みパラメーターの値を自動で獲得すること
    • 指標として損失関数を使う
  • 数字の5を認識するためにはどのような処理が必要か
  • ニューラルネットワークのメリットは全て同じアプローチが可能ということ
  • 訓練データとテストデータの扱いについては注意が必要
    • モデルが汎用的な能力(汎化能力)を引き出せるように訓練データとテストデータは分離して使う
    • とあるデータにだけ過度に学習した状態を過学習という

4.2

  • 損失関数は、一般的には2乗和誤差や交差エントロピーなどを使う
    • 2乗和誤差はデータの差の2乗を求めて、その差を足す
    • 交差エントロピーはデータの差が小さくなるようにする
  • 多数のデータを一気に処理するのは時間がかかるので、小さなデータのグループで処理する方法をミニバッチ学習という
  • ニューラルネットワークの学習では、最適なパラメーター(重みとバイアス)を探索する際に、損失関数の値ができるだけ小さくなるようなパラメーターを探す

4.3

  • 微分とは、ある瞬間の変化の量を表したもの
    • 変化を限りなく0に近づけることを行う
  • 複数の変数からなる関数の微分偏微分という
  • 偏微分をベクトルとしてまとめるものを勾配という
    • 勾配のベクトルが示す方向は、関数の値を最も減らす方向になる

4.4

  • 勾配法では、現在の場所から勾配方向に一定の距離だけ進み、移動した先でも同様に勾配を求めていく
  • 一回の学習でどれだけパラメーターを更新するかという比率を決めることを学習率という
    • 学習率が大きくなる(過学習)と、0より大きくなり、小さすぎても0からマイナス方向に遠ざかる

4.5

  • ニューラルネットワークの学習方法は以下のように行う
    • ステップ1:ミニバッチ
    • ステップ2:勾配の算出 ミニバッチの損失関数を減らすために書く重みパラメーターの勾配を求める。勾配は損失関数の値を最も減らす方向を示す。
    • ステップ3:パラメータの更新 重みパラメータを勾配方向に微小だけ更新する
    • ステップ4:繰り返す ステップ1~3を繰り返す
  • 学習を繰り返していくことで損失関数の値が徐々に下がり、最適な重みパラメータに近づく

参考情報

https://qiita.com/mine820/items/f8a8c03ef1a7b390e372 http://cookie-box.hatenablog.com/entry/2017/05/07/121607

次は5章になります。