Softmax函式

數學,尤其是機率論和相關領域中,Softmax函式,或稱歸一化指數函式,是邏輯函式的一種推廣。

Softmax函式實際上是有限項離散機率分布的梯度對數歸一化。

基本介紹

  • 中文名:Softmax函式
  • 外文名:Softmax function
  • 別稱:歸一化指數函式
  • 概述:邏輯函式的一種推廣
  • 學科:數理科學
簡介,Softmax函式有關的例子,Softmax 與 Sigmoid 的 異同,

簡介

在數學,尤其是機率論和相關領域中,Softmax函式,或稱歸一化指數函式,是邏輯函式的一種推廣。它能將一個含任意實數的K維向量
“壓縮”到另一個K維實向量
中,使得每一個元素的範圍都在
之間,並且所有元素的和為1。
該函式的形式通常按下面的式子給出:
其中, j = 1, …, K
Softmax函式實際上是有限項離散機率分布的梯度對數歸一化。因此,Softmax函式在包括多項邏輯回歸,多項線性判別分析樸素貝葉斯分類器人工神經網路等的多種基於機率的多分類問題方法中都有著廣泛套用。特別地,在多項邏輯回歸和線性判別分析中,函式的輸入是從K個不同的線性函式得到的結果,而樣本向量x屬於第j個分類的機率為:
這可以被視作K個線性函式
Softmax函式的複合
)。

Softmax函式有關的例子

輸入向量[1,2,3,4,1,2,3]對應的Softmax函式的值為[0.024,0.064,0.175,0.475,0.024,0.064,0.175]。輸出向量中擁有最大權重的項對應著輸入向量中的最大值“4”。這也顯示了這個函式通常的意義:對向量進行歸一化,凸顯其中最大的值並抑制遠低於最大值的其他分量。
下面是使用Python進行函式計算的示例代碼:
import mathz = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0]z_exp = [math.exp(i) for i in z]  print(z_exp)  # Result: [2.72, 7.39, 20.09, 54.6, 2.72, 7.39, 20.09]sum_z_exp = sum(z_exp)print(sum_z_exp)  # Result: 114.98 softmax = [round(i / sum_z_exp, 3) for i in z_exp]print(softmax)  # Result: [0.024, 0.064, 0.175, 0.475, 0.024, 0.064, 0.175]
Julia的範例:
julia> A = [1.0, 2.0, 3.0, 4.0, 1.0, 2.0, 3.0]7-element Array{Float64,1}: 1.0  2.0  3.0  4.0  1.0 2.0  3.0 julia> exp.(A) ./ sum(exp.(A)) 7-element Array{Float64,1}:  0.0236405 0.0642617  0.174681  0.474833  0.0236405  0.0642617  0.174681

Softmax 與 Sigmoid 的 異同

Softmax
Sigmoid
公式
本質
離散機率分布
非線性映射
任務
多分類
二分類
定義域
某個一維向量
單個數值
值域
[0,1]
(0,1)
結果之和
一定為1
為某個正數
Sigmoid就是極端情況(類別數為2)下的Softmax。

相關詞條

熱門詞條

聯絡我們