ゼロから作るディープラーニング

年末年始でこの本を読んでみた。以前機械学習理論入門というのを読んで、そっちはそっちで具体例とともにコードが載っていて数学の説明も割と詳しくされていてよかったのだが、書店で平積みされていた本書を手にとったところ確かにゼロからやってる感が出ていて、より理解が深まりそうなので買ってみた。

以前記事にしたように、今まで人工知能といっても、人間が特徴量(何が効いているか)を指定したうえでその特徴量をインプットしたときに分類・推論のアウトプットがされるというものだった。近年の盛り上がりは、この特徴量(何が効いているか)を機械に探させることができる(学習)ようになったことが発端となっているようだが、本書ではその学習の部分について解説がなされている。

具体的には、パーセプトロンに始まり、推論を行うニューラルネットワークを作成し、まずは学習済みのパラメータセットで推論がどうなるかを示して、次に実際学習を行う過程を見せ、さらにその時にぶつかる問題点等について解説…という流れになっている。

3章までが学習済みパラメタを使って推論を行ってみるというところ。サンプルコードもgitHubにあげられているのだが、実はここでつまづいた。理由は 1.GitHubのDLの仕方 2.python2系をつかっていたこと、である。より具体的にはp73でMNISTデータを持ってくるところである。

本に掲載されているURLにとぶと本にもある通り、サンプルコードが章ごとにフォルダにまとまっている。それと並列でdatasetがフォルダに格納されている。そのフォルダをクリックし、そのままpyファイルを右クリック→保存すればよいのかと思ったがそうするとhtml doctypeになってしまい、読み込みことができない。そこで、フォルダの直下のpyファイルをそのままDLするのではなく、さらにそのpyファイルをクリックし、web上でスクリプトが展開された状態で右側にある「Raw」を右クリック→保存、とする必要があるっぽい。おそらくGitHubを使い慣れている人には常識なのだろうが、恥ずかしながら知らずにhtmlタグを外すなどして対応しようとして無駄につまづいてしまった。

で、上記の方法でDLしていざ再び読み込もうとしたところ、今度はpy3系にしか対応してない、とのことでAnacondaの3系を入れなおしたところようやく動くようになった。それ以降は(すべて回したわけではないが)一応同様の方法で試してみることができたので問題ないと思う。

にしてもpython3系は2とは違うと聞いてはいたもののそんなに変わらんだろと勝手に思い込んでいたけど、Anacondaをいれて3のお試しで"print 1+1"みたいに書いたら動かず、どうやら"print (1+1)"と書く必要があると知りまた驚き。継続的に勉強したいと思う。