【DeepLeaning】 活性化関数 シグモイド関数 と ステップ関数

Deep Learning とは何なのか・・・まったく知らない状態から挑戦してみたいと思います!

シグモイド関数とステップ関数

異なる点

シグモイド関数とステップ関数は、どちらも一般的な数学関数ですが、性質において異なる点があります。

  1. 形状:シグモイド関数はS字形状をしています。なめらか~。
    ステップ関数は階段状の形状をしています。カクカクです。
  2. 値の範囲:シグモイド関数の値の範囲は0から1の間です。
    一方、ステップ関数の値の範囲は0または1です。
  3. 動作:シグモイド関数は入力に対してスムーズに変化します。
    ステップ関数はある閾値を超えた場合にのみ値が変化します。
  4. 微分可能性:シグモイド関数は微分可能です。
    ステップ関数は不連続で微分できません。

共通点

シグモイド関数とステップ関数の共通点は、両者が非線形関数であることです。

また、どちらも入力値に対して出力値が明確に定義され確定的な出力を返します。

しかし、ステップ関数は入力値が閾値を超えた場合にだけ出力が変化するのに対し、シグモイド関数は入力値がどの程度大きいかに応じて、出力値が滑らかに変化します。
また、ステップ関数は微分不可能であるのに対してシグモイド関数は微分可能です。

シグモイド関数が機械学習の分野でよく使用される理由

  1. 0~1
    出力値の範囲が0から1に制限されるため確率のように解釈できるので分類問題に使用されます。
    例えば、あるデータがあるクラスに属する確率を予測する際に使用されます。
  2. シグモイド関数は入力が大きくなると関数の出力が1に近づき、入力が小さくなると出力が0に近づくという性質があります。
    このような性質は、ニューラルネットワークの中間層において前の層から伝わってくる信号の大きさに応じて、ニューロンの発火率を制限するために使われます。
    また、この性質によってニューラルネットワークにおける活性化関数として、勾配消失問題(誤差逆伝播法において、勾配が小さくなり、学習が進まなくなる問題)を緩和することができます。
    ニューラルネットワークの中間層において信号の非線形変換を行うための有用な関数であると言えます。
  3. 連続的で微分可能であるため、誤差逆伝播法(誤差を逆方向に伝搬させることで重みを更新する方法)による重みの更新に使用されます。

    誤差逆伝播法は誤差を微分してそれを逆伝播させることで各層の重みを更新するため、微分可能な関数であることが必要です。
    微分ができないステップ関数は誤差逆伝播法が使用できないのでシグモイド関数に軍配が上がるというわけです。
    (ただし微分できない関数でも代替手法として微分可能な近似関数を用いることがあるらしいですが。)

  4. ステップ関数に比べてスムーズな変化をするため、学習が収束(学習が進むにつれモデルの性能が向上し誤差がほとんどなくなる現象)しやすくなります。