AIを味方につける!深層学習で役立つ活性化関数tanhの正体と使い所

こんにちは。ゆうせいです。

みなさんは、AI(人工知能)がどうやって学習を進めているか考えたことはありますか?
人間の脳細胞が電気信号を受け取って、次の細胞へ情報を渡すかどうかを判断するように、AIの中にも情報の「関所」のような役割を果たす仕組みが存在します。
それが活性化関数です!
今回はその中でも、古くから愛され、今なお重要な役割を担っているtanh(ハイパボリックタンジェント)について、どこよりも分かりやすくお話しします。

活性化関数とは情報のフィルターである

そもそも活性化関数が何をしているのか、イメージを膨らませてみましょう。
AIのモデルであるニューラルネットワークは、大量の数値を計算して答えを導き出します。
しかし、ただ計算するだけでは、複雑な現実世界のデータには対応できません。
そこで、計算結果に「勢い」や「ブレーキ」をかける役割が必要になります。

活性化関数は、入ってきた数値に対して「この情報は重要だから強く伝えよう」とか「これはノイズだから無視しよう」といった調整を行います。
高校の部活動で例えるなら、監督が選手たちの実力を評価して、試合に出すかどうかを決める判断基準のようなものです。

tanh(ハイパボリックタンジェント)ってどんな関数?

それでは、今回の主役であるtanhについて解説します。
日本語では「双曲線正接関数」と呼びますが、名前を聞くだけで少し難しそうに感じますよね。
でも安心してください。
本質はとってもシンプルです。

数学的な形を見てみよう

tanhは、どんなに大きな数値や小さな数値が入ってきても、必ずマイナス1からプラス1の範囲に収めて出力するという特性を持っています。
数式で表現すると、次のような構造をしています。

tanh(x) = ( e^{x} - e^{-x} ) / ( e^{x} + e^{-x} )

ここに出てくる e はネイピア数という特別な定数ですが、今は「魔法の数字」だと思っておいて構いません。
大切なのは、出力が -1 から 1 の間になるという点です。

似ている仲間「シグモイド関数」との違い

よく比較されるものに、シグモイド関数というものがあります。
シグモイド関数は 0 から 1 の範囲で出力しますが、tanhはマイナスまでカバーしています。
この「マイナスの値を出せる」という点が、学習をスムーズに進めるための大きな鍵となります。

tanhを使うメリットとデメリット

どの道具にも得意・不得意があるように、tanhにも明確な特徴があります。
これらを理解して、賢く使い分けられるようになりましょう!

メリット:ゼロを中心とした出力

tanhの最大の強みは、出力の平均が 0 に近くなることです。
これを「ゼロ中心」と呼びます。
データが 0 を中心に分布していると、AIが次のステップへ学習を進める際に、効率よく計算の修正(最適化)を行うことができます。
坂道を下るとき、真ん中に重心があるほうが安定して走れるようなイメージですね。

デメリット:勾配消失問題

一方で、弱点もあります。
入力された数値が極端に大きかったり小さかったりすると、グラフの傾きがほとんど平らになってしまいます。
これを専門用語で「勾配消失問題」と呼びます。
学習のヒントとなる「傾き」がゼロになってしまうと、AIは「これ以上どう改善すればいいの?」と迷子になってしまい、学習が止まってしまうのです。

結局いつ使えばいいの?

最近のAI開発では、ReLU(レルー)という別の関数が主流になることが多いですが、tanhが輝く場面は今でもたくさんあります。

  • 時系列データを扱うRNN(リカレントニューラルネットワーク)の内部
  • 画像を生成するGAN(敵対的生成ネットワーク)の出力層
  • データの値をマイナスからプラスの範囲で綺麗に揃えたいとき

特に、過去の情報を記憶しながら処理を進めるシステムでは、tanhの「値を一定範囲にギュッと押し込める力」が非常に重宝されます。

メリットとデメリットのまとめ

表で特徴を整理してみましょう。

項目特徴
出力範囲-1 \leqq y \leqq 1
得意なことデータを 0 中心に揃えて学習を効率化する
苦手なこと入力が極端な値になると学習が停滞する(勾配消失)
主な用途RNN、GAN、中間層の整理

これからの学習へのステップ

tanhの正体、少しは見えてきたでしょうか?
「マイナスからプラスまでをカバーする、バランス感覚に優れた関所」だと覚えておいてください。

これからは、実際にPythonなどのプログラミング言語を使って、tanhがどんなグラフを描くのか自分でも計算してみることをお勧めします。
また、ライバルのReLUやシグモイド関数と何が違うのかを比較してみると、より深くニューラルネットワークの仕組みが理解できるようになりますよ。

セイ・コンサルティング・グループでは新人エンジニア研修のアシスタント講師を募集しています。

投稿者プロフィール

山崎講師
山崎講師代表取締役
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。

学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。