1 定義と基本式
双曲線正接関数(tanh関数)は、双曲線関数の一種であり、実数全体を定義域とし、値域を開区間(-1, 1)とする連続かつ滑らかな関数である。主に微積分学や機械学習の分野で、非線形活性化関数として広く利用されている。tanh関数はシグモイド関数をスケーリング・平行移動した形で表され、入力値に対して対称なS字曲線を描くことが特徴である。微分可能であるため、勾配降下法による最適化が容易であり、特にニューラルネットワークの中間層の活性化関数として実用的な役割を果たしている。
1.1 指数関数による表現
tanh関数は指数関数を用いて以下のように定義される:
\[ \tanh(x) = \frac{e^{x} - e^{-x}}{e^{x} + e^{-x}} \]
この表現は数値計算上の実装で頻繁に用いられ、定義域全体で滑らかかつ微分可能である。
1.2 双曲線正弦・余弦との関係
双曲線正弦関数(sinh)と双曲線余弦関数(cosh)を用いると、tanhはこれらの比として定義される:
\[ \tanh(x) = \frac{\sinh(x)}{\cosh(x)} \]
ここで、\(\sinh(x) = \frac{e^{x} - e^{-x}}{2}\)、\(\cosh(x) = \frac{e^{x} + e^{-x}}{2}\)である。この関係により、双曲線関数の恒等式からtanhの性質を導出できる。
1.3 シグモイド関数との関係式
tanh関数はシグモイド関数 \(\sigma(x) = \frac{1}{1 + e^{-x}}\) と以下の変換で結ばれる:
\[ \tanh(x) = 2\sigma(2x) - 1 \]
逆に、シグモイド関数は \(\sigma(x) = \frac{1}{2} \tanh\left(\frac{x}{2}\right) + \frac{1}{2}\) と表現できる。この関係から、tanhはシグモイドを線形変換したものであり、値域が(-1, 1)と原点対称である点が異なる。
2 数学的性質
2.1 特異点と漸近線
tanh関数はすべての実数で定義され、特異点を持たない。\(x \to +\infty\) のとき \(\tanh(x) \to 1\)、\(x \to -\infty\) のとき \(\tanh(x) \to -1\) であり、水平漸近線 \(y = \pm 1\) を持つ。
2.2 対称性と値域
tanh関数は奇関数であり、\(\tanh(-x) = -\tanh(x)\) を満たす。値域は開区間(-1, 1)であり、原点でゼロを通る。
2.3 微分と積分
2.3.1 導関数の性質
tanh関数の導関数は以下のように表される:
\[ \frac{d}{dx} \tanh(x) = \text{sech}^2(x) = 1 - \tanh^2(x) \]
ここで \(\text{sech}(x) = \frac{1}{\cosh(x)}\) である。この導関数は常に正であり、\(x=0\) で最大値1を取る。また、導関数自体も滑らかで、勾配降下法に適した性質を持つ。
2.3.2 不定積分の表式
tanh関数の不定積分は以下の通り:
\[
| \int \tanh(x) \, dx = \ln | \cosh(x) | + C |
|---|
\]
この積分は双曲線余弦関数の対数として簡潔に表現される。
2.4 テイラー展開と近似式
tanh関数の原点周りのテイラー展開は次の級数で与えられる:
\[ \tanh(x) = x - \frac{x^3}{3} + \frac{2x^5}{15} - \frac{17x^7}{315} + O(x^9) \]
| この展開は \( | x | < \pi/2\) で収束し、小さい \(x\) に対して線形近似 \(\tanh(x) \approx x\) が成り立つ。 |
|---|
2.5 微分方程式における役割
tanh関数はリカッチ型微分方程式 \(y' = 1 - y^2\) の解として現れる。また、非線形波動方程式やソリトン理論において、双曲線正接関数は進行波解の一部として重要な役割を果たす。
3 グラフの特徴
3.1 形状と変曲点
tanh関数のグラフは原点を通るS字曲線(シグモイド曲線)であり、原点が唯一の変曲点である。この点で曲率の符号が変化し、導関数は最大値1を取る。曲線は原点対称であり、漸近線に向かって単調に増加する。
3.2 スケーリング・平行移動による変換
tanh関数はスケーリングと平行移動により一般化できる。例えば、\(\tanh(k(x - x_0))\) とすると、\(k\) で傾きの急峻さを調整し、\(x_0\) で水平方向のシフトが可能である。この性質は機械学習の活性化関数や制御工学の入出力特性のモデリングに活用される。
4 応用分野
4.1 機械学習・深層学習
4.1.1 活性化関数としての利用
tanh関数はニューラルネットワークの中間層で広く用いられる活性化関数である。出力が-1から1の範囲に収まり、ゼロ中心であるため、勾配の更新が効率的に行える。特に多層パーセプトロンやリカレントニューラルネットワーク(LSTMなど)のゲート機構において標準的に使用される。
4.1.2 勾配消失問題への影響
tanh関数の導関数は最大値1であり、入力が大きくなるにつれて0に近づく。このため、深いネットワークでは勾配消失問題が発生し得る。しかし、シグモイド関数に比べて出力がゼロ中心であるため、ある程度は問題を緩和する。近年ではReLU系の活性化関数に取って代わられることも多いが、特定のタスクでは依然として有効である。
4.2 信号処理・制御工学
信号処理において、tanh関数はソフトリミッター(非線形増幅器)のモデルとして用いられる。制御工学では、飽和特性を持つアクチュエータやセンサの入出力特性を近似するために利用される。また、適応フィルタやニューラルネットワーク制御の非線形要素としても応用される。
4.3 統計学・確率分布
統計学では、tanh関数はロジスティック分布と関連して現れる。特に、一般化線形モデルにおけるリンク関数として、またベイズ推定の変分推論で用いられる確率分布の変換に利用される。さらに、確率ニューラルネットワークの活性化関数としても登場する。
4.4 物理学・工学における解析的利用
物理学では、tanh関数は相転移や界面のプロファイルを記述する際に現れる。例えば、磁化の温度依存性や、流体力学における速度分布の境界層モデルに用いられる。工学では、熱伝導や拡散方程式の解析解において、tanh関数が境界条件を満たす解としてしばしば登場する。
5 他の活性化関数との比較
5.1 tanh vs シグモイド関数
シグモイド関数は値域が(0, 1)で非ゼロ中心であるのに対し、tanhは(-1, 1)でゼロ中心である。このため、tanhは勾配の更新方向が偏りにくく、収束が速くなる傾向がある。ただし、両者とも飽和領域で勾配が小さくなり、勾配消失問題を引き起こす点は共通する。
5.2 tanh vs ReLU
ReLU(Rectified Linear Unit)は \(f(x) = \max(0, x)\) で定義され、正の領域で線形、負の領域でゼロとなる。tanhに比べて計算が簡単で、勾配消失問題が起こりにくい。一方、tanhは負の出力も持ち、ゼロ中心であるため、特定のモデル(特にRNN)では安定した学習が可能である。ReLUは負の入力でニューロンが死滅する問題(dying ReLU)があるが、tanhにはその懸念はない。
5.3 tanh vs ハイパボリックタンジェントの派生型
| tanhの派生型として、scaled tanh(例:\(\tanh(ax)\))や、softsign関数(\(x/(1+ | x | )\))などがある。scaled tanhは係数 \(a\) で傾きを調整し、勾配の制御が可能である。softsignはtanhに似たS字形状だが、より緩やかな飽和特性を持ち、勾配消失がやや抑制される。これらの派生型は、タスクに応じてtanhの特性を改良するために用いられる。 |
|---|
6 数値計算上の注意点
6.1 オーバーフロー対策
指数関数の計算において、\(x\) が大きい場合に \(e^x\) がオーバーフローする可能性がある。この対策として、以下のように場合分けする実装が行われる:
\[ \tanh(x) = \begin{cases} 1 & x > \text{threshold} \\ -1 & x < -\text{threshold} \\ \frac{e^{x} - e^{-x}}{e^{x} + e^{-x}} & \text{otherwise} \end{cases} \]
閾値は例えば \(\text{threshold} = 20\) 程度に設定される。また、式を \(\tanh(x) = 1 - \frac{2}{e^{2x}+1}\) と変形して計算する方法もオーバーフローを回避できる。
6.2 高速実装の手法
tanh関数の高速実装には、テイラー近似やパデ近似、ルックアップテーブルが用いられる。特に、低精度で十分な機械学習の推論では、近似式や量子化による高速化が行われる。また、GPUでは組み込み関数が最適化されており、ハードウェア命令として実装されることもある。
7 関連する双曲線関数との相互変換
7.1 sinh, coshとの関係
前述の通り、\(\tanh(x) = \frac{\sinh(x)}{\cosh(x)}\) である。また、\(\sinh(x)\) と \(\cosh(x)\) は \(\tanh(x)\) を用いて次のように表せる:
\[ \sinh(x) = \frac{\tanh(x)}{\sqrt{1 - \tanh^2(x)}}, \quad \cosh(x) = \frac{1}{\sqrt{1 - \tanh^2(x)}} \]
これらの関係は、双曲線関数の恒等式 \(\cosh^2(x) - \sinh^2(x) = 1\) から導かれる。
7.2 逆双曲線正接関数(artanh)
逆双曲線正接関数は \(\operatorname{artanh}(x)\) または \(\tanh^{-1}(x)\) と表記され、定義域は (-1, 1) である。その定義は、
\[ \operatorname{artanh}(x) = \frac{1}{2} \ln\left(\frac{1+x}{1-x}\right) \]
であり、tanh関数の逆関数として、確率分布の変換や積分計算に利用される。