【活性化関数】ステップ関数とは?【超わかりやすく解説】

ニューラルネットワークで重要な活性化関数の1つである「ステップ関数」を紹介します。理解のしやすいステップ関数をPythonで実装も行いながら紹介します。

ステップ関数とは?

ステップ関数のグラフ

ステップ関数は、入力された値に対して「0」か「1」の出力を行う関数です。
具体的には、
入力された値が、「x<0であれば0を出力」「x≧0であれば1を出力」の処理を行います。
今回は、「x = 0」のときに「1」を出力させるよう記述していますが、人によっては「x = 0」のときは「0」を出力と定義する人もいます。「x = 0」の定義は曖昧です。

ステップ関数は、もともとはパーセプトロンで用いられていたものですが、活性化関数の概念がでてきたとおきにステップ関数として引き継がれました。

最近では「シグモイド関数」や「ReLU関数」が用いられることが多いものの、「ステップ関数」ニューラルネットワークの原点として考えられています。
ニューラルネットワークの活性化関数を理解する上で非常に重要なことから、DeepLearningの入門書では、最初に取り上げられることが多いです。

ステップ関数は、ヘビサイトの階段関数、ヘビサイト関数とも呼ばれることもります。

ステップ関数の数式

ステップ関数は非常にシンプルな関数なので、数式も非常にシンプルです。
中学生でも理解ができる数式ですね。

Pythonで実装

実装

#step関数
import numpy as np

def step(x):
    return np.where(x >= 0, 1, 0)

if __name__ == '__main__':
    print(step(-7)) # 任意の数字を入力
【実行結果】
0

5行目のnumpyのwhere()を用いて条件式を1行で表現しています。

8行目の通り、作成したstep関数に今回は「7」を出力し、「0」が出力されています。
ステップ関数のPythonでの実装は非常に簡単ですね。

【参考】ステップ関数をプロットするコード

#step関数
import matplotlib.pyplot as plt
import numpy as np
import math

x = np.arange(-6, 6, 0.01) # ラフの範囲、細かさを指定
y = np.where(x<=0, 0, 1)

plt.grid()
plt.plot(x, y)
plt.show()

このコードを実行すると、下のグラフが実行結果として生成されます。

ということで本記事は、
ニューラルネットワークで非常に重要な、活性化関数の1つであるステップ関数を紹介しました!
最後まで読んでいただき、ありがとうございました\(^o^)/

ディープラーニングのおすすめ書籍

専門書としては異例の発行部数を誇る、素晴らしい書籍です(^^)
初心者の方から知識のある方まで、幅広い方に向けて書かれていますよ!\(^o^)/

超オススメのPC用品

PCを操作する上で、トラックボールマウスが非常におすすめです!
僕も感動したこのマウスを、騙されたと思って使ってみてください!(^^)

外部モニターで2倍以上の効率化が見込めます!
安いものだと、たったの1万円前後なのでおすすめですよー!\(^o^)/

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です