AI-11. 优化算法
优化算法对于深度学习非常重要。一方面,训练复杂的深度学习模型可能需要数小时、几天甚至数周。优化算法的性能直接影响模型的训练效率。另一方面,了解不同优化算法的原则及其超参数的作用将使我们能够以有针对性的方式调整超参数,以提高深度学习模型的性能。
11.1. 优化和深度学习
对于深度学习问题,我们通常会先定义损失函数。一旦我们有了损失函数,我们就可以使用优化算法来尝试最小化损失。在优化中,损失函数通常被称为优化问题的目标函数。尽管优化提供了一种最大限度地减少深度学习损失函数的方法,但本质上,优化和深度学习的目标是根本不同的。前者主要关注的是最小化目标,后者则关注在给定有限数据量的情况下寻找合适的模型。
深度学习优化存在许多挑战。其中最令人烦恼的是局部最小值、鞍点和梯度消失。
局部最优:通过最终迭代获得的数值解可能仅使目标函数局部最优,而不是全局最优。只有一定程度的噪声可能会使参数跳出局部最小值。事实上,这是小批量随机梯度下降的有利特性之一。在这种情况下,小批量上梯度的自然变化能够将参数从局部极小值中跳出。
鞍点:鞍点(saddle point)是指函数的所有梯度都消失但既不是全局最小值也不是局部最小值的任何位置。
梯度消失:某些函数会出现梯度很小的情况,例如tanh(x)在x非常大时梯度非常小,
练习:
1考虑一个简单的MLP,它有一个隐藏层,比如,隐藏层中维度为d和一个输出。证明对于任何局部最小值,至少有!d!个等效方案。
2假设我们有一个对称随机矩阵M,其中条目Mij=Mji各自从某种概率分布pij中抽取。此外,假设pij(x)=pij(−x),即分布是对称的(详情请参见 (Wigner, 1958))。
证明特征值的分布也是对称的。也就是说,对于任何特征向量v,关联的特征值λ满足P(λ>0)=P(λ<0)的概率为P(λ>0)=P(λ<0)。为什么以上没有暗示P(λ>0)=0.5?
3假设你想在(真实的)鞍上平衡一个(真实的)球。为什么这很难?能利用这种效应来优化算法吗?
11.2. 凸性
凸 集(convex set)是凸性的基础。 简单地说,如果对于任何a,b∈X,连接a和b的线段也位于X中,则向量空间中的一个集合X是凸(convex)的。有了凸集可定义凸函数。
给定一个凸函数f,最有用的数学工具之一就是詹森不等式(Jensen’s inequality)。 它是凸性定义的一种推广:换句话说,凸函数的期望不小于期望的凸函数。
凸函数还有很多很好的性质和定理,便于我们进行优化。
练习:
1假设我们想要通过绘制集合内点之间的所有直线并检查这些直线是否包含来验证集合的凸性。i.证明只检查边界上的点是充分的。ii.证明只检查集合的顶点是充分的。
2用p-范数表示半径为:math:r的球,证明Bp[r]:={x|x∈Rd and ‖x‖p≤r},Bp[r]对于所有p≥1是凸的。
3已知凸函数f和g表明max(f,g)也是凸函数。证明min(f,g)是非凸的。
4证明Softmax函数的规范化是凸的,即f(x)=log∑iexp(xi)的凸性。
5证明线性子空间X={x|Wx=b}是凸集。
6证明在线性子空间b=0的情况下,对于矩阵M的投影ProjX可以写成MX。
7证明对于凸二次可微函数f,对于ξ∈[0,ϵ],我们可以写成f(x+ϵ)=f(x)+ϵf′(x)+12ϵ2f″(x+ξ)。
8给定一个凸集X和两个向量x和y证明了投影不会增加距离,即‖x−y‖≥‖ProjX(x)−ProjX(y)‖。