MAC でTensorflow

 

MAC でTensorflowをインストールする。

 

https://deepage.net/tensorflow/2017/02/14/tensorflow-docker.html

 

Mac

まずは、以下のリンクをクリックしてください。

Get started with Docker for Mac

Download Docker for Macという節に、下の画像のような場所があるはずです。左側の安定版をクリックしてダウンロードします。

Dockerダウンロード

ダウンロードが終わったら、クリックしてインストーラーを開き、クジラのようなDockerのアイコンをApplicationフォルダにドラッグ・アンド・ドロップします。

Dockerドラッグ・アンド・ドロップ

ドラッグ・アンド・ドロップすると、アプリケーション一覧にDockerアイコンが表示されているはずです。こちらを開きます。

Dockerアプリケーション

色々とダイアログが出てくるので、内容を確認して許可します。最後に、以下の画像のようなウィジェットが出てくればインストール成功です。

Dockerのポップアップ

 

 

TensorFlowのコンテナを実行する

TensorFlowのDockerイメージは4つあります。

Dockerイメージ説明
gcr.io/tensorflow/tensorflow CPU安定版Dockerイメージ
gcr.io/tensorflow/tensorflow:latest-devel CPU開発中のDockerイメージ
gcr.io/tensorflow/tensorflow:latest-gpu GPU安定版Dockerイメージ
gcr.io/tensorflow/tensorflow:latest-devel-gpu GPU開発中のDockerイメージ

お使いの環境に合わせて、選択してください。

まずは、tensorflow/tensorflowのDockerイメージを実行してみます。

$ docker run -it -p 8888:8888 tensorflow/tensorflow

すると、tensorflow/tensorflowイメージがダウンロードされて、Jupyter Notebookが起動されました。ターミナルの出力の最後にURLが表示されていると思うので、ブラウザからアクセスしてみます。

Docker run

Jupyter Notebook

MNISTや簡単なチュートリアルの解説付きのJupyter Notebookが表示されているはずです。

TensorFlowのサンプルを実行してみる

以下のコードをsample.pyというファイル名で保存してください。

import tensorflow as tf
hello = tf.constant('Hello, TensorFlow!')
sess = tf.Session()
print(sess.run(hello))
a = tf.constant(10)
b = tf.constant(32)
print(sess.run(a+b))

Dockerfileを書きます。同じディレクトリにDockerfileという名前で以下のコードを保存します。

FROM gcr.io/tensorflow/tensorflow

COPY ./sample.py /tmp/sample.py

Dockerイメージをビルドしてみます。-tオプションで、タグ名を付けることができます。

$ docker build -t docker:sample .

これで、実行してみます。

$ docker run --rm -it docker:sample python /tmp/sample.py
Hello, TensorFlow!
42

Hello, TensorFlow!と、42が出力されるはずです。

Watsonについて

Watsonは、AIではなく、Congnitiveプラットフォーム:Congnitive:認識できる、経験的知識に基づいたと意味。

 

 

Speech to Textは、

 よくある音声認識のサービスです。Watsonは、ディプ―ラーニングを用いて、機械学習を行い、認識制度を向上させた音声認識を行うことができます。

 

 

Natural Laguage Classifier

 テキストをその意図に応じて分類するサービスです。

NLCは、分類したテキストサンプルを用意して学習を行い、その後で実際の分類を実行する。

 

 

 

14292Abc_

AI用語メモ

 

学習方法のコンセプトは簡単で、間違えたらwの値を後述の式により更新していき、間違いがなくなるまで更新を続ける。学習データの系列を下記のように定義する。

X={X1,X2,...,XM}M:

ここで、誤分類された学習データの集合を下記のように表記する。

Xn={x1,x2,...,xn}

クラス1のデータに対し、f(x) > 0,クラス2のデータに対し、f(x) < 0となるような重みwを求めたい。この場合、教師ラベルt={+1,-1}を用いると、全てのデータは下記を満たす。

wTxiti>0

正しく分類されたデータに対し、誤差0を割り当てるような下記の誤差関数E(・)が考えられる。

E(w)=nXwTxntn

これを最小化する(0になる)ように、wの値を設定すれば、上手く分類できる。
この最小化する手法として、確率的勾配降下法を利用する。
確率的勾配降下法は誤差関数が今回のE(w)のようにデータ点の和からなっている場合、データnが与えられたとき、下記の計算によりwを更新する。

w(r+1)=w(r)μEnrμw(r):rw

上記から、下記のように更新式が導出できる。

w(r+1)=w(r)μE(w)=w(r)+μxntn

wの値次第で、データが誤分類されてしまうような領域内では、tの値が+1のときでも-1のときでも、誤分類されたデータの誤差E(w)への寄与は線形関数となる。
また、wの値次第で、データが正しく分類される領域内ではデータの誤差E(w)への寄与は0である。
したがって、E(w)は区分線形関数である。
そのため、E(w)の勾配は下記のように計算されている。

E(w)=E(w)w=xntn

 

Deep Learningのための数学的なメモ

もう長い間、数学はやっていない、まず言葉だけでもまとめて会話できる必要がある。

  • Σ:シグマ

   記号シグマは、和を表すΣXn=X1+X2+....Xn

  • Π:パイ

   記号パイは、積を表す。ΠXn= X1*X2*.......Xn

 

  • EXP:エクスポネンシャル

   記号EXPは、自然対数の底e=2.718を用いた指数関数を表す。次はeのX乗を表す関数になる。EXP X= E^X

指数関数の和の積は、引数のわに変換される。

Πe^Xn=e^X1*.....e^Xn=exp{ ΣXn}

Tensor Flowの用語メモ

関数メモ

  • matmul

         行列の掛け算を行う関数

  • train.reshape

         Array変数を行列の形を並び替えた形にする。

 

 

 

  •  tranin.AdamOptimizer().minmize(loss)

   Tensorflowが提供するトレーニングアルゴリズムの1つです。与えられたトレーニングセットから誤差を計算して、その勾配ベクトルの反対方向にパラメータを修正するという処理を実施するものですが、学習率ε(イプシロン)に相当するパラメータを自動的に調整する仕組みを持っている。比較的に性能がよく、学習率を手動で調整する必要がないために、ディープラーニングでよく利用されるアルゴリズムである。その後のMinmize(loss)というメソッドでは、先に定義したLossを誤差関数として、これを最小化するように指示を出している。

 

(かくりつてきこうばいこうかほう、: stochastic gradient descent, SGD)とは、連続最適化問題に対する勾配法乱択アルゴリズム。目的関数が、微分可能な和の形である事が必要。バッチ学習である最急降下法をオンライン学習に改良した物。

 

enumerate関数でインデックスつきループを行う

ループ処理を行うときにenumerate()を使うと、要素のインデックスと要素の両方を同時に取得できます。

>>> for i, v in enumerate(['tic', 'tac', 'toe']):
...     print i, v
...
0 tic
1 tac
2 to

Tensorflowのインストール

  1. Tensorとは
  • Tensorとは線形的な量または線形的な帰化概念を一般化したもので、基底を選べば多次元の配列として、表現できるもの。
  1. TENSOR FLOW overview

Reference:https://space-ichikawa.com/soralab/2016/02/tensorflow-typeerror/



TensorFlowのインストール方法には、①Pip install、②Virtualenv install、③Docker installがありますが、今回は、Virtualenv installを選択しました(インストール時点のバージョンは、0.6.0)。

 

PIP install :

Install TensorFlow on your machine, possibly upgrading previously installed Python packages. May impact existing Python programs on your machine.

 

Virtualenv install:

Install TensorFlow in its own directory, not impacting any existing Python programs on your machine.

 

Docker install:

Run TensorFlow in a Docker container isolated from all other programs on your machine.



インストール

1.PythonのPIPと開発系と、仮想環境をインストールする。

$sudo apt-get install python-pip python-dev python-virtualenv


2.仮想環境からTensorflowをインストール

$ virtualenv --system-site-packages ~/tensorflow

 

3.TensorflowをActive
$ source ~/tensorflow/bin/activate

 

4.Install
(tensorflow)$ pip install --upgrade https://storage.googleapis.com/tensorflow/linux/cpu/tensorflow-0.6.0-cp27-none-linux_x86_64.whl



----------------------------------------------------------------------------------------------------------



Tensorflowを利用するとき
$ source ~/tensorflow/bin/activate

で、仮想環境を有効にする。

 

参考文献:

インストール関係

http://nc30mtd.oops.jp/blog/2015/12/tensorflow.html

http://voyov.hatenablog.com/entry/2015/11/18/232445