TensorFlow #Optimizer

MLのTrainingに欠かせないOptimizerクラスについて、整理しておこう。
——————————–
MLでは、最急降下法Gradient Descentで、損失関数lossの最小化を図る。
損失関数には、変数をtf.Variable で定義する。
モデルが y=ax+b の場合、モデルと損失関数lossは、以下の通り:

tf,Variableは初期化する事が必要。ローカル変数、グローバル変数を初期化のための関数群を示す:

損失関数を最小にする関数minimize:

を用いて、GradientDescentOptimizerクラスに学習係数learn_rateをセットして、optimizerを生成し、
損失関数を最小限にするステップをSession()で繰り返す。

最急降下法には、GradientDescentOptimizer:

MomentumOptimizer:

AdagradOptimizer

AdamOptimizer

などが利用できる。

学習データをSession()内で、損失関数に送り込んでOptimizeする必要があるが、この過程をData Feedingと呼ぶ。
ここで活躍するのが、プレースホルダーtf.placeholder()だ。

定数(Constant)や、変数(Variable)は、宣言時に初期値を設定するが、tf.placeholder()にはその必要はない。