github博客传送门 博客园传送门
计算出损失值后,这个损失值越小越好,梯度下降的算法就用在这里,帮助寻找最小的那个损失值,从而反推出 w 和 b 达到优化模型的效果
常用的梯度下降法可以分为:
批量梯度下降:遍历全部数据集算一次损失,计算量大,计算速度慢,不支持在线学习 随机梯度下降:每看一个数据,就算一下损失,速度快,收敛性能不太好,较低点震荡比较剧烈 小批量梯度下降法:将数据分为多批,按批更新参数,相对前两种,这种方法比较折中
Optimizertf. train. GradientDescentoptimizer( learning_rate, use_locking= False , name= 'Gradientdescent' )
tf. train. AdadeltaOptimizer( learning_rate= 0.001 , rho= 0.95 , epsilon= 1e - 08 , use_locking= False , name= 'Adadelta' )
tf. train. AdagradOptimizer( learning_rate, initial_accumulator_value= 0.1 , use_locking= False , name= 'Adagrad' )
tf. train. MomentumOptimizer( learning_rate, momentum, use_locking= False , name= 'Momentum' , use_nesterov= False )
tf. train. AdamOptimizer( learning_rate= 0.001 , beta1= 0.9 , beta2= 0.999 , epsilon= 1e - 08 , use_locking= False , name= 'Adam' )
tf. train. FtrlOptimizer( learning_rate, learning_rate_power= - 0.5 , initial_accumulator_value= 0.1 , l1_regularization_strength= 0.0 , l2_regularization_strength= 0.0 , use_locking= False , name= 'Ftrl' )
tf. train. RMSPropOptimizer( learning_rate, decay= 0.9 , momentum= 0.0 , epsilon= 1e - 10 , use_locking= False , name= 'RMSProp' )