在基于梯度的优化中,作为损失函数的必要数学属性是什么?

人工智能 深度学习 目标函数 数学 优化 梯度下降
2021-11-06 18:55:10

损失函数用于训练神经网络。

我有兴趣了解损失函数参与梯度下降优化所必需的数学属性。

我知道一些可能的候选者可以决定一个函数是否可以是损失函数。他们包括

  1. 在每个点连续R
  2. 在每个点上都是可微的R

但是,我不确定这两个属性是否对于函数成为损失函数是必要的。

这两个属性是必需的吗?是否有任何其他数学属性是函数成为损失函数参与梯度下降优化所必需的?

请注意,此问题不要求损失函数的推荐属性。仅询问给定上下文中的强制属性。

1个回答

总结:损失需要是可区分的,但有一些警告。


我将介绍一些符号,我希望它是清楚的:如果不是,我很乐意澄清。

考虑一个带参数的神经网络θRd,通常是权重和偏差的向量。梯度下降算法寻找参数θmin最小化损失函数

L:RdR.


如果这看起来很抽象,假设f(x;θ)是神经网络和S={(xi,yi)}i=1n是训练集。在二元分类中,我们可以有损失函数

L(θ)=i=1n1{f(xi;θ)yi}
在哪里1是指示函数,它是1如果满足条件,否则为零。我认为损失函数是参数的函数,而不是固定的数据。


梯度下降由更新规则执行

θnθn1γL(θn1),
产生新参数θn这应该会产生较小的损失L(θn). 数量γ是熟悉的学习率

梯度下降规则需要梯度 L(θn1)被定义,所以损失函数必须是可微的。在大多数关于微积分或数学分析的文章中,你会发现如果一个函数在某一点上是可微的x,它也是连续的x. 显然,我们不可能在不知道梯度的情况下执行这个过程!

原则上,可微性足以运行梯度下降。也就是说,除非L是凸的,梯度下降不能保证收敛到全局最小化器。在实践中,神经网络损失函数无论如何都很少是凸的。

我省略了关于随机梯度下降的讨论,但它并没有改变对损失函数的要求。还有一些替代技术,例如用于不可微函数的近端梯度法。

我不得不提到的一个不幸的技术问题是,严格来说,如果你使用ReLU激活函数,神经网络函数f变得不可微分。我在这个答案中进一步讨论这个问题。在实践中,我们可以分配一个值并“假装”ReLU处处可微。