[活性化関数]ステップ関数(Step function)とは?AI・機械学習の用語辞典

用語「ステップ関数(Step function)」について説明。「0」を基点(閾値)として、0未満なら「0」、0以上なら「1」を返すような、ニューラルネットワークの活性化関数を指す。

» 2020年02月26日 05時00分 公開
[一色政彦デジタルアドバンテージ]
「AI・機械学習の用語辞典」のインデックス

連載目次

用語解説

 AI/機械学習のニューラルネットワークにおけるステップ関数Step function単位ステップ関数Unit step function)とは、関数への入力値が0未満の場合には常に出力値が0、入力値が0以上の場合には常に出力値が1となるような関数である。

 図1に示すように、0を基点として、階段(step)状のグラフになるため、「ステップ関数」と呼ばれる。この基点は一般的に「閾値(いきち、しきい値Threshold)」と呼ばれる。

図1 「ステップ関数」のグラフ 図1 「ステップ関数」のグラフ

 ステップ関数は、ニューラルネットワークの基礎となっている情報処理モデル「パーセプトロン」(後日解説)の活性化関数として用いられていたが、「バックプロパゲーション」(後日解説)が登場してからは「シグモイド関数」が活性化関数として使われるようになり、最近のディープニューラルネットワークでは「ReLU」がよく使われるようになっている。

定義と数式

 冒頭でも文章により説明したが、厳密に数式で表現すると次のようになる。

 xが入力データで、f(x)が出力結果である。

 x<0の場合は、f(x)=0となり、
 x≥0の場合は、f(x)=1となる。

 このように定義されるステップ関数は、発明者のオリヴァー・ヘヴィサイド氏(Oliver Heaviside、1850-1925)にちなんで、ヘヴィサイドの階段関数Heaviside step function)と呼ばれることもある。

 また、01の2値(binary)であることから、バイナリステップ関数Binary step function)と呼ばれることもある。

Pythonコード

 上記の数式をPythonコードの関数にするとリスト1のようになる。

def step(x):
  return 1.0 * (x >= 0.0)

リスト1 ステップ関数のPythonコード例

 X >= 0.0は「入力値が0以上か、そうではないか(=0未満か)」という条件を意味する。

 その条件がTrue(=1)のときは、戻り値として1.0(=1.0 * (1))を返す。

 また、その条件がFalse(=0)のときは、戻り値として0.0(=1.0 * (0))を返す。

「AI・機械学習の用語辞典」のインデックス

AI・機械学習の用語辞典

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。