学習率とは
ディープラーニングにおける学習率とは、重みとバイアスのパラメーター更新を行うために、傾きに対して、どの割合で増やすかを指定する値です。
言葉で書いてもややこしいので、例を書きます。
学習率がイメージできる例
重みw11を、0.001増やすと、損失関数(誤差の指標。0に近いほど良い)の値が、0.002減ることがわかりました。重みw11に対する損失関数の傾きは-20(-0.002/0.001)です。
重みw21を、0.001増やすと、損失関数(誤差の指標。0に近いほど良い)の値が、0.001増えることがわかりました。重みw21に対する損失関数の傾きは10(0.001/0.001)です。
ディープラーニングの重みのパラメーターの更新は、求めた傾きの値をそのまま使うわけではありません。これをそのまま使ってしまうと、大きく飛び越え過ぎることになります。
パラメータを増やしたり、減らしたりすると損失関数がどの程度増えたり、減ったりするかがわかったので、それを基準に、少しだけ動きましょう。この「少しだけ動く」ということを表現するのが学習率です。
学習率を0.1に設定したとします
重みw11の更新量は「-20 * 0.1 = -2」で、これを重みから引き算します「w11 = w11 - (-2)」。
重みw11の更新量は「10 * 0.1 = 1」で、これを重みから引き算します「w11 = w11 - 1」。
引き算をするのは、損失関数の値が減る方向に動かす必要があるからです。
バイアスのパラメーターの更新も、重みの更新とまったく同じです。
重みとバイアスのパラメーターの損失関数に対する傾きは、逆誤伝播法というアルゴリズムを使うことで、すべての層において、一気に求まります。