ステップ関数は、最も単純な活性化関数の一つであり、Heaviside関数や指示関数とも呼ばれます。以下の式で定義されます。
H(x) = {
1, if x >= 0
0, otherwise
}
この関数は、入力値が閾値と呼ばれる値を超えると1を出力し、それ以外は0を出力します。
グラフ
ステップ関数のグラフは以下のようになります。
特性
ステップ関数は以下の特性を持つ関数です。
- 非線形性: ステップ関数は、入力と出力が線形関係ではない非線形な関数です。これは、ニューラルネットワークに非線形性を導入するために重要です。
- 簡潔性: ステップ関数は非常にシンプルな式で表される簡潔な関数です。計算が容易で、実装も簡単です。
- バイナリ分類: ステップ関数は、入力値を2つのカテゴリに分類するバイナリ分類のタスクに適しています。例えば、画像を猫と犬に分類するようなタスクです。
欠点
ステップ関数には以下の欠点があります。
- 弱非線形性: ステップ関数は、他の活性化関数と比べて非線形性が弱いという欠点があります。複雑な関係を表現するには不向きです。
- 勾配消失問題: ステップ関数は、勾配消失問題と呼ばれる問題が発生しやすいという欠点があります。これは、ニューラルネットワークの学習がうまく進まなくなる原因となります。
- 出力の硬さ: ステップ関数は、出力が0と1のみに限定されるため、出力の硬さという欠点があります。滑らかな出力が求められるタスクには不向きです。
利用例
ステップ関数は、以下の様な場面で利用されます。
- バイナリ分類: 画像認識、音声認識、自然言語処理などの分野で、入力値を2つのカテゴリに分類するタスクに使用されます。
- 論理回路: 論理回路の設計において、AND、OR、NOTなどの論理演算を表すために使用されます。
- 指示関数: 数学において、集合の指示関数として使用されます。
まとめ
ステップ関数は、最もシンプルな活性化関数の一つであり、計算が容易で実装も簡単です。バイナリ分類などの単純なタスクに適していますが、複雑な関係を表現するには不向きです。
近年では、ReLU関数などのより洗練された活性化関数が主流となっていますが、ステップ関数は理解しやすく、教育目的やシンプルなタスクでは今でもよく利用されています。