Softmaxがスコアを確率に変換し、AIの分類タスクをどのように強化し、画像認識と自然言語処理(NLP)の成功を支えているかをご覧ください。
人工知能の領域では、ソフトマックス関数は、生の数値データと解釈可能な結果との間の重要な橋渡し役として機能する。 解釈可能な結果ソフトマックス関数は、実数のベクトルを確率分布に変換する数学的演算である。 分布に変換する数学的演算であり、現代の ニューラルネットワークの基本的な構成要素となっている。複雑なモデル ソフトマックスは、複雑なモデルの出力を、すべての値の和が1になる読みやすい形式に変換することで、システムがさまざまな結果に対する信頼度を表現できるようにします。 を表現できるようになります。この機能は、次のようなタスクで特に重要です。 機械学習(ML)タスクでは特に重要です。 複数の異なるカテゴリから1つの正解を選択しなければならないような機械学習(ML)タスクでは、この機能は特に重要です。
ソフトマックスの仕組みを理解するには、まず "ロジット "の概念を理解しなければならない。ディープラーニング(DL)モデルが ディープラーニング(DL)モデルが入力を処理するとき 最終層は通常、ロジットと呼ばれる生のスコアのリストを生成する。このスコアは、負の無限大から正の無限大まであり まであり、直接直感的に理解することはできない。ソフトマックスはこれらのロジットを受け取り、主に2つの操作を実行する:
結果は確率分布となり、各値は入力が特定のクラスに属する可能性を表す。 である。この変換により、開発者は出力を信頼度スコアとして解釈することができます。 というような信頼スコアとして解釈することができます。
ソフトマックスは、多クラス分類問題における出力層の標準的な活性化関数である。その能力 相互に排他的なクラスを扱うことができるため、さまざまな AIソリューションに不可欠なものとなっている。
次の例は、事前に訓練された分類モデルをロードし、ソフトマックスを使って生成された確率スコアにアクセスする方法を示しています。
を使って生成された確率スコアにアクセスする方法を示します。 ultralytics パッケージで提供される。
from ultralytics import YOLO
# Load a pre-trained YOLO11 classification model
model = YOLO("yolo11n-cls.pt")
# Run inference on a sample image URL
results = model("https://ultralytics.com/images/bus.jpg")
# The model applies Softmax internally for classification tasks
# Display the top predicted class and its confidence score
top_class = results[0].probs.top1
print(f"Predicted Class: {results[0].names[top_class]}")
print(f"Confidence: {results[0].probs.top1conf.item():.4f}")
ソフトマックスは多クラス・タスクの出力層で支配的であるが、他の活性化関数と区別することが重要である。 活性化関数と区別することが重要である。 と区別することが重要である:
実際には、トレーニング段階でソフトマックスが単独で使われることはほとんどない。ほとんどの場合、特定の として知られる特定の損失関数と組み合わせられる。 またはLog Loss)と呼ばれる特定の損失関数と組み合わせられることがほとんどです。この組み合わせは、予測された確率と実際の真実のラベルの間の距離を効果的に測定する。 ラベルを使用します。
さらに、大きな数のべき乗を計算することは、数値の不安定性(オーバーフロー)につながる可能性がある。最新の のような PyTorchや TensorFlowは 安定版(多くの場合 "LogSoftmax")を損失計算関数の中に実装することで、自動的にこれを処理します。 を実装している。これらのニュアンスを理解することは、効果的な モデルを効果的に展開し 精度のようなメトリクスがモデルのパフォーマンスを正確に反映することを保証するために不可欠です。今後 今後、次期YOLO26のような先進的なアーキテクチャは、これらの確率分布をエンド・ツー・エンドの検知と分類にどのように利用するかを改良し続けるだろう。 このような確率分布が、エンド・ツー・エンドの検知と分類にどのように利用されるかは、今後さらに改良されていくだろう。


