Что такое функция tanh?
Гиперболический тангенс, обозначаемый \(\tanh(x)\), — это гладкая S-образная (сигмоидальная) функция, определённая для любого действительного числа \(x\). Она задаётся как отношение разности и суммы экспонент \(e^{x}\) и \(e^{-x}\). Её значения всегда строго лежат в интервале от -1 до 1, а сама функция является нечётной: \(\tanh(-x) = -\tanh(x)\). В машинном обучении tanh — популярная функция активации нейрона, поскольку она центрирована относительно нуля. Это часто помогает градиентным методам обучения сходиться быстрее, чем при использовании сигмоиды с диапазоном от 0 до 1.
Как пользоваться калькулятором
Введите любое действительное число \(x\), и калькулятор мгновенно вернёт значение \(\tanh(x)\) вместе с двумя дополнительными производными, которые пригодятся в математическом анализе, физике и при обратном распространении ошибки (back-propagation). Допускаются отрицательные числа, дробные значения и очень большие величины. При больших положительных \(x\) значение насыщается и стремится к +1, а при больших отрицательных \(x\) — к -1.
Разбор формулы
Базовое определение выглядит так: $$\tanh(x) = \frac{e^{x} - e^{-x}}{e^{x} + e^{-x}}$$ Знаменатель всегда не меньше 2, поэтому деления на ноль никогда не происходит. Первая производная выражается изящным тождеством $$f'(x) = 1 - \tanh^{2}(x)$$ которое также записывают как \(\operatorname{sech}^{2}(x)\). Повторное дифференцирование даёт вторую производную $$f''(x) = -2\,\tanh(x)\left(1 - \tanh^{2}(x)\right)$$ Для численной устойчивости при очень больших \(|x|\) внутри используется переформулировка через экспоненту от \((-2x)\), что позволяет избежать переполнения.
Пример расчёта (x = 0.5)
Подставляя \(e^{0.5} = 1.6487212707\) и \(e^{-0.5} = 0.6065306597\), получаем $$\tanh(0.5) = \frac{1.0421906110}{2.2552519304} = 0.4621171573$$ Первая производная равна $$1 - 0.4621171573^{2} = 0.7864477623$$ а вторая производная составляет $$-2 \times 0.4621171573 \times 0.7864477623 = -0.7269989018$$
Частые вопросы
Каков диапазон значений tanh? Открытый интервал (-1, 1): функция приближается к границам, но никогда их не достигает.
Чему равен \(\tanh(0)\)? Ровно 0, при этом \(f'(0) = 1\), а \(f''(0) = 0\).
Почему используют tanh, а не сигмоиду? Функция tanh центрирована относительно нуля (её значения симметричны вокруг 0), что может ускорить обучение нейронной сети, тогда как логистическая сигмоида выдаёт только положительные значения от 0 до 1.