まんぼう日記

takataka's diary

Theano + Pylearn2

夏休みの自由研究? - まんぼう日記 のつづき.結局,「2. Deep Learning のお勉強&実験してみる」でいくことに.

 

使えそうなライブラリを探す

 ネットワークの構造とか学習アルゴリズムとかは,Convolutional Neural Net で普通に Error Back-Propagation 辺りでええやろう,他の人が論文にのせてる実験をまねするとこからはじめよう.で,さすがに一からプログラム全部自分で書くのは大変やから,いくつかあるらしい Deep Learning のライブラリのどれかを使ってみて,後でソースに手を入れたりする方針で.

 

という感じで調べてみた結果,http://deeplearning.net/  からリンクされてる Pylearn2 & Theano を使ってみることに.

http://deeplearning.net/software/pylearn2/

Pylearn2 is a machine learning library. Most of its functionality is built on top of Theano. This means you can write Pylearn2 plugins (new models, algorithms, etc) using mathematical expressions, and theano will optimize and stabilize those expressions for you, and compile them to a backend of your choice (CPU or GPU).

http://deeplearning.net/software/theano/

Theano is a Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently. 

 

たかたかは Python + Numpy/SciPy に慣れてるし,Theano 使えるようんなったら既存の学習アルゴリズムに手を加えたりできそうやし. 

 

Theano と Pylearn2 のインストール

というわけで,両者をインストール.それぞれのページとか README ファイルとか読めばすんなりいけますが,メモ.たかたかは Mac OS X + MacPorts な環境で,Python 2.7 を使ってます.

Theano

MacPorts で一発.バージョンは py27-theano @0.6.0_1.

$ sudo port install py27-theano

http://deeplearning.net/software/theano/tutorial/ の例をちょこちょこ試して動作確認.

Pylearn2

こちらはちょっとは自分で考えてインストールする必要がある.まずは,Pylearn2 が依存してる Pyrhon 関係のもろもろを MacPorts でインストール.

$ sudo port install py27-hoge

 

hoge = numpy, scipy, matplotlib, cython, yaml, pil くらいかな.以前から入れてたのもあるし,Pylearn2 のインストール/実行時のエラーログ見てちょこちょこ追加してたので,ちゃんと網羅してないかも. あと,

$ sudo port select cython cython27

も?

 

それから,適当なディレクトリを作って Pylearn2 を入れる.

$ git clone git://github.com/lisa-lab/pylearn2.git
$ cd pylearn2
$ sudo python setup.py develop

後は

Quick-start example — Pylearn2 dev documentation を見ながら Gaussian Restricted Boltzmann Machine のサンプルを動かしてみる.データセットのダウンロードも必要なので,このウェブページよりも 

pylearn2/pylearn2/scripts/tutorials/grbm_smd/README

を見ながらの方がよいかも(Step 0: Download the CIFAR-10 dataset はウェブに載ってないし).

 

実際に学習して得られた重みを可視化したものがこちら:

f:id:takatakamanbou:20140823103113p:plain

 

Pylearn2 の tutorial でお勉強 - まんぼう日記  につづく