勾配降下法・誤差逆伝播法とは?AIの学習を解説

勾配降下法・誤差逆伝播法とは?AIの学習を解説

AIがどうやって間違いを直して賢くなるのか気になる初心者のイメージ
「AIって、どうやって賢くなるの?」
「勾配降下法は、何をしている?」
「学習率って、大きいほどいいの?」

最初はでたらめな答えしか出せなかったAIが、学習を重ねて正解に近づく。その「近づく」を実際に動かしているのが勾配降下法です。数式を使わず、坂を下るイメージで最後まで通します。

勾配降下法とは、AIの答えのズレ(損失)を坂道に見立て、傾きが下る向きへ少しずつ進んで、ズレが最小の谷を目指す学習の方法です。学習とは、この谷下りそのものです。

 

この記事では、坂を下る考え方から始めて、一歩の大きさ(学習率)が大きすぎても小さすぎてもうまくいかない理由を表で見ます。谷が複数ある「損失地形」を図で開き、勾配を求める誤差逆伝播法までつなげます。G検定のディープラーニング基礎に直結します。

 

1. 学習は「ズレを測って、小さくする」の繰り返し

AIの答えと正解のズレを数値で測るイメージ

AIは最初、何も知らない状態から始まります。だから出す答えは間違いだらけ。そこでまず、答えと正解がどれだけずれているかを数値で測ります。この「ズレの大きさ」を測る関数が損失関数(誤差関数)です。

 

すると学習の目標が、はっきり1つに定まります。損失関数の値を、できるだけ小さくすること。ズレが縮むほど、答えは正解に近づく。あとは「どうやって縮めるか」だけが問題で、そこに勾配降下法が登場します。

 

2. 坂を下る——傾きを頼りに谷を目指す

足元の傾きを確かめながら低い方へ一歩ずつ進むイメージ
たとえるなら、目隠しをして斜面に立たされた状態です。全体は見えませんが、足裏で「どちらが下り坂か」は分かります。そこで、一番急に下っている向きへ一歩踏み出す。これを繰り返せば、少しずつ低い場所へ降りていけます。勾配降下法は、まさにこの手順です。

 

この「足裏で感じる傾き」にあたるのが勾配です。勾配は、損失をどの向きに動かせば小さくなるかを教えてくれます。そして一歩の大きさを決めるのが学習率。この歩幅の選び方が、学習のうまさを左右します。

 

学習率(歩幅) 起きること
大きすぎる 谷を飛び越えて反対側へ。行ったり来たりで安定せず、発散することもある
ちょうどよい むだなく谷へ収束していく
小さすぎる 一歩が小さく、谷に着くまで時間がかかりすぎる

 

「学習率は大きいほど速く学べる」は誤解です。大股すぎると谷を通り越してかえって収束しません。速さと安定は両立させるもので、ちょうどよい歩幅を選ぶことが、学習を前に進めるコツになります。

 

3. 谷は1つとは限らない——局所最適と大域最適

複数の谷がある損失地形で本当に低い谷を探すイメージ

ここに勾配降下法の難しさがあります。損失の地形は、谷が1つとは限りません。まわりより低いけれど一番ではない谷を局所最適、全体で最も低い本命の谷を大域最適と呼びます。図で見ると一目です。

 

局所最適 (浅い谷で足止め) 大域最適 (本命の一番深い谷) 下り続けると手前の谷で止まる

 

勾配降下法は足元の傾きだけを頼りに進むので、近くの浅い谷(局所最適)に落ちると、そこから出られなくなることがあります。もっと深い谷が奥にあっても、坂を登り返してまで探しには行けないからです。この「浅い谷に囚われる」問題への工夫が、後で出てくる進み方にゆらぎを持たせる方法につながります。学習を支える確率の考え方は 統計の基礎とは でやさしく補えます。

 

4. 勾配はどこから来るか——誤差逆伝播法

出力の誤差を出口から入口へさかのぼって各重みの勾配を求めるイメージ

坂を下るには「傾き=勾配」が要ります。では、その勾配はどう求めるのか。ニューラルネットワークとはのように層と重みが積み重なった仕組みで、それを担うのが誤差逆伝播法(バックプロパゲーション)です。

 

名前のとおり、向きが逆です。ふだんデータは入口から出口へ流れますが、誤差逆伝播では出力で生じた誤差を、出口から入口へさかのぼる向きに伝えます。そうすることで、それぞれの重みを「どちらへ、どれだけ動かせばズレが減るか」=勾配を計算できます。求めた勾配を勾配降下法に渡し、重みを少しずつ更新する——この往復が学習の一周です。

 

ここで頻出なのが勾配消失問題です。誤差を奥の層へさかのぼるうちに勾配がどんどん小さくなり、入口側の層がほとんど学習できなくなります。層が深いほど起きやすい。緩和策の代表が、活性化関数にReLUを使うことです。「深くすると強くなる」はずが逆に学べなくなる——この落とし穴と対策は、G検定で狙われます。仕組みは 活性化関数とは でつながります。

 

5. 確率的勾配降下法(SGD)と、次に学ぶ順

データの一部で勾配を求めてこまめに更新するイメージ

もとの勾配降下法は、手元のデータを全部使って勾配を求めます。正確ですが、データが大量になると1回の計算が重すぎます。そこで確率的勾配降下法(SGD)は、データの一部だけで勾配を求め、こまめに更新します。1回あたりは荒くなりますが、軽くて速い。

 

おまけの効能もあります。一部だけを使うぶん進み方に程よいゆらぎが生まれ、浅い局所最適から抜け出しやすくなります。3章の「囚われ」問題への、実用的な答えです。実際の学習では、一定のまとまり(ミニバッチ)ごとに更新する方法が広く使われています。

 

学ぶ順で迷ったら、この記事の登場順が近道です。損失関数 → 勾配降下法(学習率・局所最適)→ 誤差逆伝播法(勾配消失)→ 活性化関数。手前が土台になるので、この並びで押さえると、深い学習を支える仕組みは ディープラーニングとは まで一本の線でつながります。

 

次のステップ

勾配降下法がG検定のどこで問われるかを地図で見たいなら、G検定の試験範囲と勉強法をまとめたガイドでディープラーニング基礎の位置づけを確かめておくと、周辺の用語が整理できます。

学習率や勾配消失の理解が本番で効くかは、G検定 ディープラーニング基礎の問題集で設問を解いて試すのが確実です。