「Deep Learning」って何? -- 学習しよ!(精度をあげよう!)
ネットワークの仕組みはなんとなくわかったかな?どうかな?という感じですが、ここでネットワークの精度を上げていく方法を確認していきます。
ニューラルネットワークの素晴らしいところはデータから"重みパラメータ"を自動で決定できるところです!
それではどうやってパラメータを決めていくかを見ていきましょう。
まず何かを調べる時に答えが出ます。そうするとその答えが正しいのか間違っているのかという判断が必要となります。正しいか間違っているのかの指標として
損失関数
として間違ったことを数値化します。そして一般的によく使われるのは
2乗和誤差 mean squared error
交差エントロピー誤差 cross entropy error
が使われます。
ここで少し考えて見ましょう。
認識精度を上げたい場合の指標を作る場合に単純に認識精度自体を数値化して使えば良いではないかということを考えますね。
ではなぜ、間違った指標である損失関数を使うのかということが疑問になります。
その答えとしては、損失関数を減らすために重みパラメータの勾配を求める際に都合が良いからという答えになります。認識精度を使ったものではその勾配がうまく機能しないということです。
勾配という言葉が出てきました。これも少し説明が必要ですね。
この場合の勾配というのは損失関数が最小になる値、パラメータとなる値を求めることとなります。
勾配の計算方法としては微分法になります。
単純に考えると認識精度を指標にしたいとこですね。でもそうすると数値がうまく出てこないというのが実証されています。
損失関数を指標とすると細かい数字まで算出され精度も上がることが知られています。
今回はここまで。
この記事が気に入ったらサポートをしてみませんか?