1. 程式人生 > >神經網路(二):Softmax函式與多元邏輯迴歸

神經網路(二):Softmax函式與多元邏輯迴歸

一、 Softmax函式與多元邏輯迴歸

為了之後更深入地討論神經網路,本節將介紹在這個領域裡很重要的softmax函式,它常被用來定義神經網路的損失函式(針對分類問題)。 根據機器學習的理論,二元邏輯迴歸的模型公式可以寫為如下的形式:

(1)P(y=1)=11+eXWT+bP(y = 1) = \frac{1}{1 + e^{-XW^T + b}} \tag{1}

在公式(1)中,對分子、分母同時乘以,得到公式(2),其中,W0=W1WW_0 = W_1 - Wb0=b1bb_0 = b_1 - b

(2)P(y=1)

=eXW1T+b1eXW0T+b0+eXW1T+b1P(y=0)=eXW0T+b0eXW0T+b0+eXW1T+b1P(y = 1) = \frac{e^{XW_1^T + b_1}}{e^{XW_0^T + b_0} + e^{XW_1^T + b_1}}\\ P(y = 0) = \frac{e^{XW_0^T + b_0}}{e^{XW_0^T + b_0} + e^{XW_1^T + b_1}}\tag{2}

事實上,多元邏輯迴歸的模型公式也可以寫成類似的形式。具體地,假設分類問題有個類,分別記為,則多元邏輯迴歸的模型可以表示為如下的形式。

(3){P(y=1)=eXβ1+c11+j=1k1eXβj+cj...P(y=0)=11+j=1k1eXβj+cj\begin{cases} P(y = 1) = \frac{e^{X\beta_1 + c_1}}{1 +\sum_{j =1}^{k - 1} e^{X\beta_j + c_j}}\\ ... \\ P(y = 0) = \frac{1}{1 +\sum_{j =1}^{k - 1} e^{X\beta_j + c_j}} \end{cases} \tag{3}

+j=1k1eXβj+cj1(3)

不妨記WiT=W0T+βiW_i^T = W_0^T + \beta_ibi=b0+cib_i = b_0 + c_i。在公式(3)中對分子分母同時乘以eXW0T+b0e^{XW_0^T + b_0},可以得到公式(4)。

(4)P(y=l)=eXWlT+blj=1k1eXWjT+bjP(y = l) = \frac{e^{XW_l^T + b_l}}{\sum_{j = 1}^{k - 1}e^{XW_j^T + b_j}} \tag{4}

公式(4)中的函式其實就是softmax函式(softmax function),記為σ(Z)\sigma(Z)。這個函式的輸入是一個kk維的行向量,而輸出也是一個kk維行向量,向量的每一維都在區間中,而且加總的和等於1,如圖1所示。從某種程度上來講,softmax函式與sigmoid函式非常類似,它們都能將任意的實數“壓縮”到區間。

圖1

在softmax函式的基礎上,可以將邏輯迴歸轉換成圖的形式,這樣可以更直觀地在神經網路裡使用這個模型(在機器學習領域,複雜的神經網路常被表示為圖)。以二元邏輯迴歸為例,得到的影象如圖2所示。圖中的方塊表示線性模型。另外值得注意的是,圖2所表示的模型與《神經網路(一)》中的sigmoid神經元模型是一致的,只是圖2可以很輕鬆地擴充套件到多元分類問題(增加圖中方塊的數目)。

圖2

另外,藉助softmax函式,邏輯迴歸模型的損失函式可以被改寫為更簡潔的形式,如公式(5)所示。

(5)L=ij=0k11{y=j}ln(eXWlT+blj=1k1eXWjT+bj)L = -\sum_i \sum_{j = 0}^{k - 1}1_{\{y = j\}}\ln(\frac{e^{XW_l^T + b_l}}{\sum_{j = 1}^{k - 1}e^{XW_j^T + b_j}})\tag{5}

那麼,對於kk元分類問題,假設第ii個數據的類別是tt,用一個kk維的行向量θi=(θi,0,θi,1,...,θi,k1)\theta_i = (\theta_{i, 0}, \theta_{i, 1}, ..., \theta_{i, k - 1})來表示它的類別[^1]:這個行向量的第tt個維度等於1,即θi,t=1\theta_{i, t} = 1,其他維度等於0,即θi,j=0,jt\theta_{i, j} = 0, \forall j \neq t。基於此,邏輯迴歸在這一個資料點上的損失可以寫成softmax函式與行向量θi\theta_i矩陣乘法的形式(也可以認為是向量內積的形式),如公式(6)所示,其中Zi=(XiW0T+b0,...,XiWk1T+bk1)Z_i = (X_iW_0^T + b_0, ..., X_iW_{k - 1}^T + b_{k - 1})