数学嫌いリーマンのAI雑記

AI、IT、資格とか。

【分かりやすく】勾配降下法について解説(ディープラーニング)

 
本記事では、ディープラーニングの中で重要な役割を果たしている「勾配降下法」についてわかりやすく解説します。



勾配降下法って何?

 勾配降下法とは、ディープラーニングの中で非常に重要な役割を果たしている技術です。なぜなら、

ディープラーニングの「ラーニング(学習)」の部分だから

です。

ディープラーニングは、データを使って何百回、何千回と学習を繰り返し、最適な形にフィットしていく手法です。

ではどうやって学習していくのか。そこで使われるのが「勾配降下法」なのです。

ディープラーニングによる学習のイメージ

勾配降下法の仕組み

 ディープラーニングにおいて、学習は「誤差の最小化」という形で行われます。

正解の形と現在の自分の結果を比較し、異なっている部分(誤差)を減らすように学習を進めます。


そして、異なっている部分(誤差)は勾配という形で表現します。

この「勾配」について、もう少しかみ砕いて説明します。

 誤差は、ディープラーニングでは「誤差関数」という形で扱われます。数字(スカラー)ではなく、関数です。

2次以上の関数では、最小値や極小値が存在します。中学や高校の数学で学習したかと思います。誤差関数では、最小値や極小値がそのまま「誤差の最小値」となります。つまり、誤差関数の最小値や極小値を求めれば良いわけです。

ではどのようにして最小値や極小値を求めるかというと、「誤差関数上の1点における傾きを求める」という手段を取ります。この傾きを、ディープラーニングでは「勾配」と表現しています。

今、誤差関数上のある点にいるとします。その時、その点が「下っている」ことがわかれば、その先に最小値がありそうだと想像できますよね。逆に、ある点で「上っている」ことがわかれば、最小値は通り過ぎていることがわかります。

目標は「最小値にいく」ことなので、得られた傾き(勾配)の情報を使用して、今いる点から最小値があるだろう点に移動しようとしますよね。

このような移動を繰り返すと、最終的に最小値の地点に到着することができます。これこそが「勾配降下法による学習」です。

なぜ「勾配」というのか

 ここまで読んでくださった方の中には、「なぜ傾きのことをわざわざ勾配と呼んでいるの?傾き降下法でよくない?」と考えた方もいらっしゃるかもしれません。

確かに、上の図のような2次元空間であれば、傾きという表現で十分でしょう。しかし、現実世界には3次元以上のものがあふれかえっています。

例として、3次元の場合を見てみましょう。3次元でのグラフは下のようになります。


この場合、「傾き」よりも「勾配」といった方がしっくりきませんか?現実世界ではこのようなケースの方が多いため、「勾配」という表現が一般的に使用されているわけです。

まとめ

 最後にまとめです。

・勾配降下法は、ディープラーニングの「学習」の部分を担う重要な要素
・勾配降下法は、誤差関数上で、傾き(勾配)を用いて誤差の値が最小になるように学習を進めていく手法

以上です。ここまで読んでくださりありがとうございました。