【问题标题】: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
【解决方案2】:
激活函数与分类非线性可分数据集几乎没有关系。
激活函数被用作在神经网络中的每一步标准化信号的一种方式。它们通常具有无限域和有限范围。例如,Tanh 的域为 (-∞,∞),范围为 (-1,1)。 sigmoid 函数将同一个域映射到 (0,1)。
您可以将此视为一种在给定神经层(也称为特征缩放)上强制所有学习特征相等的方法。由于事先不知道输入域,它不像常规特征缩放(用于线性回归)那么简单,因此必须使用激活函数。在反向传播过程中计算错误时,激活函数的影响得到了补偿。
反向传播是将误差应用于神经网络的过程。您可以将其视为对导致正确分类的神经元的积极奖励和对导致错误分类的神经元的消极奖励。这种贡献通常被称为神经网络的梯度。梯度实际上是一个多变量导数。
当反向传播误差时,每个神经元对梯度的贡献是激活函数在该神经元输入值处的导数。 Sigmoid 是一个特别有趣的函数,因为它的导数计算起来非常便宜。具体来说 s'(x) = 1 - s(x);它是这样设计的。
这是一个示例图像(通过 google 图像搜索找到:神经网络分类),它演示了神经网络如何叠加在您的数据集之上:
我希望这能让您对神经网络如何对非线性可分数据集进行分类有一个相对清晰的认识。