為什麼sigmoid function可以表示分類問題的probability?

正在學Andrew Ng的機器學習的網課,講到了分類問題中,如果把sigmoid function理解成y=1的概率:

p(y=1) = frac{1}{1+e^{-	heta ^{T} X } }

那麼根據最大似然原理就可以推出那個cost function,到這裡我都理解,但是為什麼sigmoid function可以理解成概率呢?我試著推了一下:

如果假定數據集可以像linear regression里那樣model成一個線性函數:

z=	heta ^{T} X + varepsilon

其中varepsilon 是誤差,z>0時數據就label為1,否則就label為0。那麼當	heta ^{T} X 確定的時候,假設是個正值,如果varepsilon <-	heta ^{T} X,那麼數據就會被錯誤的label成0。如果sigmoid function確實表示了y=1的概率,那麼就可以倒過來求誤差varepsilon 的分布:

p(varepsilon <-	heta ^{T} X) = p(y=0)=1-p(y=1)

=1-frac{1}{1+e^{-	heta ^{T} X} } =frac{1}{1+e^{	heta ^{T} X} }

或者寫成:

p(varepsilon <x)=frac{1}{1+e^{-x} }

這剛好是平均值為0,方差為frac{pi ^{2} }{3} 的Logistic distribution的累積分布函數,也就是說只要誤差符合這樣一個Logistic distribution,那麼用sigmoid function來表示y=1概率就是說的通的。

這和用假定誤差符合正態分布,來推導最小二乘法很像。但是我的疑問就是,誤差符合正態分布可以用central limit theorem解釋,但誤差符合logistic分布好象就不好解釋了,雖然這兩個分布長得很像,但還是不一樣的。另外在用正態分布推最小二乘法的時候是不限定方差的,因為最後的結果中不會出現方差,但是這裡的推導必須限定logistic regression的方差是 frac{pi ^{2}}{3} ,這個好像也很難解釋。

總之我現在就卡在這裡了,求大神指教!


線性回歸假設 ysim p(y|x)=N(mu,sigma),mu=w^Tx. 而高斯分布有線性可加性,ysim N(mu,sigma)等價於y=mu+epsilon,epsilonsim N(0,sigma). 所以有這種加個雜訊項的表示只適用於高斯分布。

而logistic回歸假設ysim p(y|x)=Bern(pi),pi=sigma(w^Tx).yin {0,1}.

至於為什麼要用sigmoid,因為sigmoid是Bernoulli分布的canonical link function. 什麼是canonical link function呢,這得從exponential family和general linear model談起。假設p(y|x)是如下exponential family的分布

p(y|	heta,psi)=expleft(frac{y	heta-G(	heta)}{psi}+C(y,psi)
ight)

那麼可以推出y的期望為

E[y]=G

這個g(	heta)=G就是canonical link function。而p(y|x)是Bernoulli的話,g(	heta)就是sigmoidg(	heta)=frac{1}{1+e^{-	heta}}p(y|x)是高斯的話,g(	heta)=	heta。然後假設	heta=w^Tx,我們就有了logistic regression和linear regression。p(y|x)是其他分布的話還能推出其他回歸模型。這叫general linear model.

另外一種解釋是假設數據是由如下過程生成的

ysim p(y)=Mul(pi)\ xsim p(x|y)

Mul(pi)是多項式分布,也就是Bernoulli的多維推廣,p(x|y)可以是屬於如下exponential family的任何分布p(mathbf{x}|y_k)=exp(oldsymbol{	heta}_k^Tmathbf{x}-A(oldsymbol{	heta}_k))p_o(mathbf{x})

(補充:這族分布包含另一回答中的同方差高斯。)

那麼可以推出

p(y|x)=frac{p(x|y)p(y)}{sum_y p(x|y)p(y)}=frac{exp(w_{k0}+mathbf{w}_k^Tmathbf{x})}{sum_kexp(w_{k0}+mathbf{w}_k^Tmathbf{x})}

這裡

mathbf{w}_k=oldsymbol{	heta}_k

w_{k0}=lnpi_k-A(oldsymbol{	heta}_k)

sigmoid是上面softmax的二維情形。


這樣說有點本末倒置了。並不是先寫出sigmoid 函數,然後假定它是類別的條件概率。而是由條件概率的定義在一定的假設下推出它是sigmoid 函數。而這個假設就是同方差假設,即給定每個類別時變數的條件分布是高斯的並且方差相同。

對於二分類問題,我們要回答的問題是,已知輸入樣本x時,它屬於類1的條件概率為

egin{align} P(C_1|x) = frac{P(C_1,x)}{P(x)} \ = frac{P(x|C_1)P(C_1)}{p(x|C_1)P(C_1) + P(x|C_2)P(C_2)} \ = frac{1}{1 + frac{P(x|C_2)P(C_2)}{p(x|C_1)P(C_1)}} \ = frac{1}{1 + e^{-a}} qquad[sigmoid] end{align}

其中, a = In{frac{P(x|C_1)P(C_1)}{P(x|C_2)P(C_2)}}

當x是連續變數時,假設x對兩類的條件概率服從高斯分布且方差相同,

P(x|C_1) sim N(x|mu_1, Sigma) = frac{1}{(2 pi ) ^ {D / 2} |Sigma|^{1 / 2}}exp{{ -frac{1}{2} (x - mu_1)^{T} Sigma ^ {-1} (x - mu_1)}}P(x|C_2) sim N(x|mu_2, Sigma) = frac{1}{(2 pi ) ^ {D / 2} |Sigma|^{1 / 2}}exp{{ -frac{1}{2} (x - mu_2)^{T} Sigma ^ {-1} (x - mu_2)}}

其中D是隨機變數x的維數,所以有

InP(x|C_1) = - frac{D}{2}In{(2 pi)} - frac{1}{2}In|Sigma| - frac{1}{2} (x - mu_1)^T Sigma ^ {-1} (x - mu_1)InP(x|C_2) = - frac{D}{2}In{(2 pi)} - frac{1}{2}In|Sigma| - frac{1}{2} (x - mu_2)^T Sigma ^ {-1} (x - mu_2)

所以

egin{align} a(x) = InP(x|C_1) - InP(x|C_2) + Infrac{P(C_1)}{P(C_2)} \ = (mu_1 - mu_2) ^ T Sigma^{-1} x - frac{1}{2}mu_1^T Sigma^{-1} mu_1 + frac{1}{2} mu_2^T Sigma ^ {-1} mu_2 + Infrac{P(C_1)}{P(C_2)} \ = w^Tx + w_0 \ end{align}

可見,a(x)x 的線性函數,其中,

w = Sigma ^ {-1} (mu_1 - mu_2)w_0 = frac{1}{2}mu_2^T Sigma^{-1} mu_2 - frac{1}{2}mu_1^T Sigma^{-1} mu_1 + Infrac{P(C_1)}{P(C_2)}

P(C_2|x) = 1 - P(C_1 | x)

以上是兩類分類問題的推導。

推廣以上推導結論到多類問題,給定樣本x屬於第k類的後驗概率為:

egin{align} P(C_k|x) = frac{P(x|C_k) P(C_k)}{sum_{j}P(x|C_j)P(C_j)} \ = frac{exp(a_k)}{sum_jexp(a_j)} end{align}

此時結果是softmax 函數。

為什麼要同方差?因為同方差的時候,a式中的上下兩項的二次項剛好可以消掉,只剩下一次項。中間省去了一些簡單的推導過程,[敲黑板]下去自己多推一推啊!


推薦閱讀:

TAG:機器學習 | 概率 | 統計 | logisticregression |