【神经网络】优化器

优化器作用:求出让损失函数最小化的参数
1、Adam
关联所有样本的梯度,便于求解全局最优解,始终含有前面梯度的信息,把前面的梯度传到后面
优点:自动调节学习率, 速度快, 梯度传导

optimizer=tf.train.AdamOptimizer(learning_rate=0.001)#收敛速度快,可以动态调节梯度
实例:
 loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=output, labels=y))#交叉熵损失函数
 optimizer = tf.train.AdamOptimizer(learning_rate=0.0001).minimize(loss)#优化器


最常用的梯度下降是Adam,在训练的最后阶段用SGD,可以提升准确率
2、梯度下降SGD
批量梯度下降:用所有的样本更新参数,计算量大
随机梯度下降:每看一个数据更新参数,更准确,但是计算量大
小批量随机下降:按批来更新参数,前两者的折中
缺点:(1)训练速度慢(2)容易陷入局部最优

optimizer=tf.train.GradientDescentOptimizer(learning_rate).minimize(cost)
实例:
 loss = tf.reduce_mean(tf.nn.softmax_cross_entropy_with_logits(logits=output, labels=y))#交叉熵损失函数
 optimizer = tf.train.GradientDescentOptimizer(learning_rate=0.0001).minimize(loss)#优化器

3、注意
建议优化器使用Adam,可以自动调节学习率
4、更加详细的讲解
优化器有很多种,想深入学习可以根据下面的连接进行学习
https://www.cnblogs.com/guoyaohua/p/8542554.html
https://blog.csdn.net/weixin_40170902/article/details/80092628

你可能感兴趣的:(opencv,mysql,tensorflow,神经网络,优化器,深度学习)