ソフトマックス関数は、生のモデル出力(ロジット)を確率に変換するために、機械学習やディープラーニングで一般的に使用される数学演算である。これは、1つの入力を複数のカテゴリの1つに割り当てることを目的とする、マルチクラス分類タスクで特によく使われます。ロジットを確率分布に変換することで、Softmaxはすべてのクラスの出力の合計が1になるようにし、確率として解釈できるようにします。
ソフトマックスはニューラルネットワークの出力層から生のスコア(logits)のベクトルを取り、それらを[0, 1]の範囲にスケーリングする。この変換はロジット間の差を増幅し、最も可能性の高いクラスを識別しやすくします。結果として得られる確率は、各クラスの相対的な尤度を示します。
例えば、動物の画像を猫、犬、鳥の3つのカテゴリーに分類するように訓練されたニューラルネットワークを考えてみよう。ネットワークが出力するロジットが [2.0, 1.0, 0.1]
ソフトマックスはこれらを次のような確率に変換する。 [0.65, 0.24, 0.11]
これは "cat "クラスの信頼度が最も高いことを示している。
ソフトマックスは、マルチクラス分類タスクのニューラルネットワークの出力層で使われる標準的な活性化関数である。例えば、画像分類では、Ultralytics YOLO のようなモデルは、画像の最も可能性の高いラベルを決定するためにSoftmaxを使用します。画像認識におけるソフトマックスの役割についてはこちらをご覧ください。
テキスト分類や言語モデリングのような自然言語処理タスクでは、ソフトマックスは、次に来る可能性のある単語やクラスラベルの確率分布を予測するために極めて重要である。GPT-3やGPT-4のようなモデルは、首尾一貫したテキストを生成するために出力層でソフトマックスを活用しています。大規模言語モデル(LLM)がどのようにこの機能を高度なアプリケーションに活用しているかをご覧ください。
ソフトマックスはまた、注意の重みを計算するための注意メカニズムにも使われる。これらの重みは、モデルが入力データの特定の部分に集中するのを助け、機械翻訳や画像キャプション付けのようなタスクのパフォーマンスを向上させる。
医療画像解析では、ソフトマックスは医療スキャンを "腫瘍 "や "非腫瘍 "などのカテゴリーに分類するために使用される。例えば、Ultralytics YOLO のようなモデルは、腫瘍検出のようなアプリケーションで意思決定を強化するためにソフトマックスを使用することができる。
自律走行車では、検出された物体(歩行者、車両、交通標識など)を分類し、安全なナビゲーションのための意思決定を支援するためにソフトマックスが適用される。例えば、Ultralytics YOLO フレームワークは、自動運転システムにおける物体検出タスクのためにSoftmaxを組み込むことができる。
ソフトマックスもシグモイドも活性化関数だが、その目的は異なる:
複数の独立したラベルを含むタスク(マルチラベル分類)では、ソフトマックスよりもシグモイド活性化が好まれることが多い。
ソフトマックスは時折、「過信」のような問題を引き起こすことがある。これは、モデルが不確実な場合でも、特定のクラスに非常に高い確率を割り当てるというものである。ラベルスムージングのようなテクニックは、オーバーフィッティングを減らし、より良い汎化を促すことで、これを軽減することができる。
さらに、ソフトマックスはクラスが相互に排他的であると仮定する。この仮定が成り立たない場合は、別のアプローチや活性化関数がより適切かもしれない。
ソフトマックスは、最新のAIや機械学習アプリケーションの基礎であり、モデルが確率を効率的に解釈し、出力することを可能にします。ヘルスケアから自律システムまで、その多用途性とシンプルさは、インテリジェント・システムの進歩に不可欠なツールとなっています。AIモデルの構築と導入に関する詳細については、Ultralytics HUBをご覧ください。