神经网络与深度学习总结-第二周

本文介绍了在训练数据集中优化性能的关键技术,如动量法、自适应梯度算法(如Adam)、模型初始化(如Xavier),以及K折交叉验证和Dropout等技巧。动量法通过模拟铁球原理改善SGD的稳定性,而自适应梯度算法如Adam能动态调整学习速率。
摘要由CSDN通过智能技术生成

在训练数据集的过程中,我们常常需要使用一些方式使其性能优化。

常用的方法包括使用动量法,自适应梯度算法等等。

常用的技巧包括模型初始化,训练并测试数据(K折交叉验证)拟合等等。

模型初始化是通过简单的考虑,把所有权值在[-1,1]区间内按均值或高斯分布进行初始化。比如Xavier初始化:为了使得网络中信息更好的流动,每一层输出的方差应该尽量相等。因此需要实现下面的均匀分布:

再者是训练数据,验证数据和测试数据,通常三者的比例为70%,15%,15%或60%,20%和20%

当数据较为庞大时,训练和验证数据的比例可适当减少。

K折交叉验证:原始训练数据被分成K个不重叠的子集。然后执行K次模型训练和验证,每次在K-1个子集上进行训练,并在剩余的一个子集(在该轮中没有用于训练的子集)上进行验证,最后通过对K次实验的结果取平均里估计训练和验证误差。

还有一种技巧时暂退(Dropout):在整个训练过程的每一次迭代中,标准暂退法包括在计算下一层之前当前层中的一些节点置零。如下图所示:

动量法:

动量法一般用来解决SGD问题:病态曲率。

上图是一个损失函数轮廓示例,在进入以蓝色标记的山沟状之前随机开始,颜色表示损失函数在特定点处的值有多大,红色表示最大值,蓝色表示最小值,要达到最小值,需要穿过山沟,这个区域就是病态曲率。如果把原始的SGD想象成一个纸团在中立作用向下滚动,由于质量小收到山壁弹力的干扰大,导致来回震荡;或者在鞍点处因为质量小速度很快减为0,导致无法离开这块平地。动量方方法相当于把纸团换成了铁球,不容易受到外力的干扰,轨迹更加稳定;同时因为在鞍点出因为惯性的作用,更有可能离开平地。

动量法更新公式:

v_{t}=\alpha v _{t-1}-\epsilon g_{t}

\Delta \theta \leftarrow v_{t}

\theta _{t+1}\leftarrow \theta _{t}+\Delta \theta

自适应梯度算法:

Adaptive Gradient 自适应梯度

参数自适应变化是指具有较大偏导的参数相应有一个较大的学习率,而具有小偏导的参数则对于一个较小的学习率,每个参数的学习率回缩放各参数反比于其历史梯度平方值总和的平方根

Adam算法:加入了历史梯度平方的指数衰减平均(r),计算保留历史梯度的指数衰减平均,相当于动量。

该算法自适应调节学习速率,加速收敛。

  • 10
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值