いまさら深層学習(TensorFlow)に入門したので参考にしたサイトなど
大まかな進め方
プログラム周りの事前知識としては、PythonはFizz Buzzが書ける程度の知識で大丈夫そうでした。
機械学習周りの事前知識として、以下の記事をナナメ読みしました。 この記事でベクトル、テンソル、行列、単純パーセプトロン、バックプロパゲーション、Softmax関数、ReLU関数あたりは知っておいたおかげで、スムーズに入門できたと思います。何かしらの資料で勉強しておくことをお勧めします。 とはいえ、あんまり深く理解できなかったところもありました。(大学でもっとちゃんと勉強しておけばよかった!)
事前知識がついたところで、入門記事を探しました。
日本語の情報を参考にしてもよかったですが、今回はTensorFlow公式のGetting Startedで頑張ることにしました。
これらの中でも、MNIST For ML Beginners と Deep MNIST for Experts を理解するところまでをやりました。
「本家のGetting Startedをやるのが難しい、事前学習もまとめて済ませたい」という場合には、以下のブログが丁寧に解説してくれているように見えました。内容はオリジナルっぽいですが、用語から計算式まで説明してくれているので、わかりやすそうでした。
英語
お恥ずかしいことにSEでありながら英語が超苦手なので、Google翻訳で頑張りました。
ブラウザにChrome Extensionsを入れておくと、選択した部分を自動で翻訳して表示してくれます。 わからない単語をすぐ調べたり、場合によっては文章全体を翻訳したりしながら進めました。
そういえばGoogle翻訳も機械学習になったんでしたっけ。 機械学習の翻訳に機械学習を使ってることになりますね! なんとなく未来を感じます。
どうしてもわからない時は以下の記事で日本語訳してくれていたので、こっちを見て補強しながら進めました。 (でも基本は自力で翻訳しながら進めました。英語の文書に慣れなくては……)
環境構築
今回は環境としては Windows 7、Python 3.6.1、TensorFlow 1.3.0 の状態で勉強を進めました。
Pythonは公式からexeでインストール、TensorFlowは公式の記事(Installing TensorFlow on Windows | TensorFlow)の通りにpip3
でインストールしました。
pip3 install --upgrade tensorflow
GPUを使うとか、そういうのをやるとちょっと面倒なようなので、今回はCPUに頑張ってもらう方針です。
かつてはWindowsだと面倒だったぽいんですが、特に困ることもなく導入できました。 GPUを使わないからかも? いずれ調査ということで。
畳み込みニューラルネットワーク
Getting Started の途中から畳み込みNNによるMNISTになりますが、 そもそも畳み込みNNがわからないと意味不明だったので、以下がとても参考になりました。
で
とりあえずなんとなくの理解はできたけど、 じゃあ自分でデータ用意して学習させるぜ! というところはまだです。 いずれはそこまでやってみたいですね。