3.2梯度下降法(各类优化器实现与简介)-简单神经网络分类为例

本文介绍了TensorFlow 1.14.0中常见的优化器,包括梯度下降法、动量优化、NAG、Adagrad、RMSprop、Adadelta和Adam。通过简单的神经网络分类实例,阐述了各种优化器的工作原理和应用,帮助理解如何在实际训练中选择和使用优化器。
摘要由CSDN通过智能技术生成

整理不易,有条件的点个关注、点个赞呗!感恩各位大哥!

tensorflow简单介绍

tensor采用图运算的方式搭建并训练深度学习网络,该部分使用的库包版本为tensorflow==1.14.0

代码拆分(每个代码块可以放到一个jupyter的cell里)

tensorflow1.0中封装的各类常用优化器

在这里插入图片描述

简单梯度优化器

  • 标准梯度下降法
    计算所有样本汇总误差,然后更新权值
  • 随机梯度下降法
    随机抽取一个样本来计算误差,然后更新权值
  • 批量梯度下降法
    从总样本中选取一个批次(比如一共有10000个样本,随机选取其中的100个样本作为一个batch),然后计算这个batch的总误差,根据总误差来更新权值。
  • SGD(慢、无法逃离鞍点,但准确率说不准哪个会更好)
    W = W − η ∇ W J ( W ; x i ; y i ) (1) \bm{W=W-\eta\nabla_{W}J(W;x^{i};y^{i})}\tag{1} W=WηWJ(W;xi;yi)(1)
  • Momentum
    γ \bm\gamma γ: 动力,通常设置为0.9
    v t = γ \bm{v_{t}=\gamma} vt=γ v t − 1 + η ∇ W J ( W ) \bm{v_{t-1}+\eta\nabla_{W}J(W)} vt1+ηWJ(W)
    W = W − v t \bm{W=W-v_{t}} W=Wvt
  • NAG(Nesterov accelerated gradient)
    v t = γ v t − 1 + ∇ W J ( W − γ v t − 1 ) (2) \bm{v_{t}=\gamma v_{t-1}+\nabla_{W}J(W-\gamma v_{t-1})}\tag{2} vt=γvt1+WJ(Wγvt1)(2)
    W = W − v t (3) \bm{W=W-v_{t}}\tag{3} W=Wvt(3)
    NAG在TF跟Monmentum合并在同一函数tf.train.MomentumOptimizer中,可以通过参数配置启用。在Momentum中小球会盲目地跟从下坡的梯度,容易发生错误,所以我们需要一个更聪明的小球,这个小球提前知道它要去哪里,它还要知道走到坡底的时候速度慢下来而不是又冲上另一个坡。 γ v t − 1 \gamma v{t-1} γvt1会用来修改W的值,计算 W − γ v t − 1 W-\gamma v_{t-1} Wγvt1可以表示小球下一个位置大概在哪里。从而我们可以提前计算下一个位置的梯度,然后使用到当前位置。
  • Adagrad
    i i i: 代表第 i i i个分类
    t t t: 代表出现次数
    ε \varepsilon ε: 极小的数避免分母为零,取值一般为1e-8
    η \eta η: 取值一般为0.01
    g t , i = ∇ W J ( W i ) (4) \bm{g_{t,i}=\nabla_{W}J(W_{i})}\tag{4} gt,i=WJ(Wi)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值