2016/2/15~2/21
深層学習
「深層学習」を継続して勉強中。今週はCNN、RNN、RBMを読んでる。理論の概念理解ができる。でも実装には結びつかない。
- Convolutional Neural Network
畳み込みニューラルネットワーク。主に画像処理で扱われる。画像の2次元位置情報を活用し、ローカルな部分にのみ畳み込み計算を実行する。パラメータ重みの共有などでモデルを効率化することができる。 - Recurrent Neural Network
再帰ニューラルネットワーク。入力に対して”時間”の概念が加わったもの。自然言語処理での文章解析など、長さが決まっておらず、刻々と次の要素が表れるようなデータに用いられる。LSTM(Long Short Term Memory)についても解説有り。 - Restricted Boltzmann Machine
教師なし学習、生成モデル。教師なし学習なので、入力データのみから、そこに存在するデータの統計的偏り=特徴を抽出する。RBMは、入力データに存在する”特徴抽出”を物理的なモデルを使用して行うことができる。
Deep learningでは層を重ねていくと発生するVanishing gradient問題があるので、各層ごとに独立して学習を進めていく(Pretraining)という手法が有効活用される。RBMを使うと初めの層から独立して学習を進めていくことができる。
日本語でDeep Learningについて学べる本は貴重、特にConvolutional Neural NetworkやRecurrent Neural Networkについて説明してある本はまだ少ないので重宝する。
Coursera
引き続き、Courseraを勉強中。
・Coursera “Machine Learning” by Andreaw Ng
1日2つVideo見ていっている(通勤前の30分くらいのみ)、2月中に終わりたい。
PCAやった。Principal Component Analysis・主成分分析。固有値の大きい順に固有ベクトル使うってだけ、超簡単。
実践・実装
これまでずっと理論を学んできた。が、そろそろとにかく実践に進みたい。という事で、”Deep leaning 実践”でググっていくつかSlide shareを読んだ。
caffe, theano, pylearn2, tensor flow, chainerなどなどいろいろなディープラーニングライブラリがある模様。
- pylearn2 のすすめ。
- Deep Learningと画像認識 ~歴史・理論・実践~ Deep learningの解説。
実践ディープラーニング で勧められていたhttp://deeplearning.net/tutorial/を始めてみたい。
このチュートリアル内に書いてあるように、そのためには事前準備として、Theanoライブラリの勉強から始めることに。
Links
- Python Tutorial:
version 3 みたい。。。現在はPython 2.7を使っているライブラリの方が多い印象なので、Python 3に特化した機能は使いたくない。。
* 2017.1.4追記:今はpython3で使えないライブラリはあまりない印象。データサイエンティストを目指す人のpython環境構築 2016を参考に環境構築して、積極的にpython3を使っていってもいいと思う。ただし、python2,3特有の挙動(print
など)の違いは知っておく必要があるかも。 - numpy quickstart tutorial
- Theano tutorial