Logistic Regression,Softmax以及Cross Entropy

I. Logistic Regression(LR)

1. 從線性回歸說起

線性回歸(Linear Regression)是一個(gè)回歸模型,用線性關(guān)系來擬合輸出y和輸入x之間的關(guān)系:
f(\boldsymbol x) = w_1x_1 + w_2x_2 + ... + w_nx_n + b \tag1
或者可以簡寫
f(\boldsymbol x) = \boldsymbol {w^Tx} +b \tag2
\boldsymbol {x} \in \mathbb{R^n}, \boldsymbol {w} \in \mathbb{R^n}, b \in \mathbb{R}.但線性回歸只能解決連續(xù)值的回歸問題。如果延伸到分類問題,自然的想法是找一個(gè)連續(xù)可微函數(shù)g(\cdot)將式(2)的輸出值f(\boldsymbol x)映射到一個(gè)概率范圍[0,1]內(nèi)。如果選擇sigmoid函數(shù),就成為了我們要討論的logistic regression模型。sigmoid函數(shù)如式(3)所示
y = \frac{1}{1+e^{-z}} \tag3

2. Logistic Regression

Logistic Regression是一個(gè)二分類模型,定義為如下的條件概率函數(shù)
P(Y=1|x) = \frac {e^{\boldsymbol {w^Tx}+b}}{1+e^{\boldsymbol {w^Tx}+b}} \tag4
P(Y=0|x) = \frac {1} {1+e^{\boldsymbol {w^Tx}+b}} \tag5
\boldsymbol {x} \in \mathbb{R^n}, \boldsymbol {w} \in \mathbb{R^n}, b \in \mathbb{R}. 模型會(huì)比較式(4) (5)的大小,并將較大的概率值對(duì)應(yīng)的標(biāo)簽作為預(yù)測(cè)結(jié)果。

這里要引入一個(gè)幾率(odds)的概念。一個(gè)事件的幾率是指該事件發(fā)生與不發(fā)生的概率之比,即\frac p {1-p}.對(duì)幾率取對(duì)數(shù)則是對(duì)數(shù)幾率(log odds,又稱logits).根據(jù)式(4)和(5),Logistic Regression的logits為
log(\frac p {1-p}) = \boldsymbol {w^Tx}+b \tag6
這里就可以看出,LR模型實(shí)質(zhì)上是用線性函數(shù)來擬合事件的對(duì)數(shù)幾率,因此LR又被稱為對(duì)數(shù)幾率模型。由于LR是一個(gè)概率模型,因此可以使用極大似然法來求解參數(shù)\boldsymbol wb,網(wǎng)上有很多推導(dǎo),這里不做展開。

II. Softmax函數(shù)

1. 定義

LR是一個(gè)二分類模型。想做多分類的話,就輪到softmax登場(chǎng)了。softmax函數(shù)定義如下:
Y_i = \frac {e^{\boldsymbol {w_i^Tx_i}}}{\sum_{k=1}^K e^\boldsymbol {{w_k^Tx_k}}}\tag7
\boldsymbol {x_i} \in \mathbb{R^n}, \boldsymbol {w_i} \in \mathbb{R^n}, i \in \{1, 2, ..., K\} , Y_i \in (0, 1).Softmax函數(shù)的取值為(0, 1),經(jīng)常用于神經(jīng)網(wǎng)絡(luò)最后一層的激活函數(shù)。這K個(gè)輸出可以看做是對(duì)K個(gè)類別的預(yù)測(cè)概率,softmax輸出值最大的那個(gè)就作為預(yù)測(cè)的標(biāo)簽。

2. Softmax與LR的關(guān)系

事實(shí)上,LR是softmax的類別數(shù)K=2時(shí)的特殊形式,推導(dǎo)如下:
當(dāng)K=2時(shí),softmax可以寫作
Y_i = \frac {e^{\boldsymbol {w_i^Tx_i}}}{e^{\boldsymbol {w_1^Tx_1}}+e^{\boldsymbol {w_2^Tx_2}}}, i=1,2 \tag8
將分子分母的系數(shù)w都減去w_i^T,可得
Y_1 = \frac {e^{\boldsymbol {0x_i}}}{e^{\boldsymbol {0x_1}}+e^{\boldsymbol {(w_2^T-w_1^T)x_2}}} = \frac {1}{1+e^{\boldsymbol {(w_2^T-w_1^T)x_2}}}\tag9
Y_2 = 1-Y_1 = \frac {e^{\boldsymbol {(w_2^T-w_1^T)x_2}}}{1+e^{\boldsymbol {(w_2^T-w_1^T)x_2}}}\tag{10}
\boldsymbol {w_2^T-w_1^T}=\boldsymbol {w^T},則Y_1Y_2就是logistic regression中的P(Y=0|x)P(Y=1|x).

3. Softmax的導(dǎo)數(shù)

Softmax經(jīng)常作為神經(jīng)網(wǎng)絡(luò)的輸出,其導(dǎo)數(shù)為:

\frac{\partial Y_i}{\partial \boldsymbol{x_j}}=\left\{\begin{aligned}-Y_iY_j, & i \neq j \\Y_i(1-Y_j), & i = j\end{aligned}\right.\tag{11}

III. Cross Entropy

Cross entropy (交叉熵)原本是信息論中的概念,描述的是兩個(gè)概率分布間的距離,定義如下
H(p, q) = -\sum_xp(x){\rm log}q(x) \tag{12}
在分類任務(wù)中,我們經(jīng)??吹紺ross Entropy作為LR和softmax函數(shù)的損失函數(shù)。這里p(x)為真實(shí)值,q(x)為預(yù)測(cè)值,交叉熵可以刻畫預(yù)測(cè)值和真實(shí)值之間的差異,這也是其可以作為概率模型loss函數(shù)的原因。而前文所介紹的LR和softmax輸出的結(jié)果正是這樣的概率形式。

當(dāng)Cross entropy作為LR的損失函數(shù)時(shí),式(12)中的x即為sigmoid的輸出Y,因此
H(p, q) = Y \cdot {\rm log}P(Y=1) + (1-Y) \cdot {\rm log}P(Y=0) \tag{13}
對(duì)于所有m個(gè)樣本取平均可得
\frac{1}{m} \sum_{n=1}^{m} H_n(p, q) = Y_n \cdot {\rm log}P(Y_n=1) + (1-Y_n) \cdot {\rm log}P(Y_n=0) \tag{14}
可以證明,cross entropy與使用極大似然法計(jì)算出的loss一致。

當(dāng)Cross entropy作為softmax的損失函數(shù)時(shí),式(12)變?yōu)?br> H(p, q) = -\sum_{i=1}^{K}O_i{\rm log}Y_i = {\rm log}Y_t = {\rm log} \frac {e^{\boldsymbol {w_t^Tx_t}}}{\sum_{k=1}^K e^\boldsymbol {{w_k^Tx_k}}} \tag{15}
其中t為真實(shí)label,t \in \{1,2,...,K\}.這里使用gradient descent來優(yōu)化loss函數(shù),式(15)對(duì)特定輸入x_j的導(dǎo)數(shù)為
\frac {\partial H(p, q)} {\partial x_j } = -\frac {\partial \sum_{i=1}^{K}O_i{\rm log}Y_i }{\partial x_j} = - \sum_{i=1}^{K}O_i \frac {\partial {\rm log}Y_i }{Y_i}\frac{\partial Y_i }{\partial x_j} = - \sum_{i=1}^{K}O_i\frac{1}{Y_i} \frac{\partial Y_i }{\partial x_j} \tag{16}
將前面式(11)softmax的導(dǎo)數(shù)代入得
\frac{\partial H(p, q)} {\partial x_j }=-(\frac{O_j}{Y_j}\cdot\frac{\partial Y_j}{\partial x_j} + \sum_{i\neq j}\frac{O_i}{Y_i}\cdot\frac{\partial Y_i} {\partial x_j} ) =O_j(Y_j-1)+Y_j\sum_{i\neq j} O_i = \left\{\begin{aligned}Y_j-1, & O_j=1 \\Y_j, & O_j=0\end{aligned}\right. = Y_j-O_j \tag{17}
可以看出,softmax函數(shù)的cross entropy loss求導(dǎo)結(jié)果正好是預(yù)測(cè)值Y_j和真實(shí)labelO_j之差。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容