ソフトマックス関数の基本的な仕組み、数学的な定義、特徴、適用例について解説します。多クラス分類での利用方法も紹介します。
ニューラルネットワークにおける多クラス分類(Multiclass Classification)では、出力を確率として解釈する必要があります。
そのために用いられるのが ソフトマックス関数(Softmax Function) です。
ソフトマックス関数は、ニューラルネットワークの出力を 確率分布 に変換する役割を持ちます。
本記事では、その基本的な仕組み、数学的な定義、特徴、適用例について解説します。
ソフトマックス関数は、任意の実数ベクトルを確率の形に変換する活性化関数です。数式で表すと以下のようになります。
ここで、
この関数を適用すると、すべてのクラスの確率の合計が 1 になるという特性があります。
これにより、ニューラルネットワークの出力を 確率として解釈できる ようになります。
ソフトマックス関数を適用すると、各クラスの出力が の範囲の確率として表現されます。
そのため、多クラス分類において、「ある入力がどのクラスに属する確率が最も高いか」を判断できます。
指数関数()を使うことで、モデルの出力 のスケールが調整され、特定のクラスの出力が極端に大きくなることを防ぎます。
例えば、以下の 3 クラスの出力(ロジット)があるとします。
クラス | の値 | ソフトマックス適用前 | ソフトマックス適用後 |
---|---|---|---|
クラス 1 | 2.0 | 2.0 | 0.6652 |
クラス 2 | 1.0 | 1.0 | 0.2447 |
クラス 3 | 0.1 | 0.1 | 0.0901 |
適用前の値と適用後の確率を比較すると、ソフトマックス関数がどのように出力を調整しているかが分かります。
具体的な計算例を見てみましょう。
モデルの出力(ロジット)が以下のように与えられたとします。
それぞれの値をソフトマックス関数に適用すると、
この結果から、
ソフトマックス関数は、多クラス分類において最も一般的に使用される活性化関数です。
ニューラルネットワークの分類問題を扱う際には、ソフトマックス関数を活用すると適切な確率分布を得ることができます。
当サイトの情報は、一般的な参考情報として提供しております。
正確な情報の掲載に努めておりますが、その内容の正確性・完全性・最新性を保証するものではありません。
記事の内容をご利用の際は、ご自身の責任において判断し、必要に応じて専門家にご相談ください。
当サイトの情報の利用により生じたいかなる損害についても、一切の責任を負いかねますのでご了承ください。
※ 本ページでは、著作権法に基づき、適正な引用の範囲内でコンテンツを紹介しています。
オリジナルの情報は発信元をご確認ください。
もし問題がありましたら、こちら からお問い合わせください。