专栏首页杂七杂八神经网络训练细节part2(上)

神经网络训练细节part2(上)

回顾

训练神经网络的过程有四步组成,重复这四个步骤就可以得到完整的训练流程

  • 需要有一个完整的数据集图像和标签,从数据集中取出一小批样本
  • 通过网络做前向传播得到损失,考察分类效果
  • 然后通过反向传播来得到每一个权重的梯度
  • 这个梯度告诉我们如何去调整每一个权重,最终得到更好的分类结果

参数更新

SGD

在SGD(Stochastic gradient descent)中经常会遇到一个问题,就是梯度在某个方向非常小,在另一个方向有一个很大的速率,这样就会在一个方向进展很小,在另一个方向有很大变化,解决方法是动量更新(Momentum update)

#gradient descent update
x+= -learing_rate*dx
#momentum update
v = mu*v - learing_rate*dx#mu是一个系数[0,1],0.5,0.9
x+=v

学习率退火

在训练深度网络的时候,让学习率随着时间退火通常是有帮助的。可以这样理解:如果学习率很高,系统的动能就过大,参数向量就会无规律地跳动,不能够稳定到损失函数更深更窄的部分去。知道什么时候开始衰减学习率是有技巧的:慢慢减小它,可能在很长时间内只能是浪费计算资源地看着它混沌地跳动,实际进展很少。但如果快速地减少它,系统可能过快地失去能量,不能到达原本可以到达的最好位置。通常,实现学习率退火有3种方式:

  • 随步数衰减:每进行几个周期就根据一些因素降低学习率。典型的值是每过5个周期就将学习率减少一半,或者每20个周期减少到之前的0.1。这些数值的设定是严重依赖具体问题和模型的选择的。在实践中可能看见这么一种经验做法:使用一个固定的学习率来进行训练的同时观察验证集错误率,每当验证集错误率停止下降,就乘以一个常数(比如0.5)来降低学习率。
  • 指数衰减。公式为

,t是迭代次数

  • 1/t衰减的数学公式是

是超参数,t是迭代次数。

Adagrad

# 假设有梯度和参数向量x
cache += dx**2
x += - learning_rate * dx / (np.sqrt(cache) + eps)

RMSprop

cache =  decay_rate * cache + (1 - decay_rate) * dx**2
x += - learning_rate * dx / (np.sqrt(cache) + eps)

Adam

m = beta1*m + (1-beta1)*dx
v = beta2*v + (1-beta2)*(dx**2)
x += - learning_rate * m / (np.sqrt(v) + eps)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • selenium使用

    pip insatll selenium 由于如果需要使用selenium的话,需要为本机配置对应浏览器的驱动,下面以chomedriver为例,首先安装ch...

    听城
  • 机器学习分类

    机器学习通常分为四类 监督学习 无监督学习 半监督学习 强化学习 监督学习 监督学习是从标记的训练数据来推断一个功能的机器学习任务。在监督学习中,每个实例都是由...

    听城
  • Matlab中的括号()[]{}

    Matlab中经常会用到括号去引用某Array或者是cell的内容,但三者有什么具体区别呢? [ ] 中括号用来构建向量(Vectors)或者是矩阵(Ma...

    听城
  • Python人工智能鉴黄师的自我修养

    專 欄 ❈LucasX,Python中文社区专栏作者。 ❈ 前阵子在设计一个智能黄反识别的方案,查阅了已有Paper,结合自己的一点想法,现对不良图像的识别进...

    Python中文社区
  • 12.5 IVSAM文件

    1、虚拟存储存取方法 VSAM是 Virtual Storage Access Method的缩写。这种存取方法利用了操作系统的虚拟存储器的功能,给用户提供方便...

    C语言入门到精通
  • JavaScript数据结构04 - 链表

    前面我们学习了数组这种数据结构。数组(或者也可以称为列表)是一种非常简单的存储数据序列的数据结构。在这一节,我们要学习如何实现和使用链表这种动态的数据结构,这意...

    liuxuan
  • 漏洞告诉你:商家为什么都乐于提供免(diao)费(yu)WiFi?

    作为一名小微商户,每天我除了要为经营小店忙得焦头烂额,还要想方设法地寻求提升用户体验。于是,我用了号称“营销神器”的某商用WiFi系统...... 然后不可...

    FB客服
  • 8.26 VR圈大事件:奥巴马出演360度影片;HTC启动全球内容开发大赛;“时代”集团旗下杂志全面涉水VR 新闻

    VRPinea
  • 坦克大战游戏的设计

          这个坦克大战实现了我方坦克(玩家控制)以及敌方坦克(程序随机控制)的对战,当击毁所有敌方坦克之后玩家获胜,当我方坦克生命值被消耗完毕后失败。游戏中,...

    Enjoy233
  • 嵌套数组的合并,扁平化数组

    对于 [ [], [], [], ...] 数组里嵌套数组,有个需求:将里面的数组元素都放到外层数组,变成 , , , ...

    Krry

扫码关注云+社区

领取腾讯云代金券