一、学习与纯优化的区别:
在机器学习问题中,为了优化某性能度量P,一般通过降低代价函数J(θ)来间接提高P;但纯优化是最小化目标J本身。
(1)经验风险最小化
“经验”是指在最小化训练误差时计算误差是用的训练集数据。
经验风险最小化容易导致过拟合,在deeplearing中很少使用。
(2)代理损失函数
是指损失函数很难优化求解时,将其进行一定的转化,用代理损失函数代替。
为了防止过拟合,通常会设置一定的收敛条件,让损失函数提前终止,因此训练停止时损失函数可能还有较大的导数,但纯优化终止时导数很小。
(3)批量/小批量(随机)算法
批量(batch)梯度算法:是指使用整个训练集的优化算法
小批量(mini-batch)随机梯度算法:指用训练集的一部分进行优化的算法。。。。在使用小批量梯度算法时随机抽取数据很重要。
二、神经网络优化中的挑战
(1)病态
是指随机梯度下降会卡在某个点,此时即使很小的更新步长也会增加代价函数。。
此问题在数值优化、凸优化中容易出现,牛顿法是解决该问题的方法之一。
(2)局部极小值
a.在凸优化问题中,它的底部有可能是一个平坦的区域,而不是单一的全局最小点,该区域的任何一个点都是可行解。
b.在非凸函数中,例如神经网络,可能会存在多个局部极小值。。
神经网络具有权重空间对称性等问题导致的不可辨认性,所以很多局部极小值可能有相同的代价函数值,并且相比全局最小值拥有较大的代价。
(3)鞍点
鞍点附近的部分点比鞍点有更大代价,其他点有更小代价。
在低维空间,局部极小点很普遍;在高维空间,局部极小值罕见,但鞍点很常见。
(4)悬崖和梯度爆炸
多层神经网络存在斜率很大的区域。 在RNN中比较常见。
造成悬崖的原因是几个较大的权重相乘。
解决办法:悬崖截断 - 传统的梯度下降算法提议更新很大一步时,梯度截断会干涉来减小步长,从而使其不太可能走出悬崖区域。
(5)长期依赖:
是指由于变深的结构使模型丧失了学习到先前信息的能力,让优化变得极其困难,更多出现在RNN。
在机器学习问题中,为了优化某性能度量P,一般通过降低代价函数J(θ)来间接提高P;但纯优化是最小化目标J本身。
(1)经验风险最小化
“经验”是指在最小化训练误差时计算误差是用的训练集数据。
经验风险最小化容易导致过拟合,在deeplearing中很少使用。
(2)代理损失函数
是指损失函数很难优化求解时,将其进行一定的转化,用代理损失函数代替。
为了防止过拟合,通常会设置一定的收敛条件,让损失函数提前终止,因此训练停止时损失函数可能还有较大的导数,但纯优化终止时导数很小。
(3)批量/小批量(随机)算法
批量(batch)梯度算法:是指使用整个训练集的优化算法
小批量(mini-batch)随机梯度算法:指用训练集的一部分进行优化的算法。。。。在使用小批量梯度算法时随机抽取数据很重要。
二、神经网络优化中的挑战
(1)病态
是指随机梯度下降会卡在某个点,此时即使很小的更新步长也会增加代价函数。。
此问题在数值优化、凸优化中容易出现,牛顿法是解决该问题的方法之一。
(2)局部极小值
a.在凸优化问题中,它的底部有可能是一个平坦的区域,而不是单一的全局最小点,该区域的任何一个点都是可行解。
b.在非凸函数中,例如神经网络,可能会存在多个局部极小值。。
神经网络具有权重空间对称性等问题导致的不可辨认性,所以很多局部极小值可能有相同的代价函数值,并且相比全局最小值拥有较大的代价。
(3)鞍点
鞍点附近的部分点比鞍点有更大代价,其他点有更小代价。
在低维空间,局部极小点很普遍;在高维空间,局部极小值罕见,但鞍点很常见。
(4)悬崖和梯度爆炸
多层神经网络存在斜率很大的区域。 在RNN中比较常见。
造成悬崖的原因是几个较大的权重相乘。
解决办法:悬崖截断 - 传统的梯度下降算法提议更新很大一步时,梯度截断会干涉来减小步长,从而使其不太可能走出悬崖区域。
(5)长期依赖:
是指由于变深的结构使模型丧失了学习到先前信息的能力,让优化变得极其困难,更多出现在RNN。