IT is IT.

空想イノベーション

ニューラルネットワークの「学習」とは何を意味するのか

機械学習では、モデルの予測値と実際の値との誤差をなくすことを目的に、誤差関数を定義し、最小化を行う。
この時の関数の最小化とは、偏微分を表すが、偏微分を求める方法として、勾配降下法が用いられる。

勾配降下法は、勾配(微分値)に沿って降りていくことで解を探索する手法である。
微分は、接線の傾きを表すので、勾配を降りきった部分で傾きがゼロになる部分が、求めるべき点となる。

スポンサーリンク
 

勾配降下法を数式で表すと、以下のようになる。
x^{(k+1)}=x^{(k)}-af'(x^{(k)})
目的のxを求めるために、勾配を降りていき、解を得るために、この数式を繰り返し計算する。

数式上の「k」は、その時点で何回計算を繰り返したかを表す数値で、エポックと呼ばれている。
また、αは学習率と呼ばれ、勾配にそって一度にどれぐらい降りていくか、を表す数値である。
学習率の設定次第で、最適解が得られないこともあるので、この学習率の設定が非常に重要となる。

ニューラルネットワークでは、各パラメータ(重み)に対して勾配降下法を適用することで、最適解を得る。
つまり、ニューラルネットワークの学習とは、勾配降下法を用いて繰り返し計算を行うことを意味する。