「初めてのディープラーニング -オープンソース”Caffe”による演習付き-」を買ってみた

明けましておめでとう以来の投稿です。お久しぶりです。

かれこれ1年ぐらい機械学習勉強しないとな…という焦りだけが先行してなかなか手を出せずにいました。
ネットで調べても仕組みの事ばかり…
ツールもTensorFlowやらCaffeやら何を選べばいいのか分からない…
本屋で立ち読みをすると数式だらけで文系の僕には理解不能で頭がパンク…

仕組みはいいから取り敢えず入門できる本は無いか…と思っていた所に見つけたのがこの本でした。

目次を見ると

  1. Chapter1 ディープラーニングとは何か?
  2. Chapter2 ディープラーニングが遂げた成果
  3. Chapter3 ディープラーニングを利用した画像認識
  4. Chapter4 ディープラーニングアルゴリズムの学習方法
  5. Chapter5 Caffeを準備する
  6. Chapter6 Caffeでディープラーニングを体感する
  7. Appendix 付録

となっており実際にCaffeに触れるのはChapter5と6のみというハードルの低さ。
内容をチラッと見ても文字が大きくて見やすい。
取り敢えずサンプルまで動かすだけでいいから体験してみようと思い買ってみました。

内容としては、ディープラーニングとは、仕組み、歴史、サンプルと広くカバーしてくれています。
一通り読んだ後にCaffeの動作準備をする箇所があるのでVagrantで動かしてみました。

環境構築

クライアントOSはMac OS X(El Capitan)を想定していますが、VirtualBoxとVagrantが動けば問題ないかと思います。
まず、VirtualBoxVagrantをダウンロード・インストールします。

ターミナルからVagrantのBoxを追加します。

vagrant box add ubuntu https://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box

Vagrantfileを作成します。

vagrant init

上記で作成したVagrantfileを修正します。

  Vagrant.configure(2) do |config|
    config.vm.box = "ubuntu"
  end

Vagrantを起動してからログインします。

vagrant up
vagrant ssh

無事ログイン出来たら必要なライブラリをインストールします。
念のためrootになっていた方がスムーズかと思います。(結構時間掛かります。お茶でも飲んでいて下さい。)

sudo - #パスワードはvagrant
apt-get install libatlas-base-dev libprotobuf-dev libleveldb-dev libsnappy-dev libopencv-dev libboost-all-dev libhdf5-serial-dev libgflags-dev libgoogle-glog-dev liblmdb-dev protobuf-compiler git g++-4.6

続いてCaffeをダウンロードしてきます。

git clone https://github.com/BVLC/Caffe.git

ダウンロードしたフォルダに移動してMakefile.config.exampleをMakefile.configにコピーします。

cd ./Caffe
cp Makefile.config.example Makefile.config

Makefile.configを編集します。

# 下記を編集
# CUSTOM_CXX := g++
CUSTOM_CXX := g++-4.6

# 下記を編集
# CPU_ONLY := 1
CPU_ONLY := 1

これで準備が完了です。インストールします。

make
make test

正しくインストール出来たか確認の為にテストします。

make runtest

全て OK と出ていたら正しく動作しているらしいです。
動作確認まで出来たので今日はここまで。一応サンプルまで動かしてみたんですが、「動いた動いた」と満足してしまい内容の理解までたどり着いていません。。
本を読みながら理解を進めていきたいと思います。