Rak*_*eek 5 neural-network deep-learning keras activation-function
这可能是一个非常基本/微不足道的问题。
对于负输入,
下面提到的是我的问题:
- 为什么上述所有激活函数都对负输入值饱和。
- 如果我们想预测负目标值,是否有任何激活函数。
谢谢你。
True - ReLU 旨在导致负值为零。(如果学习率较大、初始化不良或单元很少,这可能会很危险 - 所有神经元都可能陷入零并且模型冻结)
False - Sigmoid 对于“非常负”的输入结果为零,对于“负”输入则不然。如果您的输入介于 -3 和 +3 之间,您将看到介于 0 和 1 之间的非常令人愉快的结果。
False - 与 Sigmoid 的注释相同。如果您的输入介于 -2 和 2 之间,您将看到介于 -1 和 1 之间的良好结果。
因此,饱和问题仅存在于绝对值太大的输入中。
根据定义,输出为:
您可能希望在这些激活之前使用一个BatchNormalization层,以避免出现过大的值并避免饱和。
对于预测负输出,tanh这是三个中唯一能够做到这一点的。
不过,你可以发明一个负 sigmoid,这很简单:
def neg_sigmoid(x):
return -keras.backend.sigmoid(x)
#use the layer:
Activation(neg_sigmoid)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3878 次 |
| 最近记录: |