はじめに
本記事は、「初めての一人アドベンドカレンダー2024 by hohe」の12日目の記事となります。12日目はニューラルネットワークに使用される活性化関数についてまとめます。
ニューラルネットワークの計算
ニューラルネットワークは以下の計算を繰り返して、最終的な値を出力します。
- 「重み」を掛け算する
- 「ニューロンの値」を足し算する
- 「活性化関数」による変換を行う
活性化関数とは
活性化関数とは、あるニューロンから次のニューロンへの出力過程において、入力された数値を特定の方法で変換し、その結果を出力する関数です。主に以下の関数があります。
関数の種類 | 詳細 |
---|---|
恒等関数(線形関数) | 入力値を全く同じ数値に変換して出力する |
ステップ関数 | 入力値が0未満の場合には常に出力値が0、0以上の場合には常に出力値が1として出力する |
シグモイド(ロジスティック)関数 | あらゆる入力値を0.0~1.0の範囲の数値に変換して出力する |
tanh(ハイパボリックタンジェント)関数 | あらゆる入力値を-1.0~1.0の範囲の数値に変換して出力する |
ReLU(Rectified Linear Unit)関数 | 入力値が0以下の場合は出力値が常に0、0より上の場合は出力値が入力値と同じ値を出力する |
Softmax関数 | 出力される複数の値の合計が1となるように出力する |
他にもLeakly ReLUやParametric ReLU(PReLU)、ELU、Swish、Maxoutなどが存在する。