用語集

ソフトマックス

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

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

さらに詳しく

機械学習、特にニューラルネットワークにおいて、ソフトマックスは、多クラス分類タスク用に設計されたモデルの出力層で通常使用される基本的な活性化関数である。ソフトマックスの主な役割は、ロジットと呼ばれる生の出力スコアのベクトルを確率分布に変換することである。この変換により、出力値が非負で合計が1になることが保証され、各クラスの可能性に対するモデルの確信度または確率として解釈できるようになります。

ソフトマックスの仕組み

ソフトマックス関数は、ニューラルネットワークの前層で生成された実数値のスコア・ベクトルに対して動作する。まず各スコアを指数化し、すべての値を正にする。次に、これらの指数化されたスコアを、ベクトル内のすべての指数化されたスコアの合計でそれぞれを割ることによって正規化する。この正規化ステップにより、結果として得られる出力値が集合的に有効な確率分布を形成し、各値が入力が特定のクラスに属する確率を表し、すべての確率の和が1に等しくなることが保証される。これにより、モデルの出力は意思決定のために容易に解釈できるようになる。

ソフトマックスの用途

ソフトマックスは、入力を複数の互いに排他的なカテゴリのいずれかに割り当てる必要があるシナリオで不可欠である。以下はその主な応用例である:

  • 画像の分類以下のようなモデルでは Ultralytics YOLOのようなモデルでは、分類用に設定された場合、最終層でソフトマックスが使用され、画像が「猫」、「犬」、「車」のような事前に定義されたクラスに属する確率を決定する。例えば、ある画像が与えられたとき、ソフトマックスの出力はクラス['dog', 'cat', 'bird']に対して[0.85, 0.10, 0.05]となり、画像に犬が含まれている確率が85%であることを示します。このようなモデルの学習に使われる、さまざまな画像分類データセットを調べてみましょう。
  • 自然言語処理(NLP)ソフトマックスは自然言語処理タスクで広く使用されている。感情分析では、「肯定」、「否定」、「中立」といった感情に対する確率を出力することができる。機械翻訳や言語モデリングでは、シーケンス内の次の単語に対する語彙全体の確率分布を予測する。アレンAI研究所(AI2)のようなリソースは、しばしばNLPの進歩に貢献している。

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

ソフトマックスをニューラルネットワークで使われる他の活性化関数と区別することは重要である:

  • ReLU(Rectified Linear Unit)ReLUとその変種(Leaky ReLUなど)は、主にネットワークの隠れ層で使用され、非線形性を導入し、モデルが複雑なパターンを学習するのを助ける。これらは確率分布を生成しない。
  • シグモイドシグモイド関数は,0と1の間の値を出力し,しばしば確率として解釈される.これは通常、バイナリ分類問題(1つの出力ノード)またはマルチラベル分類問題(複数の出力ノードがあり、それぞれが独立に扱われる)に使用されます。ソフトマックスとは異なり、複数のクラスに対するシグモイド出力は、必ずしも合計が1になるとは限りません。
  • Tanh(双曲線タンジェント)Sigmoidに似ているが、-1から1の間の値を出力する。Tanhも非直線性を導入するために隠れ層に使用される。

モデル評価における役割

ソフトマックスによって生成される確率出力は、分類モデルの性能を評価するために不可欠である。これらの確率は、accuracy、precision、recallF1スコアなどの重要なメトリクスの計算に使用されます。これらのメトリクスは、モデルの性能に関する洞察を提供し、ハイパーパラメータのチューニングや モデル全体の評価のようなプロセスを導きます。フレームワーク PyTorchTensorFlowのようなフレームワークは、ソフトマックス関数の効率的な実装を提供します。

要約すると、Softmaxはマルチクラス分類モデルのアーキテクチャにおける重要なコンポーネントであり、コンピュータビジョンからNLPまで、多様なAI分野にわたって解釈可能な確率的出力を可能にする。Softmaxを採用したモデルのライフサイクルを管理するために、Ultralytics HUBのようなプラットフォームは、トレーニング、デプロイメント、モニタリングのためのツールを提供します。

すべて読む