用語「ステップ関数(Step function)」について説明。「0」を基点(閾値)として、0未満なら「0」、0以上なら「1」を返すような、ニューラルネットワークの活性化関数を指す。
AI/機械学習のニューラルネットワークにおけるステップ関数(Step function、単位ステップ関数:Unit step function)とは、関数への入力値が0未満の場合には常に出力値が0、入力値が0以上の場合には常に出力値が1となるような関数である。
図1に示すように、0を基点として、階段(step)状のグラフになるため、「ステップ関数」と呼ばれる。この基点は一般的に「閾値(いきち、しきい値、Threshold)」と呼ばれる。
ステップ関数は、ニューラルネットワークの基礎となっている情報処理モデル「パーセプトロン」(後日解説)の活性化関数として用いられていたが、「バックプロパゲーション」(後日解説)が登場してからは「シグモイド関数」が活性化関数として使われるようになり、最近のディープニューラルネットワークでは「ReLU」がよく使われるようになっている。
冒頭でも文章により説明したが、厳密に数式で表現すると次のようになる。
xが入力データで、f(x)が出力結果である。
x<0の場合は、f(x)=0となり、
x≥0の場合は、f(x)=1となる。
このように定義されるステップ関数は、発明者のオリヴァー・ヘヴィサイド氏(Oliver Heaviside、1850-1925)にちなんで、ヘヴィサイドの階段関数(Heaviside step function)と呼ばれることもある。
また、0か1の2値(binary)であることから、バイナリステップ関数(Binary step function)と呼ばれることもある。
上記の数式をPythonコードの関数にするとリスト1のようになる。
def step(x):
return 1.0 * (x >= 0.0)
X >= 0.0は「入力値が0以上か、そうではないか(=0未満か)」という条件を意味する。
その条件がTrue(=1)のときは、戻り値として1.0(=1.0 * (1))を返す。
また、その条件がFalse(=0)のときは、戻り値として0.0(=1.0 * (0))を返す。
Copyright© Digital Advantage Corp. All Rights Reserved.