これなら分かる!Deep Learningの学び始め方
まえおき
仕事半分趣味半分として独学でDeep Learningを学び始めて早3ヶ月が経ちました.
CNNの亜種とかを論文片手に構築したりするレベルです.
(だいたいはCNN先生で良いんじゃない?と思ったりしますが,しょうがない...)
ただ,未だにDeep Learningは極力使いたくないというか,勾配ブースティングやSVMで問題ないなら使いませんし,機械学習とか使わなくても良い優れたアルゴリズムがあれば,そちらを使うようにしてます.
(保守の問題とかあるので,専門性の高い技術は使わないようにしてます.ヘタレエンジニアです.はい.)
ただ,精度だったり速度だったり諸々に問題があって,どうしても最先端の手法にすがりつきたくなる場合があったりします.(はい.泥沼です)
そういうときの奥の手のひとつとしてDeep Learningがあるのかなーというのが現状の認識だったりします.
おすすめ資料
それはさておき,今思えば最初はここから手をつけとけばよかったなと思う資料について,個人的主観で記載します.
ロジスティック回帰やニューラルネットなど機械学習入門的な内容を分かりやすく記載されていますので,CNNを学び始める前段階として読んでおいたほうが無難な気がします.
- ニューラルネットワークと深層学習
http://nnadl-ja.github.io/nnadl_site_ja/
ニューラルネットについて非常に分かりやすく,また何故こういう方法を採用しているのか記載されています.
TensorFlowの内部処理をブラックボックスとして使いたいけど,そうは言ってられなくなった時に重宝しました.
今にしてみれば,ChainerやTensorFlowとか使う前に,自前で一度は作っといたほうが良かったと思ってます.
- TensorFlow - チュートリアル
https://www.tensorflow.org/versions/r0.7/tutorials/index.html
Google謹製のライブラリTensorFlowのチュートリアルです.これでもかってぐらい分かりやすく説明してくださっています.
- ADAM: A METHOD FOR STOCHASTIC OPTIMIZATION
http://arxiv.org/pdf/1412.6980v8.pdf
Adamの論文です.何の気なしにAdamOptimizerとか使ってるけど,これなんぞ...と思った時に役立ちます.
なんでReLU使ってんの?なんでシグモイドじゃダメなの?って思った時に見つけた記事です.ちょっと幸せになれました.
- Distinctive Image Features from Scale-Invariant Keypoints
https://www.cs.ubc.ca/~lowe/papers/ijcv04.pdf
SIFTの論文です.なんでプーリングとかやってんの?この人達...とか思った時に何となく役にたった論文です.
コンピュータビジョンは一般教養として知っとかないとダメだったなーと思った記憶があります.
機械学習の大会を開いているサイトです.理論的な話とかじゃなくて,もうちょい泥臭い部分が知りたいのです...とか思った時にForum読んで幸せになってます.
たぶんLSTMの記事で一番わかりやすいです.
片っ端から論文読んでいくと,今どういった方法が主流なのかがわかって幸せになれます.