relu 的决策边界是什么样的?

数据挖掘 神经网络 可视化 激活函数
2021-10-13 05:37:35

单个未激活的神经元只是其输入的线性组合。

将该神经元的输出按 0 设置阈值将创建一个超平面二元分离器,其参数可以学习。

如果我们还对输出进行 relu,然后才使用阈值,这个分隔符(决策边界)的形状是什么?

我一直认为它必须是非线性的,否则 NN 将无法工作,但如果之前的某些东西是正的,它会保持正的,如果它是负的或零,它会保持不变,所以 relu 实际上什么也没做决策边界,这对我来说毫无意义。

如果有人可以为我订购这个,我会很高兴。


作为后续行动,我想了解多级决策边界 - 例如在 2 级网络上。对于一个类似于 XOR 的数据集,在一个 2 层网络上,每层有 2 个神经元的边界会是什么样子?

2个回答

如果我们还对输出进行 relu,然后才使用阈值,这个分隔符(决策边界)的形状是什么?

对于单个神经元,实际上决策边界只是一个平面。

我一直认为它必须是非线性的,否则 NN 将无法工作......

单层神经网络没有表现出与多层网络相同的非线性,仅与激活函数一样多。(使用 sigmoid 激活,你只是在做逻辑回归。)

作为后续,我想了解多级决策边界......

通过多层,您可以获得将边界平面组合成多面体区域的能力。仅 ReLU 神经网络表示分段线性函数,具有有限多个多面体(即平边)片段。对于第一层中的每个神经元来说,这一点都很清楚。在随后的每一层中,你对这些函数进行线性组合,这也是一个函数;对其应用 ReLU 可以将每个区域一分为二,但结果仍然是这样的函数。(您可能也对这篇论文这篇说明性博客文章感兴趣。)

您可以在tensorflow 操场上看到其中的一些内容。在该链接的一个版本中,我获取了权重并将生成的函数放入 Wolfram|Alpha中。您可以看到每个第一层神经元的边界线如何显示为扭结,并且每个生成的区域都支持线性函数。然后在固定高度进行切片会为您提供足以对圆形数据集进行分类的六边形区域。增加每层的层数或神经元数可以让您将空间切割成更多区域。

然后,即使输出神经元应用 sigmoid,就像在您的 tensorflow 游乐场中一样,决策边界也只是具有所有线性边界的分段线性函数的水平集,它本身就是线性的。

这是一个关于 ReLU 激活神经元的决策边界的非常有趣的问题。

ReLU 是一个非线性函数,因为该函数因输入而异。

ReLU(x)={0,x0x,x>0

我们必须将线性层和 ReLU 层视为一系列矩阵乘法,应用于输入空间。

正如您所描述的,线性层是输入空间上的线性变换,因此决策边界应该是线性的。ReLU 是非线性变换,因此决策边界应该是非线性的。