2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ディープラーニング学習過程の数学的な部分を追う

Last updated at Posted at 2019-04-26

ディープラーニングってどういう仕組みで動いているんだろうという疑問から、その学習過程を数学的な部分まで調べてみました。

私なりに理解したところまでを本記事で公開したいと思います。

そもそもディープラーニングはどういうものかというと。

たとえば手書きの文字があったとしましょう。コンピュータに画像を読み込ませることはできますが、全く同じ画像でなければ「同じ」と認識することはできません。

手書き文字のように、表記が逐一揺らぐようなものだと途端に判定することができなくなってしまいます。

大量の画像データを学習させることで未知の画像がきても判定するようにできるのがディープラーニングです。

将来的には、レントゲン画像から人間の目視では確認できない病状を検知するなど人間の能力を超えた判定が期待されています。囲碁の世界ではすでに人工知能が人間に勝利していますよね!
スライド2.GIF

ディープラーニングはニューラルネットワークと呼ばれる計算過程を辿ります。このニューラルネットは行列計算で表すことができます。
スライド4.GIF

ニューラルネットワークにより出力された結果はソフトマックス関数を使うことにより確率として解釈されるように変換することができます。この出力確率を正解データと比較することで、間違いを正しながら学習していくことができるのです。
スライド5.GIF

正解データとの比較は"誤差"の評価で行われます。誤差が大きければ間違い、誤差が小さければ正解に近づいているということです。
スライド6.GIF

この誤差判定にもちいられるのがcross entropy errorと呼ばれる関数です。
スライド7.GIF

ディープラーニングの学習過程は、"誤差"を最小化することを目指して行われます。

最小化を目指す際に用いられるのが「微分」です。微分をすることで勾配(傾き)を確認し、その勾配方向にパラメーターを移動させるということを繰り返すことで誤差の最小値に少しずつ近づけていくのです。
スライド9.GIF

具体的には、重み係数を偏微分することでニューラルネットワークの最適化を図ります。
スライド8.GIF

重み係数の偏微分により勾配を算出し、勾配の減少方向にパラメータをずらしていくという操作を繰り返していきます。
スライド10.GIF
スライド11.GIF
スライド12.GIF
スライド13.GIF

今回はニューラルネットワークの微分による学習過程を眺めてみました。

ニューラルネットワークでは、誤差逆伝播法を用いて学習していくことも可能であり、こちらの方がより効率的な計算方法として採用されることが多いです。

誤差逆伝播についても勉強していこうと思っております。

参考
「ゼロから作るDeep Learning ―Pythonで学ぶディープラーニングの理論と実装」
斎藤 康毅(著) 出版社:オライリージャパン

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?