machine-learning - 从图形上看,非线性激活函数如何将输入投影到分类空间上?

标签 machine-learning neural-network classification

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

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

我尝试寻找大量来源,但究竟是什么使激活函数真正适用于对神经网络中的训练样本进行分类,我只是无法轻松掌握,并且希望能够在脑海中描绘出这一点。

最佳答案

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

Piece-wise linear approximation

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

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

enter image description here

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

关于machine-learning - 从图形上看,非线性激活函数如何将输入投影到分类空间上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26454357/

相关文章:

python - ValueError : Dimensions must be equal, 但对于 '{{node mean_squared_error/SquaredDifference}} = SquaredDifference[T=DT_FLOAT] 是 68 和 10

machine-learning - 如何编写程序来查找某些单词是否相似?

algorithm - 大量小数据集的关联挖掘

python - 如何在 Keras 中使用 deconv2d 获得与原始输入大小相同的层?

python - 基于出现频率的SVM分类

machine-learning - SVM 硬边距 : why imbalanced dataset may cause bad results?

python - 什么定义了 tf.layers.conv2d_transpose 的输出张量形状?

artificial-intelligence - Delphi/Pascal 中的 TD(λ)(时间差分学习)

machine-learning - 为什么使用受限玻尔兹曼机而不是多层感知器?

machine-learning - scikit-learn 在另一个特征的标称值组内估算特征的平均值