美文网首页
神经网络训练细节part2(上)

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

作者: 听城 | 来源:发表于2018-08-28 09:36 被阅读7次

回顾

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

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

参数更新

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)来降低学习率。

  • 指数衰减。公式为\alpha=\alpha_0 e^{-kt},t是迭代次数

  • 1/t衰减的数学公式是\alpha=\alpha_0/(1+kt)
    是超参数,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)

相关文章

  • 斯坦福cs231n学习笔记(10)------神经网络训练细节(

    神经网络训练细节系列笔记: 神经网络训练细节(激活函数) 神经网络训练细节(数据预处理、权重初始化) 神经网络训练...

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

    回顾 训练神经网络的过程有四步组成,重复这四个步骤就可以得到完整的训练流程 需要有一个完整的数据集图像和标签,从数...

  • 7. 神经网络训练细节part2

    这次课,小哥哥回来了,小姐姐走了一、 更好的优化 神经网络的训练,其实是一个优化的过程 假设在二维的情况下,我们只...

  • 神经网络训练细节part1(上)

    训练神经网络 神经网络的历史 1960年左右,弗兰克·罗森布拉特设计了感知机 1960年,威德罗和霍夫制造出了适应...

  • 神经网络的一些细节

    今天,写下一篇文章记录神经网络训练的一些细节 话说,我接触神经网络也没有多久,自己用java来实现了一个全连接的神...

  • 深度学习基础2

    Stochastic Gradient Descent 如何训练神经网络 训练神经网络就是调整权重。 这里介绍了损...

  • tensorflow教程(一)

    开始使用tensorflow 原文地址 训练首个神经网络:基本分类 对于初学者,即使不了细节也没关系,本次教程只是...

  • pytorch 入门 api

    张量操作 神经网络 训练图片分类器 多GPU训练 参考 张量神经网络训练图片分类器DataParallel多GPU示例

  • 神经网络模型+进阶

    PART I 神经网络模型 模拟数据 查看模拟数据 神经网络模型训练 可视化训练结果 神经网络模型结果评估 平均准...

  • AI数学基础36-从代码角度深入理解梯度下降法1

    要深入理解神经网络的技术细节,不能仅仅停留在会调用现成的神经网络函数库上,例如TensorFlow,Caffe.....

网友评论

      本文标题:神经网络训练细节part2(上)

      本文链接:https://www.haomeiwen.com/subject/knzxwftx.html