
TensorFlow
2016年6月22日 - 未分類
今、急激に流行りになった、深層学習をやってみようということで、GoogleのTensorFlowを使ってディプラーニング・ニューラルネットを使ってみました。
ニューラルネットは、1986年頃に、誤差逆伝搬法が流行った頃に、画像認識に使ったことがあります。その頃は、コンピュータパワーが貧弱だったので、画像の輪郭を抽出して、位置やスケールに不変な特徴パラメータを3層ニューラルネットに学習させて、識別させていました。
昨今、学習アルゴリズムの改良やコンピュータパワーの増加で、できることが増えてきました。画像認識では、人間並みの精度が出せるようになったし、囲碁でもチャンピオンを負かせるようになってきました。しかしながら、1986年時代でも問題であった、「何を学習しているのか分からない」という問題が解決されていません。何かを学習して、なんとなく上手くやってくれるから使える、といった程度でしょうか。
Googleが公開した、TensorFlow(テンソルフロー)は、テンソル(多重配列の集合のようなもの)を上手く処理するフレームワークです。PythonとC++で使えます。MacとUbuntuで使えますが、Windowsでは苦労するようです。
先ずは、TensorFlowをインストールしてチュートリアルを実行してみましょう。MacOSXで実行します。
# python バージョン確認
$ python —version
Python 2.7.10
TensorFlowは、バーチャル環境で使うのが良いみたいです。
# virtualenvのインストール
$ easy_install pip
$ pip install virtualenv
# virtualenv環境の作成
$ mkdir ~/tensorflow
$ virtualenv -—system-site-packages ~/tensorflow
# 作成したvirtualenv環境にはいる
$ cd ~/tensorflow
$ source ~/tensorflow/bin/activate
# TensorFlowのインストール
(tensorflow)$ pip install —upgrade https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl
# iPython notebook
pip install python notebook
これを使うと、Mathmaticaのように使えるようになり、便利です。
(tensorflow) $ python notebook
# チュートリアルのダウンロード
$ git clone https://github.com/tensorflow/tensorflow
かなり充実したチュートリアルになっている。
# OpenCVのインストール
OpenCVが上手くインストールできずに苦労しましたが、以下のようにやれば使えるようになります。
>brew install opencv
#pythonで使う場合
$ pip install pyopencv
collecting pyopencv
Could not find a version that satisfies the requirement pyopencv (from versions: 2.0.wr1.0.1-demo, 2.0.wr1.0.1, 2.0.wr1.1.0, 2.1.0.wr1.0.0, 2.1.0.wr1.0.1, 2.1.0.wr1.0.2, 2.1.0.wr1.1.0, 2.1.0.wr1.2.0)
No matching distribution found for pyopencv
$ pip install pyopencv==2.1.0.wr1.2.0
# virtual environmentフォルダーにopencvのリンクをはるとアクセスできる
$ ln -s /usr/local/lib/python2.7/site-packages/cv* ~/tensorflow/lib/python2.7/site-packages/