神经网络中使用的激活函数的数学定义是什么?
到目前为止,我还没有找到一个精确的来总结需要哪些标准(例如单调性、可微性等)。关于这方面的文献或——甚至更好——定义本身的任何建议?
特别是,我不清楚的一个主要观点是可区分性。在很多文章中,这是激活函数所必需的,但随后突然使用了 ReLU(不可微分)。我完全理解为什么我们需要能够对它进行导数,我也理解为什么我们无论如何都可以在实践中使用 ReLU,但是如何将其形式化呢?
神经网络中使用的激活函数的数学定义是什么?
到目前为止,我还没有找到一个精确的来总结需要哪些标准(例如单调性、可微性等)。关于这方面的文献或——甚至更好——定义本身的任何建议?
特别是,我不清楚的一个主要观点是可区分性。在很多文章中,这是激活函数所必需的,但随后突然使用了 ReLU(不可微分)。我完全理解为什么我们需要能够对它进行导数,我也理解为什么我们无论如何都可以在实践中使用 ReLU,但是如何将其形式化呢?
对于神经网络的激活函数的适用性没有严格的定义。相反,有许多理想的特征,不满足它们或不够接近的功能通常可能表现不佳(但这些功能在特定情况下可能仍然有效)
如果您使用梯度下降作为训练方法,那么可微性最接近要求。然而,即使你在 ReLU 中注意到,它也不是绝对要求,只要接近不连续性的行为是好的。例如或者在这里做出错误的选择,因为它们的行为方式接近于.
维基百科总结了一些重要的理想特征,并在此表中比较了流行的激活函数。
非线性——当激活函数为非线性时,可以证明两层神经网络是通用函数逼近器。身份激活函数不满足此属性。当多个层使用身份激活函数时,整个网络相当于一个单层模型。
范围——当激活函数的范围有限时,基于梯度的训练方法往往更稳定,因为模式表示仅显着影响有限的权重。当范围是无限的时,训练通常更有效,因为模式表示会显着影响大部分权重。在后一种情况下,通常需要较小的学习率。
连续可微——这个属性是可取的(RELU 不是连续可微的,并且在基于梯度的优化方面存在一些问题,但仍然可能)用于启用基于梯度的优化方法。二元阶跃激活函数在 0 处不可微分,并且对于所有其他值都微分为 0,因此基于梯度的方法无法使用它。
单调——当激活函数是单调的时,与单层模型相关的误差面保证是凸的。
具有单调导数的平滑函数——这些已被证明在某些情况下可以更好地泛化。
近似原点附近的同一性——当激活函数具有此属性时,当使用小的随机值初始化其权重时,神经网络将有效地学习。当激活函数在原点附近不近似恒等时,初始化权重时必须特别小心。
你可以看到 ReLU 在不止一个这些特征上是异常值。它受欢迎的原因是,尽管存在这些弱点,但它做得很好 - 操作速度加上帮助解决梯度消失问题 - 使其成为非常深的网络的可靠选择。事实上,ReLU 的成功激发了许多看起来相似的激活函数的使用,这些激活函数希望在保持其优势的同时拥有更多这些理想的特征。
但最终,几乎任何非线性函数都可以成功地用于神经网络。它具有的理想特征越多,您就越有可能在现有训练方法的一般情况下使用它。