シグモイド関数
シグモイド関数(シグモイドかんすう、英: sigmoid function)は、
- [math]\varsigma_a (x) = \frac{1}{1+e^{- a x}} = \frac{ \tanh(a x / 2) + 1 }{ 2 }[/math]
で表される実関数である。なお、[math]a[/math] をゲイン (gain) と呼ぶ。
狭義には、ゲインが1の標準シグモイド関数 (英: standard sigmoid function)
- [math]\varsigma_1 (x) = \frac{1}{1+e^{-x}} = \frac{ \tanh(x / 2) + 1 }{ 2 }[/math]
をさす。
以下は広義のシグモイド関数について述べる。標準シグモイド関数については、 [math]a = 1[/math] を代入すればよい。
シグモイド関数は、生物の神経細胞が持つ性質をモデル化したものとして用いられる。
シグモイド (英: sigmoid) とは、シグモイド曲線 (英: sigmoid curve) ともいい、ギリシャ文字のシグマ(語中では σ だがここでは語末形の ς のこと)に似た形と言う意味である。ただし、単にシグモイドまたはシグモイド曲線と言った場合は、シグモイド関数と似た性質を持つς型の関数(累積正規分布関数、ゴンペルツ関数、グーデルマン関数など)を総称するのが普通である。
Contents
性質
[math](-\infty, \infty) \rightarrow (0,1) [/math] の単調増加連続関数で、1つの変曲点を持つ。
[math]y = 0[/math] と [math]y = 1[/math] を漸近線に持ち、
- [math]\begin{align} \lim_{x \rightarrow \infty} \varsigma _a (x) &= 1 \\ \lim_{x \rightarrow -\infty} \varsigma _a (x) &= 0 \\ \lim_{x \rightarrow \pm \infty} \varsigma _a' (x) &= 0 \end{align}[/math]
である。
[math]x = 0[/math] では
- [math]\begin{align} \varsigma _a (0) &= 1 / 2 \\ \varsigma _a' (0) &= a / 4 \\ \varsigma _a'' (0) &= 0 \end{align}[/math]
である。つまり、変曲点は [math](0,1/2)[/math] である。
また、[math](0,1/2)[/math] を中心に点対称である。つまり、[math] \varsigma_a (x) - 1/2 [/math] は奇関数であり、
- [math] \varsigma_a (-x) = 1 - \varsigma_a (x)[/math]
を満たす。
逆関数は、
- [math]\varsigma _a ^{-1} (y) = \frac{1}{a} \ln \left( \frac{ y }{ 1 - y } \right) = \frac{1}{a} \operatorname{logit} y[/math]
と、ロジット関数で表せる。特に、標準シグモイド関数とロジット関数は互いに逆関数である。
導関数と二階導関数は
- [math]\begin{align} \varsigma _a' (x) &= \frac{ a e^{-ax} }{ (1 + e^{-ax} ) ^2 } = a \varsigma_a (x) \{ 1 - \varsigma_a (x) \} \\ \varsigma _a'' (x) &= a ^2 \varsigma_a (x) \{ 1 - \varsigma_a (x) \} \{ 1 - 2 \varsigma_a (x) \} \end{align}[/math]
と、シグモイド関数自身を使って簡潔に表せる。
自然対数と絡んで微分するとこのようになる。
- [math]\begin{align} \frac{d}{dx} \ln(\varsigma _a (x)) &= a \varsigma _a (-x) = a ( 1 - \varsigma _a (x) ) \\ \frac{d}{dx} \ln(1 - \varsigma _a (x)) &= -a \varsigma _a (x) \end{align}[/math]
他の関数との関係
- [math]\tanh x = \frac{ e^x - e^{-x} }{ e^x + e^{-x} }[/math]
を使って
- [math]\varsigma_a (x) = \frac{ \tanh(a x / 2) + 1 }{ 2 }[/math]
とも表せる。
- [math]N = \frac{K}{1 + \exp{r K (t_0 - t)}}[/math]
の特殊ケースで、[math]r = a, K = 1, t_0 = 0[/math] と置いた場合にあたる。
応用
導関数をシグモイド関数自身で簡単に導出できるため、微分成分が必要となるプロパゲーションに適している。ニューラルネットワークにおける活性化関数などで用いられる。