【用語解説】tanh関数(双曲線正接関数)とは?

機械学習で欠かせないtanh関数。 tanh関数とは?数学的な定義から、ニューラルネットワークにおける役割、ReLU関数との比較までを網羅。生成AI開発の基礎知識として。 AI_活用術
この記事は約3分で読めます。

tanh関数とは、ニューラルネットワークの活性化関数としてよく使われる数学の関数です。
この関数は、データをある範囲に収めたり、ネットワークの学習を効率的にしたりする役割を果たします。
ここでは、tanh関数がニューラルネットワークでどのように使われるのか、その特徴やメリット・デメリットについて解説いたします。

tanh関数の概要

1. 数学的定義

tanh関数は、双曲線正接関数Hyperbolic Tangent Functionの略で、以下のように定義されます。

これは、指数関数(exponential functions)を使って表現されますが、視覚的にはシグモイド関数に似たS字型の曲線を持ちます。

2. tanh関数の特徴

tanh関数の出力は、常に -1 から 1 の間の値を取ります。これが、ニューラルネットワークにおいて特に重要な理由の1つです。
シグモイド関数と比較してみましょう。

  • シグモイド関数0 から 1 の間の出力
  • tanh関数-1 から 1 の間の出力

この違いにより、tanh関数はゼロを中心に対称であり、正負の値を扱うタスクで有効です。

tanh関数の役割

tanh関数は、主にニューラルネットワークの活性化関数として使用されます。
活性化関数は、入力されたデータを次の層に渡す前に、その出力を非線形な形に変換するために使われます。
この非線形性が、ニューラルネットワークの複雑なパターン認識能力を高める要因となります。

  • 非線形性tanh関数を使うことで、ネットワークが線形ではない複雑な関係を学習できるようになります。
  • ゼロ中心tanh関数は、出力がゼロを中心に分布するため、学習がより安定しやすくなります。
    これは、勾配消失問題(後述)を軽減するためのメリットとなります。

tanh関数の長所と短所

1. 長所

  • 非線形変換:ニューラルネットワークに複雑な学習能力を持たせます。
  • ゼロ中心の出力:学習を安定させる要因となります。

2. 短所

  • 勾配消失問題tanh関数は、入力が大きな値になると、勾配が非常に小さくなります。
    これにより、バックプロパゲーション(誤差逆伝播法)の際に、重みがうまく更新されない「勾配消失問題」が発生しやすくなります。
  • ReLU関数の台頭:最近では、tanh関数に代わりReLU(Rectified Linear Unit)関数がよく使用されます。ReLU関数は勾配消失問題に強く、特に深層学習において高い性能を発揮します。

実際の使用例

1. ニューラルネットワークにおけるtanh関数

tanh関数は、畳み込みニューラルネットワーク(CNN)リカレントニューラルネットワーク(RNN)などの構造に使用されます。
特にRNNでは、時系列データの処理や自然言語処理でその力を発揮します。
チャットボットや翻訳システムなどの生成AI技術の背後には、tanh関数を活用したアルゴリズムが組み込まれています。

2. 勾配消失問題への対策

tanh関数を使う際には、勾配消失問題を防ぐために、ネットワークの設計や他のテクニック(例えば、バッチ正規化など)を取り入れることが求められます。

まとめ

tanh関数は、生成AIや機械学習の重要な要素であり、ニューラルネットワークの非線形性を高め、複雑なデータパターンを学習するのに役立ちます。

しかし、勾配消失問題といった課題もあり、ReLU関数など他の活性化関数と使い分けることが重要です。

生成AIや機械学習の成長とともに、tanh関数の役割も進化しています。

引き続き、このような数理モデルを理解し、AI技術の未来を形作っていくことが大切です。