意味 ソフトマックス関数は、 K 個 の実数からなるタプルzを入力として受け取り、入力された数値の指数に比例する K 個の確率からなる確率分布 に正規化します。つまり、ソフトマックスを適用する前は、タプルの要素の一部が負の値になったり、1 より大きくなったり、合計が 1 にならない可能性がありますが、ソフトマックスを適用すると、各要素は区間内に収まります。 ( 0 、 1 ) {\displaystyle (0,1)} そして、各要素の合計は1になるため、確率として解釈できます。さらに、入力要素が大きいほど、確率も大きくなります。
正式には、標準(単位)ソフトマックス関数σ : R K → ( 0 、 1 ) K {\displaystyle \sigma :\mathbb {R} ^{K}\to (0,1)^{K}} 、ここで K > 1 {\displaystyle K>1} タプルを受け取ります z = ( z 1 、 … 、 z K ) ∈ R K {\displaystyle \mathbf {z} =(z_{1},\dotsc ,z_{K})\in \mathbb {R} ^{K}} そしてベクトルの各成分を計算しますσ ( z ) ∈ ( 0 、 1 ) K \displaystyle \sigma (\mathbf {z} )\in (0,1)^{K}} と
σ ( z ) 私 = e z 私 ∑ j = 1 K e z j 。 {\displaystyle \sigma (\mathbf {z} )_{i}={\frac {e^{z_{i}}}{\sum _{j=1}^{K}e^{z_{j}}}}\,.}
言い換えれば、ソフトマックス関数は各要素に標準指数関数を適用する。 z 私 {\displaystyle z_{i}} 入力タプルのz {\displaystyle \mathbf {z} } (以下から成る)K {\displaystyle K} 実数)をこれらの指数関数の合計で割ることによって、これらの値を正規化します。正規化により、出力ベクトルの成分の合計がσ ( z ) {\displaystyle \sigma (\mathbf {z} )} は 1 です。「ソフトマックス」という用語は、入力タプル内の任意の最大値に対する指数関数の増幅効果に由来します。たとえば、標準ソフトマックスは( 1 、 2 、 8 ) {\displaystyle (1,2,8)} およそ( 0.001 、 0.002 、 0.997 ) {\displaystyle (0.001,0.002,0.997)} これは、結果における総単位重みのほぼすべてをタプルの最大要素(8)の位置に割り当てることに相当します。
一般に、e の代わりに別の基数 b > 0 を使用できます。上記と同様に、b > 1の場合、入力コンポーネントが大きいほど出力確率も大きくなり、 b の値を大きくすると、最大の入力値の位置付近に集中した確率分布が生成されます。逆に、0 < b < 1の場合、入力コンポーネントが小さいほど出力確率は大きくなり、 b の値を小さくすると、最小の入力値の位置付近に集中した確率分布が生成されます。b = e β {\displaystyle b=e^{\beta }} またはb = e − β {\displaystyle b=e^{-\beta }} [ a ] (実数β ) [ b ] は次の式を導きます: [ c ]
σ ( z ) 私 = e β z 私 ∑ j = 1 K e β z j または σ ( z ) 私 = e − β z 私 ∑ j = 1 K e − β z j のために 私 = 1 、 … 、 K 。 {\displaystyle \sigma (\mathbf {z} )_{i}={\frac {e^{\beta z_{i}}}{\sum _{j=1}^{K}e^{\beta z_{j}}}}{\text{ or }}\sigma (\mathbf {z} )_{i}={\frac {e^{-\beta z_{i}}}{\sum _{j=1}^{K}e^{-\beta z_{j}}}}{\text{ for }}i=1,\dotsc ,K.}
β の逆数に比例する値は、温度 と呼ばれることがある。β = 1 / k T {\textstyle \beta =1/kT} ここで、k は通常1またはボルツマン定数 であり、T は温度です。温度が高いほど出力分布はより均一になり(つまりエントロピーが 高くなり、「よりランダム」になります)、温度が低いほど出力分布はよりシャープになり、1つの値が支配的になります。
一部の分野では、基底は固定されており、固定スケール[ d ] に対応していますが、他の分野では、パラメータβ (またはT )が変化します。
ソフトマックス関数は、ロジスティック関数 の多変数への一般化である。
解釈
スムーズな引数最大値 Softmax 関数は、arg max 関数の滑らかな近似です。arg max 関数は、値がタプルの最大要素のインデックス である関数です。 「softmax」という名前は誤解を招く可能性があります。Softmax は滑らかな最大値 (つまり、最大値 関数の滑らかな近似 ) ではありません。 「softmax」という用語は、密接に関連するLogSumExp 関数にも使用されますが、これは滑らかな最大値です。このため、機械学習では「softmax」という用語が慣例となっていますが、より正確な用語である「softargmax」を好む人もいます。[ 3 ] このセクションでは、明確化のために「softargmax」という用語を使用します。
形式的には、arg max をカテゴリ出力を持つ関数として考える代わりに1 、 … 、 n {\displaystyle 1,\dots ,n} (インデックスに対応して)出力の ワンホット表現を用いたarg max関数を考えます(一意の最大argが存在すると仮定します)。 1 r g m 1 x ( z 1 、 … 、 z n ) = ( y 1 、 … 、 y n ) = ( 0 、 … 、 0 、 1 、 0 、 … 、 0 ) 、 {\displaystyle \operatorname {arg\,max} (z_{1},\,\dots ,\,z_{n})=(y_{1},\,\dots ,\,y_{n})=(0,\,\dots ,\,0,\,1,\,0,\,\dots ,\,0),} 出力座標y 私 = 1 {\displaystyle y_{i}=1} かつその場合に限り私 {\displaystyle i} arg max は( z 1 、 … 、 z n ) {\displaystyle (z_{1},\dots ,z_{n})} 、 意味z 私 {\displaystyle z_{i}} は、( z 1 、 … 、 z n ) {\displaystyle (z_{1},\,\dots ,\,z_{n})} 例えば、このエンコーディングでは1 r g m 1 x ( 1 、 5 、 10 ) = ( 0 、 0 、 1 ) 、 {\displaystyle \operatorname {arg\,max} (1,5,10)=(0,0,1),} 3番目の引数が最大値であるため。
これは、複数の引数の最大値(複数の等しい値)に一般化できます。z 私 {\displaystyle z_{i}} 最大値を仮定すると、1 をすべての最大引数で割ることによって、1 /k と なります。1 r g m 1 x ( 1 、 5 、 5 ) = ( 0 、 1 / 2 、 1 / 2 ) 、 {\displaystyle \operatorname {arg\,max} (1,\,5,\,5)=(0,\,1/2,\,1/2),} 2番目と3番目の引数はどちらも最大値なので。すべての引数が等しい場合は、これは単に1 r g m 1 x ( z 、 … 、 z ) = ( 1 / n 、 … 、 1 / n ) 。 {\displaystyle \operatorname {arg\,max} (z,\dots ,z)=(1/n,\dots ,1/n).} arg max の値が複数ある点z は特異点(または特異点であり、特異集合を形成する) であり、arg max が不連続 ( ジャンプ不連続 )である点です。一方、arg max が 1 つしかない点は、非特異点または正則点として知られています。
序論で示した最後の式を用いると、softargmax は arg max の滑らかな近似値となる。 β → ∞ {\displaystyle \beta \to \infty } 、softargmax は arg max に収束します。関数の収束にはさまざまな概念がありますが、softargmax は arg max に点ごと に収束します。つまり、各固定入力z に対して となります。 β → ∞ {\displaystyle \beta \to \infty } 、σ β ( z ) → 1 r g m 1 x ( z ) 。 {\displaystyle \sigma _{\beta }(\mathbf {z} )\to \operatorname {arg\,max} (\mathbf {z} ).} しかし、softargmax はarg max に一様に収束 しません。つまり、直感的には、異なる点が異なる速度で収束し、収束速度が任意に遅くなる可能性があるということです。実際、softargmax は連続ですが、arg max は 2 つの座標が等しい特異集合では連続ではありません。一方、連続関数の一様極限は連続です。一様に収束しない理由は、2 つの座標がほぼ等しい入力 (一方が最大値) の場合、arg max はどちらか一方のインデックスになるため、入力のわずかな変化が出力の大きな変化につながるからです。たとえば、σ β ( 1 、 1.0001 ) → ( 0 、 1 ) 、 {\displaystyle \sigma _{\beta }(1,\,1.0001)\to (0,1),} しかしσ β ( 1 、 0.9999 ) → ( 1 、 0 ) 、 {\displaystyle \sigma _{\beta }(1,\,0.9999)\to (1,\,0),} そしてσ β ( 1 、 1 ) = 1 / 2 {\displaystyle \sigma _{\beta }(1,\,1)=1/2} すべての入力に対して:点が特異集合に近いほど( x 、 x ) {\displaystyle (x,x)} 収束速度が遅くなるほど、収束も遅くなります。ただし、softargmax は非特異集合上でコンパクトに収束します。
逆に、 β → − ∞ {\displaystyle \beta \to -\infty } 、softargmax は同様に arg min に収束します。ここで、特異集合は 2 つの arg min値を持つ点です。 トロピカル解析 の用語では、softmax はarg max と arg min の変形 または「量子化」であり、 max-plus 半環 (それぞれmin-plus 半環 )の代わりにlog 半環 を使用することに対応し、極限を取って arg max または arg min を復元することを「トロピカル化」または「逆量子化」と呼びます。
また、任意の固定β に対して、入力が1つある場合、 z 私 {\displaystyle z_{i}} 温度に対して他 のものよりはるかに大きい。 T = 1 / β {\displaystyle T=1/\beta } 出力はおおよそarg maxになります。例えば、10の差は温度1に比べて大きい値です。 σ ( 0 、 10 ) := σ 1 ( 0 、 10 ) = ( 1 / ( 1 + e 10 ) 、 e 10 / ( 1 + e 10 ) ) ≈ ( 0.00005 、 0.99995 ) {\displaystyle \sigma (0,\,10):=\sigma _{1}(0,\,10)=\left(1/\left(1+e^{10}\right),\,e^{10}/\left(1+e^{10}\right)\right)\approx (0.00005,\,0.99995)} しかし、温度に対する差が小さい場合、その値はarg maxに近くありません。例えば、100の温度に対して10の差は小さいと言えます。 σ 1 / 100 ( 0 、 10 ) = ( 1 / ( 1 + e 1 / 10 ) 、 e 1 / 10 / ( 1 + e 1 / 10 ) ) ≈ ( 0.475 、 0.525 ) 。 {\displaystyle \sigma _{1/100}(0,\,10)=\left(1/\left(1+e^{1/10}\right),\,e^{1/10}/\left(1+e^{1/10}\right)\right)\approx (0.475,\,0.525).} として β → ∞ {\displaystyle \beta \to \infty } 、温度はゼロになります。T = 1 / β → 0 {\displaystyle T=1/\beta \to 0} そのため、最終的にはすべての差が(温度の低下に対して)大きくなり、これが極限挙動の別の解釈となる。
統計力学 統計力学 では、softargmax 関数はボルツマン分布 (またはギブス分布 )として知られています。[ 5 ] : 7 インデックスセット1 、 … 、 k {\displaystyle {1,\,\dots ,\,k}} はシステムのミクロ状態 であり、入力はz 私 {\displaystyle z_{i}} は、その状態のエネルギーです。分母は分配関数 として知られており、しばしばZ で表されます。係数βは 冷たさ (または熱力学的ベータ 、または逆温度 )と呼ばれます。
アプリケーション ソフトマックス関数は、多項 ロジスティック回帰 (ソフトマックス回帰とも呼ばれる)[ 2 ] : 206~209 [ 6 ] 、多クラス線形判別分析 、ナイーブベイズ分類器 、人工ニューラルネットワーク [ 7 ] など、さまざまな多クラス分類手法で使用されています。具体的には、多項ロジスティック回帰と線形判別分析では、関数への入力はK 個 の異なる線形関数の結果であり、サンプルタプル x と重みベクトルw が与えられた場合のj 番目のクラスの予測確率は次のようになります。
P ( y = j ∣ x ) = e x T w j ∑ k = 1 K e x T w k {\displaystyle P(y=j\mid \mathbf {x} )={\frac {e^{\mathbf {x} ^{\mathsf {T}}\mathbf {w} _{j}}}{\sum _{k=1}^{K}e^{\mathbf {x} ^{\mathsf {T}}\mathbf {w} _{k}}}}}
これはK個 の線形関数の合成 と見なすことができる。x ↦ x T w 1 、 … 、 x ↦ x T w K {\displaystyle \mathbf {x} \mapsto \mathbf {x} ^{\mathsf {T}}\mathbf {w} _{1},\ldots ,\mathbf {x} \mapsto \mathbf {x} ^{\mathsf {T}}\mathbf {w} _{K}} そしてソフトマックス関数(x T w {\displaystyle \mathbf {x} ^{\mathsf {T}}\mathbf {w} } 内積を表すx {\displaystyle \mathbf {x} } そしてw {\displaystyle \mathbf {w} } この操作は、次のように定義される線形演算子を適用することと同等です。w {\displaystyle \mathbf {w} } タプルへx {\displaystyle \mathbf {x} } これにより、元の(おそらく高次元の)入力がK 次元空間のベクトルに変換される。R K {\displaystyle \mathbb {R} ^{K}} 。
ニューラルネットワーク 標準的なソフトマックス関数は、ニューラルネットワークベースの分類器の最終層でよく使用されます。このようなネットワークは通常、対数損失 (または交差エントロピー )方式で学習され、多項ロジスティック回帰の非線形版となります。
この関数はタプルと特定のインデックスをマッピングします私 {\displaystyle i} 実数値に近づけるためには、導関数は指数を考慮に入れる必要がある。
∂ ∂ q k σ ( q 、 私 ) = σ ( q 、 私 ) ( δ 私 k − σ ( q 、 k ) ) 。 {\displaystyle {\frac {\partial }{\partial q_{k}}}\sigma ({\textbf {q}},i)=\sigma ({\textbf {q}},i)(\delta _{ik}-\sigma ({\textbf {q}},k)).}
この式はインデックスに関して対称です私 、 k {\displaystyle i,k} したがって、次のように表現することもできます。
∂ ∂ q k σ ( q 、 私 ) = σ ( q 、 k ) ( δ 私 k − σ ( q 、 私 ) ) 。 {\displaystyle {\frac {\partial }{\partial q_{k}}}\sigma ({\textbf {q}},i)=\sigma ({\textbf {q}},k)(\delta _{ik}-\sigma ({\textbf {q}},i)).}
ここでは、簡略化のためにクロネッカーのデルタが使用されています( シグモイド関数 の導関数は、関数自体によって表現されます)。
数値計算の安定性を確保するため、入力タプルから最大値を減算する方法が一般的に用いられます。この方法は、理論的には出力や導関数を変更するものではありませんが、計算される最大指数値を直接制御することで安定性を向上させます。
関数がパラメータでスケーリングされている場合β {\displaystyle \beta } すると、これらの式は で乗算されなければならないβ {\displaystyle \beta } 。
ソフトマックス活性化関数を使用する確率モデルについては、多項ロジットを 参照してください。
計算複雑性と対策 ニューラルネットワークアプリケーションでは、可能な結果の数K はしばしば大きくなります。たとえば、数百万の単語を含む可能性のある語彙から最も可能性の高い結果を予測するニューラル言語モデル の場合などです。 [ 9 ] これにより、ソフトマックス層の計算 (つまり、行列乗算によって決定する) が複雑になる可能性があります。z 私 {\displaystyle z_{i}} (ソフトマックス関数自体の適用に続いて)計算コストが高い。[ 9 ] [ 10 ] さらに、このようなニューラルネットワークをトレーニングするための勾配降下 バックプロパゲーション 法では、トレーニング例ごとにソフトマックスを計算する必要があり、トレーニング例の数も大きくなる可能性がある。ソフトマックスの計算コストは、より大規模なニューラル言語モデルの開発における主要な制限要因となり、トレーニング時間を短縮するためのさまざまな対策が求められている。[ 9 ] [ 10 ]
より効率的な計算のためにソフトマックス層を再編成するアプローチには、階層型ソフトマックス と微分型ソフトマックス がある。[ 9 ] 階層型ソフトマックス(2005年にMorinとBengio によって導入)は、結果(語彙)が葉であり、中間ノードが適切に選択された結果の「クラス」であり、潜在変数 を形成する二分木構造を使用する。[ 10 ] [ 11 ] 葉(結果)の望ましい確率(ソフトマックス値)は、根からその葉までのパス上のすべてのノードの確率の積として計算できる。[ 10 ] 理想的には、木がバランスが取れている場合、これにより計算の複雑さ が軽減される。O ( K ) {\displaystyle O(K)} にO ( ログ 2 K ) {\displaystyle O(\log _{2}K)} [ 11 ] 実際には、結果は結果をクラスにクラスタリングするための適切な戦略を選択するかどうかに依存します。[ 10 ] [ 11 ] スケーラビリティを実現するために、Google のword2vec モデル (2013 年に導入) ではハフマン木が 使用されました。[ 9 ]
2つ目の対策は、完全な正規化係数の計算を回避する修正損失関数を使用して、(トレーニング中に)ソフトマックスを近似することに基づいています。[ 9 ] これには、正規化の合計を結果のサンプルに制限する方法(重要度サンプリング、ターゲットサンプリングなど)が含まれます。[ 9 ] [ 10 ]
数値アルゴリズム 標準ソフトマックスは、大きな指数関数のため数値的に不安定です。安全なソフトマックス 法では、代わりにσ ( z ) 私 = e β ( z 私 − m ) ∑ j = 1 K e β ( z j − m ) {\displaystyle \sigma (\mathbf {z} )_{i}={\frac {e^{\beta (z_{i}-m)}}{\sum _{j=1}^{K}e^{\beta (z_{j}-m)}}}} どこm = 最大 私 z 私 {\displaystyle m=\max _{i}z_{i}} は関係する最大のスコアです。これを引くことで、指数計算の結果が最大でも 1 になることが保証されます。 数学的性質の並進不変性を参照してください。
トランスフォーマー のアテンションメカニズム は、3 つの引数を取ります。「クエリベクトル」q {\displaystyle q} 「キーベクトル」のリストk 1 、 … 、 k N {\displaystyle k_{1},\dots ,k_{N}} 、そして「値ベクトル」のリストv 1 、 … 、 v N {\displaystyle v_{1},\dots ,v_{N}} 、そして値ベクトルに対するソフトマックス重み付き和を出力します。o = ∑ 私 = 1 N e q T k 私 − m ∑ j = 1 N e q T k j − m v 私 {\displaystyle o=\sum _{i=1}^{N}{\frac {e^{q^{T}k_{i}-m}}{\sum _{j=1}^{N}e^{q^{T}k_{j}-m}}}v_{i}} 標準的なソフトマックス法では、入力に対して複数のループ処理が必要となるため、メモリ帯域幅がボトルネックと なる。
FlashAttention アルゴリズムを使用すれば、GPUクラスタ上で効率的に計算できる。
数学的性質 幾何学的にソフトマックス関数はユークリッド空間をマッピングする R K {\displaystyle \mathbb {R} ^{K}} 標準 の境界 まで( K − 1 ) {\displaystyle (K-1)} -単体 、次元を1つ減らす(範囲は( K − 1 ) {\displaystyle (K-1)} 次元単体K {\displaystyle K} (次元空間)は、すべての出力の合計が 1 になるという線形制約 により、超平面 上に位置することを意味します。
主対角線に沿って( x 、 x 、 … 、 x ) 、 {\displaystyle (x,\,x,\,\dots ,\,x),} softmax は出力の均一分布です。( 1 / n 、 … 、 1 / n ) {\displaystyle (1/n,\dots ,1/n)} :同じ得点であれば、同じ確率になる。
より一般的には、softmax は各座標で同じ値による平行移動に対して不変です。c = ( c 、 … 、 c ) {\displaystyle \mathbf {c} =(c,\,\dots ,\,c)} 入力に対してz {\displaystyle \mathbf {z} } 収量σ ( z + c ) = σ ( z ) {\displaystyle \sigma (\mathbf {z} +\mathbf {c} )=\sigma (\mathbf {z} )} なぜなら、各指数に同じ係数を掛けるからである。e c {\displaystyle e^{c}} (なぜならe z 私 + c = e z 私 ⋅ e c {\displaystyle e^{z_{i}+c}=e^{z_{i}}\cdot e^{c}} )、したがって比率は変化しません。 σ ( z + c ) j = e z j + c ∑ k = 1 K e z k + c = e z j ⋅ e c ∑ k = 1 K e z k ⋅ e c = σ ( z ) j 。 {\displaystyle \sigma (\mathbf {z} +\mathbf {c} )_{j}={\frac {e^{z_{j}+c}}{\sum _{k=1}^{K}e^{z_{k}+c}}}={\frac {e^{z_{j}}\cdot e^{c}}{\sum _{k=1}^{K}e^{z_{k}}\cdot e^{c}}}=\sigma (\mathbf {z} )_{j}.}
幾何学的に、softmax は対角線に沿って一定です。これは削除される次元であり、softmax の出力が入力スコアの変換 (スコアを 0 に選択) に依存しないことに対応します。合計がゼロであると仮定することで入力スコアを正規化できます (平均を減算します。c {\displaystyle \mathbf {c} } どこc = 1 n ∑ z 私 {\textstyle c={\frac {1}{n}}\sum z_{i}} そして、softmax は合計がゼロになる点の超平面を取ります。∑ z 私 = 0 {\textstyle \sum z_{i}=0} 合計が 1 になる正の値の開単体へ∑ σ ( z ) 私 = 1 {\textstyle \sum \sigma (\mathbf {z} )_{i}=1} 指数が0から1に変化するのと同様に、e 0 = 1 {\displaystyle e^{0}=1} そして、それは肯定的である。
対照的に、ソフトマックスはスケーリングに対して不変ではありません。例えば、σ ( ( 0 、 1 ) ) = ( 1 / ( 1 + e ) 、 e / ( 1 + e ) ) {\displaystyle \sigma {\bigl (}(0,\,1){\bigr )}={\bigl (}1/(1+e),\,e/(1+e){\bigr )}} しかしσ ( ( 0 、 2 ) ) = ( 1 / ( 1 + e 2 ) 、 e 2 / ( 1 + e 2 ) ) 。 {\displaystyle \sigma {\bigl (}(0,2){\bigr )}={\bigl (}1/\left(1+e^{2}\right),\,e^{2}/\left(1+e^{2}\right){\bigr )}.}
標準ロジスティック関数は 、2次元空間における1次元軸、例えば(x, y)平面の x 軸の特殊なケースです。1つの変数は0に固定されています(例えばz 2 = 0 {\displaystyle z_{2}=0} )、 それでe 0 = 1 {\displaystyle e^{0}=1} また、もう一方の変数は変化する可能性があり、それをz 1 = x {\displaystyle z_{1}=x} 、 それでe z 1 / ∑ k = 1 2 e z k = e x / ( e x + 1 ) 、 {\textstyle e^{z_{1}}/\sum _{k=1}^{2}e^{z_{k}}=e^{x}/\left(e^{x}+1\right),} 標準ロジスティック関数、そしてe z 2 / ∑ k = 1 2 e z k = 1 / ( e x + 1 ) 、 {\textstyle e^{z_{2}}/\sum _{k=1}^{2}e^{z_{k}}=1/\left(e^{x}+1\right),} その補数(つまり、合計すると1になる)。1次元入力は、別の方法として次の線で表すこともできます。( x / 2 、 − x / 2 ) {\displaystyle (x/2,\,-x/2)} 出力付きe x / 2 / ( e x / 2 + e − x / 2 ) = e x / ( e x + 1 ) {\displaystyle e^{x/2}/\left(e^{x/2}+e^{-x/2}\right)=e^{x}/\left(e^{x}+1\right)} そしてe − x / 2 / ( e x / 2 + e − x / 2 ) = 1 / ( e x + 1 ) 。 {\displaystyle e^{-x/2}/\left(e^{x/2}+e^{-x/2}\right)=1/\left(e^{x}+1\right).}
グラデーション ソフトマックス関数は、 LogSumExp 関数の勾配でもあります。∂ ∂ z 私 ロンドン・スクール・オブ・エコノミクス ( z ) = exp z 私 ∑ j = 1 K exp z j = σ ( z ) 私 、 のために 私 = 1 、 … 、 K 、 z = ( z 1 、 … 、 z K ) ∈ R K 、 {\displaystyle {\frac {\partial }{\partial z_{i}}}\operatorname {LSE} (\mathbf {z} )={\frac {\exp z_{i}}{\sum _{j=1}^{K}\exp z_{j}}}=\sigma (\mathbf {z} )_{i},\quad {\text{ for }}i=1,\dotsc ,K,\quad \mathbf {z} =(z_{1},\,\dotsc ,\,z_{K})\in \mathbb {R} ^{K},} ここで、LogSumExp関数は次のように定義されます。ロンドン・スクール・オブ・エコノミクス ( z 1 、 … 、 z n ) = ログ ( exp ( z 1 ) + ⋯ + exp ( z n ) ) {\displaystyle \operatorname {LSE} (z_{1},\,\dots ,\,z_{n})=\log \left(\exp(z_{1})+\cdots +\exp(z_{n})\right)} 。
ソフトマックスの勾配は∂ z j σ 私 = σ 私 ( δ 私 j − σ j ) {\displaystyle \partial _{z_{j}}\sigma _{i}=\sigma _{i}(\delta _{ij}-\sigma _{j})} 。
歴史 ソフトマックス関数は、統計力学 において、基礎論文ボルツマン(1868) [ 12 ] でボルツマン分布 として使用され、影響力のある教科書ギブス(1902) [ 13 ] で形式化され普及しました。
意思決定理論 におけるソフトマックスの使用は、 R. Duncan Luce [ 14 ] : 1 に帰せられており、 彼は合理的選択理論 における無関係な選択肢の独立性 の公理を使用して、相対的選好に関するLuce の選択公理 のソフトマックスを導き出しました。
機械学習において、「ソフトマックス」という用語は、1989年の2つの会議論文、Bridle (1990a) : [ 14 ] : 1 およびBridle (1990b) : [ 3 ]で John S. Bridle に帰属します。
本稿では、複数の出力を持つフィードフォワード非線形ネットワーク(多層パーセプトロン、MLP)について考察する。ネットワークの出力を、入力に基づいて条件付けられた選択肢(例えば パターンクラス)の確率として扱う。適切な出力非線形性と、ネットワークのパラメータ(例えば 重み)の適応のための適切な基準を模索する。ここでは、2つの修正について説明する。1つは二乗誤差最小化の代替となる確率スコアリング、もう1つはロジスティック非線形性の正規化指数関数(ソフトマックス)多入力一般化である。 [ 15 ] : 227
どのような入力に対しても、出力はすべて正の値でなければならず、それらの合計は1でなければならない。
制約のない値の集合が与えられた場合、 V j ( x ) {\displaystyle V_{j}(x)} 、正規化指数変換を用いることで、両方の条件を満たすことができます。 Q j ( x ) = e V j ( x ) / ∑ k e V k ( x ) {\displaystyle Q_{j}(x)=\left.e^{V_{j}(x)}\right/\sum _{k}e^{V_{k}(x)}} この変換は、出力層全体に作用するロジスティック関数の多入力一般化と考えることができます。入力値の順位を保持し、最大値を選択する「勝者総取り」操作の微分可能な一般化です。このため、私たちはこれをソフトマックス と呼ぶのが好きです。[ 16 ] : 213
例 入力が(1, 2, 3, 4, 1, 2, 3) の場合、ソフトマックスはおよそ(0.024, 0.064, 0.175, 0.475, 0.024, 0.064, 0.175) となります。出力は、元の入力の「4」があった場所に最も重みが集中しています。この関数は通常、最大値を強調し、最大値より著しく小さい値を抑制するために使用されます。ただし、温度 の変化によって出力が変わることに注意してください。温度を10倍すると、入力値は実質的に(0.1, 0.2, 0.3, 0.4, 0.1, 0.2, 0.3) となり、ソフトマックス値はおよそ(0.125, 0.138, 0.153, 0.169, 0.125, 0.138, 0.153) となります。これは、高温では最大値が強調されないことを示しています。
Python コードを用いたこの例の計算:
>>> import numpy as np >>> z = np.array ([ 1.0 , 2.0 , 3.0 , 4.0 , 1.0 , 2.0 , 3.0 ] ) >>> beta = 1.0 >>> np.exp ( beta * z ) / np.sum ( np.exp ( beta * z )) array ( [ 0.02364054 , 0.06426166, 0.1746813, 0.474833, 0.02364054, 0.06426166, 0.1746813 ] )
参考文献 ↑ Goodfellow, Ian ; Bengio, Yoshua ; Courville, Aaron (2016). "6.2.2.3 多重ヌーリ出力分布のためのソフトマックスユニット" .ディープラーニング . MIT Press. pp. 180–184 . ISBN 978-0-26203561-3 。1 2 ビショップ、クリストファー M. (2006). パターン認識と機械学習 . Springer. ISBN 0-387-31073-8 。1 2 佐古雄作 (2018-06-02). 「ソフトマックス」という用語にイライラしていませんか? . Medium . ↑ LeCun, Yann ; Chopra, Sumit; Hadsell, Raia; Ranzato, Marc'Aurelio; Huang, Fu Jie (2006). "エネルギーベース学習のチュートリアル" (PDF) . Gökhan Bakır; Thomas Hofmann; Bernhard Schölkopf; Alexander J. Smola ; Ben Taskar; SVN Vishwanathan (編) 『構造化データの予測』所収 。ニューラル情報処理シリーズ。MIT Press。ISBN 978-0-26202617-8 。↑ 「教師なし特徴学習と深層学習チュートリアル」 。ufldl.stanford.edu 。 2024 年3月25日 取得 。 ↑ ai-faqソフトマックス活性化関数とは何ですか? ↑ Sutton, RS および Barto AG『強化学習入門』 MIT Press、ケンブリッジ、マサチューセッツ州、1998年。ソフトマックス行動選択 1 2 3 4 5 6 7 Onal, Kezban Dilek; Zhang, Ye; Altingovde, Ismail Sengor; Rahman, Md Mustafizur; Karagoz, Pinar; Braylan, Alex; Dang, Brandon; Chang, Heng-Lu; Kim, Henna; McNamara, Quinten; Angert, Aaron (2018-06-01). "ニューラル情報検索: 初期の終わり" . Information Retrieval Journal . 21 (2): 111– 182. doi : 10.1007/s10791-017-9321-y . hdl : 11245.1/008d6e8f-df13-4abf-8ae9-6ff2e17377f3 . ISSN 1573-7659 。S2CID 21684923 。 1 2 3 4 5 6 Chen, Wenlin; Grangier, David; Auli, Michael (2016 年 8 月) 「大規模語彙ニューラル言語モデルのトレーニング戦略」 . 第 54 回計算言語学会年次大会論文集 (第 1 巻: 長編論文) . ドイツ、ベルリン: 計算言語学会: 1975–1985 . arXiv : 1512.04906 . doi : 10.18653/v1/P16-1186 . S2CID 6035643 . 1 2 3 Morin, Frederic; Bengio, Yoshua (2005-01-06). "階層型確率ニューラルネットワーク言語モデル" (PDF) . 人工知能と統計に関する国際ワークショップ . PMLR: 246–252 . ↑ ボルツマン、ルートヴィヒ (1868)。 "Studien über das Gleichgewicht der lebendigen Kraft zwischen bewegten materiellen Punkten" [ 移動する物質点間の生命力のバランスに関する研究 ] 。 ウィーン・ベリヒテ 。 58 : 517–560 . ↑ Gibbs, Josiah Willard (1902). "Elementary Principles in Statistical Mechanics" . Nature . 66 (1708): 291. Bibcode : 1902Natur..66..291B . doi : 10.1038/066291a0 . 1 2 Gao, Bolin; Pavel, Lacra (2017). "On the Properties of the Softmax Function with Application in Game Theory and Reinforcement Learning". arXiv : 1704.00805 [ math.OC ]. ↑ Bridle, John S. (1990a). Soulié FF; Hérault J. (eds.). Probabilistic Interpretation of Feedforward Classification Network Outputs, with Relationships to Statistical Pattern Recognition . Neurocomputing: Algorithms, Architectures and Applications (1989). NATO ASI Series (Series F: Computer and Systems Sciences). Vol. 68. Berlin, Heidelberg: Springer. pp. 227– 236. doi : 10.1007/978-3-642-76153-9_28 . ↑ Bridle, John S. (1990b). DS Touretzky (編). 確率モデル認識アルゴリズムをネットワークとしてトレーニングすると、パラメータの最大相互情報量推定につながる可能性があります 。 ニューラル情報処理システムの進歩 2 (1989). Morgan-Kaufmann. ↑ 「Speeding Up Entmax」マクサト・テゼクバエフ、ヴァシリーナ・ニコウリナ、マティアス・ガレ、ゼニスベク・アシルベコフ著、 https://arxiv.org/abs/2111.06832v3