誤差逆伝搬法からの勾配降下法 (ニューラルネットワーク)

皆さん、こんにちは。尝笔开発グループの苍-辞锄补飞补苍です。
地球は自転による远心力により楕円体となっています。その為、海抜标高ではエベレストが世界一ですが、地球の中心からの距离であればチンボラソがエベレストよりも高くなります。この理屈で言うと、日本で一番高い(地球の中心から最も离れている)地点は、富士山ではなく冲ノ鸟岛になります。

本题です。
以前、主に多层构造となるニューラルネットワークの学习方法について整理しました。学习には损失関数、误差逆伝搬法、勾配降下法の3つポイントがあります。今回はその内の1つである勾配降下法を深堀したいと思います。

勾配降下法

概要

勾配降下法は、损失関数の値を最小化するために、重みやバイアス项を少しずつ调整していく最适化手法です。具体的には、误差逆伝搬法により求めた损失関数の勾配(偏微分)から、その勾配の反対方向に重みとバイアス项を更新します。

実际の计算式では、勾配は「损失が最も増える方向」を示しますので、その逆方向に更新することで损失を减らしていきます。

w = w η × ∂L ∂w

wは各層の重みやバイアス項です。ηは学习率で次項で扱います。Lは損失です。図でイメージすると以下のようになります。wが勾配分の移動を繰り返すことにより、徐々に勾配が0になる個所を探し出します。

学习率

学习率はハイパーパラメータで、勾配に沿って一度にどれだけ降りていくかを決定するパラメータになります。学习率は安定かつ効率的に学習するために用いられます。

例えば、ニューラルネットワークの最初の各層の重みやバイアス項は未学習の状態ですので、その値はまだ最適化されていません。なので、勾配が急だったり緩やかだったりします。もし、学习率を使わなかった場合、各層の重みやバイアス項が更新幅が安定しなくなりうまく学習が進みません。そこで学习率によって調整するのです。

ただし、学习率の調整には注意が必要です。学习率が大きすぎても小さすぎても、いつまでたっても収束(損失やパラメータの変化が十分小さくなった状態のこと)せず、学習が完了しません。

局所最适解と鞍点

探索する関数が綺丽な鲍字型の関数とは限りません。以下のような関数の场合、勾配が0になる个所が2つ存在します。☆が局所最适解であり、★が大域最适解と呼び、学习においては损失が最も少ない大域最适解を探し出す必要があります。

勾配降下法は少しずつ勾配の逆方向に调整するだけの手法ですので、自身がいる场所が局所最适解なのか大域最适解なのか判断できません。局所最适解に一度陥ると、なかなか抜け出すのが困难となります。

また、3次元以上ではより厄介なことに、鞍点と呼ばれる、ある次元から见れば极小であるものの、别の次元から见ると极大となってしまう点が存在します。この鞍点も一度陥ると、なかなか抜け出すのが困难となってしまいます。

これら局所最適解や鞍点などの対策として、学习率を調整して強引に抜け出すことが挙げられます。それ以外にも、モーメンタムやAdam、AdaBoundと言った手法で解決することができます。

おわりに

正确には勾配降下法ではなく、どちらかと言うと误差逆伝搬法の问题ではありますが、勾配が消失する勾配消失问题と、勾配が増加する勾配爆発问题があります。どちらもネットワークの深さや活性化関数の性质、各层の重さやバイアス项が不适切などの要因が重なり起きる问题で、この问题が発生すると勾配による最适解の探索ができなくなり、学习が失败する原因になります。

ディープラーニングは1980年代に提唱されましたが、1990年代に下火となってしまいました。その原因はコンピュータの演算能力が不足していたこともありましたが、勾配消失问题により多层にしても学习精度が向上しない问题が立ちふさがったためです。この问题に対して活性化関数の工夫や、各层の重さの初期値を适切に设定する齿补惫颈别谤などの手法が登场したことにより、第3次础滨ブームが起きて昨今の础滨技术に繋がったと言われています。

ではまた。


Recommendおすすめブログ