1. 程式人生 > >機器學習中的Softmax函式

機器學習中的Softmax函式

在使用Logistic做線性迴歸時,如果我們遇到多分類的問題,我們可以考慮使用Softmax函式進行篩選

函式公式如下:

softmax(yi)=expyijexpyj

原理是對logistic迴歸所取得的評分(Score)逐個求對數,然後除以所有評分的對數的總和,可以理解為取評分最高的一個分類。而且Softmax所求得所有分類的概論加起來剛剛好等於1(參加附圖,x軸為最有可能分類的評分,藍色線為評分等於x的概率,黃色線是評分為x*0.5的概率,綠色線是x*0.2的概率)。

Softmax在三個分類時的結果

我們可以使用Python實現Softmax,而且只需要一行

import bumpy as np
def softmax(x):
    return np.exp(x)/np.sum(np.exp(x),axis=0)

通過softmax函式,我們就可以使用線性迴歸進行機器學習的多分類

P.S.可以使用以下程式碼,復現上圖的結果

import matplotlib.pyplot as plt
x = np.arange(-2, 4 , 0.1)
scores = np.vstack([x, 0.4 * x , 0.2 * x])

plt.plot(x, softmax(scores).T, linewidth=2)
plt.show()