活性化関数[5]

活性化関数は、入力信号の総和を出力信号に変換する関数である。 「活性化」という名前が意味するように、活性化関数は入力信号の総和がどのように活性化するか(どのように発火するか)を決定する役割がある。

Figure 2.3は、階段関数、ステップ関数(step function)と呼ばれるもので、この関数を用いればニューロンの出力を0か1で表すことができる。ステップ関数は、式(2.2)で表される。


\begin{displaymath}
f(x) = \left\{
\begin{array}{ll}
1 & (x > 0)\\
0 & (x \le 0)
\end{array} \right.
\end{displaymath} (2)

図 2.3: Step function
\includegraphics[scale=0.8]{step.eps}

Figure 2.4は、シグモイド関数(sigmoid function)と呼ばれるもので、ステップ関数と比較すると入力に対して連続的に出力が変化する。 これを用いることにより、ニューロンの出力を連続的な実数値の信号として表すことができる。 シグモイド関数は、式(2.3)で表される。


\begin{displaymath}
f(x) = \frac{1}{1+\exp(-x)}
\end{displaymath} (3)

図 2.4: Sigmoid function
\includegraphics[scale=0.8]{sigmoid.eps}

近年ではFigure 2.5に示すようなReLU関数(Rectified Linear Unit function)と呼ばれる関数がよく用いられる。 この関数は、入力が0を超えていれば、その入力をそのまま出力し、0以下ならば0を出力する。ReLU関数は、式(2.4)で表される。


\begin{displaymath}
f(x) = \left\{
\begin{array}{ll}
x & (x > 0)\\
0 & (x \le 0)
\end{array} \right.
\end{displaymath} (4)

図 2.5: ReLU function
\includegraphics[scale=0.8]{relu.eps}

これらの関数は一般的に、入力データから、連続的な数値の予測を行うような回帰問題を解決する際に用いられる。 一方、データがどのクラスに属するかと判断するような分類問題を行う際には、ソフトマックス関数が用いられる。 出力層を$n$個とし、入力信号$a_k$から$k$番目の出力$y_k$を求める式を式(2.5)に示す。


\begin{displaymath}
y_k = \frac{{\exp(a_k)}}{\displaystyle \sum_{i=0}^{n} {\exp(a_i)}}
\end{displaymath} (5)

Deguchi Lab. 2017年3月6日