ソフトマックス
Softmaxがスコアを確率に変換し、AIの分類タスクをどのように強化し、画像認識と自然言語処理(NLP)の成功を支えているかをご覧ください。
Softmax は、生の、実数値のスコア(通常はロジットと呼ばれます)のベクトルを確率のベクトルに変換する数学関数です。機械学習 (ML)のコンテキストでは、Softmax は主に活性化関数としてニューラルネットワークの出力層で使用されます。その重要な役割は、ネットワークの最終スコアを、相互に排他的な複数のクラスにわたる意味のある確率分布に変換することです。結果として得られる確率は合計 1 になり、モデルの各可能な結果に対する信頼度として簡単に解釈できます。
ソフトマックス関数はどのように機能するか
ニューラルネットワークが、画像がどのカテゴリに属するかを判断しようとしていると想像してください。ネットワークの最終層は、各カテゴリの生スコアのセットを生成します。スコアが高いほど、モデルがそのカテゴリに傾いていることを示唆していますが、これらのスコアは標準化されておらず、直接扱うのが難しい場合があります。
Softmax関数は、これらのスコアを取得し、次の2つの主要なステップを実行します。
- 各スコアに指数関数を適用します。これにより、すべての値が正になり、スコア間の差が誇張されます。つまり、大きいスコアは比例して非常に大きくなります。
- これは、これらの指数化されたスコアを、それぞれの合計で割ることによって正規化します。このステップでは、値をスケールダウンして、合計が1.0になるようにし、効果的に確率分布を作成します。
最終的な出力は確率のリストであり、各値は入力が特定のクラスに属する可能性に対するモデルの予測された尤度を表します。確率が最も高いクラスが、最終的な予測として選択されます。
AIと機械学習の応用
Softmax は、マルチクラス分類を実行するすべての深層学習モデルにとって不可欠です。明確な確率的出力を提供する機能により、さまざまな分野で非常に貴重です。
- 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)のコアコンポーネントであり、機械翻訳からテキスト生成までのアプリケーションを強化します。
- 医用画像解析: 異なる種類の組織を分類したり、病状(良性、悪性、または健康)を特定するために医用画像を解析する場合、モデルは Softmax を使用して各診断に確率を割り当て、臨床医がより多くの情報に基づいた意思決定を行うのに役立ちます。
- 強化学習: ポリシーベースの強化学習では、Softmaxを使用して、さまざまなアクションの学習された値をポリシーに変換できます。これは、エージェントが実行できる可能性のあるアクションに対する確率分布です。
Softmax と他の活性化関数との比較
Softmaxは他の一般的な活性化関数とは目的が異なるため、区別することが重要です。
- シグモイド: シグモイド関数も0から1の間の値を出力しますが、バイナリ分類(1つのクラス対別のクラス)またはマルチラベル分類(入力が複数のクラスに同時に属することができる)に使用されます。たとえば、映画は「コメディ」と「アクション」の両方として分類できます。対照的に、Softmaxはマルチクラス分類用であり、クラスは相互に排他的です。手書きの数字は7または8である必要がありますが、両方ではありません。
- ReLU(Rectified Linear Unit): ReLUおよびLeaky ReLUやSiLUなどのバリアントは、ニューラルネットワークの隠れ層で使用されます。それらの主な仕事は、非線形性を導入し、モデルがデータ内の複雑なパターンを学習できるようにすることです。それらは確率を生成せず、分類の出力関数として使用されません。
- Tanh (Hyperbolic Tangent): Tanhは、値を-1から1の範囲に圧縮します。ReLUと同様に、隠れ層、特に古いリカレントニューラルネットワーク(RNN)アーキテクチャで使用されます。分類タスクの確率出力を生成するのには適していません。
実践的な考慮事項
Softmaxは強力ですが、非常に大きな入力スコアに敏感になる可能性があり、数値的な不安定性(オーバーフローまたはアンダーフロー)につながる場合があります。これに対処するために、PyTorchやTensorFlowのような最新の深層学習フレームワークは、バックグラウンドで数値的に安定したバージョンのSoftmaxを実装しています。
Softmax は、モデルのトレーニング中に、クロスエントロピー損失(またはログ損失)と呼ばれる特定の損失関数とほぼ常に組み合わされます。この組み合わせは、マルチクラス分類器のトレーニングに非常に効果的です。Softmax の動作を理解することは、効果的なモデルのトレーニングと解釈に不可欠であり、Ultralytics HUBなどのプラットフォームを使用して実験とデプロイメントを効率化し、管理および追跡できます。