用語集

ソフトマックス

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

ソフトマックスは、ロジットと呼ばれる生の実数値のスコア・ベクトルを確率のベクトルに変換する数学関数である。機械学習(ML)の文脈では、ソフトマックスは主にニューラルネットワークの出力層で活性化関数として使用される。その重要な役割は、ネットワークの最終スコアを、複数の互いに排他的なクラスにわたる意味のある確率分布に変換することである。結果として得られる確率の和は1になり、各可能な結果に対するモデルの確信度として解釈しやすくなる。

ソフトマックスの仕組み

ある画像がどのカテゴリーに属するかを判断しようとするニューラルネットワークを想像してほしい。ネットワークの最終レイヤーは、各カテゴリの生スコアを生成する。スコアが高ければ高いほど、モデルはそのカテゴリーに傾くが、このスコアは標準化されていないため、直接扱うのは難しい。

ソフトマックス関数は、これらのスコアを用いて、主に2つのステップを実行する:

  1. 各スコアに指数関数を適用する。これにより、すべての値が正となり、各スコアの差が誇張され、より大きなスコアは比例してより大きくなる。
  2. これらの指数化されたスコアを、それぞれの合計で割ることによって正規化する。このステップでは、合計が1.0になるように値をスケールダウンし、効果的に確率分布を作成します。

最終的な出力は確率のリストで、各値は入力が特定のクラスに属するとモデルが予測した尤度を表します。そして、最も高い確率を持つクラスが、最終的な予測値として選ばれます。

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

ソフトマックスは、マルチクラス分類を行うディープラーニングモデルの基本である。明確で確率的な出力を提供するその能力は、様々なドメインで貴重なものとなっている。

  • Image Classification: This is the most common use case. A Convolutional Neural Network (CNN) trained on a dataset like ImageNet will use Softmax in its final layer. For an image of a pet, the model might output probabilities like {Dog: 0.9, Cat: 0.08, Rabbit: 0.02}, clearly indicating its prediction. Models like Ultralytics YOLO use this for classification tasks.
  • 自然言語処理(NLP) 言語モデリングでは、Softmaxはシーケンスの次の単語を予測するために使用される。Transformerのようなモデルは、語彙内のすべての単語のスコアを計算し、Softmaxを使用してこれらのスコアを確率に変換します。これは大規模言語モデル(LLM)の中核をなすコンポーネントであり、機械翻訳から テキスト生成までのアプリケーションを強力にサポートする。
  • 医療画像解析医療スキャンを解析して異なるタイプの組織を分類したり、病理(良性、悪性、健康など)を特定したりする場合、モデルはソフトマックスを使用して各診断に確率を割り当て、臨床医がより多くの情報に基づいた判断を下せるようにします。
  • 強化学習:ポリシーに基づく強化学習では、ソフトマックスは学習された様々な行動の値を、エージェントが取りうる行動の確率分布であるポリシーに変換するために用いることができる。

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

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

  • シグモイドシグモイド関数も0と1の間の値を出力しますが、バイナリ分類(あるクラスと別のクラス)またはマルチラベル分類(入力が一度に複数のクラスに属する可能性がある)に使用されます。例えば、映画は "コメディ "と "アクション "の両方に分類される。対照的に、ソフトマックスはマルチクラス分類に使われ、クラスが互いに排他的である。
  • ReLU(整流線形ユニット) ReLUとその変形であるLeaky ReLUや SiLUは、ニューラルネットワークの隠れ層で使用される。主な役割は非線形性を導入し、モデルがデータ内の複雑なパターンを学習できるようにすることである。これらは確率を生成せず、分類のための出力関数としては使用されません。
  • Tanh(ハイパーボリックタンジェント)ReLUと同様、隠れ層、特に古いリカレント・ニューラル・ネットワーク(RNN)アーキテクチャで使用される。分類タスクの確率出力の生成には適さない。

実践的な考察

強力な反面、Softmaxは非常に大きな入力スコアに対して敏感である可能性があり、それは時に数値的な不安定性(オーバーフローやアンダーフロー)につながる可能性がある。これに対処するため、PyTorchや TensorFlowのような最新の深層学習フレームワークは、裏で数値的に安定したバージョンのSoftmaxを実装しています。

ソフトマックスはほとんどの場合、モデル学習時にクロスエントロピー損失(またはログ損失)と呼ばれる特定の損失関数と組み合わせられる。この組み合わせは、マルチクラス分類器のトレーニングに非常に効果的です。Softmaxの挙動を理解することは、効果的なモデルのトレーニングと解釈のために非常に重要であり、実験とデプロイメントを合理化するためにUltralytics HUBのようなプラットフォームを使用して管理および追跡することができます。

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

AIの未来に参加しませんか。世界のイノベーターとつながり、協力し、成長する

今すぐ参加する
クリップボードにコピーされたリンク