【分かりやすく】勾配降下法について解説(ディープラーニング)
本記事では、ディープラーニングの中で重要な役割を果たしている「勾配降下法」についてわかりやすく解説します。
勾配降下法って何?
勾配降下法とは、ディープラーニングの中で非常に重要な役割を果たしている技術です。なぜなら、
ディープラーニングの「ラーニング(学習)」の部分だから
です。
ディープラーニングは、データを使って何百回、何千回と学習を繰り返し、最適な形にフィットしていく手法です。
ではどうやって学習していくのか。そこで使われるのが「勾配降下法」なのです。
勾配降下法の仕組み
ディープラーニングにおいて、学習は「誤差の最小化」という形で行われます。
正解の形と現在の自分の結果を比較し、異なっている部分(誤差)を減らすように学習を進めます。
そして、異なっている部分(誤差)は勾配という形で表現します。
この「勾配」について、もう少しかみ砕いて説明します。
誤差は、ディープラーニングでは「誤差関数」という形で扱われます。数字(スカラー)ではなく、関数です。
2次以上の関数では、最小値や極小値が存在します。中学や高校の数学で学習したかと思います。誤差関数では、最小値や極小値がそのまま「誤差の最小値」となります。つまり、誤差関数の最小値や極小値を求めれば良いわけです。
ではどのようにして最小値や極小値を求めるかというと、「誤差関数上の1点における傾きを求める」という手段を取ります。この傾きを、ディープラーニングでは「勾配」と表現しています。
今、誤差関数上のある点にいるとします。その時、その点が「下っている」ことがわかれば、その先に最小値がありそうだと想像できますよね。逆に、ある点で「上っている」ことがわかれば、最小値は通り過ぎていることがわかります。
目標は「最小値にいく」ことなので、得られた傾き(勾配)の情報を使用して、今いる点から最小値があるだろう点に移動しようとしますよね。
このような移動を繰り返すと、最終的に最小値の地点に到着することができます。これこそが「勾配降下法による学習」です。
なぜ「勾配」というのか
ここまで読んでくださった方の中には、「なぜ傾きのことをわざわざ勾配と呼んでいるの?傾き降下法でよくない?」と考えた方もいらっしゃるかもしれません。
確かに、上の図のような2次元空間であれば、傾きという表現で十分でしょう。しかし、現実世界には3次元以上のものがあふれかえっています。
例として、3次元の場合を見てみましょう。3次元でのグラフは下のようになります。
この場合、「傾き」よりも「勾配」といった方がしっくりきませんか?現実世界ではこのようなケースの方が多いため、「勾配」という表現が一般的に使用されているわけです。
まとめ
最後にまとめです。
・勾配降下法は、ディープラーニングの「学習」の部分を担う重要な要素
・勾配降下法は、誤差関数上で、傾き(勾配)を用いて誤差の値が最小になるように学習を進めていく手法
以上です。ここまで読んでくださりありがとうございました。