深度学习中的非凸损失函数很重要?

人工智能 深度学习
2021-10-26 21:08:58

我想使用深度学习根据一些数据来估计一个函数的值。然而,损失函数既不是凸的也不是凹的。我能知道它在深度学习中是否重要吗?当损失函数为凸时,训练深度网络是否与优化凸问题相同?如果有任何论文解决了这个问题,我将不胜感激。

1个回答

优化

在优化中,损失函数(有时称为误差函数)是一个函数,它在多个维度和一系列输入案例中聚合实际和理想行为状态之间的差异。在重入(强化)学习中,反馈标量或向量充当校正信号,可以替换或进一步聚合损失函数,并额外影响训练反向传播。

收敛

在任何这些架构中,包括没有 NN 组件但试图通过收敛于最佳静态或移动目标行为来适应的系统,都可以得出一个普遍性。随着目标状态的接近,如果每个增量估计的大小减小,成功收敛的概率就会增加。估计只不过是一个明智的猜测。

随着检测到的收敛值的提高而降低学习率是一种在实验中使用的策略,如果不是在生产中,但该策略在单独使用时有缺点。当目的地接近时,让损失函数减速是一种最佳实践。

生物学类比

类似性质的生物系统是人类对疼痛的主观体验。随着疼痛程度的下降,人脑对疼痛的关心程度降低,因此减少疼痛的措施会减少并最终消失。出于同样的原因,进化已被证明是有利的。

所涉及的数学

在神经网络中通过收敛来最大化一个未知函数被充分学习以表现良好的概率。术语梯度下降通常用于描述旨在收敛于以标记数据为特征的某些理想的迭代过程,网络中内置的概念或某些适应度信号。如果斜率随着在逐次逼近场景中接近最小值而减小,则收敛于至少一个局部最小值(可能是也可能不是全局最小值)的可能性要高得多。这是当d 2 E / d t 2为正时。

凸性的几何概念与线或曲面关于时间或其他一些向前进展度量的二阶导数的微积分概念相关。在逐次逼近中,衡量前进进度的自变量可以是时间、计算周期、训练样本的索引、迭代次数或这些的某种聚合。二阶导数是变化率。

如果变化率随着被认为是最佳行为的行为与实际当前行为之间的差异而降低,则收敛的可能性更大。换句话说,在对电路 (NN) 行为进行下一次调整时,风险之间的关系应接近于零,因为与最佳行为的接近度接近于零。(如果有人感觉到他们在那里工作的方式非常接近他们想要的状态,那么进行疯狂的猜测是没有意义的。)

一个易于可视化的类比

如果将橡胶球放入刚性圆锥体中,则需要时间才能达到底部的热力学静止状态。一个无损的球(被认为是不可能的)将永远弹跳。抛物面(像太阳反射器一样的二维抛物线)将与相同的橡胶球产生更快的收敛,因为每次反弹时球的能量(动能和势能的总和)都会下降。轨迹不会几乎一样多地或频繁地越过底部。这个类比并不完美,但它提供了一个没有图表的视觉图像。

如果您以目标理想两侧的二阶导数为负(相对于距离的凹损失函数)的方式汇总目标训练行为与当前训练中行为之间的差异,则收敛的可能性要小得多。在类比中,橡胶球很可能完全从喇叭形锥体中弹出来。一个无损的球最终总会弹出来。

一个更省事的类比是,这就像试图用棒球手套的背面接住棒球。

凹、凸或零二阶导数

无论是连续的还是离散的,凸函数收敛的频率要高得多,而且通常比凹函数需要更少的时间和计算资源。零的二阶导数在中间。对于这种零加速度情况,线性一词实际上是不正确的。正确的项是一阶多项式。

在许多情况下,域(输入)维度和输入案例序列上的平方和将表现良好。如果您将误差绝对值的平方根相加,则您的 NN 将很少收敛。

执行摘要

如果您找到一种方法以二阶导数大于零的方式汇总理想当前行为与实际当前行为之间的差异,则以下三件事更有可能是有利的。

  • 最终收敛的可靠性
  • 收敛速度
  • 重入(强化)学习情况下的响应时间
  • 节省计算周期
  • 减少内省的复杂性
  • 节省计算内存(RAM 或 SDD)
  • 保存持久性和归档所需的空间
  • 降低企业的项目成本