AIにおけるソフトマックス関数を探ります。それがどのようにロジットを確率に変換し、Ultralytics YOLO26とニューラルネットワークを用いて多クラス分類を行うかを学びましょう。
Softmaxは、人工知能分野において極めて重要な数学的関数であり、特に多くの分類アルゴリズムにおける最終ステップとして機能します。これは、生の数値(しばしばロジットと呼ばれる)のベクトルを確率のベクトルに変換します。この変換により、出力値はすべて正であり、合計が正確に1になることが保証され、有効な確率分布を効果的に作成します。この特性により、Softmaxは、システムが2つ以上の相互排他的な選択肢から単一のカテゴリを選択する必要がある多クラス分類用に設計されたニューラルネットワークの出力層で使用される標準的な活性化関数となっています。
一般的なディープラーニング(DL)ワークフローでは、ネットワークの層は複雑な行列乗算と加算を実行します。活性化前の最終層の出力は、ロジットとして知られる生のスコアで構成されます。これらの値は負の無限大から正の無限大まで及ぶため、信頼度レベルとして直接解釈するのが困難です。
Softmaxは、主に2つの操作を実行することでこれを解決します。
明確な確率を出力する能力により、Softmaxはさまざまな業界および機械学習 (ML)タスクにおいて不可欠なものとなっています。
以下の例は、事前学習済みのYOLO26分類モデルをロードし、Softmaxを介して生成された確率スコアにアクセスする方法を示しています。
from ultralytics import YOLO
# Load a pre-trained YOLO26 classification model
model = YOLO("yolo26n-cls.pt")
# Run inference on a sample image
results = model("https://ultralytics.com/images/bus.jpg")
# The model applies Softmax internally. Access the top prediction:
# The 'probs' attribute contains the probability distribution.
top_prob = results[0].probs.top1conf.item()
top_class = results[0].names[results[0].probs.top1]
print(f"Predicted Class: {top_class}")
print(f"Confidence (Softmax Output): {top_prob:.4f}")
ソフトマックスは多クラスシナリオで支配的ですが、モデルトレーニングやアーキテクチャ設計で使用される他の数学関数と区別することが重要です。
現代のMLパイプラインでは、Softmaxは損失関数内で暗黙的に計算されることがよくあります。例えば、交差エントロピー損失は、Softmaxと負の対数尤度を単一の数学的ステップに結合し、訓練中の数値的安定性を向上させます。Ultralytics Platformのようなプラットフォームはこれらの複雑さを自動的に処理し、ユーザーがこれらの数学的演算を手動で実装することなく、堅牢なモデルを訓練できるようにします。
未来の機械学習で、新たな一歩を踏み出しましょう。