今回はニューラルネットワークでの出力を変換する活性化関数に関する内容となります。

活性化関数(Activation Function)は、ニューラルネットワークにおいて、各ニューロンが出力を決定する際に使われる関数。入力信号を処理して、次の層へどのような信号を送るかを決める。活性化関数があることで、ネットワークは非線形な問題を解決できるようになる。


ステップ関数(Step Function)

特徴:

ステップ関数は、入力が0以上なら1を、0未満なら0を返す単純な関数。出力が離散的なため、2クラス分類に使えることもある。しかし、勾配が不連続なため、バックプロパゲーションでの学習が困難(勾配消失問題)。そのため、深層学習ではあまり使われないが、初期のニューラルネットワークでは活用されていた。



シグモイド関数(Sigmoid Function)

特徴:

シグモイド関数は、S字型の滑らかな曲線を持ち、出力は0から1の範囲に収束する。主に二値分類問題で出力を確率として解釈するのに使用される。バックプロパゲーションでの勾配計算も可能だが、勾配消失問題が発生しやすいという欠点がある。これは、入力が非常に大きいか非常に小さい場合、勾配がほぼゼロになり、学習が進まなくなる原因である。



ReLU関数(Rectified Linear Unit)

特徴:

ReLU関数は、入力が0以下の場合は0を、0より大きい場合はそのままの値を出力する関数。計算が非常に高速で、深層学習において非常に人気がある。ReLUの主な利点は、勾配消失問題を回避できることである。しかし、入力が常に負の値となると勾配がゼロになり、そのニューロンが「死んでしまう」現象(死んだReLU問題)が起こることがある。この問題を避けるために、Leaky ReLUParametric ReLUといった改良版が提案されている。



各関数の比較

関数特徴利点欠点
ステップ関数離散的な出力 (0または1)シンプル、直感的勾配消失問題、学習が遅い
シグモイド関数出力が0から1の範囲確率的な解釈ができ、二値分類に使用勾配消失問題、学習が遅い
ReLU関数0以下は0、それ以上はそのままの値を出力計算が高速、勾配消失問題を回避できる死んだReLU問題、負の値に対応しない



まとめ

ステップ関数は、現在はほとんど使用されていないが、単純な二値分類などの初期のモデルで使用されていた。

シグモイド関数は、出力が確率的で解釈しやすいため、主に二値分類の出力層で使用されるが、深層学習では勾配消失問題が課題となる。

ReLU関数は、深層学習において最も広く使われており、計算が高速で、学習を効率化できるため、多くの隠れ層で使用される。しかし、死んだReLU問題に対処するために、Leaky ReLUや他の改良型が使われることがある。

・それぞれの活性化関数は、用途や問題に応じて適切に選択することが重要である。



演習

問題 1:

ステップ関数の特徴として正しいものはどれか?

  1. 出力が連続的で、勾配消失問題が発生しにくい。
  2. 出力が0または1で、非常に単純だが、勾配が不連続なため学習が困難。
  3. 出力が0から1の範囲に収束する。
  4. 入力が負の場合も値がそのまま通る。


問題 2:

シグモイド関数について正しい説明はどれか?

  1. 出力範囲が(−∞,∞)であり、負の値を出力する。
  2. 出力範囲が(0,1)であり、確率的な解釈が可能。
  3. 0以下の入力に対して、常に0を返す。
  4. 非線形性がないため、深層学習には向いていない。


問題 3:

ReLU関数の特徴として正しいものはどれか?

  1. 入力が0以下の場合もそのまま通し、負の値がそのまま出力される。
  2. 出力範囲が(0,1)であり、主に分類問題で使用される。
  3. 入力が0以下の場合は0を返し、それ以上の場合はそのままの値を返す。
  4. 勾配消失問題を引き起こすため、深層学習で使うのに適さない。


問題 4:

次のうち、深層学習でよく使われる活性化関数はどれか?

  1. ステップ関数
  2. シグモイド関数
  3. ReLU関数
  4. ハードサイン関数


問題 5:

ReLU関数の「死んだReLU問題」とは何か?

  1. 入力が非常に大きいため、勾配が消失して学習が進まない現象。
  2. ニューロンの出力が常に0になり、学習が進まなくなる現象。
  3. 出力が0または1に収束し、分類が進まない現象。
  4. 出力が0から1に収束せず、分類が不安定になる現象。

(解答)

問1: ステップ関数の特徴

選択肢:

  1. 出力が連続的で、勾配消失問題が発生しにくい。
    • 誤り: ステップ関数は離散的な出力を持つため、勾配が不連続で勾配消失問題が発生しやすいです。
  2. 出力が0または1で、非常に単純だが、勾配が不連続なため学習が困難。
    • 正解: ステップ関数は0または1の出力で、勾配が不連続なため学習が困難になります。
  3. 出力が0から1の範囲に収束する。
    • 誤り: ステップ関数は0または1という離散的な出力を返すため、連続的に範囲に収束しません。
  4. 入力が負の場合も値がそのまま通る。
    • 誤り: ステップ関数は、入力が0未満の場合、出力が0となり、そのまま通すわけではありません。


問2: シグモイド関数の特徴

選択肢:

  1. 出力範囲が(−∞,∞)(-\infty, \infty)(−∞,∞)であり、負の値を出力する。
    • 誤り: シグモイド関数の出力範囲は(0,1)(0, 1)(0,1)であり、負の値は出力されません。
  2. 出力範囲が(0,1)(0, 1)(0,1)であり、確率的な解釈が可能。
    • 正解: シグモイド関数は出力が0から1の間に収束し、確率的な解釈が可能です(例えば、二値分類の出力)。
  3. 0以下の入力に対して、常に0を返す。
    • 誤り: シグモイド関数は負の入力でも出力が0に近づきますが、0ではなく、0より大きな値を返します。
  4. 非線形性がないため、深層学習には向いていない。
    • 誤り: シグモイド関数は非線形であり、深層学習でも使われますが、勾配消失問題があるため、近年ではあまり使用されません。


問3: ReLU関数の特徴

選択肢:

  1. 入力が0以下の場合もそのまま通し、負の値がそのまま出力される。
    • 誤り: ReLU関数は、入力が0以下の値に対して0を返し、負の値は出力されません。
  2. 出力範囲が(0,1)(0, 1)(0,1)であり、主に分類問題で使用される。
    • 誤り: ReLU関数の出力範囲は[0,∞)[0, \infty)[0,∞)であり、分類問題に特化したものではありません。
  3. 入力が0以下の場合は0を返し、それ以上の場合はそのままの値を返す。
    • 正解: ReLU関数は、0以下の値に対して0を返し、それ以上の値についてはそのままの値を返します。
  4. 勾配消失問題を引き起こすため、深層学習で使うのに適さない。
    • 誤り: ReLU関数は勾配消失問題を回避するため、深層学習で非常に多く使用されています。


問4: 活性化関数の選び方

選択肢:

  1. ステップ関数
    • 誤り: ステップ関数は勾配消失問題が発生しやすいため、深層学習にはあまり使われません。
  2. シグモイド関数
    • 誤り: シグモイド関数は勾配消失問題が発生するため、深層学習では近年使用が減っています。
  3. ReLU関数
    • 正解: ReLU関数は計算が高速で、勾配消失問題を回避できるため、深層学習で非常に広く使われています。
  4. ハードサイン関数
    • 誤り: ハードサイン関数は単純なステップ関数に近いもので、勾配消失問題を引き起こすため、深層学習で使われることは少ないです。


問5: ReLU関数の問題

選択肢:

1.入力が非常に大きいため、勾配が消失して学習が進まない現象。

誤り: これはシグモイド関数に関する特徴で、ReLU関数は勾配消失問題を回避します。

2.ニューロンの出力が常に0になり、学習が進まなくなる現象。

正解: ReLU関数の「死んだReLU問題」とは、入力が0以下の場合に出力が常に0となり、そのニューロンが学習しなくなる現象です。

3.出力が0または1に収束し、分類が進まない現象。

誤り: ReLU関数の出力は0またはそれ以上の値であり、0または1に収束するわけではありません。

4.出力が0から1に収束せず、分類が不安定になる現象。

誤り: これはシグモイド関数に関する特徴で、ReLU関数の出力は0以上の値を取ります。




参考資料
データサイエンス数学ストラテジスト[上級]公式テキスト | 公益財団法人 日本数学検定協会 |本 | 通販 | Amazon

投稿者 takapi

コメントを残す

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

CAPTCHA