Ответ 1
Sigmoid
в частности, используется в качестве функции стробирования для 3-х ворот (in, out, forget) в LSTM
, так как он выводит значение от 0 до 1, он может либо не пропускать поток, либо полный поток информации во всех воротах. С другой стороны, для преодоления проблемы исчезающего градиента нам нужна функция, вторая производная которой может выдержать на длинном расстоянии до того, как перейти к нулю. Tanh
- хорошая функция с указанным выше свойством.
Хорошая единица нейрона должна быть ограниченной, легко дифференцируемой, монотонной (хорошо для выпуклой оптимизации) и удобной в обращении. Если вы считаете эти качества, то я полагаю, что вы можете использовать ReLU
вместо функции Tanh
, поскольку они являются очень хорошими альтернативами друг друга. Но прежде чем делать выбор для функций активации, вы должны знать, каковы преимущества и недостатки вашего выбора над другими. Вкратце описываю некоторые функции активации и их преимущества.
сигмовидной
Математическое выражение: sigmoid(z) = 1 / (1 + exp(-z))
Производное 1-го порядка: sigmoid'(z) = -exp(-z) / 1 + exp(-z)^2
Преимущества:
(1) Sigmoid function has all the fundamental properties of a good activation function.
Tanh
Математическое выражение: tanh(z) = [exp(z) - exp(-z)] / [exp(z) + exp(-z)]
Производная 1-го порядка: tanh'(z) = 1 - ([exp(z) - exp(-z)] / [exp(z) + exp(-z)])^2 = 1 - tanh^2(z)
Преимущества:
(1) Often found to converge faster in practice
(2) Gradient computation is less expensive
Hard Tanh
Математическое выражение: hardtanh(z) = -1 if z < -1; z if -1 <= z <= 1; 1 if z > 1
Производное 1-го порядка: hardtanh'(z) = 1 if -1 <= z <= 1; 0 otherwise
Преимущества:
(1) Computationally cheaper than Tanh
(2) Saturate for magnitudes of z greater than 1
РЕЛУ
Математическое выражение: relu(z) = max(z, 0)
Производная 1-го порядка: relu'(z) = 1 if z > 0; 0 otherwise
Преимущества:
(1) Does not saturate even for large values of z
(2) Found much success in computer vision applications
Leaky ReLU
Математическое выражение: leaky(z) = max(z, k dot z) where 0 < k < 1
Производная 1-го порядка: relu'(z) = 1 if z > 0; k otherwise
Преимущества:
(1) Allows propagation of error for non-positive z which ReLU doesn't
Эта статья объясняет некоторые функции активации забавы. Вы можете считать, что прочитали его.