【问题标题】:Graphically, how does the non-linear activation function project the input onto the classification space?从图形上看,非线性激活函数如何将输入投影到分类空间上?
【发布时间】:2014-12-14 18:27:09
【问题描述】:

我发现很难想象激活函数实际上是如何对非线性可分训练数据集进行分类的。

为什么激活函数(例如 tanh 函数)适用于非线性情况?当激活函数将输入投射到输出时,数学上究竟发生了什么?不同类别的训练样本有什么区别?如果必须以图形方式绘制此过程,这将如何工作?

我已经尝试寻找许多来源,但究竟是什么让激活函数真正适用于对神经网络中的训练样本进行分类,我无法轻易掌握并希望能够在脑海中想象这一点。

【问题讨论】:

标签: machine-learning neural-network classification


【解决方案1】:

神经网络背后的数学结果是Universal Approximation Theorem。基本上,sigmoidal 函数(两端饱和的函数,如 tanh)是平滑的几乎分段常数逼近器。你拥有的神经元越多——你的近似值就越好。

这张照片取自这篇文章:A visual proof that neural nets can compute any function。请务必查看该文章,它还有其他示例和交互式小程序。

NN 实际上,在每个级别,都通过扭曲输入空间来创建新特征。非线性函数允许您更改目标函数的“曲率”,因此进一步的层有机会使其线性可分。如果没有非线性函数,任何线性函数的组合仍然是线性的,因此没有多层性的好处。作为图形示例,请考虑 这个动画

此图片取自this 文章。另请查看that酷可视化小程序。

【讨论】:

    【解决方案2】:

    激活函数与分类非线性可分数据集几乎没有关系。

    激活函数被用作在神经网络中的每一步标准化信号的一种方式。它们通常具有无限域和有限范围。例如,Tanh 的域为 (-∞,∞),范围为 (-1,1)。 sigmoid 函数将同一个域映射到 (0,1)。

    您可以将此视为一种在给定神经层(也称为特征缩放)上强制所有学习特征相等的方法。由于事先不知道输入域,它不像常规特征缩放(用于线性回归)那么简单,因此必须使用激活函数。在反向传播过程中计算错误时,激活函数的影响得到了补偿。

    反向传播是将误差应用于神经网络的过程。您可以将其视为对导致正确分类的神经元的积极奖励和对导致错误分类的神经元的消极奖励。这种贡献通常被称为神经网络的梯度。梯度实际上是一个多变量导数。

    当反向传播误差时,每个神经元对梯度的贡献是激活函数在该神经元输入值处的导数。 Sigmoid 是一个特别有趣的函数,因为它的导数计算起来非常便宜。具体来说 s'(x) = 1 - s(x);它是这样设计的。

    这是一个示例图像(通过 google 图像搜索找到:神经网络分类),它演示了神经网络如何叠加在您的数据集之上:

    我希望这能让您对神经网络如何对非线性可分数据集进行分类有一个相对清晰的认识。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-24
      • 2011-07-16
      • 2021-03-19
      • 2021-09-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多