本篇文章是在参考西瓜书、PPT课件、网络上相关博客等资料的基础上整理出的机器学习复习笔记,希望能给大家的机器学习复习提供帮助。这篇笔记只是复习的一个参考,大家一定要结合书本、PPT来进行复习,有些公式的推导最好能够自己演算一遍。由于作者水平有限,笔记中难免有些差错,欢迎大家评论留言。
完整版跳转
我们称 X X X在给定 Z Z Z的条件下条件独立于 Y Y Y,当且仅当 X X X的分布在给定 Z Z Z的条件下与 Y Y Y无关。
( ∀ i , j , k ) P ( X = x i ∣ Y = y j , Z = z k ) = P ( X = x i ∣ Z = z k ) (\forall i,j,k)P(X=x_i|Y=y_j,Z=z_k)=P(X=x_i|Z=z_k) (∀i,j,k)P(X=xi∣Y=yj,Z=zk)=P(X=xi∣Z=zk)
缩写为
P ( X ∣ Y , Z ) = P ( X ∣ Z ) P(X|Y,Z)=P(X|Z) P(X∣Y,Z)=P(X∣Z)
若 X 1 , X 2 X_1,X_2 X1,X2在给定 Y Y Y时条件独立,那么有
P ( X 1 , X 2 ∣ Y ) = P ( X 1 ∣ X 2 , Y ) P ( X 2 ∣ Y ) = P ( X 1 ∣ Y ) P ( X 2 ∣ Y ) \begin{aligned} P(X_1,X_2|Y)&=P(X_1|X_2,Y)P(X_2|Y)\\ &=P(X_1|Y)P(X_2|Y) \end{aligned} P(X1,X2∣Y)=P(X1∣X2,Y)P(X2∣Y)=P(X1∣Y)P(X2∣Y)
一般化,若 X i X_i Xi与 Y Y Y条件独立,那么
P ( X 1 , X 2 , … , X n ∣ Y ) = ∏ i P ( X i ∣ Y ) P(X_1,X_2,\dots,X_n|Y)=\prod_iP(X_i|Y) P(X1,X2,…,Xn∣Y)=i∏P(Xi∣Y)
这是朴素贝叶斯的基础。
相较于没有条件独立性假设的情况,朴素贝叶斯分类器所需要估计的参数个数大大减少了,具体来看(假设每个属性有2个不同取值,共有2个类别):
π ^ k = P ^ ( Y = y k ) = # D { Y = y k } ∣ D ∣ θ ^ i j k = P ^ ( X i = x i j ∣ Y = y k ) = # D { X i = x i j ∧ Y = y k } # D { Y = y k } \begin{aligned} &\hat{\pi}_k=\hat{P}(Y=y_k)=\frac{\#D\{Y=y_k\}}{|D|}\\ &\hat{\theta}_{ijk}=\hat{P}(X_i=x_{ij}|Y=y_k)=\frac{\#D\{X_i=x_{ij}\land Y=y_k\}}{\#D\{Y=y_k\}} \end{aligned} π^k=P^(Y=yk)=∣D∣#D{Y=yk}θ^ijk=P^(Xi=xij∣Y=yk)=#D{Y=yk}#D{Xi=xij∧Y=yk}
但是,如果某个属性值在训练集中没有与某个类同时出现过,即 P ( X i ∣ Y = y k ) = 0 P(X_i|Y=y_k)=0 P(Xi∣Y=yk)=0,那么无论该样本的其他属性是什么, P ( Y = y k ∣ X ) P(Y=y_k|X) P(Y=yk∣X)都将会被预测成零。这显然是不太合理的,可以采用MAP估计来避免这个问题。
π ^ k = P ^ ( Y = y k ) = # D { Y = y k } + α k ∣ D ∣ + ∑ m α m θ ^ i j k = P ^ ( X i = x i j ∣ Y = y k ) = # D { X i = x i j ∧ Y = y k } + α k ′ # D { Y = y k } + ∑ m α m ′ \begin{aligned} &\hat{\pi}_k=\hat{P}(Y=y_k)=\frac{\#D\{Y=y_k\}+\alpha_k}{|D|+\sum_m\alpha_m}\\ &\hat{\theta}_{ijk}=\hat{P}(X_i=x_{ij}|Y=y_k)=\frac{\#D\{X_i=x_{ij}\land Y=y_k\}+\alpha_k'}{\#D\{Y=y_k\}+\sum_m\alpha_m'} \end{aligned} π^k=P^(Y=yk)=∣D∣+∑mαm#D{Y=yk}+αkθ^ijk=P^(Xi=xij∣Y=yk)=#D{Y=yk}+∑mαm′#D{Xi=xij∧Y=yk}+αk′
亦可以采用“拉普拉斯修正”(西瓜书),即假设先验概率符合均匀分布。
修改朴素贝叶斯模型,将 P ( X i = x ∣ Y = y k ) P(X_i=x|Y=y_k) P(Xi=x∣Y=yk)改为其概率密度函数。譬如我们采用高斯分布:
P ( X i = x ∣ Y = y k ) = 1 2 π σ i k e − ( x − μ i k ) 2 2 σ i k 2 P(X_i=x|Y=y_k)=\frac1{\sqrt{2\pi}\sigma_{ik}}e^{\frac{-(x-\mu_{ik})^2}{2\sigma_{ik}^2}} P(Xi=x∣Y=yk)=2πσik1e2σik2−(x−μik)2
有时候,我们假设方差
对于连续属性(假设服从高斯分布),我们首先要估计它的参数( μ \mu μ, σ \sigma σ),利用最大似然进行估计。这里有点类似于概率论里多个随机变量满足独立同分布的情况,这时利用极大似然估计得到的 μ \mu μ就是样本的均值, σ \sigma σ就是样本的方差。假设 n n n个样本 x 1 , x 2 , … , x n x_1,x_2,\dots,x_n x1,x2,…,xn服从独立同分布,且满足高斯分布,则
μ ^ = 1 n ∑ i = 1 n x i σ ^ = 1 n ∑ i = 1 n ( x i − μ ^ ) 2 \begin{aligned} \hat \mu &= \frac1n{\sum_{i=1}^n x_i}\\ \hat \sigma &= \frac1n{\sum_{i=1}^n(x_i-\hat\mu)^2} \end{aligned} μ^σ^=n1i=1∑nxi=n1i=1∑n(xi−μ^)2
类似的,可以对这里的参数进行估计。
现在我们考虑一个线性可分的二分类问题。接下来我们构造一个判别式模型(即直接学习 P ( Y ∣ X ) P(Y|X) P(Y∣X)),假定数据满足以下条件:
给定一个样本 X X X,其类别为 Y = 1 Y=1 Y=1的概率为
P ( Y = 1 ∣ X ) = P ( Y = 1 ) P ( X ∣ Y = 1 ) P ( Y = 1 ) P ( X ∣ Y = 1 ) + P ( Y = 0 ) P ( X ∣ Y = 0 ) = 1 1 + P ( Y = 0 ) P ( X ∣ Y = 0 ) P ( Y = 1 ) P ( X ∣ Y = 1 ) = 1 1 + exp ( ln P ( Y = 0 ) P ( X ∣ Y = 0 ) P ( Y = 1 ) P ( X ∣ Y = 1 ) ) = 1 1 + exp ( ln 1 − π π + ∑ i ln P ( X i ∣ Y = 0 ) P ( X i ∣ Y = 1 ) ) \begin{aligned} P(Y=1|X)&=\frac{P(Y=1)P(X|Y=1)}{P(Y=1)P(X|Y=1)+P(Y=0)P(X|Y=0)}\\ &=\frac1{1+\frac{P(Y=0)P(X|Y=0)}{P(Y=1)P(X|Y=1)}}\\ &=\frac1{1+\exp(\ln\frac{P(Y=0)P(X|Y=0)}{P(Y=1)P(X|Y=1)})}\\ &=\frac1{1+\exp(\ln\frac{1-\pi}{\pi}+\sum_i\ln\frac{P(X_i|Y=0)}{P(X_i|Y=1)})}\\ \end{aligned} P(Y=1∣X)=P(Y=1)P(X∣Y=1)+P(Y=0)P(X∣Y=0)P(Y=1)P(X∣Y=1)=1+P(Y=1)P(X∣Y=1)P(Y=0)P(X∣Y=0)1=1+exp(lnP(Y=1)P(X∣Y=1)P(Y=0)P(X∣Y=0))1=1+exp(lnπ1−π+∑ilnP(Xi∣Y=1)P(Xi∣Y=0))1
又由于各个维度的条件概率均服从高斯分布,因此
P ( Y = 1 ∣ X ) = 1 1 + exp ( ln 1 − π π + ∑ i ( μ i 0 − μ i 1 σ i 2 X i + μ i 1 2 − μ i 0 2 2 σ i 2 ) ) \begin{aligned} P(Y=1|X)&=\frac1{1+\exp(\ln\frac{1-\pi}{\pi}+\sum_i(\frac{\mu_{i0}-\mu_{i1}}{\sigma_i^2}X_i+\frac{\mu_{i1}^2-\mu_{i0}^2}{2\sigma_i^2}))}\\ \end{aligned} P(Y=1∣X)=1+exp(lnπ1−π+∑i(σi2μi0−μi1Xi+2σi2μi12−μi02))1
令 w 0 = ln 1 − π π + ∑ i ( μ i 1 2 − μ i 0 2 2 σ i 2 ) , w i = μ i 0 − μ i 1 σ i 2 w_0=\ln\frac{1-\pi}{\pi}+\sum_i(\frac{\mu_{i1}^2-\mu_{i0}^2}{2\sigma_i^2}), \ w_i=\frac{\mu_{i0}-\mu_{i1}}{\sigma_i^2} w0=lnπ1−π+i∑(2σi2μi12−μi02), wi=σi2μi0−μi1,则有
P ( Y = 1 ∣ X ) = 1 1 + exp ( w 0 + ∑ i = 1 n w i X i ) P(Y=1|X)=\frac1{1+\exp(w_0+\sum_{i=1}^nw_iX_i)} P(Y=1∣X)=1+exp(w0+∑i=1nwiXi)1
进而有
P ( Y = 0 ∣ X ) = exp ( w 0 + ∑ i = 1 n w i X i ) 1 + exp ( w 0 + ∑ i = 1 n w i X i ) P(Y=0|X)=\frac{\exp(w_0+\sum_{i=1}^nw_iX_i)}{1+\exp(w_0+\sum_{i=1}^nw_iX_i)} P(Y=0∣X)=1+exp(w0+∑i=1nwiXi)exp(w0+∑i=1nwiXi)
进而
P ( Y = 0 ∣ X ) P ( Y = 1 ∣ X ) = exp ( w 0 + ∑ i w i X i ) ln P ( Y = 0 ∣ X ) P ( Y = 1 ∣ X ) = w 0 + ∑ i w i X i \frac{P(Y=0|X)}{P(Y=1|X)}=\exp(w_0+\sum_iw_iX_i)\\\ln\frac{P(Y=0|X)}{P(Y=1|X)}=w_0+\sum_iw_iX_i P(Y=1∣X)P(Y=0∣X)=exp(w0+i∑wiXi)lnP(Y=1∣X)P(Y=0∣X)=w0+i∑wiXi
所以逻辑回归是线性分类器。
另:如果 X i X_i Xi不是相互条件独立的,但是满足 P ( X ∣ Y = y k ) P(X|Y=y_k) P(X∣Y=yk)符合高斯分布 N ( μ k , Σ ) N(\mu_{k},\Sigma) N(μk,Σ),也可推导出逻辑回归是线性分类器,下面是推导过程。
由之前的推导可知
P ( Y = 1 ∣ X ) = 1 1 + exp ( ln 1 − π π + ln P ( X ∣ Y = 0 ) P ( X ∣ Y = 1 ) ) \begin{aligned} P(Y=1|X)&=\frac1{1+\exp(\ln\frac{1-\pi}{\pi}+\ln\frac{P(X|Y=0)}{P(X|Y=1)})}\\ \end{aligned} P(Y=1∣X)=1+exp(lnπ1−π+lnP(X∣Y=1)P(X∣Y=0))1
由于 P ( X ∣ Y = y k ) P(X|Y=y_k) P(X∣Y=yk)满足多维高斯分布,因此
ln P ( X ∣ Y = 0 ) P ( X ∣ Y = 1 ) = 1 2 ( X − μ 2 ) T Σ − 1 ( X − μ 2 ) − 1 2 ( X − μ 1 ) T Σ − 1 ( X − μ 1 ) = 1 2 ( X T − μ 2 T ) Σ − 1 ( X − μ 2 ) − 1 2 ( X T − μ 1 T ) Σ − 1 ( X − μ 1 ) = X T ( Σ − 1 μ 1 − Σ − 1 μ 2 ) + 1 2 ( μ 2 T Σ − 1 μ 2 − μ 1 T Σ − 1 μ 1 ) \begin{aligned} \ln\frac{P(X|Y=0)}{P(X|Y=1)}&=\frac1{2}(X-\mu_2)^T\Sigma^{-1}(X-\mu_2)-\frac1{2}(X-\mu_1)^T\Sigma^{-1}(X-\mu_1)\\ &=\frac1{2}(X^T-\mu_2^T)\Sigma^{-1}(X-\mu_2)-\frac1{2}(X^T-\mu_1^T)\Sigma^{-1}(X-\mu_1)\\ &=X^T(\Sigma^{-1}\mu_1-\Sigma^{-1}\mu_2)+\frac12(\mu_2^T\Sigma^{-1}\mu_2-\mu_1^T\Sigma^{-1}\mu_1) \end{aligned} lnP(X∣Y=1)P(X∣Y=0)=21(X−μ2)TΣ−1(X−μ2)−21(X−μ1)TΣ−1(X−μ1)=21(XT−μ2T)Σ−1(X−μ2)−21(XT−μ1T)Σ−1(X−μ1)=XT(Σ−1μ1−Σ−1μ2)+21(μ2TΣ−1μ2−μ1TΣ−1μ1)
令 W = Σ − 1 μ 1 − Σ − 1 μ 2 , b = 1 2 ( μ 2 T Σ − 1 μ 2 − μ 1 T Σ − 1 μ 1 ) + ln 1 − π π W=\Sigma^{-1}\mu_1-\Sigma^{-1}\mu_2,b=\frac12(\mu_2^T\Sigma^{-1}\mu_2-\mu_1^T\Sigma^{-1}\mu_1)+\ln\frac{1-\pi}{\pi} W=Σ−1μ1−Σ−1μ2,b=21(μ2TΣ−1μ2−μ1TΣ−1μ1)+lnπ1−π,则
P ( Y = 1 ∣ X ) = 1 1 + exp ( W T X + b ) P(Y=1|X)=\frac1{1+\exp(W^TX+b)} P(Y=1∣X)=1+exp(WTX+b)1
进而有
P ( Y = 0 ∣ X ) = exp ( W T X + b ) 1 + exp ( W T X + b ) P(Y=0|X)=\frac{\exp(W^TX+b)}{1+\exp(W^TX+b)} P(Y=0∣X)=1+exp(WTX+b)exp(WTX+b)
进而
P ( Y = 0 ∣ X ) P ( Y = 1 ∣ X ) = exp ( W T X + b ) ln P ( Y = 0 ∣ X ) P ( Y = 1 ∣ X ) = W T X + b \frac{P(Y=0|X)}{P(Y=1|X)}=\exp(W^TX+b)\\\ln\frac{P(Y=0|X)}{P(Y=1|X)}=W^TX+b P(Y=1∣X)P(Y=0∣X)=exp(WTX+b)lnP(Y=1∣X)P(Y=0∣X)=WTX+b
也可以推出逻辑回归是线性分类器。
y ∈ { y 1 , … , y R } y\in \{y_1,\dots,y_R\} y∈{y1,…,yR},学习 R − 1 R-1 R−1类权重参数。
若 k < R k
P ( Y = y k ∣ X ) = exp ( w k 0 + ∑ i = 1 n w k i X i ) 1 + ∑ j = 1 R − 1 exp ( w j 0 + ∑ i = 1 n w j i X i ) P(Y=y_k|X)=\frac{\exp(w_{k0}+\sum_{i=1}^nw_{ki}X_i)}{1+\sum_{j=1}^{R-1}\exp(w_{j0}+\sum_{i=1}^nw_{ji}X_i)} P(Y=yk∣X)=1+∑j=1R−1exp(wj0+∑i=1nwjiXi)exp(wk0+∑i=1nwkiXi)
若 k = R k=R k=R,
P ( Y = y R ∣ X ) = 1 1 + ∑ j = 1 R − 1 exp ( w j 0 + ∑ i = 1 n w j i X i ) P(Y=y_R|X)=\frac{1}{1+\sum_{j=1}^{R-1}\exp(w_{j0}+\sum_{i=1}^nw_{ji}X_i)} P(Y=yR∣X)=1+∑j=1R−1exp(wj0+∑i=1nwjiXi)1
为了让最后求解的结果和课件中保持一致,我们对上面的表达形式做出修改
P ( Y = 0 ∣ X , W ) = 1 1 + exp ( w 0 + ∑ i = 1 n w i X i ) P ( Y = 1 ∣ X , W ) = exp ( w 0 + ∑ i = 1 n w i X i ) 1 + exp ( w 0 + ∑ i = 1 n w i X i ) P(Y=0|X,W)=\frac1{1+\exp(w_0+\sum_{i=1}^nw_iX_i)}\\P(Y=1|X,W)=\frac{\exp(w_0+\sum_{i=1}^nw_iX_i)}{1+\exp(w_0+\sum_{i=1}^nw_iX_i)} P(Y=0∣X,W)=1+exp(w0+∑i=1nwiXi)1P(Y=1∣X,W)=1+exp(w0+∑i=1nwiXi)exp(w0+∑i=1nwiXi)
显然,修改之后的形式和之前的式子等价。
条件最大似然
W M C L E = arg max W ∏ l P ( Y l ∣ W , X l ) W_{MCLE}=\arg \max_W \prod_lP(Y^l|W,X^l) WMCLE=argWmaxl∏P(Yl∣W,Xl)
现在,我们需要选择一个向量 w w w,来最大化这个条件似然值。
l ( W ) = ln ∏ l P ( Y l ∣ X l , W ) = ∑ l ln P ( Y l ∣ X l , W ) = ∑ l Y l ln P ( Y l = 1 ∣ X l , W ) + ( 1 − Y l ) ln P ( Y l = 0 ∣ X l , W ) = ∑ l Y l ln P ( Y l = 1 ∣ X l , W ) P ( Y l = 0 ∣ X l , W ) + ln P ( Y l = 0 ∣ X l , W ) = ∑ l Y l ( w 0 + ∑ i = 1 n w i X i l ) − ln ( 1 + exp ( w 0 + ∑ i = 1 n w i X i l ) ) \begin{aligned} l(W)&=\ln\prod_lP(Y^l|X^l,W)=\sum_l\ln P(Y^l|X^l,W)\\ &=\sum_lY^l\ln P(Y^l=1|X^l,W)+(1-Y^l)\ln P(Y^l=0|X^l,W)\\ &=\sum_lY^l\ln \frac{P(Y^l=1|X^l,W)}{P(Y^l=0|X^l,W)}+\ln P(Y^l=0|X^l,W)\\ &=\sum_lY^l(w_0+\sum_{i=1}^nw_iX_i^l)-\ln(1+\exp(w_0+\sum_{i=1}^nw_iX_i^l)) \end{aligned} l(W)=lnl∏P(Yl∣Xl,W)=l∑lnP(Yl∣Xl,W)=l∑YllnP(Yl=1∣Xl,W)+(1−Yl)lnP(Yl=0∣Xl,W)=l∑YllnP(Yl=0∣Xl,W)P(Yl=1∣Xl,W)+lnP(Yl=0∣Xl,W)=l∑Yl(w0+i=1∑nwiXil)−ln(1+exp(w0+i=1∑nwiXil))
很遗憾,它没有解析解。我们需要通过梯度上升法求出近似解(也可以先取相反数,然后利用梯度下降法求解,得到的结果相同)。
∂ l ( W ) ∂ w i = ∑ l X i l ( Y l − exp ( w 0 + ∑ i = 1 n w i X i l ) 1 + exp ( w 0 + ∑ i = 1 n w i X i l ) ) = ∑ i X i l ( Y l − P ( Y l = 1 ∣ X l , W ) ) w i ← w i + η ∂ l ( W ) ∂ w i \begin{aligned} \frac{\partial{l(W)}}{\partial w_i}&=\sum_lX_i^l(Y^l-\frac{\exp(w_0+\sum_{i=1}^nw_iX_i^l)}{1+\exp(w_0+\sum_{i=1}^nw_iX_i^l) })\\ &=\sum_iX_i^l(Y^l-P(Y^l=1|X^l,W)) \end{aligned}\\w_i \leftarrow w_i+\eta\frac{\partial{l(W)}}{\partial w_i} ∂wi∂l(W)=l∑Xil(Yl−1+exp(w0+∑i=1nwiXil)exp(w0+∑i=1nwiXil))=i∑Xil(Yl−P(Yl=1∣Xl,W))wi←wi+η∂wi∂l(W)
MAP相当于增加了一个先验,假设 W ∽ N ( 0 , σ I ) W\backsim N(0,\sigma I) W∽N(0,σI),那么
W ← arg max W ln [ P ( W ) ∏ l P ( Y l ∣ X l , W ) ] w i ← w i − η λ w i + η ∑ i X i l ( Y l − P ( Y l = 0 ∣ X l , W ) ) W \leftarrow \arg \max_W \ln[P(W)\prod_lP(Y^l|X^l,W)]\\w_i \leftarrow w_i-\eta\lambda w_i+\eta\sum_iX_i^l(Y^l-P(Y^l=0|X^l,W)) W←argWmaxln[P(W)l∏P(Yl∣Xl,W)]wi←wi−ηλwi+ηi∑Xil(Yl−P(Yl=0∣Xl,W))
其中 λ > 0 \lambda >0 λ>0, η \eta η是学习率。
上式中的正则项其实就是由先验分布得到的(正则项前面的负号来自于高斯分布 e e e指数上的负号),加入正则项可以让 W W W中的元素尽量接近于0,从而有效避免模型的过拟合。
从KL距离的角度,可以得出与条件似然估计相似的结果。
假设 p p p是 X X X和 Y Y Y的真实分布, q q q是逻辑回归估计的分布,则 p ( Y = 1 ∣ X ) p(Y=1|X) p(Y=1∣X)和 p ( Y = 0 ∣ X ) p(Y=0|X) p(Y=0∣X)这两个概率值一个为1一个为0,且
q ( Y = 1 ∣ X ) = 1 1 + exp ( w T x ) q ( Y = 0 ∣ X ) = 1 − q ( Y = 1 ∣ X ) \begin{aligned} q(Y=1|X)&=\frac1{1+\exp(w^Tx)}\\ q(Y=0|X)&=1-q(Y=1|X) \end{aligned} q(Y=1∣X)q(Y=0∣X)=1+exp(wTx)1=1−q(Y=1∣X)
我们计算 p p p和 q q q的KL距离(化简时需要注意到 p p p分布的信息熵是0)
D K L ( p ( Y ) ∣ ∣ q ( Y ) ) = ∑ Y p ( Y ) log p ( Y ) q ( Y ) = ∑ Y p ( Y ) log 1 q ( Y ) − ∑ Y p ( Y ) log 1 p ( Y ) = − ∑ Y p ( Y ) log q ( Y ) = ∑ l − Y l log 1 1 + exp ( w T x ) − ( 1 − Y l ) log exp ( w T x ) 1 + exp ( w T x ) \begin{aligned} D_{KL}(p(Y)||q(Y))&=\sum_Yp(Y)\log\frac{p(Y)}{q(Y)}\\ &=\sum_Yp(Y)\log\frac1{q(Y)}-\sum_Yp(Y)\log\frac1{p(Y)}\\ &=-\sum_Yp(Y)\log q(Y)\\ &=\sum_l-Y^l\log\frac1{1+\exp(w^Tx)}-(1-Y^l)\log\frac{\exp(w^Tx)}{1+\exp(w^Tx)} \end{aligned} DKL(p(Y)∣∣q(Y))=Y∑p(Y)logq(Y)p(Y)=Y∑p(Y)logq(Y)1−Y∑p(Y)logp(Y)1=−Y∑p(Y)logq(Y)=l∑−Yllog1+exp(wTx)1−(1−Yl)log1+exp(wTx)exp(wTx)
这便是逻辑回归的损失函数。
哈工大机器学习复习笔记(一)
哈工大机器学习复习笔记(二)
哈工大机器学习复习笔记(三)
哈工大机器学习复习笔记(四)