先備知識 (Prerequisites)
- 微積分 (Calculus): 使用乘積法則 (Product rule) 以及對數函數的微分求導。
- 最佳化 (Optimization): 解決受約束最佳化問題 (constrained optimization problems) 的拉格朗日乘子法 (Method of Lagrange Multipliers)。
- 機率論 (Probability Theory): 類別機率 (categorical probabilities) 的總和必須為 1 的約束。
- Softmax 函數 (Softmax Function): 一種能將任意一組實數純量轉換為總和等於 1 的機率分佈的數學操作函數。
詳細推導步驟 (Step-by-Step Derivation)
步驟 1: 定義目標函數與約束函數 (Define the objective and constraint functions)
我們想要最大化以下新的目標函數 (objective function):
f(π)=∑_j=1Kπj(Nj−logπj)
受限於等式約束 (equality constraint):
∑∗j=1Kπj=1⟹g(π)=∑∗j=1Kπj−1=0
(注意:和 (a) 小題相同,我們短暫地忽略不等式約束 πj≥0。我們將先找出一個駐點 (stationary point),並驗證所得的解在數學上產生了非負值。)
步驟 2: 建構拉格朗日函數 (Form the Lagrangian)
使用標準形式 L(π,λ)=f(π)−λg(π),我們建構拉格朗日函數 (Lagrangian function):
L(π,λ)=∑∗j=1Kπj(Nj−logπj)−λ(∑∗j=1Kπj−1)
步驟 3: 對 πj 找出駐點 (Find the stationary point with respect to πj)
我們針對特定的 πj 對 L 計算偏導數 (partial derivative)。請注意在處理 −πjlogπj 個別項時必須使用乘積法則:
∂πj∂L=∂πj∂(πjNj−πjlogπj−λπj)
∂πj∂L=Nj−(1⋅logπj+πj⋅πj1)−λ
∂πj∂L=Nj−logπj−1−λ
將這個導數設為零:
Nj−logπj−1−λ=0
步驟 4: 以 λ 表示 πj (Express πj in terms of λ)
重新整理上述方程式來尋解 πj:
logπj=Nj−1−λ
將兩邊取指數函數 (exponential):
πj=exp(Nj−1−λ)=exp(Nj)⋅exp(−1−λ)
步驟 5: 帶入等式約束以求出 λ (Enforce the equality constraint to solve for λ)
我們將導出的 πj 運算式替換回代表機率和為一的約束條件中:
∑∗j=1Kπj=∑∗j=1K[exp(Nj)exp(−1−λ)]=1
由於 exp(−1−λ) 項不依賴於指標 j,我們可以將其提出至總和之外:
exp(−1−λ)∑_j=1Kexp(Nj)=1
求解 exp(−1−λ):
exp(−1−λ)=∑_k=1Kexp(Nk)1
*(在分母我們使用指標 k 是為了避免與後續代入操作發生混淆。)*
步驟 6: 代回求出最終解 (Substitute back to find the final solution)
將步驟 5 得到的結果代回步驟 4 所求得出的 πj 表達式中:
π∗j=exp(Nj)⋅exp(−1−λ)
πj=exp(Nj)⋅∑∗k=1Kexp(N∗k)1
πj=∑∗k=1Kexp(Nk)exp(Nj)
驗證 (Verification):鑑於指數函數 (exponential function) 都會產生嚴格的正數值 (對所有實數 x,exp(x)>0),因此我們可以確定 πj>0。這在其本質上就已經滿足了不可為負數值的嚴格邊界限制。此一最終求得的特殊函數形式也就是赫赫有名的 Softmax 函數 (Softmax function)。