Yolo 深圳
深セン
今すぐ参加
用語集

ソフトマックス

Softmaxがスコアを確率に変換し、AIの分類タスクをどのように強化し、画像認識と自然言語処理(NLP)の成功を支えているかをご覧ください。

人工知能の領域では、ソフトマックス関数は、生の数値データと解釈可能な結果との間の重要な橋渡し役として機能する。 解釈可能な結果ソフトマックス関数は、実数のベクトルを確率分布に変換する数学的演算である。 分布に変換する数学的演算であり、現代の ニューラルネットワークの基本的な構成要素となっている。複雑なモデル ソフトマックスは、複雑なモデルの出力を、すべての値の和が1になる読みやすい形式に変換することで、システムがさまざまな結果に対する信頼度を表現できるようにします。 を表現できるようになります。この機能は、次のようなタスクで特に重要です。 機械学習(ML)タスクでは特に重要です。 複数の異なるカテゴリから1つの正解を選択しなければならないような機械学習(ML)タスクでは、この機能は特に重要です。

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

ソフトマックスの仕組みを理解するには、まず "ロジット "の概念を理解しなければならない。ディープラーニング(DL)モデルが ディープラーニング(DL)モデルが入力を処理するとき 最終層は通常、ロジットと呼ばれる生のスコアのリストを生成する。このスコアは、負の無限大から正の無限大まであり まであり、直接直感的に理解することはできない。ソフトマックスはこれらのロジットを受け取り、主に2つの操作を実行する:

  1. 指数化:指数関数 各入力スコアに指数関数を適用する。この このステップでは、すべての出力値が非負であることを保証し、より大きなスコアを強調することで、モデル 予測値をより際立たせます。
  2. 正規化:指数化された値を合計し、個々の値をこの合計値で割る。 合計で割る。この 正規化プロセス は、出力を合計してちょうど1.0(または100%)になるようにスケーリングする。

結果は確率分布となり、各値は入力が特定のクラスに属する可能性を表す。 である。この変換により、開発者は出力を信頼度スコアとして解釈することができます。 というような信頼スコアとして解釈することができます。

AIの実世界での応用

ソフトマックスは、多クラス分類問題における出力層の標準的な活性化関数である。その能力 相互に排他的なクラスを扱うことができるため、さまざまな AIソリューションに不可欠なものとなっている。

  • 画像の分類:コンピュータビジョンでは Ultralytics YOLO11のようなモデルは、ソフトマックスを利用して画像を分類する。 例えば、防犯カメラが車両を捉えた場合、モデルは視覚的特徴を分析し、「車」、「トラック」、「バス」、「オートバイ」といったクラスの確率を出力する。 車」、「トラック」、「バス」、「オートバイ」などのクラスの確率を出力する。そして ソフトマックスのスコアが最も高いクラスが、最終的なラベルを決定する。このメカニズムは 医療画像解析から自律 運転の中心となっている。
  • 自然言語処理(NLP):ソフトマックスは 大規模言語モデル(LLM)と チャットボットのテキスト生成機能を強化します。Transformerモデルが文章を生成するとき Transformerモデルが文章を生成する際、語彙内のすべての単語のスコアを計算し、次に来る単語を決定します。ソフトマックス はこれらのスコアを確率に変換し、モデルが次に来る可能性の高い単語を選択できるようにする。 機械翻訳と会話を促進します。

Python コード例

次の例は、事前に訓練された分類モデルをロードし、ソフトマックスを使って生成された確率スコアにアクセスする方法を示しています。 を使って生成された確率スコアにアクセスする方法を示します。 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}")

ソフトマックスと他の活性化関数の比較

ソフトマックスは多クラス・タスクの出力層で支配的であるが、他の活性化関数と区別することが重要である。 活性化関数と区別することが重要である。 と区別することが重要である:

  • シグモイドソフトマックスと同様、シグモイド 関数は0と1の間の値をつぶしますが、シグモイドは各出力を独立に扱うので 2値分類(はい/いいえ決定)または 画像に "犬 "と "ボール "の両方が含まれるようなマルチラベル分類に最適です。ソフトマックス、 逆に、あるクラスの確率が上がると他のクラスの確率が下がるというクラス間の競争を強制します。 となる。
  • ReLU(整流線形ユニット) ReLUは主にニューラルネットワークの隠れ層で使用され、非線形性を導入してモデル学習を高速化する。 モデル学習を高速化する。ソフトマックスとは異なり、ReLUは確率を出力しない。 確率を出力せず、出力を特定の範囲に拘束しません(非負であること以外)。
  • Tanh(双曲線正接) Tanhは-1から1の間の値を出力する。 リカレント・ニューラル・ネットワーク(RNN)によく見られるが は確率分布を生成しないため、分類の最終出力関数として使用されることはほとんどありません。

トレーニングの実践的考察

実際には、トレーニング段階でソフトマックスが単独で使われることはほとんどない。ほとんどの場合、特定の として知られる特定の損失関数と組み合わせられる。 またはLog Loss)と呼ばれる特定の損失関数と組み合わせられることがほとんどです。この組み合わせは、予測された確率と実際の真実のラベルの間の距離を効果的に測定する。 ラベルを使用します。

さらに、大きな数のべき乗を計算することは、数値の不安定性(オーバーフロー)につながる可能性がある。最新の のような PyTorchTensorFlowは 安定版(多くの場合 "LogSoftmax")を損失計算関数の中に実装することで、自動的にこれを処理します。 を実装している。これらのニュアンスを理解することは、効果的な モデルを効果的に展開精度のようなメトリクスがモデルのパフォーマンスを正確に反映することを保証するために不可欠です。今後 今後、次期YOLO26のような先進的なアーキテクチャは、これらの確率分布をエンド・ツー・エンドの検知と分類にどのように利用するかを改良し続けるだろう。 このような確率分布が、エンド・ツー・エンドの検知と分類にどのように利用されるかは、今後さらに改良されていくだろう。

Ultralytics コミュニティに参加する

AIの未来を共に切り開きましょう。グローバルなイノベーターと繋がり、協力し、成長を。

今すぐ参加