Main Content

softmax

チャネル次元へのソフトマックス活性化の適用

説明

ソフトマックス活性化演算は、入力データのチャネルの次元にソフトマックス関数を適用します。

ソフトマックス関数は、和が 1 となるように入力データの値をチャネル次元全体で正規化します。ソフトマックス関数の出力は、確率分布とみなすことができます。

メモ

この関数は、ソフトマックス演算を dlarray データに適用します。layerGraph オブジェクト内または Layer 配列内にソフトマックスを適用する場合は、次の層を使用します。

Y = softmax(X) は、入力データのチャネルの次元にソフトマックス伝達関数を適用し、入力 X のソフトマックス活性化を計算します。Y のすべての値は 01 になり、和は 1 になります。入力 X は、書式化された dlarray でなければなりません。出力 Y は、X と同じ次元形式をもつ書式化された dlarray になります。

X が書式設定されていない dlarray である場合、Y = softmax(X,'DataFormat',FMT) は、次元形式 FMT も指定します。出力 Y は、X と同じ順序で次元が並べられた、書式設定されていない dlarray になります。

すべて折りたたむ

すべてのチャネルにわたって合計した和が 1 となるように、関数 softmax を使用して入力データのすべての値を 01 に収まる値に設定します。

入力分類データを、確率変数による 2 つの観測値として作成します。データは 10 個のカテゴリのいずれかになります。

numCategories = 10;
observations = 2;

X = rand(numCategories,observations);
X = dlarray(X,'CB');

softmax 活性化を計算します。

Y = softmax(X)
totalProb = sum(Y,1)
Y =

  10(C) x 2(B) dlarray

    0.1151    0.0578
    0.1261    0.1303
    0.0579    0.1285
    0.1270    0.0802
    0.0959    0.1099
    0.0562    0.0569
    0.0673    0.0753
    0.0880    0.1233
    0.1328    0.1090
    0.1337    0.1288
totalProb =

  1(C) x 2(B) dlarray

    1.0000    1.0000

Y のすべての値が、01 の範囲になります。各観測値をすべてのチャネルにわたって合計した和は 1 になります。

入力引数

すべて折りたたむ

入力データ。書式化された dlarray または書式化されていない dlarray として指定します。X が書式化された dlarray でない場合、'DataFormat',FMT を使用して次元ラベルの形式を指定しなければなりません。

X には、'C' チャネル次元が含まれていなければなりません。

データ型: single | double

書式設定されていない入力データの次元の順序。'DataFormat' と、データの各次元のラベルを表す文字配列または string である FMT で構成されるコンマ区切りのペアとして指定します。FMT の各文字は次のいずれかでなければなりません。

  • 'S' — 空間

  • 'C' — チャネル

  • 'B' — バッチ (サンプルや観測値など)

  • 'T' — 時間 (シーケンスなど)

  • 'U' — 指定なし

'S' または 'U' のラベルが付いた次元については、複数回指定できます。'C''B''T' のラベルについては、1 回のみ使用できます。

入力データが書式化された dlarray でないときは、'DataFormat',FMT を指定しなければなりません。

例: 'DataFormat','SSCB'

データ型: char | string

出力引数

すべて折りたたむ

ソフトマックス活性化。dlarray として返されます。Y のすべての値は 01 になります。出力 Y の基となるデータ型は、入力 X と同じです。

入力データ X が書式化された dlarray である場合、Y の次元形式は X と同じになります。入力データが書式化された dlarray でない場合、Y は、入力データと同じ次元の順序をもつ書式化されていない dlarray になります。

詳細

すべて折りたたむ

ソフトマックス活性化

関数 softmax は、和が 1 となるようにチャネル次元全体で入力を正規化します。詳細については、softmaxLayer のリファレンス ページに記載されたソフトマックス層の定義を参照してください。

拡張機能

C/C++ コード生成
MATLAB® Coder™ を使用して C および C++ コードを生成します。

GPU コード生成
GPU Coder™ を使用して NVIDIA® GPU のための CUDA® コードを生成します。

バージョン履歴

R2019b で導入