ReLU 究竟如何逼近非线性和曲线函数?

人工智能 神经网络 机器学习 激活函数 雷路
2021-11-02 21:45:01

目前,最常用的激活函数是 ReLUs。所以我回答了这个问题,神经网络中激活函数的目的是什么?而且,在写下答案的时候,让我震惊的是,ReLU 究竟是如何逼近非线性函数的?

通过纯粹的数学定义,当然,由于急剧弯曲,它是一个非线性函数,但是,如果我们将自己限制在正或负部分x-仅轴,然后在这些区域中是线性的。假设我们把整个x-axis 也是,那么它也有点线性(不是严格的数学意义上的),因为它不能令人满意地逼近曲线函数,如正弦波(090) 通过 sigmoid 激活函数具有单节点隐藏层。

那么,在神经网络中使用 ReLU 并提供令人满意的性能这一事实背后的直觉是什么?非线性函数,比如 sigmoid 和 tanh,有时会被扔在 NN 的中间吗?

不是在问 ReLU 的目的,即使它们是线性的。


根据@Eka 的评论,ReLu 的能力来自于 NN 深层的不连续性。这是否意味着 ReLU 是好的,只要我们在深度神经网络而不是浅神经网络中使用它?

1个回答

ReLU 网络的输出总是“线性”和不连续的。它们可以逼近曲线,但可能需要很多 ReLU 单元。但是,与此同时,它们的输出通常会被解释为连续的、弯曲的输出。

想象一下,你训练了一个神经网络x3和输出|x3|(类似于抛物线)。这对于 ReLU 函数来说很容易做到完美。在这种情况下,输出是弯曲的。

但它实际上不是弯曲的。这里的输入与输出“线性”相关。神经网络所做的只是接受输入并返回输入的绝对值。它执行“线性”、非弯曲功能。仅当您根据原始图形绘制输出时,您才能看到输出是非线性的x-值(xx3)。

因此,当我们在图表上绘制输出并且它看起来是弯曲的时,通常是因为我们将不同的 x 值与输入相关联,然后将输出绘制为y- 与那些相关的坐标x-价值观。

好的,所以你想知道如何平滑建模sin(x)使用 ReLU。诀窍是你不想放x作为输入。而是把一些弯曲的东西放在x作为输入,比如x3. 所以,输入是x3输出是sin(x). 这会起作用的原因是它不是在计算输入的正弦 - 它是在计算输入的立方根的正弦。它永远无法平滑地计算输入本身的正弦值。绘制输出图sin(x),把原来的x作为x坐标(不要输入)并将输出作为y协调。