機械学習(深層学習)で画像関連をやってみたい場合はじめに抑えておいた方がよいものは何か

More than 1 year has passed since last update.

職場で機械学習で画像関連をやってみたいんだけど、おすすめの本は何ですか?と聞かれてまともな回答ができなかったので、機械学習で画像関連をやりたい場合何を抑えればよいのかまとめてみる。

目次
1. 抑えておかなくてはいけない単語
2. まずコードをかいてみよう
3. 私が読んだ本

1. 抑えておかなくてはいけない単語

まず抑えておかないといけないのが畳み込みニューラルネットワーク(Convolutional Neural Network 以下CNNと記載)という単語です。
CNNは主に画像に関する機械学習において用いられています。
画像に関する機械学習をしたいのであれば、CNNを抑えておけば問題ありません。
CNNは最新の大規模画像認識の競技会(ILSVRC2016)でも応用されたものが使用されています。
そのため勉強したことが無駄になりません。
まずCNNというものがあるということを認識し、実際のコードがどうなっているのか調べ、コードを書いてみる。本等で理論を見るのは後でというのが一番の近道です。
コードをどの様に書けばいいのかは次項で記載します。

ILSVRCの概要は以下参照
http://qiita.com/taki_tflare/items/40bd1313d85513b4b861

2.まずコードをかいてみよう

機械学習(深層学習)全般に言えることですが、機械学習(深層学習)については扱っている内容が幅広く、全てを抑えることができません。かつ教科書等に記載されている内容はライブラリ(TensorFlow等)で実装されているため、使うだけではあれば詳細を抑える必要はありません。
そのため、はじめに抑えておく必要があるのは、実装されているコードを読むことです。
画像関連であれば、CNNを抑えておけばいいので、CNNのコードを書いてみましょう。

まず、CNNを扱っている以下のTensorFlowのチュートリアルをやってみましょう。
Deep MNIST for Experts
機械学習のベンチマークとして標準的に使われているMNISTという手書き数字認識(手書きの0から9までの数字の認識)を使用したチュートリアルがあります。
少しわかりづらいかもしれませんが、これを改造することで実践的な画像処理ができます。
頑張って理解しましょう。
英語が読みづらい方は日本語訳してくれている人がいますので、探してみましょう。
内容がわからない方は、解説してくれているページを探してみましょう。

参考になるページを一つ載せておきます。
実装してみてからコードの意味を理解するのに良いと考えます。
書籍転載:TensorFlowはじめました ― 実践!最新Googleマシンラーニング
http://www.buildinsider.net/small/booktensorflow

機械学習関連のフレームワークでは今のところTensorFlowがおすすめです。
情報入手が一番やりやすいため、とっつきやすいでしょう。
そのため上記のチュートリアルをやってみましょう。

3.私が読んだ本

最後に本でどのような理論になっているのかさっと抑えておきましょう
私が読んだ本の概要を以下に記載します。

進化計算と深層学習 -創発する知能

http://shop.ohmsha.co.jp/shopdetail/000000004395/

深層学習の概要を抑えるのであれば、これがわかりやすいと思います。
深層学習に対する記載量はそれほど多くないです。
読み物としてもわかりやすいです。

深層学習 (機械学習プロフェッショナルシリーズ)

http://bookclub.kodansha.co.jp/product?isbn=9784061529021

深層学習について詳しく見たい場合はこれが良いでしょう。
一通り必要なことが載っています。

深層学習 Deep Learning (監修:人工知能学会)

http://www.kindaikagaku.co.jp/information/kd0487.htm

論文をもとに加筆訂正したものです。
上記ページで目次を見てみて、読みたいと思うようであれば、読むというのが良いと思います。

Pythonで体験する 深層学習

http://www.coronasha.co.jp/np/isbn/9784339028515/

タイトルで初心者向けのようにみえるかもしれないが、初心者向けではありません。
専門家が最新の技術要素の一覧として使うためのものです。
ILSVRCで使われている画像関連の技術ついて、どのようなものが使われているかを理解するには有用ですが、誤植や読みづらい文章が目立ちます。