tensorflow2知识总结(杂)---2、Adam优化器
tensorflow2知识总结(杂)---2、Adam优化器
一、总结
一句话总结:
1、Adam算法可以看做是修正后的Momentum+RMSProp算法.
2、Adam通常被认为对超参数的选择相当鲁棒
3、学习率建议为0.001
1、反向传播算法?
每一层的导数都是后一层的导数与前一层输出之积,这正是链式法则的奇妙之处,误差反向传播算法利用的正是这一特点。
二、内容在总结中
博客对应课程的视频位置:
1、反向传播算法
反向传播算法是一种高效计算数据流图中梯度的技术
每一层的导数都是后一层的导数与前一层输出之积,这正是链式法则的奇妙之处,误差反向传播算法利用的正是这一特点。
前馈时,从输入开始,逐一计算每个隐含层的输出,直到输出层。
然后开始计算导数,并从输出层经各隐含层逐一反向传播。为了减少计算量,还需对所有已完成计算的元素进行复用。
这便是反向传播算法名称的由来。
2、常见的优化函数
优化器(optimizer)是编译模型的所需的两个参数之一。
你可以先实例化一个优化器对象,然后将它传入model.compile(),或者你可以通过名称来调用优化器。在后一种情况下,将使用优化器的默认参数。
SGD:随机梯度下降优化器
随机梯度下降优化器SGD和min-batch是同一个意思,抽取m个小批量(独立同分布)样本,通过计算他们平梯度均值。
RMSprop:经验上,RMSProp被证明有效且实用的深度学习网络优化算法.
RMSProp增加了一个衰减系数来控制历史信息的获取多少,RMSProp会对学习率进行衰减。
Adam优化器:
1、Adam算法可以看做是修正后的Momentum+RMSProp算法.
2、Adam通常被认为对超参数的选择相当鲁棒
3、学习率建议为0.001
Adam 是一种可以替代传统随机梯度下降过程的一阶优化算法,它能基于训练数据迭代地更新神经网络权重。
Adam 通过计算梯度的一阶矩估计和二阶矩估计而为不同的参数设计独立的自适应性学习率
3、tensorflow的输出层注意
如果输出层是一个连续的数字,就不进行其它操作,直接输出
如果输出层是一个二分类(是和否),可以对输出层做一个sigmoid操作,然后输出
如果输出层是一个多分类的输出,我们就可以对输出层做一个softmax输出
二分类:输出层是sigmoid
model.add(tf.keras.layers.Dense(1,activation='sigmoid'))
多分类:输出层是softmax时
model.add(tf.keras.layers.Dense(10,activation='softmax'))