tanhとシグモイド関数の関係
- 機械学習の活性化関数としてよく出てくる、タンジェントハイパボリック(tanh(x))とシグモイド関数(sigmoid(
))の”数学的な”違いについて少しまとめてみた
- 機械学習的にどう異なるかは勉強不足のためわかっていない
とりあえず描画してみる
tanh
import numpy as np import matplotlib.pyplot as plt x = np.linspace(-5, 5) plt.rcParams['xtick.direction'] = 'in' plt.rcParams['ytick.direction'] = 'in' plt.ylim([0,1]) plt.plot(x, np.tanh(x))
sigmoid
def sigmoid(x): return 1 / (1 + np.exp(-x)) y = sigmoid(x) plt.plot(x, y)
どう違うの?
- ぱっと見どっちも形似てて一緒じゃん?と思ったので比べてみました
- 両方を図示してみる
- tanhの方が早く収束してそう?
- 絶対値が違う
- 数式の上では?
def sigmoid(x): return 1 / (1 + np.exp(-x)) def tanh_from_sigmoid(x): return -1 + 2 * sigmoid(2*x)
最後に
- previewモードでは数式の見た目が崩れていたので書き方があってるか何回も調べたが、結局投稿すると大丈夫だった