Softmax関数
#Fleeting_Notes
Softmax関数(Softmax function)
ニューラルネットワークの出力層に使用されがち
多クラス分類問題で使用される
入力ベクトル$ \mathbf{z} = (z_1, z_2, ..., z_K) の$ m 番目要素のsoftmaxの場合の式
$ \mathrm{softmax}_m(\bm{z}) = \frac{\exp(\bm{z}_m)}{\sum_{k=1}^K \exp(\bm{z}_k)}
exp: $ e^x 、自然指数関数
不正確だけど型はsoftmax_m([float], int) -> float
出力部分は0~1の範囲の値(確率)が出てくる
確率分布
softmax: ベクトル → ベクトルの場合
$ \mathrm{softmax}(\bm{z}) = \frac{1}{\sum_{k=1}^K \exp(\bm{z}_k)} \begin{bmatrix}\exp(\bm{z}_1) \\ \exp(\bm{z}_2) \\ \vdots \\ \exp(\bm{z}_K)\end{bmatrix}
$ \frac{1}{\textstyle\sum_{k=1}^K \exp(\bm{z}_k)} はスカラー値なので左側にくる
不正確だけど型はsoftmax([float]) -> [float]
性質
$ \mathrm{softmax}_m(z) \ge 0
$ \sum^K_{m=1} \mathrm{softmax}_m(z) = 1
↑の定義になる前はクロスエントロピーだとかシャノンのエントロピーを変形したものを使ってるっぽい
実務?ではもっと性能の良い適応ソフトマックス(adaptive softmax)を使う?
Adaptive Softmaxとは|澁谷直樹 @ キカベン
確認用
Q. なぜSoftmax関数を使うのか
Q. どうやったらSoftmax関数の式が導出できるのか
Q. テンソルで捉えた場合どうなるか
Q. 単体とどう絡んでいるのか
Q. Leanで証明するとどんなものになるのか
関連
単体
確率分布
テンソル
ラグランジュの未定乗数法
argmax
entmax
sparsemax
logistic sigmoid関数
参考
本当は奥が深いSoftmaxとそのお仲間達 #機械学習 - Qiita
『大規模言語モデル入門』 P
大規模言語モデル入門 | 技術評論社
メモ
Cross entropyやsoftmaxに関するメモ
Adaptive Softmaxとは|澁谷直樹 @ キカベン
/kimiyuki/simplex
/kimiyuki/ラグランジュ未定乗数法
なぜソフトマックス関数にeを使うのか - Machine Morning
Argmax vs Softmax vs Sparsemax - Tao Li
調査用
Google.icon Softmax関数(日)
Google.icon Softmax function(英)
Wikipedia.icon
Softmax関数 - Wikipedia(日)
Softmax関数(検索) - Wikipedia(日)
Wikipedia.icon
Softmax function - Wikipedia(英)
Softmax function(検索) - Wikipedia(英)