tanh関数
tanh関数は、ニューラルネットワークにおける活性化関数の一種であり、シグモイド関数と比較していくつかの利点があります。まず、tanh関数の出力範囲は-1から1です。これはシグモイド関数の0から1の範囲と異なり、出力が0を中心として分布するため、データの中心化が容易になります。ニューラルネットワークにおいて、データの中心化は重要で、学習プロセスを効率化することができます。
さらに、tanh関数は勾配消失問題に対してもある程度の耐性を持っています。シグモイド関数の微分の最大値が0.25であるのに対し、tanh関数の微分の最大値は1です。これにより、勾配が消失しにくく、深いネットワークにおける学習が容易になる可能性があります。しかし、tanh関数の微分の最大値が1であっても、1より小さい値が多く、勾配消失問題を完全に防ぐわけではありません。特に、深いネットワークでは依然として勾配消失は重要な課題です。
tanh関数のグラフ
グラフは以下のようなコードで実装することができます。
import numpy as np
import matplotlib.pyplot as plt
# 入力値の範囲を設定
x = np.linspace(-10, 10, 1000)
# tanh関数を計算
y = np.tanh(x)
# グラフを描画
plt.figure(figsize=(10, 5))
plt.plot(x, y, label="tanh")
plt.title("Graph of the tanh function")
plt.xlabel("x")
plt.ylabel("tanh(x)")
plt.grid(True)
plt.legend()
plt.show()
