actions

シグモイド関数

ファイル:Logistic-curve.png
標準シグモイド関数
ファイル:SigmoidFunction.png
シグモイド関数(ゲイン5)
ファイル:Gjl-t(x).svg
ς型の関数の比較

シグモイド関数(シグモイドかんすう、: 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) ともいい、ギリシャ文字のシグマ(語中では σ だがここでは語末形の ς のこと)に似た形と言う意味である。ただし、単にシグモイドまたはシグモイド曲線と言った場合は、シグモイド関数と似た性質を持つς型の関数(累積正規分布関数ゴンペルツ関数グーデルマン関数など)を総称するのが普通である。

性質

[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] と置いた場合にあたる。

応用

導関数をシグモイド関数自身で簡単に導出できるため、微分成分が必要となるプロパゲーションに適している。ニューラルネットワークにおける活性化関数などで用いられる。

関連項目