TensorFlowの日本語まとめ

TensorFlowの公式サイトに書かれている英文を英語ど素人が翻訳(日本語訳/和訳)します。 間違いがありましたら、優しく教えていただけますと幸いです。 内容を理解したら、使ってみたい。

2.ソフトマックス回帰モデルを構築します

このセクションでは、単一の線形層とソフトマックス回帰モデルを構築します次のセクションでは、多層畳み込みネットワークとソフトマックス回帰の場合にこれを拡張します。

 

スポンサーリンク

 

 

Placeholders

私たちは、入力画像とターゲット出力クラスのノードを作成することにより、計算グラフの構築を開始します

x = tf.placeholder("float", shape=[None, 784])
y_ = tf.placeholder("float", shape=[None, 10])

 ここで、xとy_は、特定の値ではありません。むしろ、各プレースホルダです。--私たちは、TensorFlowに計算の実行をさせる時に入力する値です。


入力画像xは浮動小数点数の2Dテンソルからなります。ここでは、その形状 [None, 784]割り当てます。784は、単一の平坦化MNIST画像の次元であり、Noneは、最初の次元がバッチサイズに対応する任意のサイズとできることを示していません。

 

ターゲット出力クラスのy_は、digitクラスには、対応するMNISTイメージが属する各行が示すワンホット10次元のベクトルである2Dテンソルで構成されます。

 

placeholder形状引数はオプションですが、それは自動的に一貫性のないテンソル形状から生じるバグをキャッチするTensorFlowを許可します。

 

Variables(変数)

 今、私たちはモデルのために重みをW、バイアスをbとして定義します。私たちは、追加入力のように、これらの処理を想像することもできますが、TensorFlowは、それらを処理するためのより良い方法があります:Variable(変数)です。Variable(変数)は、TensorFlowの計算グラフ内に生きている値です。それが演算によって使用され、なお、変更することができます。機械学習の用途では、一般的に、モデルパラメータは Variables(変数)です。

W = tf.Variable(tf.zeros([784,10]))
b = tf.Variable(tf.zeros([10]))

私たちはtf.Variableの呼び出しで各パラメータの初期を渡します。ここでは、0の完全なテンソルとしてWbの両方初期化します。Wは784x10行列です。(何故なら私たちは784の入力機能と10の出力を持っています。)そして、bは10次元のベクトルです。(何故なら私たちは10のクラスを持っています。)

 

Variables(変数)がセッション内で使用することができる前に、それらはそのセッションを使用して初期化する必要があります。この手順では、すでに指定されている初期値(ゼロの完全なテンソルの場合)をとり、それぞれのVariable(変数)に割り当てます。これは、一度にすべてのVariables(変数)のために行うことができます。

sess.run(tf.initialize_all_variables())

 

予測クラスとコスト関数

 今、私たちは回帰モデルを実装することができますそれだけで1行を取ります!私たちは、重み行列Wでベクトル化入力画像xを掛け、バイアスbを追加し、各クラスに割り当てられているソフトマックス確率を計算します。
y = tf.nn.softmax(tf.matmul(x,W) + b)

訓練中に最小化するコスト関数は、同じように簡単に指定することができます私たちのコスト関数は、ターゲットとモデル予測との間のクロスエントロピーになります

 cross_entropy = -tf.reduce_sum(y_*tf.log(y))
ミニバッチ内のすべての画像全体でそのtf.reduce_sum の合計だけでなく、すべてのクラスに注意してください。私たちは、ミニバッチ全体のためのクロスエントロピーを計算しています。
 

f:id:TensorFlow:20160111101019j:plain

 

(原文サイト)

Deep MNIST for Experts