一、从线性回归到线性分类

  1. 线性回归的特性

{线{线线线线线线线线线PCA\left\{\begin{matrix} 线性\left\{\begin{matrix} 属性线性\overset{打破}{\rightarrow}属性非线性:特征转换(多项式回归)\\ 全局线性\overset{打破}{\rightarrow}全局非线性:线性分类(**函数是非线性)\\ 系数线性\overset{打破}{\rightarrow}系数非线性:神经网络 \end{matrix}\right.\\ 全局性\overset{打破}{\rightarrow}线性样条回归、决策树\\ 数据未加工\overset{打破}{\rightarrow}PCA、流形 \end{matrix}\right.

线性回归f(w,b)=wTx+bf(w,b)=w^{T}x+b具备线性、全局性和数据未加工的特性。

线性包括三个方面,其中属性线性指的是f(w,b)f(w,b)关于xx是线性的;全局线性指的是wTx+bw^{T}x+b只是一个线性组合,然后直接就输出得到f(w,b)f(w,b)系数线性指的是f(w,b)f(w,b)关于wTw^{T}是线性的。

全局性指的是线性回归是在整个特征空间上学习,并没有将特征空间进行划分然后在每个划分上学习。

数据未加工指的是线性回归直接在给定数据上进行学习没有对数据进行其他的加工。

其他的学习算法跟线性回归比较起来打破了其某些特性,在上面的树状图中也举出了一些例子。

  1. 从线性回归到线性分类

线线线性回归\overset{**函数}{\underset{降维}{\Rightarrow }}线性分类

线性回归经过一个**函数然后根据一个阈值来获得分类的结果,如此就成为线性分类,也可以理解为将wTx+bw^{T}x+b降维到一维而获得分类结果。

y=f(wTx+b)y{{0,1}[0,1]factivationfunctionf1linkfunctionf:wTx+b{0,1}/[0,1]f1:{0,1}/[0,1]wTx+b**函数y=f(w^{T}x+b),y\in \left\{\begin{matrix} \left \{0,1\right \},硬分类\\ [0,1],软分类 \end{matrix}\right.\\ 函数f叫做**函数(activation\: function)\\ 函数f^{-1}叫做链接函数(link\: function)\\ f:w^{T}x+b \mapsto \left \{0,1\right \}/[0,1]\\ f^{-1}:\left \{0,1\right \}/[0,1]\mapsto w^{T}x+b

  1. 硬分类和软分类

线{{线{线性分类\left\{\begin{matrix} 硬分类\left\{\begin{matrix} 线性判别分析\\ 感知机 \end{matrix}\right.\\ 软分类\left\{\begin{matrix} 高斯判别分析\\ 朴素贝叶斯\\ 逻辑回归 \end{matrix}\right. \end{matrix}\right.

二、感知机

  1. 概述

假设有一可以被线性分类的样本集{(xi,yi)}i=1N\left \{(x_{i},y_{i})\right \}_{i=1}^{N},其中xiRp,yi{1,+1}x_{i}\in \mathbb{R}^{p},y_{i}\left \{-1,+1\right \}。感知机算法使用随机梯度下降法(SGD)来在特征空间$ \mathbb{R}{p}$寻找一个超平面$w{T}x+b=0来将数据划分为正、负两类,其中w\in \mathbb{R}^{p}$,是超平面的法向量。

  1. 学习策略

感知机的思想是错误驱动。其模型是f(x)=sign(wTx+b)f(x)=sign(w^{T}x+b)f(x)f(x)输出该样本点的类别,定义集合M为误分类点的集合。

可以确定对于误分类的数据(xi,yi)(x_{i},y_{i})来说,满足以下关系:

yi(wTxi+b)=wTxi+b>0\underset{=\left |w^{T}x_{i}+b \right |}{\underline{-y_{i}(w^{T}x_{i}+b)}}>0

损失函数的一个自然选择是误分类点的个数,即L(w)=i=1NI{yi(wTxi+b)>0}L(w)=\sum_{i=1}^{N}I\left \{-y_{i}(w^{T}x_{i}+b)>0\right \},但是这样的损失函数是不可导的,不易优化。因此采用另一种损失函数,即误分类点到超平面的总距离。

Rp{R}^{p}空间中任一点x0x_{0}到超平面的距离为:

wTx0+bw(线d=Ax+By+CA2+B2)\frac{\left | w^{T}x_{0}+b\right |}{\left \| w\right \|}\\ (可以参考初中知识,平面中点到直线的距离:d=\frac{\left | Ax+By+C\right |}{\sqrt{A^{2}+B^{2}}})

因此所有误分类点到超平面wTx+b=0w^{T}x+b=0的总距离为:

xiMwTx0+bw=1wxiMyi(wTxi+b)\sum _{x_{i}\in M}\frac{\left | w^{T}x_{0}+b\right |}{\left \| w\right \|}=-\frac{1}{{\left \| w\right \|}}\sum _{x_{i}\in M}y_{i}(w^{T}x_{i}+b)

不考虑1w\frac{1}{{\left \| w\right \|}},就得到感知机的损失函数:

L(w,b)=xiMyi(wTxi+b)L(w,b)=-\sum _{x_{i}\in M}y_{i}(w^{T}x_{i}+b)

  1. 学习算法

计算损失函数的梯度:

L(w,b)w=xiMyixiL(w,b)b=xiMyi\frac{\partial L(w,b)}{\partial w}=-\sum _{x_{i}\in M}y_{i}x_{i}\\ \frac{\partial L(w,b)}{\partial b}=-\sum _{x_{i}\in M}y_{i}

感知机的学习算法使用随机梯度下降法(SGD),这里选取η(0<η1)\eta (0<\eta\leq 1)作为学习率,其学习的步骤如下:
①选取初值w0,b0w_{0},b_{0}
②在训练集中选取数据(xi,yi)(x_{i},y_{i})
③如果yi(wTxi+b)0y_{i}(w^{T}x_{i}+b)\leq 0,则更新参数:

ww+ηyixibb+ηyiw\leftarrow w+\eta y_{i}x_{i}\\ b\leftarrow b+\eta y_{i}

④转至②,直到训练集中没有误分类点。

截止这里我们都是假设数据是线性可分的,如果线性不可分,可以用口袋算法(pocket algorithm),这里不做过多介绍。

三、线性判别分析

  1. 概述

线性判别分析可用于处理二分类问题,其过程是寻找一个最佳的投影方向,使得样本点在该方向上的投影符合类内小、类间大的思想,具体指的是类内的方差之和小,类间的均值之差大。

线性分类|机器学习推导系列(四)

假设有以下数据:

X=(x1,x1,,xN)T=(x1Tx2TxNT)N×pY=(y1y2yN)N×1{(xi,yi)}i=1N,xiRp,yi{+1C1,1C2}xC1={xiyi=+1},xC2={xiyi=1}xC1=N1,xC2=N2,N1+N2=NX=(x_{1},x_{1},\cdots ,x_{N})^{T}=\begin{pmatrix} x_{1}^{T}\\ x_{2}^{T}\\ \vdots \\ x_{N}^{T} \end{pmatrix}_{N\times p}Y=\begin{pmatrix} y_{1}\\ y_{2}\\ \vdots \\ y_{N} \end{pmatrix}_{N \times 1}\\ \left \{(x_{i},y_{i})\right \}_{i=1}^{N},x_{i}\in \mathbb{R}^{p},y_{i}\in \{\underset{C_{1}}{\underline{+1}},\underset{C_{2}}{\underline{-1}}\}\\ x_{C_{1}}=\left \{x_{i}|y_{i}=+1\right \},x_{C_{2}}=\left \{x_{i}|y_{i}=-1\right \}\\ \left | x_{C_{1}}\right |=N_{1},\left | x_{C_{2}}\right |=N_{2},N_{1}+N_{2}=N

  1. 线性判别分析的损失函数

投影轴的方向向量为ww,将样本点往该轴上投影以后的值ziz_{i}wTxiw^{T}x_{i},均值和方差按照如下方法计算:

zˉ=1Ni=1Nzi=1Ni=1NwTxiSz=1Ni=1N(wTxizˉ)(wTxizˉ)T均值\bar{z}=\frac{1}{N}\sum_{i=1}^{N}z_{i}=\frac{1}{N}\sum_{i=1}^{N}w^{T}x_{i}\\ 方差S_{z}=\frac{1}{N}\sum_{i=1}^{N}(w^{T}x_{i}-\bar{z})(w^{T}x_{i}-\bar{z})^{T}

接下来计算每一类的均值和方差:

C1zˉ1=1N1i=1N1wTxiS1=1N1i=1N1(wTxizˉ1)(wTxizˉ1)TC2zˉ2=1N2i=1N2wTxiS2=1N2i=1N2(wTxizˉ1)(wTxizˉ1)TC_{1}:\\ \bar{z}_{1}=\frac{1}{N_{1}}\sum_{i=1}^{N_{1}}w^{T}x_{i}\\ S_{1}=\frac{1}{N_{1}}\sum_{i=1}^{N_{1}}(w^{T}x_{i}-\bar{z}_{1})(w^{T}x_{i}-\bar{z}_{1})^{T}\\ C_{2}:\\ \bar{z}_{2}=\frac{1}{N_{2}}\sum_{i=1}^{N_{2}}w^{T}x_{i}\\ S_{2}=\frac{1}{N_{2}}\sum_{i=1}^{N_{2}}(w^{T}x_{i}-\bar{z}_{1})(w^{T}x_{i}-\bar{z}_{1})^{T}

定义损失函数:

J(w)=(zˉ1zˉ2)2S1+S2(zˉ1zˉ2)2=(1N1i=1N1wTxi1N2i=1N2wTxi)2=[wT(1N1i=1N1xi1N2i=1N2xi)]2=[wT(xˉC1xˉC2)]2=wT(xˉC1xˉC2)(xˉC1xˉC2)TwS1=1N1i=1N1(wTxizˉ1)(wTxizˉ1)T=1N1i=1N1(wTxi1N1i=1N1wTxi)(wTxi1N1i=1N1wTxi)T=1N1i=1N1wT(xixˉC1)(xixˉC1)Tw=wT[1N1i=1N1(xixˉC1)(xixˉC1)T]w=wTSC1wS1+S2=wTSC1w+wTSC2w=wT(SC1+SC2)wJ(w)=wT(xˉC1xˉC2)(xˉC1xˉC2)TwwT(SC1+SC2)wJ(w)=\frac{(\bar{z}_{1}-\bar{z}_{2})^{2}}{S_{1}+S_{2}} (\bar{z}_{1}-\bar{z}_{2})^{2}=(\frac{1}{N_{1}}\sum_{i=1}^{N_{1}}w^{T}x_{i}-\frac{1}{N_{2}}\sum_{i=1}^{N_{2}}w^{T}x_{i})^{2}\\ =[w^{T}(\frac{1}{N_{1}}\sum_{i=1}^{N_{1}}x_{i}-\frac{1}{N_{2}}\sum_{i=1}^{N_{2}}x_{i})]^{2}\\ =[w^{T}(\bar{x}_{C_{1}}-\bar{x}_{C_{2}})]^{2}\\ =w^{T}(\bar{x}_{C_{1}}-\bar{x}_{C_{2}})(\bar{x}_{C_{1}}-\bar{x}_{C_{2}})^{T}w\\ S_{1}=\frac{1}{N_{1}}\sum_{i=1}^{N_{1}}(w^{T}x_{i}-\bar{z}_{1})(w^{T}x_{i}-\bar{z}_{1})^{T}\\ =\frac{1}{N_{1}}\sum_{i=1}^{N_{1}}(w^{T}x_{i}-\frac{1}{N_{1}}\sum_{i=1}^{N_{1}}w^{T}x_{i})(w^{T}x_{i}-\frac{1}{N_{1}}\sum_{i=1}^{N_{1}}w^{T}x_{i})^{T}\\ =\frac{1}{N_{1}}\sum_{i=1}^{N_{1}}w^{T}(x_{i}-\bar{x}_{C_{1}})(x_{i}-\bar{x}_{C_{1}})^{T}w\\ =w^{T}[\frac{1}{N_{1}}\sum_{i=1}^{N_{1}}(x_{i}-\bar{x}_{C_{1}})(x_{i}-\bar{x}_{C_{1}})^{T}]w\\ =w^{T}S_{C_{1}}w\\ S_{1}+S_{2}=w^{T}S_{C_{1}}w+w^{T}S_{C_{2}}w=w^{T}(S_{C_{1}}+S_{C_{2}})w\\ \therefore J(w)=\frac{w^{T}(\bar{x}_{C_{1}}-\bar{x}_{C_{2}})(\bar{x}_{C_{1}}-\bar{x}_{C_{2}})^{T}w}{w^{T}(S_{C_{1}}+S_{C_{2}})w}

极大化J(w)J(w)就可以使得类内的方差之和小,类间的均值之差大。

  1. 线性判别分析的求解

{Sb=(xˉC1xˉC2)(xˉC1xˉC2)TSw=SC1+SC2J(w)=wTSbwwTSww=wTSbw(wTSww)1J(w)w=2Sbw(wTSww)1+wTSbw(1)(wTSww)22Sbw=2[Sbw(wTSww)1+wTSbw(1)(wTSww)2Sbw]=0wTSbw,wTSwwRSbw(wTSww)wTSbwSww=0wTSbwSww=Sbw(wTSww)Sww=wTSwwwTSbwSbww=wTSwwwTSbwSw1SbwwwSw1SbwwSw1(xˉC1xˉC2)(xˉC1xˉC2)Tw1wSw1(xˉC1xˉC2)w(SC1+SC2)1(xˉC1xˉC2)令\left\{\begin{matrix} S_{b}=(\bar{x}_{C_{1}}-\bar{x}_{C_{2}})(\bar{x}_{C_{1}}-\bar{x}_{C_{2}})^{T}\\ S_{w}=S_{C_{1}}+S_{C_{2}} \end{matrix}\right.\\ 则J(w)=\frac{w^{T}S_{b}w}{w^{T}S_{w}w}=w^{T}S_{b}w(w^{T}S_{w}w)^{-1}\\ \frac{\partial J(w)}{\partial w}=2S_{b}w(w^{T}S_{w}w)^{-1}+w^{T}S_{b}w(-1)(w^{T}S_{w}w)^{-2}2S_{b}w\\ =2[S_{b}w(w^{T}S_{w}w)^{-1}+w^{T}S_{b}w(-1)(w^{T}S_{w}w)^{-2}S_{b}w]=0\\ (w^{T}S_{b}w,w^{T}S_{w}w\in \mathbb{R})\\ \Rightarrow S_{b}w(w^{T}S_{w}w)-w^{T}S_{b}wS_{w}w=0\\ \Rightarrow w^{T}S_{b}wS_{w}w=S_{b}w(w^{T}S_{w}w)\\ \Rightarrow S_{w}w=\frac{w^{T}S_{w}w}{w^{T}S_{b}w}S_{b}w\\ \Rightarrow w=\frac{w^{T}S_{w}w}{w^{T}S_{b}w}S_{w}^{-1}S_{b}w\\ (要注意对于w我们只关注它的方向,不关心它的大小。)\\ \Rightarrow w\propto S_{w}^{-1}S_{b}w\\ \Rightarrow w\propto S_{w}^{-1}(\bar{x}_{C_{1}}-\bar{x}_{C_{2}})\underset{1维}{\underbrace{(\bar{x}_{C_{1}}-\bar{x}_{C_{2}})^{T}w}}\\ \Rightarrow w\propto S_{w}^{-1}(\bar{x}_{C_{1}}-\bar{x}_{C_{2}})\\ \Rightarrow w\propto (S_{C_{1}}+S_{C_{2}})^{-1}(\bar{x}_{C_{1}}-\bar{x}_{C_{2}})

进一步如果Sw1S_{w}^{-1}是各向同性的对角矩阵的话,wxˉC1xˉC2w\propto \bar{x}_{C_{1}}-\bar{x}_{C_{2}}

四、逻辑回归

  1. 概述

逻辑回归是一种二分类算法,通过sigmoidsigmoid**函数将线性组合wTxw^{T}x压缩到0011之间来代表属于某一个分类的概率。

假设有如下数据:

{(xi,yi)}i=1N,xiRp,yi{0,1}\left \{(x_{i},y_{i})\right \}_{i=1}^{N},x_{i}\in \mathbb{R}^{p},y_{i}\in \left \{0,1\right \}

  1. sigmoidsigmoid**函数

σ(z)=11+ez\sigma (z)=\frac{1}{1+e^{-z}}

其图像为:

线性分类|机器学习推导系列(四)

  1. 逻辑回归的模型

逻辑回归预测y=1y=1的概率,然后根据极大似然估计法来求解。

p1=P(y=1x)=σ(wTx)=11+ewTx=φ(x;w)p0=P(y=0x)=1P(y=1x)=ewTx1+ewTx=1φ(x;w)}p(yx)=p1yp01y\left.\begin{matrix} p_{1}=P(y=1|x)=\sigma (w^{T}x)=\frac{1}{1+e^{-w^{T}x}}=\varphi (x;w)\\ p_{0}=P(y=0|x)=1-P(y=1|x)=\frac{e^{-w^{T}x}}{1+e^{-w^{T}x}}=1-\varphi (x;w) \end{matrix}\right\}p(y|x)=p_{1}^{y}p_{0}^{1-y}

  1. 逻辑回归的求解

w^=argmaxwlogP(YX)likelihood=argmaxwlogi=1NP(yixi)=argmaxwi=1NlogP(yixi)=argmaxwi=1N(yilogp1+(1yi)logp0)=argmaxwi=1N(yilogφ(x;w)+(1yi)log(1φ(x;w))crossentropy\hat{w}=\underset{w}{argmax}\: log\underset{likelihood}{\underbrace{P(Y|X)}}\\ =\underset{w}{argmax}\: log\prod_{i=1}^{N}P(y_{i}|x_{i})\\ =\underset{w}{argmax}\sum _{i=1}^{N}logP(y_{i}|x_{i})\\ =\underset{w}{argmax}\sum _{i=1}^{N}(y_{i}log\: p_{1}+(1-y_{i})log\: p_{0})\\ =\underset{w}{argmax}\underset{-\: cross\: entropy}{\underbrace{\sum _{i=1}^{N}(y_{i}log\: \varphi (x;w)+(1-y_{i})log(1-\varphi (x;w))}}

因此这里的极大似然估计就等价于极小化交叉熵损失函数。

求导的过程较为简单,就不做展示了。

五、高斯判别分析

  1. 概述

假设有如下数据:

{(xi,yi)}i=1N,xiRp,yi{0,1}\left \{(x_{i},y_{i})\right \}_{i=1}^{N},x_{i}\in \mathbb{R}^{p},y_{i}\in \left \{0,1\right \}

  1. 高斯判别分析的模型

在高斯判别分析中样本数据的类别yy在给定的情况下服从伯努利分布,另外不同类别中的样本数据分别服从多元高斯分布,因此有以下模型:

yBernoulli(ϕ)ϕy,y=1(1ϕ)1y,y=0}P(y)=ϕyϕ1yxy=1N(μ1,Σ)xy=0N(μ2,Σ)}P(xy)=N(μ1,Σ)yN(μ2,Σ)1yy\sim Bernoulli(\phi )\Leftrightarrow \left.\begin{matrix} \phi ^{y},y=1\\ (1-\phi)^{1-y},y=0 \end{matrix}\right\}P(y)=\phi^{y}\phi^{1-y}\\ \left.\begin{matrix} x|y=1\sim N(\mu _{1},\Sigma )\\ x|y=0\sim N(\mu _{2},\Sigma ) \end{matrix}\right\}P(x|y)=N(\mu _{1},\Sigma )^{y}N(\mu _{2},\Sigma )^{1-y}

这里假设两个高斯分布具有同样的方差。

  1. 高斯判别模型的求解
  • 损失函数

高斯判别模型的损失函数为其loglog似然,要估计的参数θ\theta(μ1,μ2,Σ,ϕ)(\mu _{1},\mu _{2},\Sigma ,\phi ):

L(θ)=logi=1NP(xi,yi)=i=1NlogP(xi,yi)=i=1NlogP(xiyi)P(yi)=i=1N[logP(xiyi)+logP(yi)]=i=1N[logN(μ1,Σ)yiN(μ2,Σ)1yi+logϕyiϕ1yi]=i=1N[logN(μ1,Σ)yi+logN(μ2,Σ)1yi+logϕyiϕ1yi]L(\theta )=log\prod_{i=1}^{N}P(x_{i},y_{i})\\ =\sum _{i=1}^{N}logP(x_{i},y_{i})\\ =\sum _{i=1}^{N}logP(x_{i}|y_{i})P(y_{i})\\ =\sum _{i=1}^{N}[logP(x_{i}|y_{i})+logP(y_{i})]\\ =\sum _{i=1}^{N}[logN(\mu _{1},\Sigma )^{y_{i}}N(\mu _{2},\Sigma )^{1-y_{i}}+log\phi^{y_{i}}\phi^{1-y_{i}}]\\ =\sum _{i=1}^{N}[\underset{①}{\underbrace{logN(\mu _{1},\Sigma )^{y_{i}}}}+\underset{②}{\underbrace{logN(\mu _{2},\Sigma )^{1-y_{i}}}}+\underset{③}{\underbrace{log\phi^{y_{i}}\phi^{1-y_{i}}}}]

然后使用极大似然估计法来求解:

θ^=argmaxθL(θ)\hat{\theta }=\underset{\theta}{argmax}L(\theta )

定义标签为11的样本个数为N1N_{1},标签为00的样本个数为N2N_{2},则有N1+N2=NN_{1}+N_{2} `= N

  • 求解ϕ\phi

ϕ\phi只存在于③式中,因此求解ϕ\phi只需要看③式即可:

=i=1N[yilogϕ+(1yi)log(1ϕ)]ϕ=i=1N[yi1ϕ(1yi)11ϕ]=0i=1N[yi(1ϕ)(1yi)ϕ]=0i=1N(yiϕ)=0i=1NyiNϕ=0ϕ^=1Ni=1Nyi=N1N③=\sum _{i=1}^{N}[y_{i}log\phi +(1-y_{i})log(1-\phi )]\\ \frac{\partial ③}{\partial \phi}=\sum _{i=1}^{N}[y_{i}\frac{1}{\phi}-(1-y_{i})\frac{1}{1-\phi }]=0\\ \Rightarrow \sum _{i=1}^{N}[y_{i}(1-\phi)-(1-y_{i})\phi ]=0\\ \Rightarrow \sum _{i=1}^{N}(y_{i}-\phi)=0\\ \Rightarrow \sum _{i=1}^{N}y_{i}-N\phi=0\\ \hat{\phi}=\frac{1}{N}\sum _{i=1}^{N}y_{i}=\frac{N_{1}}{N}

  • 求解μ1μ2\mu_{1}、\mu_{2}

ϕ\phi只存在于①式中,因此求解μ1\mu_{1}只需要看①式即可:

=i=1Nyilog1(2π)p/2Σ1/2exp{12(xiμ1)TΣ1(xiμ1)}μ1=argmaxμ1=argmaxμ1i=1Nyi[log1(2π)p/2Σ1/212(xiμ1)TΣ1(xiμ1)]=argmaxμ1i=1Nyi[12(xiμ1)TΣ1(xiμ1)]=argmaxμ1ΔΔ=i=1Nyi[12(xiμ1)TΣ1(xiμ1)]=12i=1Nyi(xiTΣ1μ1TΣ1)(xiμ1)=12i=1Nyi(xiTΣ1xi2μ1TΣ1xi+μ1TΣ1μ1)Δμ1=12i=1Nyi(2Σ1xi+2Σ1μ1)=0i=1Nyi(Σ1μ1Σ1xi)=0i=1Nyi(μ1xi)=0i=1Nyiμ1=i=1Nyixiμ1^=i=1Nyixii=1Nyi=i=1NyixiN1μ2^=i=1NyixiN2①=\sum _{i=1}^{N}y_{i}log\frac{1}{(2\pi )^{p/2}|\Sigma |^{1/2}}exp\left \{-\frac{1}{2}(x_{i}-\mu _{1})^{T}\Sigma ^{-1}(x_{i}-\mu _{1})\right \}\\ \mu _{1}=\underset{\mu _{1}}{argmax}①\\ =\underset{\mu _{1}}{argmax}\sum _{i=1}^{N}y_{i}[log\frac{1}{(2\pi )^{p/2}|\Sigma |^{1/2}}-\frac{1}{2}(x_{i}-\mu _{1})^{T}\Sigma ^{-1}(x_{i}-\mu _{1})]\\ =\underset{\mu _{1}}{argmax}\sum _{i=1}^{N}y_{i}[-\frac{1}{2}(x_{i}-\mu _{1})^{T}\Sigma ^{-1}(x_{i}-\mu _{1})]\\ =\underset{\mu _{1}}{argmax}\Delta\\ \Delta=\sum _{i=1}^{N}y_{i}[-\frac{1}{2}(x_{i}-\mu _{1})^{T}\Sigma ^{-1}(x_{i}-\mu _{1})]\\ =-\frac{1}{2}\sum _{i=1}^{N}y_{i}(x_{i}^{T}\Sigma ^{-1}-\mu _{1}^{T}\Sigma ^{-1})(x_{i}-\mu _{1})\\ =-\frac{1}{2}\sum _{i=1}^{N}y_{i}(x_{i}^{T}\Sigma ^{-1}x_{i}-2\mu _{1}^{T}\Sigma ^{-1}x_{i}+\mu _{1}^{T}\Sigma ^{-1}\mu _{1})\\ \frac{\partial \Delta}{\partial \mu _{1}}=-\frac{1}{2}\sum _{i=1}^{N}y_{i}(-2\Sigma ^{-1}x_{i}+2\Sigma ^{-1}\mu _{1})=0\\ \Rightarrow \sum _{i=1}^{N}y_{i}(\Sigma ^{-1}\mu _{1}-\Sigma ^{-1}x_{i})=0\\ \Rightarrow \sum _{i=1}^{N}y_{i}(\mu _{1}-x_{i})=0\\ \Rightarrow \sum _{i=1}^{N}y_{i}\mu _{1}=\sum _{i=1}^{N}y_{i}x_{i}\\ \hat{\mu _{1}}=\frac{\sum _{i=1}^{N}y_{i}x_{i}}{\sum _{i=1}^{N}y_{i}}=\frac{\sum _{i=1}^{N}y_{i}x_{i}}{N_{1}}\\ 同理\hat{\mu _{2}}=\frac{\sum _{i=1}^{N}y_{i}x_{i}}{N_{2}}

  • 求解Σ\Sigma

以下是求解过程中用到的一些预备知识:

ABA=BTAA=AA1tr(AB)=tr(BA)tr(ABC)=tr(CAB)=tr(BCA)\frac{\partial AB}{\partial A}=B^{T}\\ \frac{\partial |A|}{\partial A}=|A|A^{-1}\\ tr(AB)=tr(BA)\\ tr(ABC)=tr(CAB)=tr(BCA)

两类数据按照以下两个集合来表示:

C1={xiyi=1,i=1,2,,N}C2={xiyi=0,i=1,2,,N}C1=N1,C2=N2,N1+N2=NC_{1}=\left \{x_{i}|y_{i}=1,i=1,2,\cdots ,N\right \}\\ C_{2}=\left \{x_{i}|y_{i}=0,i=1,2,\cdots ,N\right \}\\ |C_{1}|=N_{1},|C_{2}|=N_{2},N_{1}+N_{2}=N

然后进行求解:

Σ^=argmaxΣ(+)+=xiC1logN(μ1,Σ)+xiC2logN(μ2,Σ)\hat{\Sigma }=\underset{\Sigma }{argmax}(①+②)\\ ①+②=\sum _{x_{i}\in C_{1}}logN(\mu _{1},\Sigma )+\sum _{x_{i}\in C_{2}}logN(\mu _{2},\Sigma )

然后求解上式中的通项:

i=1NlogN(μ,Σ)=i=1Nlog1(2π)p/2Σ1/2exp{12(xiμ)TΣ1(xiμ)}=i=1N[log1(2π)p/2+logΣ1212(xiμ)TΣ1(xiμ)]=i=1N[C12logΣ12(xiμ)TΣ1(xiμ)]=C12NlogΣ12i=1N(xiμ)TΣ1(xiμ)=C12NlogΣ12i=1Ntr[(xiμ)TΣ1(xiμ)]()=C12NlogΣ12i=1Ntr[(xiμ)(xiμ)TΣ1]=C12NlogΣ12tr[i=1N(xiμ)(xiμ)TΣ1]=C12tr(NSΣ1)(S=1Ni=1N(xiμ)(xiμ)T,)=12NlogΣ12Ntr(SΣ1)+C+=12N1logΣ12N1tr(S1Σ1)12N2logΣ12N2tr(S2Σ1)+C=12NlogΣ12N1tr(S1Σ1)12N2tr(S2Σ1)+C=12[NlogΣ+N1tr(S1Σ1)+N2tr(S2Σ1)]+C\sum_{i=1}^{N}logN(\mu ,\Sigma )=\sum_{i=1}^{N}log\frac{1}{(2\pi )^{p/2}|\Sigma |^{1/2}}exp\left \{-\frac{1}{2}(x_{i}-\mu )^{T}\Sigma ^{-1}(x_{i}-\mu )\right \}\\ =\sum_{i=1}^{N}[log\frac{1}{(2\pi )^{p/2}}+log|\Sigma |^{-\frac{1}{2}}-\frac{1}{2}(x_{i}-\mu )^{T}\Sigma ^{-1}(x_{i}-\mu )]\\ =\sum_{i=1}^{N}[C-\frac{1}{2}log|\Sigma |-\frac{1}{2}(x_{i}-\mu )^{T}\Sigma ^{-1}(x_{i}-\mu )]\\ =C-\frac{1}{2}Nlog|\Sigma |-\frac{1}{2}\sum_{i=1}^{N}(x_{i}-\mu )^{T}\Sigma ^{-1}(x_{i}-\mu )\\ =C-\frac{1}{2}Nlog|\Sigma |-\frac{1}{2}\sum_{i=1}^{N}tr[(x_{i}-\mu )^{T}\Sigma ^{-1}(x_{i}-\mu )]\\ (实数的迹等于其本身)\\ =C-\frac{1}{2}Nlog|\Sigma |-\frac{1}{2}\sum_{i=1}^{N}tr[(x_{i}-\mu )(x_{i}-\mu )^{T}\Sigma ^{-1}]\\ =C-\frac{1}{2}Nlog|\Sigma |-\frac{1}{2}tr[\sum_{i=1}^{N}(x_{i}-\mu )(x_{i}-\mu )^{T}\Sigma ^{-1}]\\ =C-\frac{1}{2}tr(NS\Sigma ^{-1})\\ (S=\frac{1}{N}\sum_{i=1}^{N}(x_{i}-\mu )(x_{i}-\mu )^{T},为协方差矩阵)\\ =-\frac{1}{2}Nlog|\Sigma |-\frac{1}{2}Ntr(S\Sigma ^{-1})+C\\ 则①+②=-\frac{1}{2}N_{1}log|\Sigma |-\frac{1}{2}N_{1}tr(S_{1}\Sigma ^{-1})-\frac{1}{2}N_{2}log|\Sigma |-\frac{1}{2}N_{2}tr(S_{2}\Sigma ^{-1})+C\\ =-\frac{1}{2}Nlog|\Sigma |-\frac{1}{2}N_{1}tr(S_{1}\Sigma ^{-1})-\frac{1}{2}N_{2}tr(S_{2}\Sigma ^{-1})+C\\ =-\frac{1}{2}[Nlog|\Sigma |+N_{1}tr(S_{1}\Sigma ^{-1})+N_{2}tr(S_{2}\Sigma ^{-1})]+C

然后对Σ\Sigma进行求导:

+Σ=12[N1ΣΣΣ1+N1tr(Σ1S1)Σ+N2tr(Σ1S2)Σ]=12[NΣ1+N1S1T(1)Σ2+N2S2T(1)Σ2]=12(NΣ1N1S1TΣ2N2S2TΣ2)=0NΣN1S1N2S2=0Σ^=N1S1+N2S2N\frac{\partial ①+②}{\partial \Sigma}=-\frac{1}{2}[N\frac{1}{|\Sigma |}|\Sigma |\Sigma^{-1}+N_{1}\frac{\partial tr(\Sigma ^{-1}S_{1})}{\partial \Sigma}+N_{2}\frac{\partial tr(\Sigma ^{-1}S_{2})}{\partial \Sigma}]\\ =-\frac{1}{2}[N\Sigma^{-1}+N_{1}S_{1}^{T}(-1)\Sigma ^{-2}+N_{2}S_{2}^{T}(-1)\Sigma ^{-2}]\\ =-\frac{1}{2}(N\Sigma^{-1}-N_{1}S_{1}^{T}\Sigma ^{-2}-N_{2}S_{2}^{T}\Sigma ^{-2})\\ =0\\ N\Sigma-N_{1}S_{1}-N_{2}S_{2}=0\\ \hat{\Sigma}=\frac{N_{1}S_{1}+N_{2}S_{2}}{N}

六、朴素贝叶斯

  1. 概述

假设有如下数据:

{(xi,yi)}i=1N,xiRp,yi{0,1}\left \{(x_{i},y_{i})\right \}_{i=1}^{N},x_{i}\in \mathbb{R}^{p},y_{i}\in \left \{0,1\right \}

  1. 朴素贝叶斯的模型

朴素贝叶斯分类器可以用来做多分类,其基本思想是条件独立性假设,即假设数据的每个特征之间是相互独立的,其形式化表达为

xyxiyxjyijP(xy)=i=1pP(xiy)对于x|y来说x^{i}|y与x^{j}|y是相互独立的(i\neq j),即\\ P(x|y)=\prod_{i=1}^{p}P(x^{i}|y)

朴素贝叶斯分类器是最简单的概率图模型(有向图):

线性分类|机器学习推导系列(四)

给定xx,判断yy的类别可以通过以下方法,即将xx归为类别的概率中最大的一类:

y^=argmaxyP(yx)=argmaxyP(x,y)P(x)=argmaxyP(y)P(xy)P(x)=argmaxyP(y)P(xy)\hat{y}=\underset{y}{argmax}P(y|x)\\ =\underset{y}{argmax}\frac{P(x,y)}{P(x)}\\ =\underset{y}{argmax}\frac{P(y)P(x|y)}{P(x)}\\ =\underset{y}{argmax}P(y)P(x|y)

P(y)P(y)是先验概率,如果有两类则服从伯努利分布(Bernoulli distribution),如果有多类则服从类别分布(Categorical distribution)。P(xy)P(x|y)则符合条件独立性假设P(xy)=i=1pP(xiy)P(x|y)=\prod_{i=1}^{p}P(x^{i}|y),其中对于xix^{i},如果xix^{i}是离散的,则可以认为其服从类别分布(Categorical distribution),如果xix^{i}是连续的,则可以认为其服从高斯分布(Gaussian distribution)。

至于其求解过程则可以根据具体情况使用极大似然估计法即可。对于朴素贝叶斯方法重要的是理解其条件独立性假设,这个假设也是其被称为“朴素(Naive)”的原因。

参考资料

ref:李航《统计学习方法》

公众号同步更新


线性分类|机器学习推导系列(四)


相关文章:

  • 2021-04-26
  • 2021-06-02
  • 2021-09-10
  • 2022-12-23
  • 2022-01-08
  • 2021-06-02
  • 2021-09-13
  • 2021-04-01
猜你喜欢
  • 2021-06-13
  • 2021-04-14
  • 2022-01-01
  • 2021-06-01
  • 2021-12-13
  • 2021-12-11
  • 2021-11-26
相关资源
相似解决方案