シグモイド関数の意味と簡単な性質

シグモイド関数(Sigmoid Function)

シグモイド関数とは, f(x)=11+eaxf(x)=\dfrac{1}{1+e^{-ax}} という関数のこと。ただし,a>0a>0 とする。 シグモイド関数

シグモイド関数のグラフ・性質・重要性(工学的な応用)について解説します。

シグモイド関数のグラフ

シグモイド関数 f(x)=11+eax(a>0)f(x)=\dfrac{1}{1+e^{-ax}}\: (a > 0) のグラフは,以下のようになります。 シグモイド関数のグラフ

aa が大きいほどカーブが急激になり,aa00 に近いほどなだらかな曲線になります。

シグモイド関数の性質

シグモイド関数には以下の性質があります。

シグモイド関数の基本的な性質
  1. f(0)=12f(0)=\dfrac{1}{2}

  2. limxf(x)=1\displaystyle\lim_{x\to\infty}f(x)=1limxf(x)=0\displaystyle\lim_{x\to -\infty}f(x)=0

  3. f(x)f(x) は単調増加

  4. f(x)+f(x)=1f(x)+f(-x)=1。つまり y=f(x)y=f(x)(0,12)(0,\tfrac{1}{2}) に関して点対称。

それぞれ簡単な計算で確認できます。実際,グラフを見てみると1~4が成り立っていますね。 シグモイド関数

微分

シグモイド関数の微分

f(x)f'(x) シグモイド関数 f(x)=11+eaxf(x)=\dfrac{1}{1+e^{-ax}} に対して f(x)=af(x)(1f(x))f'(x)=af(x)(1-f(x)) となる。

つまり,シグモイド関数の微分は,シグモイド関数そのもの f(x)f(x) を使って簡単に表せます。

証明

商の微分公式を使って計算すると,

f(x)=(1+eax)(1+eax)2=aeax(1+eax)2=a1+eax1+eax11+eax=af(x)(1f(x))\begin{aligned}f'(x)&=\dfrac{-(1+e^{-ax})'}{(1+e^{-ax})^2}\\ &=\dfrac{ae^{-ax}}{(1+e^{-ax})^2}\\ &=\dfrac{a}{1+e^{-ax}}\cdot\dfrac{1+e^{-ax}-1}{1+e^{-ax}}\\ &=af(x)(1-f(x))\end{aligned}

シグモイド関数とtanh

  • シグモイド関数は tanh\tanh を用いて表すこともできます: 11+eax=122e12axe12ax+e12ax=12(1+tanh(12ax))\dfrac{1}{1+e^{-ax}}=\dfrac{1}{2}\dfrac{2e^{\frac{1}{2}ax}}{e^{\frac{1}{2}ax}+e^{-\frac{1}{2}ax}} =\dfrac{1}{2}(1+\tanh(\frac{1}{2}ax))

  • ただし,tanh\tanh はハイパボリックタンジェントと読み,定義は tanhx=exexex+ex\tanh x=\dfrac{e^x-e^{-x}}{e^{x}+e^{-x}} です。→双曲線関数(sinh,cosh,tanh)の意味・性質・楽しい話題まとめ

ステップ関数,符号関数

ここからはシグモイド関数の応用の話です。

シグモイド関数には 不連続だがよく使う関数をなめらかな関数で近似するという役割があります。

例えば,工学的に重要な関数としてステップ関数,符号関数があります:

ステップ関数と符号関数のグラフ

  • (単位)ステップ関数 u(x)={0(x<0)1(x0)u(x)=\begin{aligned} \left\{ \begin{array}{l} 0\:\:(x <0)\\ 1\:\:(x \geq 0) \end{array} \right. \end{aligned}

  • 符号関数 sgn(x)={1(x>0)0(x=0)1(x<0)\mathrm{sgn}(x)=\begin{aligned} \left\{ \begin{array}{l} 1\:\:(x > 0)\\ 0\:\:(x = 0)\\ -1\:\:(x <0) \end{array} \right. \end{aligned}

スイッチの切り替えを表現したり,いかにも使いそうな関数です。

連続近似

ステップ関数や符号関数のように不連続な関数は扱いにくいことがあるので連続関数で近似したくなります。場合によっては微分可能であって欲しいこともあります。

シグモイド関数による近似

  • そこで,折れ線でつなぐことで「ステップ関数っぽい連続関数」(赤)を作ることができます。
  • さらに,シグモイド関数を使うことで「ステップ関数っぽいなめらかな関数」(緑)を作ることができます。

符号関数も同様にシグモイド関数を2倍して1を引いたもの(=tanh=\tanh )を使うことで「符号関数っぽいなめらかな関数」が作れます。

また,シグモイド関数の aa が大きいほどよい近似になります。そして,なめらかな関数で近似する方法はたくさんありますが,シグモイド関数は数式も扱いやすい(例えば導関数をもとの関数で表せる)のでよく使われています。

シグモイド関数は,深層学習モデルにおける活性化関数としても使われる重要な関数です。

Tag:大学入試で頻出の有名な関数まとめ