MCPで接続 →

計算を入力してください

公式

Show calculation steps (2)
  1. First Derivative

    First Derivative: tanh(x)関数(双曲線正接関数)計算ツール

    first derivative of tanh at x equals 1 minus tanh squared

  2. Second Derivative

    Second Derivative: tanh(x)関数(双曲線正接関数)計算ツール

    second derivative of tanh at x

広告

結果

tanh(x)
0.4621171573
無次元・値域 (-1, 1)
1次導関数 f'(x) = 1 - tanh(x)^2 0.786447733
2次導関数 f''(x) = -2 tanh(x) (1 - tanh(x)^2) -0.7268619814

tanh関数とは

双曲線正接関数(\(\tanh(x)\))は、すべての実数xに対して定義される、なめらかなS字型(シグモイド型)の関数です。指数関数 \(e^{x}\) と \(e^{-x}\) の差を和で割った比として定義されます。出力は常に -1 から 1 の間に厳密に収まり、\(\tanh(-x) = -\tanh(x)\) が成り立つ奇関数です。機械学習の分野では、tanhはニューロンの活性化関数として広く使われています。出力が0を中心に分布する(ゼロ中心)ため、0〜1の範囲を取るシグモイド関数よりも勾配法による学習が速く収束しやすいという利点があります。

x-y軸上のS字型tanh曲線、-1から+1の間に収まる
tanh関数はS字型の曲線で、任意の実数入力を(-1, 1)の範囲に写像します。

このツールの使い方

xに任意の実数を入力すると、\(\tanh(x)\)の値が瞬時に表示されます。あわせて、微分積分・物理・誤差逆伝播(バックプロパゲーション)で役立つ2種類の導関数も計算できます。負の数、小数、絶対値の非常に大きな値もそのまま入力可能です。xが大きな正の値のとき出力は +1 に、大きな負の値のとき -1 に飽和(漸近)します。

計算式の解説

基本となる定義式は $$\tanh(x) = \frac{e^{x} - e^{-x}}{e^{x} + e^{-x}}$$ です。分母は常に2以上になるため、ゼロ除算は決して起こりません。1次導関数は $$\frac{d}{dx}\tanh(x) = 1 - \tanh^{2}(x)$$ というシンプルな恒等式で表され、\(\operatorname{sech}^{2}(x)\) とも書けます。さらに微分すると、2次導関数は $$\frac{d^{2}}{dx^{2}}\tanh(x) = -2\,\tanh(x)\left(1 - \tanh^{2}(x)\right)$$ となります。|x|が非常に大きい場合の数値的な安定性を確保するため、内部ではオーバーフローを避けるために \(e^{-2x}\) を用いた変形式で計算しています。

広告
指数関数的な増加と減衰の曲線が組み合わさってtanhになる図
tanh(x)は指数関数e^xとe^-xから構成されます。

計算例(x = 0.5)

\(e^{0.5} = 1.6487212707\)、\(e^{-0.5} = 0.6065306597\) を用いると、$$\tanh(0.5) = \frac{1.0421906110}{2.2552519304} = 0.4621171573$$ となります。1次導関数は $$1 - 0.4621171573^{2} = 0.7864477623$$ 2次導関数は $$-2 \times 0.4621171573 \times 0.7864477623 = -0.7269989018$$ です。

よくある質問(FAQ)

tanhの値域は? 開区間 (-1, 1) です。両端の値に限りなく近づきますが、決して到達しません。

tanh(0) はいくつ? ちょうど 0 になります。このとき \(f'(0) = 1\)、\(f''(0) = 0\) です。

なぜシグモイドではなくtanhを使うの? tanhはゼロ中心(出力が0を軸に対称)であるため、ニューラルネットワークの学習を高速化できる場合があります。一方、ロジスティックシグモイドは0〜1の正の値しか出力しません。

最終更新: