はじめに
ディープラーニング(=多層ニューラルネットワーク)の考え方自体は昔からあったようだけど
なぜ最近になるまで注目されなかったのか?
何か問題があったのか?その問題は何か?を調べた。
参考URL
ディープラーニングは何か問題があったのか?
これは実際に問題あったそうです。
従来、多層ニューラルネットワークにすると
- 勾配消失
- 過学習
- 鞍点の増加
が発生するため、うまく学習ができなかったそうです。
また、多層なのでシンプルにメモリと計算量を大量に消費するので
性能が追い付いてこない、という問題もあったようです。
じゃあ、どうやって問題が解消できたの?
勾配消失や過学習に対してReluやDropoutなどの手法を適用することで
層を深くし、パラメタ数を多くする事が可能になったそうです。
でも、これだけでは鞍点の増加は避けられないそうですが、
そこは、学習係数係数を一定としてmomentumSGDやより賢い最適化関数を
使用することで解決できたそうな。
また、CPU、メモリも高性能化したことでこれも問題解消の一助となったようです。
おわりに
うまくいかない理由を知ることで、多層にすればいいってもんでもないんだな、ということが
理解できてとてもスッキリ。
それにしても参考サイトがとてもよく整理されているおかげでわかりやすかった。