优化算法--深度学习中的优化挑战

本章关注优化算法最小化目标函数方面性能而不是模型泛化误差3.1我们区分优化问题解析数值在深度学习中大多数目标函数都很复杂没有解析我们必须使用数值优化算法本章优化算法都属于此类别

深度学习优化在许多挑战其中令人烦恼局部极小值梯度消失

1 局部极小值

对于任何目标函数f(x)如果x对应f(x)小于x附近任意其他f(x)那么f(x)可能是局部极小值如果f(x)x整个目标函数最小值那么f(x)全局最小

给定函数

f(x) = x * cos(pi x)(-1.0 <= x <= 2.0)

我们可以近似函数局部极小值全局最小

x = torch.arange(-1.0, 2.0, 0.01)

d2l.plot(x, f(x), 'x', 'f(x)')

annotate('local minimum', (-0.3, -0.25), (-0.77, -1.0))

深度学习模型目标函数通常许多局部最优解优化问题数值接近局部最优随着目标函数梯度接近变为通过最终迭代获得数值可能使得目标函数局部最优而不是全局最优只有一定程度噪声可能使得参数跳出局部极小值事实这是小批量随机梯度下降有利特征之一在这种情况小批量梯度自然变化能够参数局部极小值跳出

2 鞍点

除了局部极小值鞍点梯度小时另一原因鞍点是指函数所有梯度消失但是既不是全局最小值也不是局部极小值任何位置考虑函数f(x) = x^3它的一阶二阶导数x = 0消失这时优化可能会停止尽管它不是最小值位置

x = torch.arange(-2.0, 2.0, 0.01)

d2l.plot(x, [x ** 3], 'x', f(x))

如下例所示较高维度鞍点甚至更加隐蔽考虑函数f(x,y) = x^2 - y^2它的鞍点(0,0)关于y极大值也是关于x极小值此外看起来像个马鞍这就鞍点这个名字由来

x, y = torch.meshgrid(torch.linspace(-1.0, 1.0, 101), torch.linspace(-1.0, 1.0, 101))

z = x**2 - y **2

ax = d2l.plt.figure().add_subplot(111, projection='3d')

  1. plot_wireframe(x, y, z, **{'rstride':10, 'cstride': 10})
  1. plot([0], [0], [0], 'rx')

ticks = [-1, 0, 1]

我们假设函数输入k向量输出标量因此墨塞矩阵将有k特征函数可能局部极小局部极大值或者函数梯度位置鞍点

函数梯度位置黑塞矩阵特征全部我们函数局部极小值

函数梯度位置黑塞矩阵特征全部负值我们函数局部极大值

函数梯度位置黑塞矩阵特征负值正值我们该函数一个鞍点

对于维度问题至少部分特征可能相当大使得鞍点局部极小值更有可能出现我们将11.2介绍凸性讨论这种情况一些例外简而言之函数墨塞函数特征永远部位函数遗憾大多数深度学习问题并不属于这一类尽管如此仍然研究优化算法一个很好工具

3 梯度小时

可能遇到隐蔽问题梯度消失回想一下我们4.1.2节中常用激活函数及其衍生函数例如假设我们最小化函数f(x) = tanh(x), 我们恰好x = 4开始我们所看到那样f梯度接近更具体的说f(x) = 1 - tanh^2(x), 因此f(4) = 0.0013因此我们进展之前优化将会停滞很长一段时间事实证明引入RelU激活函数之前训练深度学习模型相当棘手原因之一

x = torch.arange(-2.0, 5.0, 0.01)

d2l.plot(x, [torch.tanh(x)], 'x', 'f(x)')

annotate('vanishing gradient', (4,1), (2, 0.0))

正如我们所看到那样深度学习优化充满挑战有一系列强大算法表现良好即使初学者也是很容易使用不一定要找到最优解局部最优解近似也非常有用

最小化训练误差并不能保证我们找到最佳参数最小化泛化误差

优化问题可能许多局部极小值

一个问题可能有很多鞍点因为问题通常不是

梯度消失可能会导致优化停滞参数通常会有所帮助参数进行良好初始化可能是有益

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值