ハイパボリックタンジェント関数(Hyperbolic Tangent Function)

ハイパボリックタンジェント関数(Hyperbolic Tangent Function)は、数学における双曲線関数の一つであり、tanh(x)と表記されます。シグモイド関数と同様に、入力された実数値を一定の範囲に変換する関数であり、特にニューラルネットワークの活性化関数として利用されます。

入力値を-1から1の範囲に変換するS字曲線

ハイパボリックタンジェント関数は、入力値が大きいほど1に近づき、小さいほど-1に近づくという特徴を持ちます。シグモイド関数と似たS字状の曲線を描きますが、出力範囲が-1から1である点が異なります。この特性から、ニューラルネットワークにおける活性化関数として、特に隠れ層において有用です。

ハイパボリックタンジェント関数の数式と性質

ハイパボリックタンジェント関数は、以下の数式で表されます。

tanh(x) = (exp(x) - exp(-x)) / (exp(x) + exp(-x))

ここで、exp(x)は自然対数の底eのx乗を表します。

ハイパボリックタンジェント関数の主な性質は以下の通りです。

  • 出力範囲: -1から1までの実数値を出力します。
  • 単調増加: 入力値が増加すると、出力値も増加します。
  • 微分可能: 任意の入力値に対して微分可能です。
  • 原点対称: 原点に関して点対称な形状をしています。

ニューラルネットワークにおける活性化関数としての利用

ハイパボリックタンジェント関数は、ニューラルネットワークにおいて、シグモイド関数と同様に活性化関数として利用されます。特に、隠れ層において、入力信号を非線形変換し、次の層への出力信号を生成するために用いられます。シグモイド関数と比較して、出力範囲が-1から1であるため、活性化関数の出力が0付近に集中しにくく、学習の効率を高める効果があります。

シグモイド関数との比較と使い分け

ハイパボリックタンジェント関数とシグモイド関数は、どちらもS字状の曲線を描く活性化関数ですが、出力範囲が異なります。シグモイド関数は0から1の範囲、ハイパボリックタンジェント関数は-1から1の範囲です。

  • シグモイド関数: 出力が0から1の範囲であるため、確率の表現に適しています。出力層で二値分類の確率を出力する場合などに用いられます。
  • ハイパボリックタンジェント関数: 出力が-1から1の範囲であるため、活性化関数の出力が0付近に集中しにくく、学習の効率を高める効果があります。隠れ層の活性化関数として用いられることが多いです。

ハイパボリックタンジェント関数の課題と代替関数

ハイパボリックタンジェント関数は、シグモイド関数と同様に、入力値が大きすぎる、または小さすぎる場合に勾配消失問題が発生しやすいという課題があります。この課題を解決するために、ReLU(Rectified Linear Unit)関数など、他の活性化関数が利用されることもあります。

ハイパボリックタンジェント関数は、ニューラルネットワークにおいて有用な活性化関数の一つですが、利用する際にはその特性と課題を理解し、適切な場面で利用することが重要です。