MLP 输出的几何解释

数据挖掘 分类 感知器 毫升
2022-02-04 21:12:22

我对感知器输出的几何解释非常感兴趣,主要是为了更好地理解网络真正在做什么,但我似乎找不到关于这个主题的太多信息。

我知道一个没有隐藏层的感知器可以看作是在两个类之间定义一个超平面,如果它们是线性可分的,它就可以正常工作。

然而,我发现更难理解多层感知器究竟做了什么,以及它如何对最初不是线性可分的输入进行分类。

我发现这个页面http://www.borgelt.net/doc/mlpd/mlpd.html说隐藏层可以解释为对输入进行坐标变换。我想阅读更多关于此的内容,但我在网上找不到太多内容,因此如果您能详细说明此内容或向我指出一些涵盖此内容的论文或书籍,我将不胜感激。

我也对这里出现的可视化感到困惑http://tiny.cc/2l7o7y,一个 3 个神经元隐藏层设法分离输入,这是非常有意义的,因为在 3 维空间中分离输入是微不足道的。然而,在这之后添加另外 2 个神经元层会在其中创建明显非线性的形状。我的猜测是它代表了在原始二维空间中创建的分离。是对的吗?如果不是,我们在这里看到了什么,究竟是什么?

2个回答

您可能想查看这篇关于神经网络、流形和拓扑的文章,以获得“MLP 输出的几何解释”。

以下是您可能最感兴趣的摘录:

神经网络中使用了多种不同类型的层。我们将讨论一个具体示例的 tanh 层。一个 tanh 层 tanh(Wx+b) tanh⁡(Wx+b) 包括:

1.“权重”矩阵W的线性变换

2.向量b的A平移

3. tanh的逐点应用。

这是他给出的几何描述的动画 gif: 在此处输入图像描述

在此动画的开头,您将看到直线是直线,并经过线性变换(权重乘以输入,Wx),直线移动但保持平行,原点也保持在 (0,0);这就是所有线性变换中发生的情况。

然后,您将看到由偏置向量b转换的变换。也就是说,你会看到所有的线在偏置向量b的方向上一起移动。在这种情况下,您将看到整个图片向下和向右移动。

最后,您将看到“内核技巧”,它以非线性方式将输入转换到下一层,导致漂亮的平行线扭曲。这种非线性扭曲允许神经网络解决非线性问题。也就是说,如果空间被扭曲,并且您试图分类的点在这种非线性变换下分开,那么就有可能在应该具有不同分类的点之间创建一个分离的超平面,从而允许神经网络区分你的班级。

希望这能让你对神经网络每一层发生的事情有一个几何解释。从那里,您可以在向网络添加越来越多的层时进行推断。

在上面显示的示例中,他使用 tanh 作为“内核技巧”,但也可以使用许多其他非线性函数(例如 Sigmoid、ReLU 等)

如果您觉得这个 gif 动画很难看懂,我强烈建议您查看3Blue1Brown 的线性代数本质系列,其中他有许多视频,其中包含对线性代数的直观解释和出色的几何动画。

如果您限制为重端函数,则输出是完全可解释的,请参阅此说明