用語集

ソフトマックス

SoftmaxがAIにおける分類タスクのスコアを確率に変換し、画像認識やNLPを成功に導く仕組みをご覧ください。

Ultralytics HUB で
を使ってYOLO モデルをシンプルにトレーニングする。

さらに詳しく

ソフトマックスはニューラルネットワーク(NN)の出力層、特にマルチクラス分類問題でよく使われる重要な活性化関数である。その主な役割は、前の層で生成された生のスコア(しばしばロジットと呼ばれる)のベクトルを、複数の潜在的なクラスにわたる確率分布に変換することである。各出力値は、入力が特定のクラスに属する確率を表し、重要なのは、これらの確率の合計が1になることで、出力を相互に排他的な結果の信頼レベルとして簡単に解釈できるようにする。

ソフトマックスの仕組み

概念的には、ソフトマックス関数はニューラルネットワーク層から生の出力スコアを受け取り、それを変換する。まず各スコアを指数化し、すべての値を正にし、より大きなスコアをより大きく強調する。次に、これらの指数化されたスコアを、すべての指数化されたスコアの合計で割ることによって正規化します。この正規化ステップにより、結果の値が0と1の間にあり、合計が1になることが保証され、異なるクラスにわたる確率分布が効果的に作成される。最も高い確率値に対応するクラスは、通常、モデルの最終予測値として選択される。このプロセスは、分類タスクを扱うディープラーニング(DL)モデルの基本である。

主な特徴

  • 確率分布:出力は各クラスの確率を表し、常に合計が1になる。
  • マルチクラス・フォーカス:入力が複数の可能なクラス(相互に排他的)のうちの1つにしか属さないようなシナリオのために特別に設計されている。
  • 出力の解釈:モデルの出力を直感的にし、各クラスの信頼度を表現する。
  • 微分可能:滑らかで微分可能なため、モデル学習時に勾配降下のような勾配ベースの最適化アルゴリズムで効果的に使用できる。

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

ソフトマックスを他の活性化関数と区別することは重要である:

  • シグモイドシグモイドも0と1の間の値を出力するが、通常、バイナリ分類(1つの出力ニューロン)またはマルチラベル分類(各出力が独立した確率を表し、合計が必ずしも1にならない複数の出力ニューロン)に使用される。ソフトマックスはクラスが互いに排他的な場合に使用される。詳細はStanford CS231nノートなどを参照してください。
  • ReLU(整流線形ユニット)ReLUとその変形であるLeaky ReLUや SiLUは、主にニューラルネットワークの隠れ層で使用され、非線形性を導入する。最終的な分類層に適した確率のような出力は得られません。DeepLearning.AIでは、ニューラルネットワークの活性化関数を説明するコースを提供しています。

AIと機械学習における応用

ソフトマックスは、さまざまなAIや 機械学習(ML)の領域で広く採用されている:

  • マルチクラス画像分類基礎となるアプリケーション。例えば、CIFAR-10データセットで学習されたモデルは、最終層でソフトマックスを使用し、10個のクラス(例えば、飛行機、自動車、鳥)のそれぞれの確率を出力する。畳み込みニューラルネットワーク(CNN)は、分類タスクにソフトマックスを多用します。Ultralytics ドキュメントで、事前にトレーニングされた分類モデルを調べることができます。
  • 自然言語処理(NLP) 言語モデリング(語彙から次の単語を予測する)、感情分析(テキストを肯定、否定、中立のいずれかに分類する)、機械翻訳などのタスクで使用される。Transformerのような最新のアーキテクチャでは、注意メカニズムや出力層にソフトマックスがよく使われている。 Hugging Faceは、ソフトマックスを利用した多くのモデルを提供している。
  • オブジェクトの検出のようなモデルでは Ultralytics YOLOv8または YOLO11のようなモデルでは、検出ヘッドはソフトマックス(またはマルチラベルシナリオの場合はシグモイド)を使用して、バウンディングボックス内の各検出オブジェクトのクラス確率を決定します。これは、COCOのようなデータセットに基づいて、「人」、「車」、「信号機」のようなラベルを割り当てるのに役立ちます。
  • 強化学習(RL)政策ベースのRL手法では、ソフトマックスを使用してエージェントが学習した行動選好を確率に変換することができ、スコアに基づいて確率的に行動を選択する確率的政策選択が可能になります。SuttonとBartoのRL本がこれらの概念をカバーしている。

考察

強力な反面、ソフトマックスは非常に大きな入力スコアに対して敏感である可能性があり、数値的不安定性(オーバーフローまたはアンダーフロー)につながる可能性がある。最新のディープラーニングフレームワークPyTorchTensorFlowやTensorFlowのような最新の深層学習フレームワークは、これらの問題を軽減するために数値的に安定したバージョンのSoftmaxを実装しています。その挙動を理解することは、効果的なモデルのトレーニングと解釈のために非常に重要であり、実験とデプロイメントを管理するためのUltralytics HUBのようなプラットフォームによって促進されることが多い。

すべて読む