Какова интуиция использования tanh в LSTM

В LSTM Network (Понимание LSTMs), зачем вводить ворота и выходные ворота использовать tanh? Какова интуиция за этим? это просто нелинейное преобразование? если это так, могу ли я изменить оба на другую функцию активации (например, ReLU)?

Ответы

Ответ 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

Эта статья объясняет некоторые функции активации забавы. Вы можете считать, что прочитали его.

Ответ 2

LSTM управляют внутренним вектором состояния, значения которого должны увеличиваться или уменьшаться, когда мы добавляем выходные данные какой-либо функции. Сигмоидальный выход всегда неотрицателен; значения в государстве будут только увеличиваться. Вывод из tanh может быть положительным или отрицательным, что позволяет увеличивать и уменьшать состояние.

Именно поэтому tanh используется для определения значений кандидатов для добавления во внутреннее состояние. У двоюродного брата ГРУ из LSTM нет второго танха, поэтому в некотором смысле второй не нужен. Проверьте диаграммы и объяснения в Крис Олах Понимание сетей LSTM для получения дополнительной информации.

Соответствующий вопрос: "Почему сигмоиды используются в LSTM там, где они есть?" ответ также основан на возможных выходных данных функции: "стробирование" достигается путем умножения на число от нуля до единицы и на то, что выводят сигмоиды.

Нет действительно значимых различий между производными сигмоида и танха; tanh - это просто измененная и измененная сигмовидная кишка: см. Ричард Сошер Нейронные советы и хитрости. Если вторые производные актуальны, я хотел бы знать, как.