Select Language

AI Technology Community

学習レートlearning rate

    勾配降下アルゴリズムを用いて最適化を行う際、重みの更新規則では、勾配項の前に係数を乗算します。この係数を学習率 α と呼びます。
    学習率が小さすぎると、収束が遅くなります。
    学習率が大きすぎると、コスト関数が振動し、反復が速くなりすぎ、勾配降下法が最低点を越えてしまい、場合によっては発散する可能性があります。

   

学習率の値はデータサンプルに依存します。いくつかの値を大きい順から小さい順に取り、それぞれの値でアルゴリズムを実行して反復の効果を確認します。損失関数が減少していれば、その値は有効です。そうでなければ、ステップサイズを大きくする必要があります。
    例えば、学習率を 0.01 に設定し、training cost の推移を観察します。cost が減少していれば、徐々に学習率を大きくして、0.1 や 1.0 を試してみます。cost が増加していれば、学習率を小さくして、0.001 や 0.0001 を試してみます。いくつかの試行を繰り返すことで、学習率の適切な値を大まかに決定することができます。
学習率の調整
    最適化の過程では、learning rate は徐々に小さくする必要があります。「谷」に近づくほど、「歩幅」を小さくする必要があります。
    手動調整
    learning rate に初期値を設定します。例えば、0.25 とします。一定の反復回数(例えば、20 エポック目)で、learning rate を 10 で割って 0.025 に設定します。
    自動調整
    簡単で有効な方法は、検証データセットの正解率が向上しなくなったときに、learning rate を半分にするか 10 で割って、その後も反復を続けることです。
    参考設定
    AlexNet および VGG の学習率設定:
    学習率を初期値 0.01 とし、検証データセットの正解率が改善しなくなったときに、10 分の 1 に減少させます。学習率は合計 3 回減少させます。
    私たちが従ったヒューリスティックは、現在の学習率で検証誤差率が改善しなくなったときに、学習率を 10 で割ることでした。学習率は 0.01 で初期化され、終了前に 3 回減少させました。

post
活性化関数
2021-05-14 15:55:39join communtity
  • 22

    item of content
活性化関数(Activation Function)とは、人工ニューラルネットワークのニューロン上で動作する関数であり、ニューロンの入力を出力にマッピングする役割を担います。活性化関数は、人工ニューラルネットワークモデルが非常に複雑で非線形の関数を学習し理解することにおいて極めて重要な役割を果たします。これらはネットワークに非線形特性を導入します。図1のように、ニューロン内で入力(inputs)が重み付けされ、合算された後、さらにある関数によって処理されます。この関数こそが活性化関数です。活性化関数を導入することで、ニューラルネットワークモデルに非線形性が追加されます。活性化関数を使用しない場合、各層の出力は単なる行列の乗算と同等になります。たとえ複数の層を積み重ねても、結局のところそれは行列の乗算以上のものではありません。

活性化関数を使わない場合、各層の出力は前層の入力の線形関数となり、ニューラルネットワークがどれだけ多くの層を持っていたとしても、出力は常に入力の線形結合となります。これは最も原始的なパーセプトロン(Perceptron)の状況です。

一方、活性化関数を使用すると、ニューロンに非線形な要素が導入され、ニューラルネットワークは任意の非線形関数に近似することが可能になります。これにより、ニューラルネットワークは多くの非線形モデルに応用できるようになります。