1. 程式人生 > >【機器學習筆記08】分類器(softmax迴歸)

【機器學習筆記08】分類器(softmax迴歸)

基本定義

首先給出softmax的數學定義,如下:

hθ(x(i))=[p(y(i)=1x(i);θ)p(y(i)=2x(i);θ)p(y(i)=kx(i);θ)]=1j=1keθjTx(i)[eθ1Tx(i)eθ2Tx(i)eθkTx(i)] h_{\theta}(x^{(i)})=\begin{bmatrix} p(y^{(i)}=1|x^{(i)};\theta) \\ p(y^{(i)}=2|x^{(i)};\theta) \\ \vdots \\ p(y^{(i)}=k|x^{(i)};\theta) \end{bmatrix}=\dfrac{1}{\sum_{j=1}^ke^{\theta_j^Tx^{(i)}}}\begin{bmatrix} e^{\theta_1^Tx^{(i)}} \\ e^{\theta_2^Tx^{(i)}} \\ \vdots \\ e^{\theta_k^Tx^{(i)}} \end{bmatrix}

softmax是用於進行多目標分類的,也就是當我們得到一堆輸入樣本x(x是一個包含多個特徵的向量)時,它可能屬於型別A、也可能屬於型別B。就想多層神經網路最後新增的softmax層一樣,輸出的是一個概率。比如輸入的人臉,在輸出時可以是張三的概率0.4,李四的概率0.6。

回到上面數學公式,模型hθ(x(i))h_{\theta}(x^{(i)})

是這樣一批條件概率的組合,即引數為 θ\theta(注意這裡的θ\theta不是隨機變數)下,輸出x(i)x^{(i)}關於y(i)y^{(i)}為某一個分類的條件概率。後面增加j=1keθjTx(i)\sum_{j=1}^ke^{\theta_j^Tx^{(i)}}是為了做歸一化,也就是所有概率加起來是1。

代價函式

這裡要單獨把代價函式拿出來,其實logistic迴歸的問題也一樣,即要回答在概率情況下我們用什麼樣的方式來表示代價?好比在一個距離空間裡我們用什麼來定義距離。

1. 自資訊

在資訊理論基礎下,認為資訊中包含一個事件,其發生概率越小越有用。例如“今天天晴”和“今天台風”相比,後者發生概率更小,資訊量更大。用白話說就是大家都知道的就是廢話。

自資訊用數學公式表示如下: I(x)=lnP(x)I(x)=-ln P(x),單位是奈特(nats),即用概率1/e發生的事件。

2. 夏農熵

自資訊只是一個資訊單個的,而我們定義整個分佈的資訊為夏農熵(在連續時也稱為微分熵):H(X)=EXP[I(X)]=EXp[log(P(X)]H(X) = E_{X \sim P}[I(X)]=-E_{X \sim p} [log(P(X)]也就是xP(x)ln(P(X))-\sum_xP(x)ln(P(X))

舉例:對於二項分佈其夏農熵相對於概率p為: (1p)ln(1p)plog(p)-(1-p)*ln(1-p)-p*log(p)

3. KL散度

如果同一個隨機變數有兩種獨立的概率分佈P(X)和Q(X),則兩種分佈的差異定義為:DKL(PQ)=EXp[log(P(x)Q(x))]D_{KL}(P||Q) =-E_{X \sim p} [log(\dfrac{P(x)}{Q(x)})] 當KL散度為0時,則認為兩者具有相同的分佈形式。也可以寫為DKL(PQ)=i=1nP(x)log(P(x)/Q(x))D_{KL}(P||Q)=\sum_{i=1}^nP(x)*log(P(x)/Q(x))

舉例: Dkl(observeduniform)=aD_{kl}(observed||uniform)=a 採用均勻分佈來近似觀察分佈的KL散度為a Dkl(observedbinominal)=bD_{kl}(observed||binominal)=b採用二項分佈來近似觀察分佈的KL散度為b 若a > b,則認為二項分佈與觀測分佈更加接近,因為KL散度更小。

對於softmax的代價損失函式及梯度

對於訓練集{(x(1),y(1)),(x(2),y(2))...(x(m),y(m))}\left\{ (x^{(1)}, y^{(1)}),(x^{(2)}, y^{(2)})...(x^{(m)}, y^{(m)}) \right\},其中y(i){1,2,3...k}y^{(i)} \in \left\{1,2,3...k \right\}

我們定義引數θ\theta下,將x分類到y=jy=j的概率為:

p(y(i)=jx(i);θ)=eθjTx(i)l=1keθlTx(i)p(y^{(i)}=j|x^(i);\theta)=\dfrac{e^{\theta_j^Tx^{(i)}}}{\sum_{l=1}^ke^{\theta_l^Tx^{(i)}}}

通過上一部分夏農熵的概念,我們定義softmax的損失函式如下:

J(θ)=1/mi=1mj=1k1{y(i)=j}log(p(y(i)=jx(i);θ))J(\theta)=-1/m\sum_{i=1}^m\sum_{j=1}^k1\left\{y^{(i)}=j\right\}log(p(y^{(i)}=j|x^(i);\theta)),對此公式求θ\theta