ディープラーニングとは何か⑤

ディープラーニングとは何か。

目次

誤差逆伝播法

  • 「誤差逆伝播法」とは、ディープラーニングの学習を効率よく行うための手法
  • 勾配降下法では、計算コストの問題がある(パラメータごとに計算するためネットワークが深くなると計算が膨大になる)
  • 一部を効率よく微分を計算できるようにする方法→誤差逆伝播法
  • その層に伝播してきた値には、前の層の値が含まれていることに着目し、再利用する計算方法
    (変数を中継することができる)
  • 使われる微分の公式:合成関数の微分」「連鎖律
  • 予測誤差がネットワークを逆向きにたどっているように見えるため付けられた名称
  • 勾配降下法を用いてニューラルネットワークの学習をする際、微分計算を誤差逆伝播法を用い、効率よく行うもの
  • メリット:どのニューロンが予測結果に寄与している・していないを判別できるようになった
    (各勾配値が逆伝播の過程で求められるため)
  • 「信用割当問題(モデルのどの部分がこの予測結果をもたらしているか分からない)」の解決へとつながる
    ※どこが影響しているかは分かるが、なぜ影響しているかまでは分からない
  • 問題点:勾配消失問題」「勾配爆発問題→勾配値が小さくなりすぎてしまう/大きくなりすぎてしまう

活性化関数

「シグモイド関数」「ソフトマックス関数」以外の活性化関数について。

勾配消失問題とシグモイド関数

誤差逆伝播法で、出力層から順に各層にわたっての勾配値を計算する際、「活性化関数の微分」があるものの、シグモイド関数の微分では最大値が0.25にしかならないため、勾配が消失していくという問題が生じてしまう(「微分した関数(導関数)」参照)。

つまり、隠れ層を遡るごとに、活性化関数の微分が掛け合わさると、伝播していく誤差がどんどん小さくなっていくことになり、勾配消失問題が生じることになってしまう。

tanh関数

  • 勾配消失問題は、シグモイド関数の最大値が0.25にしかならないことが原因
    シグモイド関数以外の関数を用いることで勾配消失問題を防ぐ
    (ただし、出力層ではシグモイド関数(またはソフトマックス関数)でなければならない)
  • 出力層以外→任意の実数を非線形に変換することができる関数でさえあれば、どのような関数も活性関数として用いることに特に問題はない
  • 「tanh関数(ハイパボリックタンジェント)」:-1から1の範囲を取ることが特徴
    →最大値が1なので勾配が消失しにくい
    (とはいえ、最大値が1というだけなので、完全に防ぐことはできない)

ReLU関数

  • 「ReLU(Rectified Linear Unit)関数」:0より大きければ最大値である1が得られることになる
    →勾配が消失しにくい(誤差逆伝播法における勾配が小さくなりにくい)
    ただし、0以下の場合は0になるため、学習がうまくいかない場合もある

その他

  • 「Leaky ReLU関数」:0超の場合、わずかな傾きを持っている
    →ReLU関数のほうがよい場合もあり、ケースバイケース
  • 「Parametric ReLU」
  • 「Randomized ReLU」

この記事が気に入ったら
いいね または フォローしてね!

  • URLをコピーしました!
目次