Tensorflow2.1基础知识---神经网络参数优化器
- 什么是优化器?
优化器,就是神经网络进行反向传播的时候,用于更新参数的策略,也就是梯度下降的算法。 - 优化器更新参数的步骤(4步):
a. 计算t时刻损失函数关于当前参数的梯度:g_t= ∆loss= ∂loss/(∂(w_t))
b. 计算t时刻一阶动量m_t 和二阶动量V_t (一阶动量:与梯度相关的函数 二阶动量:与梯度平方相关的函数)
c. 计算t时刻下降梯度:μ_t=lr∗ m_t⁄√(V_t )
d. 计算t+1时刻参数:w_(t+1)= w_t− μ_t= w_t−lr∗ m_t⁄√(V_t ) - 优化器的种类(不同优化器就是一阶动量和二阶动量的定义不同):
a. SGD(Stochastic Gradient Descent)(无momentum)最常用的梯度下降算法
b. SGDM(含momentum的SGD),在SGD基础上增加一阶动量
c. Adagrad,在SGD的基础上增加二阶动量
d. RMSProp,在SGD的基础上增加二阶动量
e. Adam,结合了SGDM一阶动量和RMSProp二阶动量 - 不同优化器的对比比较(比较的结果是对鸢尾花分类基础上分类利用不同的优化器得到的结果)
下面的是笔者的微信公众号,欢迎关注,会持续更新c++、python、tensorflow、机器学习、深度学习等系列文章