- tanh関数とは何か
- tanh関数の実装方法
- tanh関数の微分
tanh関数とは
tanh関数(双曲線正接関数)とは、
で表される関数です。
グラフで表すとこのような形になります。
tanh関数はディープラーニングの活性化関数の一つです。
tanh関数の特徴
グラフを見ると、tanh関数の出力は-1から1の範囲に納まり、滑らかな曲線を描いています。
\(x=0\)を境に対象的なグラフとなっています。
tanh関数の用途
tanh関数は、時系列データの分析の活性化関数としてよく使われています。
tanh関数の微分
tanh関数の微分は高校数学の知識で行うことができます。
$$h=tanh(x)=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}$$
として微分を求めてみましょう。
\(
\frac{dh}{dx}=\frac{d}{dx}\left(\frac{e^{x}}{e^{x}+e^{-x}}-\frac{e^{-x}}{e^{x}+e^{-x}}\right)\\
\quad=\left(\frac{e^{x}}{e^{x}+e^{-x}}-\frac{e^{x}(e^{x}-e^{-x})}{(e^{x}+e^{-x})^2}\right) + \left(\frac{e^{-x}}{e^{x}+e^{-x}}+\frac{e^{-x}(e^{x}-e^{-x})}{(e^{x}+e^{-x})^2}\right)\\
\quad=\frac{e^{x}+e^{-x}}{e^{x}+e^{-x}}-\frac{(e^{x}+e^{-x})^2}{(e^{x}-e^{-x})^2}
\quad=1-\left(\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}\right)\\
\quad=1-h^2
\)
微分後の関数をグラフで表すとこのような形になります。
1未満の値が多く出力されるので勾配が小さくなっていき、勾配消失してしまいます。
tanh関数をpythonで実装
tanh関数をpythonで実装していきます。
import numpy as np
#tanh関数
def tanh(x):
return np.tanh(x)
#tanh関数の微分
def tanh_dx(x):
return 4 / ((np.exp(x) + np.exp(-x))**2)
単純な関数なので、シンプルに表すことができました。
まとめ
tanh関数とは、\(tanh(x)=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}\)で表される関数です。
-1~1の範囲を滑らかにつなぐ曲線でした。
tanh関数は、ディープラーニングで系列データ解析を行うモデルの活性化関数としてよく使われます。
tanh関数の微分はシンプルに表すことができ、1未満の値が多く出力されるため勾配消失が起こってしまう活性化関数です。
コメント