TensorFlowは、Googleが開発したオープンソースの数値計算ライブラリであり、ニューラルネットワークなどの機械学習アプリケーションの実装に使用されます。TensorFlowには、グラフによる計算の最適化、自動微分機能、分散処理などの高度な機能が含まれており、複雑な機械学習モデルの実装に非常に便利です。また、Python、C++、Java、Goなどの言語をサポートしており、開発者が使いやすいように設計されています。
TensorFlowをインストールする必要があります。ターミナルで以下のコマンドを実行してください。
$ sudo pip install tensorflow
TensorFlowはそのサイトに[https://www.tensorflow.org/tutorials?hl=ja チュートリアル]を用意しており、TensorFlowを学ぶ上で役立つでしょう。ただし、翻訳が不正確なページが多いため、可能な限り英語版を読むことをおすすめします。
次に、TensorFlowを使って線形回帰を行う例を見ていきましょう。
import tensorflow as tf
import numpy as np
import matplotlib.pyplot as plt
X_train = np.linspace(0, 10, 100)
Y_train = X_train * 2 + np.random.randn(*X_train.shape) * 0.33
X = tf.placeholder("float")
Y = tf.placeholder("float")
w = tf.Variable(0.0, name="weights")
b = tf.Variable(0.0, name="bias")
Y_pred = tf.add(tf.multiply(X, w), b)
cost = tf.reduce_mean(tf.square(Y_pred - Y))
learning_rate = 0.01
optimizer = tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
init = tf.global_variables_initializer()
with tf.Session() as sess:
    sess.run(init)
    for epoch in range(100):
        for x, y in zip(X_train, Y_train):
            sess.run(optimizer, feed_dict={X: x, Y: y})
    print(sess.run(w))
    print(sess.run(b))
plt.plot(X_train, Y_train, "ro", label="Training data")
plt.plot(X_train, X_train * sess.run(w) + sess.run(b), label="Fitted line")
plt.legend()
plt.show()
このコードでは、TensorFlowを使って線形回帰モデルを定義し、トレーニングデータを使って最適化します。最適化には勾配降下法が使われます。また、モデルパラメータにはTensorFlowの変数を使います。
最後に、結果をプロットしています。トレーニングデータにおおよそ合致する線形モデルが得られるはずです。
TensorFlowには多くの機能があり、深層学習のフレームワークとして広く使われています。この簡単な例でしたが、本格的に深層学習を行うにあたっての基礎的な知識を得ることができました。