SoftmaxがAIにおける分類タスクのスコアを確率に変換し、画像認識やNLPを成功に導く仕組みをご覧ください。
ソフトマックスはニューラルネットワーク(NN)の出力層、特にマルチクラス分類問題でよく使われる重要な活性化関数である。その主な役割は、前の層で生成された生のスコア(しばしばロジットと呼ばれる)のベクトルを、複数の潜在的なクラスにわたる確率分布に変換することである。各出力値は、入力が特定のクラスに属する確率を表し、重要なのは、これらの確率の合計が1になることで、出力を相互に排他的な結果の信頼レベルとして簡単に解釈できるようにする。
概念的には、ソフトマックス関数はニューラルネットワーク層から生の出力スコアを受け取り、それを変換する。まず各スコアを指数化し、すべての値を正にし、より大きなスコアをより大きく強調する。次に、これらの指数化されたスコアを、すべての指数化されたスコアの合計で割ることによって正規化します。この正規化ステップにより、結果の値が0と1の間にあり、合計が1になることが保証され、異なるクラスにわたる確率分布が効果的に作成される。最も高い確率値に対応するクラスは、通常、モデルの最終予測値として選択される。このプロセスは、分類タスクを扱うディープラーニング(DL)モデルの基本である。
ソフトマックスを他の活性化関数と区別することは重要である:
ソフトマックスは、さまざまなAIや 機械学習(ML)の領域で広く採用されている:
強力な反面、ソフトマックスは非常に大きな入力スコアに対して敏感である可能性があり、数値的不安定性(オーバーフローまたはアンダーフロー)につながる可能性がある。最新のディープラーニングフレームワークPyTorchや TensorFlowやTensorFlowのような最新の深層学習フレームワークは、これらの問題を軽減するために数値的に安定したバージョンのSoftmaxを実装しています。その挙動を理解することは、効果的なモデルのトレーニングと解釈のために非常に重要であり、実験とデプロイメントを管理するためのUltralytics HUBのようなプラットフォームによって促進されることが多い。