PR

シグモイド関数の定義とグラフと性質8つ

統計学
記事内に広告が含まれています。

さまざまな分野で登場するシグモイド関数について,その定義とグラフ,性質をまとめます。

シグモイド関数の定義

定義(シグモイド関数)

a>0 とする。このとき,

\color{red} f_a(x) = \frac{1}{1+e^{-ax}}=\frac{e^{ax}}{e^{ax}+1}


シグモイド関数 (sigmoid function) という。とくに, a=1 のとき,標準シグモイド関数 (standerd sigmoid function) という。

シグモイド関数は,統計学における累積分布関数や,機械学習におけるニューラルネットワークの活性化関数でもよく登場する関数です。(ほかに,生物の神経細胞が持つ性質をモデル化したものでもあるようです。)

この関数について,深く掘り下げていきましょう。

シグモイド関数のグラフ

シグモイド関数のグラフは,以下のようになります。黒・青・緑・赤の順に, a=1, 3, 5, 10 としています。

シグモイド関数のグラフ

シグモイド関数の性質

定理(シグモイド関数の性質)

f_a をシグモイド関数とするとき,

  1. f_a は狭義単調増加である。
  2. f_a (0,1/2) に関して対称である。また,この点は唯一の変曲点である。
  3. \displaystyle \lim_{x\to -\infty} f_a(x) = 0, \quad \lim_{x\to\infty} f_a(x) = 1.
  4. \displaystyle f_a'(x) =a f_a(x)(1-f_a(x)).
  5. f_a C^\infty 級,すなわち無限回微分可能である。
  6. f_a双曲線関数 \tanh を用いて, f_a(x) =\frac{1+\tanh(ax/2)}{2} とも表せる。
  7. \displaystyle f_a^{-1} (x) = \frac{1}{a}\log \frac{x}{1-x} \quad (0<x<1).逆関数
  8. \displaystyle \lim_{a\to\infty} f_a(x) = \begin{cases} 1 & 0<x, \\ 1/2 & x=0,\\ 0 & x< 0. \end{cases}

ここでは,性質2, 4, 6, 7, 8 について詳しく確認することにしましょう。

2. シグモイド関数が(0,1/2)に関して対称であること

証明

\begin{aligned} f_a(x)+f_a(-x)&= \frac{1}{1+e^{-ax}}+\frac{1}{1+e^{ax}} \\ &= \frac{(1+e^{ax})+(1+e^{-ax})}{(1+e^{-ax})(1+e^{ax})} \\ &= 1 \end{aligned}


であるから,特に (f_a(x)-1/2) + (f_a(-x)-1/2) = 0 なので,示せた。

証明終

シグモイド関数のグラフを見ればほぼ明らかな性質ですが,ちゃんと証明できました。

4. (f_a)’ = af_a(1-f_a) であること

4. \displaystyle f_a'(x) =a f_a(x)(1-f_a(x)).

証明

\begin{aligned} f'_a(x) &= \left(\frac{1}{1+e^{-ax}}\right)' \\ &= \frac{ae^{-ax}}{(1+e^{-ax})^2} \end{aligned}


である。一方,

\begin{aligned} &a f_a(x)(1-f_a(x)) \\&= a\cdot \frac{1}{1+e^{-ax}} \left( 1- \frac{1}{1+e^{-ax}}\right) \\ &= \frac{ae^{-ax}}{(1+e^{-ax})^2}\end{aligned}


なので,結論を得る。

証明終

元の関数から,直ちに微分が求まるのは,面白い性質ですね。ニューラルネットワークでシグモイド関数を使う際は,ネットワーク内部でこの性質をフルに活用し,計算を高速化しています。

なお,微分をグラフにすると以下のようになります。黒・緑はそれぞれ a=1,5 の場合を指します。

シグモイド関数の微分

釣り鐘型の関数になっていますね。

6. シグモイド関数が双曲線関数でかけること

6. f_a双曲線関数 \tanh を用いて, f_a(x) =\frac{1+\tanh(ax/2)}{2} とも表せる。

証明

\displaystyle \tanh x = \frac{e^x-e^{-x}}{e^x+e^{-x}} であるから,

\begin{aligned} f_a(x) &=\frac{1}{1+e^{-ax}}\\ &= \frac{1+\frac{e^{ax/2}-e^{-ax/2}}{e^{ax/2}+e^{-ax/2}}}{2}\\ &= \frac{1+\tanh(ax/2)}{2}\end{aligned}


となってわかる。

証明終

なお,双曲線関数 \tanh のグラフは以下のようになります。

y = tanh x のグラフ

そもそもシグモイド関数のグラフと似ていることが分かりますね。

7. シグモイド関数の逆関数

7. \displaystyle f_a^{-1} (x) = \frac{1}{a}\log \frac{x}{1-x} \quad (0<x<1).逆関数

証明

f_a^{-1}\colon \mathbb{R}\to(-1,1)全単射なので,逆関数が存在する。 y = f_a(x) = \frac{1}{1+e^{-ax}} とおくと,

\begin{aligned}&(1+e^{-ax})y = 1 \\ & \iff e^{-ax} = \frac{1-y}{y} \\ &\iff -ax = \log\frac{1-y}{y} \\ &\iff x = \frac{1}{a}\log\frac{y}{1-y} \end{aligned}


なので,\displaystyle f_a^{-1} (x) = \frac{1}{a}\log \frac{x}{1-x} \quad (0<x<1). である。

証明終

逆関数をグラフにすると,以下のようになります。 a=1 の場合です。

シグモイド関数の逆関数のグラフ

8. lim_{a→∞} f_a について

これは証明するまでもなく,

\lim_{a\to\infty} f_a(x) = \lim_{a\to\infty} \frac{1}{1+e^{-ax}} = \begin{cases} 1 & 0<x, \\ 1/2 & x=0,\\ 0 & x< 0 \end{cases}


となるのは明らかでしょう。ここで紹介したいのは,そのグラフです。以下の図を見てください。

シグモイド関数において,a → ∞ とする様子

上の図は, a\to\infty とすると,グラフの傾きがどんどん急になっていくことを表しています。結局,極限は下のようなグラフにります。

シグモイド関数の極限関数であるヘヴィサイトの階段関数

この極限関数は,ヘヴィサイドの階段関数 (Heaviside step function) と呼ばれることもあります。

関連する関数