True - ReLU предназначен для получения нулевого значения при отрицательных значениях. (Это может быть опасно при больших скоростях обучения, плохой инициализации или при очень небольшом количестве единиц - все нейроны могут застрять в нуле, и модель зависнет)
False - сигмоид приводит к нулю для очень негативные "входы", а не "негативные" Если ваши значения находятся в диапазоне от -3 до +3, вы увидите очень приятный результат в диапазоне от 0 до 1.
False - тот же комментарий, что и в Sigmoid. Если ваши входные значения находятся между -2 и 2, вы увидите хорошие результаты между -1 и 1.
Таким образом, проблема насыщения существует только для входов, чьи абсолютные значения слишком большой.
По определению, выходы:
- ReLU: 0
- Sigmoid: 0
- TanH: -1
Вы можете использовать слой BatchNormalization
перед этими активациями, чтобы избежать больших значения и избежать насыщения.
Для прогнозирования отрицательных выходных данных tanh
является единственным из трех, который способен сделать это.
Вы можете изобрести отрицательную сигмовидную кишку, хотя это довольно просто:
def neg_sigmoid(x):
return -keras.backend.sigmoid(x)
#use the layer:
Activation(neg_sigmoid)