Main Content

softmax

ソフトマックス伝達関数

説明

ヒント

深層学習でソフトマックス活性化を使用するには、softmaxLayer を使用するか、dlarray のメソッド softmax を使用します。

A = softmax(N) は、正味入力 (列) ベクトルの SQ 列の行列 N を取り、N の各列に適用されるソフトマックス競合関数の SQ 列の行列 A を返します。

Diagram showing the softmax function applied to a vector of four inputs. The function maps the input vector 0, 1, -0.5, 0.5 to the output vector 0.17, 0.46, 0.1, 0.28.

softmax はニューラル伝達関数です。伝達関数は、層の正味入力から層の出力を計算します。

info = softmax(code) は、この関数に関する情報を返します。詳細については、引数 code の説明を参照してください。

すべて折りたたむ

この例では、入力行列のソフトマックス伝達関数を計算してプロットする方法を示します。

入力行列 n を作成します。関数 softmax を呼び出し、結果をプロットします。

n = [0; 1; -0.5; 0.5];
a = softmax(n);
subplot(2,1,1), bar(n), ylabel('n')
subplot(2,1,2), bar(a), ylabel('a')

この伝達関数をネットワークの層 i に割り当てます。

net.layers{i}.transferFcn = 'softmax';

入力引数

すべて折りたたむ

正味入力列ベクトル。SQ 列の行列として指定します。

関数から取得したい情報。次のいずれかとして指定します。

  • 'name' は、この関数の名前を返します。

  • 'output' は、出力範囲 [min max] を返します。

  • 'active' は、アクティブな入力範囲 [min max] を返します。

  • 'fullderiv' は、dA_dNS×S×Q であるか、SQ 列であるかによって、1 または 0 を返します。

  • 'fpnames' は、関数パラメーターの名前を返します。

  • 'fpdefaults' は、既定の関数パラメーターを返します。

出力引数

すべて折りたたむ

出力行列。N の各列に適用されるソフトマックス競合関数の SQ 列の行列として返されます。

code 引数で指定されたオプションに従って、関数についての特定の情報が、文字列、ベクトル、スカラーのいずれかとして返されます。

アルゴリズム

a = softmax(n) = exp(n)/sum(exp(n))

バージョン履歴

R2006a より前に導入

参考

|