YOLO Vision Shenzhen
深セン
今すぐ参加
用語集

ソフトマックス

AIにおけるソフトマックス関数を探ります。それがどのようにロジットを確率に変換し、Ultralytics YOLO26とニューラルネットワークを用いて多クラス分類を行うかを学びましょう。

Softmaxは、人工知能分野において極めて重要な数学的関数であり、特に多くの分類アルゴリズムにおける最終ステップとして機能します。これは、生の数値(しばしばロジットと呼ばれる)のベクトルを確率のベクトルに変換します。この変換により、出力値はすべて正であり、合計が正確に1になることが保証され、有効な確率分布を効果的に作成します。この特性により、Softmaxは、システムが2つ以上の相互排他的な選択肢から単一のカテゴリを選択する必要がある多クラス分類用に設計されたニューラルネットワークの出力層で使用される標準的な活性化関数となっています。

ソフトマックスのメカニズム

一般的なディープラーニング(DL)ワークフローでは、ネットワークの層は複雑な行列乗算と加算を実行します。活性化前の最終層の出力は、ロジットとして知られる生のスコアで構成されます。これらの値は負の無限大から正の無限大まで及ぶため、信頼度レベルとして直接解釈するのが困難です。

Softmaxは、主に2つの操作を実行することでこれを解決します。

  1. 指数化: 各入力数値の指数を計算します。このステップにより、すべての値が非負($e^x$は常に正であるため)であることが保証され、最大値よりも著しく低い値にはペナルティを与え、最大のスコアを強調します。
  2. 正規化:これは、これらの指数化された値を合計し、個々の指数をこの合計で割ります。この正規化プロセスは、数値が全体の一部を表すようにスケーリングし、開発者がそれらをパーセンテージ信頼度スコアとして解釈できるようにします。

実際のアプリケーション

明確な確率を出力する能力により、Softmaxはさまざまな業界および機械学習 (ML)タスクにおいて不可欠なものとなっています。

  • 画像分類: コンピュータービジョンでは、モデルはSoftmaxを使用して画像をカテゴリに分類します。例えば、Ultralytics YOLO26分類モデルが写真を分析すると、「ゴールデンレトリバー」、「ジャーマンシェパード」、「プードル」のようなクラスのスコアを生成する場合があります。Softmaxはこれらのスコアを確率(例:0.85、0.10、0.05)に変換し、画像にゴールデンレトリバーが含まれている可能性が高いことを示します。これは、自動写真整理からヘルスケアAIにおける医療診断まで、幅広いアプリケーションにとって重要です。
  • 自然言語処理(NLP): ソフトマックスは、大規模言語モデル(LLM)におけるテキスト生成の原動力です。Transformerのようなモデルが文を生成する際、その語彙内のすべての単語のスコアを計算することで、次の単語(トークン)を予測します。ソフトマックスはこれらのスコアを確率に変換し、モデルが最も可能性の高い次の単語を選択できるようにすることで、流暢な機械翻訳と会話型AIを可能にします。
  • 強化学習:強化学習のエージェントは、行動を選択するためにSoftmaxを使用することがよくあります。常に最も高い値を持つ行動を選択する代わりに、エージェントは確率を使用して異なる戦略を探索し、ロボット制御やゲームプレイのような環境で探索と活用のバランスを取ることができます。

Python コード例

以下の例は、事前学習済みの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}")

Softmaxと関連概念の区別

ソフトマックスは多クラスシナリオで支配的ですが、モデルトレーニングやアーキテクチャ設計で使用される他の数学関数と区別することが重要です。

  • シグモイド: シグモイド関数も値を0から1の間にスケーリングしますが、各出力を独立して扱います。このため、シグモイドは二値分類 (はい/いいえ) や、クラスが相互排他的でないマルチラベル分類 (例: 画像に「人物」と「バックパック」の両方が含まれる場合) に理想的です。ソフトマックスは確率の合計を1に強制するため、クラスが互いに競合します。
  • ReLU (Rectified Linear Unit): ReLUは、ネットワークの隠れ層で主に非線形性を導入するために使用されます。Softmaxとは異なり、ReLUは出力を特定の範囲に制限せず(負の入力にはゼロを、正の入力には入力自体を出力する)、確率分布を生成しません。
  • Argmax: Softmaxがすべてのクラスの確率を提供する一方で、Argmax関数は、最も高い確率を持つ単一のインデックスを選択するために組み合わせて使用されることがよくあります。Softmaxは「ソフトな」信頼度を提供し、Argmaxは「ハードな」最終決定を提供します。

高度な統合

現代のMLパイプラインでは、Softmaxは損失関数内で暗黙的に計算されることがよくあります。例えば、交差エントロピー損失は、Softmaxと負の対数尤度を単一の数学的ステップに結合し、訓練中の数値的安定性を向上させます。Ultralytics Platformのようなプラットフォームはこれらの複雑さを自動的に処理し、ユーザーがこれらの数学的演算を手動で実装することなく、堅牢なモデルを訓練できるようにします。

共にAIの未来を築きましょう!

未来の機械学習で、新たな一歩を踏み出しましょう。