激活函数 vs If else 语句

数据挖掘 激活函数
2022-03-05 14:55:20

这个问题非常幼稚,我们大多数人可能都知道答案。我用谷歌搜索了它,但找不到满意的答案,所以在这里发布。有人可以在这个问题上说正确的话。

ReLU、Sigmoid 等激活函数通常像 if else 语句一样工作。例如,如果输入的值小于 0,则为 0,否则为相同的值(在 ReLU 的情况下为 max(0,a))等。所以问题是为什么不使用 else 语句?在多维数据的情况下,这些函数是计算密集度较低还是工作得更好?

支持 if else 语句的论点是,神经网络的编程也是用 python、C 等高级语言完成的。在这种情况下,是什么迫使使用这些激活函数而不是面向编程的 If Else 语法?

1个回答

激活函数一般不能用 if-else 语句来实现。

ReLU 是一个特别简单的激活函数,因此可以使用 if-else 块轻松实现。例如(在 Python 中):

def relu(x):
    return x if x > 0 else 0

但这有效,因为 ReLU 对于是线性的。x0

sigmoidal 激活函数呢?

逻辑曲线

这个函数没有类似于 ReLU 的 if/else 实现。事实上,这是一个不涉及 if/else 的单行代码:

def approximate_logistic(x):
    return 1 / (1 + 2.71828**-x)

许多其他激活函数也是如此,例如 Softplus、CELU、Tanh。

if/else 块根本不够强大,无法捕获我们可能想要使用的各种激活函数。