Softmax

Softmax 能將一個含任意實數的 K 維向量壓縮到另一個 K 維實向量中,使得每一個元素的範圍都在 (0, 1) 之間,並且所有元素的和為 1。


其公式為:


簡單說就是將每個數值做指數的乘冪,然後用指數乘冪的加總值去除以個別指數的乘冪值即可。


這邊實際來看個例子,假設我們有一個向量值。

[1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0]


首先取其對應的指數乘冪值。

[2.71828 ^ 1, 2.71828 ^ 2, 2.71828 ^ 3 , 2.71828 ^ 4, 2.71828 ^ 1, 2.71828 ^ 2, 2.71828 ^ 3]
= [2.71828, 7.3890461584, 20.0854963915, 54.598003131, 2.71828, 7.3890461584, 20.0854963915]


將指數乘冪值加總。

2.71828 + 7.3890461584 + 20.0854963915 + 54.598003131 + 2.71828 + 7.3890461584 + 20.0854963915
= 114.983648231


將指數乘冪值除上指數乘冪值的加總,即可求得對應的 Softmax 向量。

[2.71828 / 114.983648231, 7.3890461584 / 114.983648231, 20.0854963915 / 114.983648231, 54.598003131 / 114.983648231, 2.71828 / 114.983648231, 7.3890461584 / 114.983648231, 20.0854963915 / 114.983648231]
= [0.02364057882, 0.06426171261, 0.17468132817, 0.47483276075, 0.02364057882, 0.06426171261, 0.17468132817]