TensorFlow
しばらく何も書かなかったのですが、その間に色々試してました。Microsoft Asureを試すつもりでしたが、もう少し基本に戻ってました。その間にライセンスが切れてしまった・・・
で、機械学習ツールはほとんどPythonで使われるということもあり、Pythonのお勉強してたりしてました。Pythonって2.7と3.4の二つのバージョンに互換性がなく、誰かさんのご指導で3.4で色々やってたらみんな2.7使ってるし。サイエンティストの皆さんは統計モジュール使いたくてPython使ってるので、古いパージョンでも気にしないみたい。一応Pythonのプログラムを読んで解析できるレベルまではきました。とりあえず、既存のプログラムをちょこっと直すくらいはできるようになっています。
最初に覚えたMeCabが気に入っているのですが、WindowsでPythonと一緒に使えるようにするのが大変そう。基本はLinuxのようです。先ほども言いましたが、サイエンティストの皆さんはLinux、Pythonという面倒な組み合わせがお好きなようで。でも、ここまではWindowで頑張ってきました。
GoogleがリリースしたTensorFlowという機械学習のフリーソフト(と簡単に言ってしまう)が結構なニュースになっているので、これをインストールしてみましたので、インストールの注意点をメモ代わりに。これもやっぱりLinux-Pythonです。これを簡単に動かせるようにするために、結局Linuxを入れました。Unix使うのはン十年ぶり。そういえば、一時期馬鹿でかい画面のUnixマシン使ってました。あれ、滅茶苦茶高かったんですよね。結局Unixはビジネス用にはなりませんでしたが、今の人工知能ブームで復活するかも。
Linuxのインストールは自宅にある使ってないラップトップに入れようかと考えてましたが、結局今のPCにVirtualBoxを入れて仮想マシンで動かすことにしました。で、以下のようにしました。徹底的にフリーソフトを使います。
仮想マシン -
Oracle VM VirtualBox 5.0
Linux -
Ubuntu 64bit 14.04
Python 2.7
TensorFlow 0.5.0
最初はサイトのインストールの手順にしたがったのですが、やはり引っかかりました。
現在のPythonのインストールが良くないようです。GoogleさんおすすめのVirtualenvを使ってやっと入りました。ただ、一回目はnumpyがちゃんと入っていないようで落ちたので、
sudo apt-get install python-numpy python-scipy
とやってもう一度インストール。
なんかIT系のサイトになりつつありますが、目的はあくまでもユーザー目線を保つつもりであります。
で、なんかわからないテストをしてみたら、なんと、動くではありませんか。
で、それが
$ python tensorflow/models/image/mnist/convolutional.py
Succesfully downloaded train-images-idx3-ubyte.gz 9912422 bytes.
Succesfully downloaded train-labels-idx1-ubyte.gz 28881 bytes.
Succesfully downloaded t10k-images-idx3-ubyte.gz 1648877 bytes.
Succesfully downloaded t10k-labels-idx1-ubyte.gz 4542 bytes.
Extracting data/train-images-idx3-ubyte.gz
Extracting data/train-labels-idx1-ubyte.gz
Extracting data/t10k-images-idx3-ubyte.gz
Extracting data/t10k-labels-idx1-ubyte.gz
Initialized!
Epoch 0.00
Minibatch loss: 12.054, learning rate: 0.010000
Minibatch error: 90.6%
Validation error: 84.6%
Epoch 0.12
Minibatch loss: 3.285, learning rate: 0.010000
Minibatch error: 6.2%
Validation error: 7.0%
わけわかりませんが、とりあえず動いたということで○。
インストールが終わって、さあこれからどんなものかのチェック、ですが結局他の人工知能のシステムとそんなに変わってる訳ではありません。呼び方はかわってるけど・・・
これを見ると、Microsoft Asureやら、Wekaやらとそんなに変わってはいません。
基本は、データフローダイアグラムですね。違うのがデータが多次元の行列となっていること(これをテンソルと呼ぶのだそうです)。処理の部分はそのまんまオペレーション。それに、最初のインプットと最後のアウトプットが加わるとこうなります。これのいいところはなんといっても、オープンソース。自由度が全く違う。どんなことやってるかが調べられます。といっても、そんなことはしないと思うけど・・・
これからしばらくはこれで遊んでみよー。色々なゴミデータを入れてみて何がでてくるか?
でも、Unix動かすとPCがとたんに重くなるぅ。