E資格の試験では、活性化関数を実装するプログラミング問題が出題されることがあります。
本記事では、活性化関数の一つであるsigmoid関数を実装する方法について解説します。
本記事における用語の説明
![](https://schlaf.ltd/wp-content/uploads/2020/08/tmb_0028.jpg)
まずはいくつか用語の説明をします。
既に知っているという方は読み飛ばして下さい。
sigmoid関数とは
以下の式で定義される活性化関数です。
$$ Sigmoid(x) = \frac{1}{1+e^{-x}} $$
入力値、出力値の関係をグラフに表すと以下のようになります。
![](https://schlaf.ltd/wp-content/uploads/2022/12/img_numpy-sigmoid_01.jpg)
出力値が0.0~1.0の範囲に収まるため、主に2クラス分類の予測を行うニューラルネットワークのモデルの出力層に導入されます。( 出力値を分類の予測確率として扱う )
ただ、勾配消失が起きやすく、中間層で使われることはほぼありません。
処理の実装方法を解説
![](https://schlaf.ltd/wp-content/uploads/2020/08/tmb_0032.jpg)
ここでは、sigmoid関数の実装例などを紹介しましょう。
実装例
前述の式を基に関数を実装します。使用する言語はPythonです。
import matplotlib.pyplot as plt
import numpy as np
def sigmoid(x):
return 1 / (1 + np.exp(-x))
x = np.arange(-15, 15)
y = sigmoid(x)
plt.plot(x, y)
plt.show()
このプログラムを実行すると以下の出力結果が得られます。
![](https://schlaf.ltd/wp-content/uploads/2022/12/img_numpy-sigmoid_02.jpg)