Softmax関数
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)}
不正確だけど型は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)を使う?
確認用
Q. なぜSoftmax関数を使うのか
Q. どうやったらSoftmax関数の式が導出できるのか
Q. テンソルで捉えた場合どうなるか
Q. 単体とどう絡んでいるのか
Q. Leanで証明するとどんなものになるのか
関連
参考
メモ
調査用
Wikipedia.icon
Wikipedia.icon