1. 程式人生 > >softmax函式的定義及求導

softmax函式的定義及求導

本文中(x0,x1,...,xm)代表一個向量,也就是一個m行1列的矩陣。

在監督式的深度學習中,輸入通常是一個向量,用x表示,輸出y則可以分為多種情況。

  • 標量。y表示輸入x屬於某一類別的概率。
  • 向量。此時輸入x可能屬於多個類別。y=(y0,y1,...,yn)。元素yi代表向量屬於類別i的可能性。數值越大,可能性越高。但是,深度學習模型輸出的yi不必然是介於0和1之間的概率值,softmax函式的作用就是對向量進行歸一化,生成概率值。

softmax函式的作用如下。

softmax((y0,y1,...,yn))=(y0Σni=0yi,...,ynΣni=0yi)
也就是說,softmax函式的輸入是一個向量,而其輸出也是一個向量,向量中的每個元素都是介於0和1之間的概率值。下面將以最簡單的形式來描述s
oftmax
函式的定義和求導問題。假設輸入是包含3個元素的向量,而輸出是包含2個元素的向量,也就說m=2,n=1,如下圖所示。
這裡寫圖片描述
圖中表示了從輸入到輸出的一個轉換過程,引數有6個,可以寫成一個矩陣的形式。
θ=[w00,w10,w20w01,w11,w21]這裡把與輸出向量中每個元素連結的權重組織成一行,所以共有兩行。令θ0=[w00,w10,w20]θ1=[w01,w11,w21],則有。
θ=[θ0θ1]h來代表轉換函式,則有如下式子。
y0=h(θ0,x)y1=h(θ1,x)
針對這個具體例子則有。
softmax((y0,y1))=(h(θ0,x)h(θ0,x)+h(θ1,x),h(θ1,x)h(θ0,
x)+h(θ1,x)
)

為了方便書寫,令z0=h(θ0,x)h(θ