从线性回归到线性分类及感知机算法

释放双眼,带上耳机,听听看~!
本文章介绍了从线性回归到线性分类的过程,以及感知机算法的概述和学习策略。同时讨论了激活函数、硬分类和软分类的概念。

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

  1. 线性回归的特性

从线性回归到线性分类及感知机算法

线性回归 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. 从线性回归到线性分类

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

激活函数y=f(wTx+b),y∈{{0,1}, 硬分类 [0,1], 软分类 函数f叫做激活函数(activationfunction)函数f−1叫做链接函数(linkfunction)f:wTx+b↦{0,1}/[0,1]f−1:{0,1}/[0,1]↦wTx+bbegin{gathered}
激活函数 y=fleft(w^T x+bright), y inleft{begin{array}{c}{0,1}, text { 硬分类 } {[0,1], text { 软分类 }}end{array}right.
函数 f 叫做激活函数 (activation function)
函数 f^{-1} 叫做链接函数 (link function)
f: w^T x+b mapsto{0,1} /[0,1]
f^{-1}:{0,1} /[0,1] mapsto w^T x+b
end{gathered}

  1. 硬分类和软分类

从线性回归到线性分类及感知机算法

二、感知机

两分类-硬分类-感知机算法

  1. 概述

假设有一可以被线性分类的样本集 {(xi,yi)}i=1Nleft{left(x_i, y_iright)right}_{i=1}^N ,其中 xi∈Rp,yi{−1,+1}x_i in mathbb{R}^p, y_i{-1,+1} 。感知机算法(Perceptron Learning Algorithm)使用随机梯度下降法 (SGD) 来在特征空间 Rpmathbb{R}^p 寻找一个超平面 wTx+b=0w^T x+b=0 来将数据 划分为正、负两类,其中 w∈Rpw in mathbb{R}^p ,是超平面的法向量。
2. 学习策略
感知机的思想是错误驱动。其模型是 f(x)=sign⁡(wTx+b),f(x)f(x)=operatorname{sign}left(w^T x+bright) , f(x) 输出该样本点的类别,定义集合M为误分类点的集合。

补充:wTxw^T x也可以表示wTx+bw^T x+b,因为我们可以看做W = [W b] X = [X 1]^T

  1. 可以确定对于误分类的数据 (xi,yi)left(x_i, y_iright) 来说,满足以下关系:

−yi(wTxi+b)=∣wTxi+b∣>0frac{-y_ileft(w^T x_i+bright)}{=left|w^T x_i+bright|}>0

​ 损失函数的一个自然选择是误分类点的个数,即 L(w)=∑i=1NI{−yi(wTxi+b)>0}L(w)=sum_{i=1}^N Ileft{-y_ileft(w^T x_i+bright)>0right} ,但是这样的损失函数虽然直观,但是是非连续函数,所以不可导,不易优化。因此采用另一种损失函数,即误分类点到超平面的总距离

RpR^p 空间中任一点 x0x_0 到超平面的距离为:

∣wTx0+b∣∥w∥(可以参考初中知识,平面中点到直线的距离:d=∣Ax+By+C∣A2+B2)frac{left|w^T x_0+bright|}{|w|}
(可以参考初中知识, 平面中点到直线的距离: d=frac{|A x+B y+C|}{sqrt{A^2+B^2}} )

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

∑xi∈M∣wTx0+b∣∥w∥=−1∥w∥∑xi∈Myi(wTxi+b)sum_{x_i in M} frac{left|w^T x_0+bright|}{|w|}=-frac{1}{|w|} sum_{x_i in M} y_ileft(w^T x_i+bright)

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

L(w,b)=−∑xi∈Myi(wTxi+b)L(w, b)=-sum_{x_i in M} y_ileft(w^T x_i+bright)

  1. 学习算法
    计算损失函数的梯度:

∂L(w,b)∂w=−∑xi∈Myixi∂L(w,b)∂b=−∑xi∈Myibegin{aligned}
& 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
end{aligned}

感知机的学习算法使用随机梯度下降法 (SGD),这里选取 η(0<η≤1)eta(0<eta leq 1) 作为学习率,其学习的步骤如下:
① 选取初值 w0,b0w_0, b_0
② 在训练集中选取数据 (xi,yi)left(x_i, y_iright)
③ 如果 yi(wTxi+b)≤0y_ileft(w^T x_i+bright) leq 0 ,则更新参数:

w←w+ηyixib←b+ηyibegin{gathered}
w leftarrow w+eta y_i x_i
b leftarrow b+eta y_i
end{gathered}

④ 转至②,直到训练集中没有误分类点。
截止这里我们都是假设数据是线性可分的,如果线性不可分,可以用口袋算法 (pocket algorithm),这里不做过多介绍。

三、线性判别分析

两分类-硬分类-线性判别分析 LDA

  1. 概述

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

从线性回归到线性分类及感知机算法

假设有以下数据:

X=(x1,x1,⋯ ,xN)T=(x1Tx2T⋮xNT)N×pY=(y1y2⋮yN)N×1{(xi,yi)}i=1N,xi∈Rp,yi∈{+1C1−1C2}xC1={xi∣yi=+1},xC2={xi∣yi=−1}∣xC1∣=N1,∣xC2∣=N2,N1+N2=Nbegin{gathered}
X=left(x_1, x_1, cdots, x_Nright)^T=left(begin{array}{c}
x_1^T
x_2^T
vdots
x_N^T
end{array}right)_{N times p} Y=left(begin{array}{c}
y_1
y_2
vdots
y_N
end{array}right)_{N times 1}
left{left(x_i, y_iright)right}_{i=1}^N, x_i in mathbb{R}^p, y_i inleft{frac{+1}{C_1} frac{-1}{C_2}right}
x_{C_1}=left{x_i mid y_i=+1right}, x_{C_2}=left{x_i mid y_i=-1right}
left|x_{C_1}right|=N_1,left|x_{C_2}right|=N_2, N_1+N_2=N
end{gathered}

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

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

均值 zˉ=1N∑i=1Nzi=1N∑i=1NwTxibar z=frac{1}{N} sum_{i=1}^N z_i=frac{1}{N} sum_{i=1}^N w^T x_i

方差 Sz=1N∑i=1N(wTxi−z2)(wTxi−z2)TS_z=frac{1}{N} sum_{i=1}^Nleft(w^T x_i-z^2right)left(w^T x_i-z^2right)^T

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

C1:zˉ1=1N1∑i=1N1wTxiS1=1N1∑i=1N1(wTxi−zˉ1)(wTxi−zˉ1)TC2:zˉ2=1N2∑i=1N2wTxiS2=1N2∑i=1N2(wTxi−zˉ2)(wTxi−zˉ2)Tbegin{gathered}
C_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}left(w^T x_i-bar z_1right)left(w^T x_i-bar z_1right)^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}left(w^T x_i-bar z_2right)left(w^T x_i-bar z_2right)^T
end{gathered}

类间:(zˉ1−zˉ2)2left(bar z_1-bar z_2right)^2

类内:S1+S2S_{1}+S_{2}

定义损失函数:

J(w)=(zˉ1−zˉ2)2S1+S2分子=(zˉ1−zˉ2)2=(1N1∑i=1N1wTxi−1N2∑i=1N2wTxi)2=[wT(1N1∑i=1N1xi−1N2∑i=1N2xi)]2=[wT(xˉC1−xˉC2)]2=wT(xˉC1−xˉC2)(xˉC1−xˉC2)Tw−−−−−−−−−−−−−−−−−−−−S1=1N1∑i=1N1(wTxi−zˉ1)(wTxi−zˉ1)T=1N1∑i=1N1(wTxi−1N1∑i=1N1wTxi)(wTxi−1N1∑i=1N1wTxi)T=1N1∑i=1N1wT(xi−xˉC1)(xi−xˉC2)Tw=wT[1N1∑i=1N1(xi−xˉC1)(xi−xˉC2)T]w=wTSC1w分母=S1+S2=wTSC1w+wTSC2w=wT(SC1+SC2)w∴J(w)=wT(xˉC1−xˉC2)(xˉC1−xˉC2)TwwT(SC1+SC2)wbegin{gathered}
J(w)=frac{left(bar z_1-bar z_2right)^2}{S_1+S_2}
分子=left(bar z_1-bar z_2right)^2=left(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_iright)^2
=left[w^Tleft(frac{1}{N_1} sum_{i=1}^{N_1} x_i-frac{1}{N_2} sum_{i=1}^{N_2} x_iright)right]^2
=left[w^Tleft(bar x_{C_1}-bar x_{C_2}right)right]^2
=w^Tleft(bar x_{C_1}-bar x_{C_2}right)left(bar x_{C_1}-bar x_{C_2}right)^T w
——————–
S_1=frac{1}{N_1} sum_{i=1}^{N_1}left(w^T x_i-bar z_1right)left(w^T x_i-bar z_1right)^T
=frac{1}{N_1} sum_{i=1}^{N_1}left(w^T x_i-frac{1}{N_1} sum_{i=1}^{N_1} w^T x_iright)left(w^T x_i-frac{1}{N_1} sum_{i=1}^{N_1} w^T x_iright)^T
=frac{1}{N_1} sum_{i=1}^{N_1} w^Tleft(x_i-bar x_{C_1}right)left(x_i-bar x_{C_2}right)^T w
=w^Tleft[frac{1}{N_1} sum_{i=1}^{N_1}left(x_i-bar x_{C_1}right)left(x_i-bar x_{C_2}right)^Tright] w
=w^T S_{C_1} w
分母=S_1+S_2=w^T S_{C_1} w+w^T S_{C_2} w=w^Tleft(S_{C_1}+S_{C_2}right) w
therefore J(w)=frac{w^Tleft(bar x_{C_1}-bar x_{C_2}right)left(bar x_{C_1}-bar x_{C_2}right)^T w}{w^Tleft(S_{C_1}+S_{C_2}right) w}

end{gathered}

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

  1. 线性判别分析的求解

 令 {Sb=(xˉC1−xˉC2)(xˉC1−xˉC2)TSw=SC1+SC2 则 J(w)=wTSbwwTSww=wTSbw(wTSww)−1∂J(w)∂w=2Sbw(wTSww)−1+wTSbw(−1)(wTSww)−22Sbw=2[Sbw(wTSww)−1+wTSbw(−1)(wTSww)−2Sbw]=0(wTSbw,wTSww∈R)⇒Sbw(wTSww)−wTSbwSww=0⇒wTSbwSww=Sbw(wTSww)⇒Sww=wTSwwwTSbwSbw⇒w=wTSwwwTSbwSw−1Sbwbegin{gathered}
& text { 令 }left{begin{array}{c}
S_b=left(bar x_{C_1}-bar x_{C_2}right)left(bar x_{C_1}-bar x_{C_2}right)^T
S_w=S_{C_1}+S_{C_2}
end{array}right.
& text { 则 } J(w)=frac{w^T S_b w}{w^T S_w w}=w^T S_b wleft(w^T S_w wright)^{-1}
& frac{partial J(w)}{partial w}=2 S_b wleft(w^T S_w wright)^{-1}+w^T S_b w(-1)left(w^T S_w wright)^{-2} 2 S_b w
& =2left[S_b wleft(w^T S_w wright)^{-1}+w^T S_b w(-1)left(w^T S_w wright)^{-2} S_b wright]=0
& left(w^T S_b w, w^T S_w w in mathbb{R}right)
& Rightarrow S_b wleft(w^T S_w wright)-w^T S_b w S_w w=0
& Rightarrow w^T S_b w S_w w=S_b wleft(w^T S_w wright)
& 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
&
end{gathered}

(要注意对于 ww 我们只关注它的方向, 不关心它的大小。)

⇒w∝Sw−1Sbw⇒w∝Sw−1(xC12−xC22)xC12−xC22)Tw⏟1⩽S1⇒w∝Sw−1(xC12−xC22)⇒w∝(SC1+SC2)−1(xC12−xC22)begin{gathered}
Rightarrow w propto S_w^{-1} S_b w
Rightarrow w propto S_w^{-1}left(x_{C_1}^2-x_{C_2}^2right) underbrace{left.x_{C_1}^2-x_{C_2}^2right)^T w}_{1 leqslant S_1}
Rightarrow w propto S_w^{-1}left(x_{C_1}^2-x_{C_2}^2right)
Rightarrow w proptoleft(S_{C_1}+S_{C_2}right)^{-1}left(x_{C_1}^2-x_{C_2}^2right)
end{gathered}

进一步如果 Sw−1S_w^{-1} 是各向同性的对角矩阵的话, w∝xC12−xC22w propto x_{C_1}^2-x_{C_2}^2

四、逻辑回归

两分类-软分类-概率判别模型-Logistic 回归

  1. 概述

逻辑回归是一种二分类算法,通过 sigmoid 激活函数将线性组合 wTxw^T x 压缩到 0 和 1 之间来代表属于某一个分类的概率。
假设有如下数据:

{(xi,yi)}i=1N,xi∈Rp,yi∈{0,1} left{left(x_i, y_iright)right}_{i=1}^N, x_i in mathbb{R}^p, y_i in{0,1}

  1. sigmoid 激活函数

σ(z)=11+e−zsigma(z)=frac{1}{1+e^{-z}}

其图像为:

从线性回归到线性分类及感知机算法

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

p1=P(y=1∣x)=σ(wTx)=11+e−wTx=φ(x;w)p0=P(y=0∣x)=1−P(y=1∣x)=e−wTx1+e−wTx=1−φ(x;w)}p(y∣x)=p1yp01−yleft.begin{array}{c}
p_1=P(y=1 mid x)=sigmaleft(w^T xright)=frac{1}{1+e^{-w^T x}}=varphi(x ; w)
p_0=P(y=0 mid x)=1-P(y=1 mid x)=frac{e^{-w^T x}}{1+e^{-w^T x}}=1-varphi(x ; w)
end{array}right} p(y mid x)=p_1^y p_0^{1-y}

  1. 逻辑回归的求解

w^=argmax⁡wlog⁡P(Y∣X)⏟likelihood =argmax⁡wlog⁡∏i=1NP(yi∣xi)=argmax⁡w∑i=1Nlog⁡P(yi∣xi)=argmax⁡w∑i=1N(yilog⁡p1+(1−yi)log⁡p0)=argmax⁡w∑i=1N(yilog⁡φ(xi;w)+(1−yi)log⁡(1−φ(xi;w))⏟−cross entropy begin{aligned}
& hat{w}=underset{w}{operatorname{argmax}} log underbrace{P(Y mid X)}_{text {likelihood }}
& =underset{w}{operatorname{argmax}} log prod_{i=1}^N Pleft(y_i mid x_iright)
& =underset{w}{operatorname{argmax}} sum_{i=1}^N log Pleft(y_i mid x_iright)
& =underset{w}{operatorname{argmax}} sum_{i=1}^Nleft(y_i log p_1+left(1-y_iright) log p_0right)
& =underset{w}{operatorname{argmax}} underbrace{sum_{i=1}^Nleft(y_i log varphileft(x_i ; wright)+left(1-y_iright) log left(1-varphileft(x_i ; wright)right)right.}_{-text {cross entropy }}
&
end{aligned}

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

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

五、高斯判别分析

两分类-软分类-概率生成模型-高斯判别分析 GDA

  1. 概述

假设有如下数据:

{(xi,yi)}i=1N,xi∈Rp,yi∈{0,1}left{left(x_i, y_iright)right}_{i=1}^N, x_i in mathbb{R}^p, y_i in{0,1}

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

y∼ Bernoulli (ϕ)⇔ϕy,y=1(1−ϕ)1−y,y=0}P(y)=ϕy(1−ϕ)1−yx∣y=1∼N(μ1,Σ)x∣y=0∼N(μ2,Σ)}P(x∣y)=N(μ1,Σ)yN(μ2,Σ)1−ybegin{aligned}
& left.y sim text { Bernoulli }(phi) Leftrightarrow begin{array}{c}
phi^y, y=1
(1-phi)^{1-y}, y=0
end{array}right} P(y)=phi^y (1 – phi)^{1-y}
& left.begin{array}{l}
x mid y=1 sim Nleft(mu_1, Sigmaright)
x mid y=0 sim Nleft(mu_2, Sigmaright)
end{array}right} P(x mid y)=Nleft(mu_1, Sigmaright)^y Nleft(mu_2, Sigmaright)^{1-y}
&
end{aligned}

这里假设两个高斯分布具有同样的方差。
3. 高斯判别模型的求解

  • 损失函数
    高斯判别模型的损失函数为其 log⁡log 似然,要估计的参数 θtheta(μ1,μ2,Σ,ϕ)left(mu_1, mu_2, Sigma, phiright) :

L(θ)=log∏i=1NP(xi,yi)=∑i=1NlogP(xi,yi)=∑i=1NlogP(xi∣yi)P(yi)=∑i=1N[logP(xi∣yi)+logP(yi)]=∑i=1N[logN(μ1,Σ)yiN(μ2,Σ)1−yi+logϕyiϕ1−yi]=∑i=1N[logN(μ1,Σ)yi⏟①+logN(μ2,Σ)1−yi⏟②+logϕyiϕ1−yi⏟③]L(theta )=logprod_{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}}+logphi^{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{logphi^{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ϕ+(1−yi)log(1−ϕ)]∂③∂ϕ=∑i=1N[yi1ϕ−(1−yi)11−ϕ]=0⇒∑i=1N[yi(1−ϕ)−(1−yi)ϕ]=0⇒∑i=1N(yi−ϕ)=0⇒∑i=1Nyi−Nϕ=0ϕ^=1N∑i=1Nyi=N1N③=sum _{i=1}^{N}[y_{i}logphi +(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}-Nphi=0 hat{phi}=frac{1}{N}sum _{i=1}^{N}y_{i}=frac{N_{1}}{N}

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

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

①=∑i=1Nyilog1(2π)p/2∣Σ∣1/2exp{−12(xi−μ1)TΣ−1(xi−μ1)}μ1=argmaxμ1①=argmaxμ1∑i=1Nyi[log1(2π)p/2∣Σ∣1/2−12(xi−μ1)TΣ−1(xi−μ1)]=argmaxμ1∑i=1Nyi[−12(xi−μ1)TΣ−1(xi−μ1)]=argmaxμ1ΔΔ=∑i=1Nyi[−12(xi−μ1)TΣ−1(xi−μ1)]=−12∑i=1Nyi(xiTΣ−1−μ1TΣ−1)(xi−μ1)=−12∑i=1Nyi(xiTΣ−1xi−2μ1TΣ−1xi+μ1TΣ−1μ1)∂Δ∂μ1=−12∑i=1Nyi(−2Σ−1xi+2Σ−1μ1)=0⇒∑i=1Nyi(Σ−1μ1−Σ−1xi)=0⇒∑i=1Nyi(μ1−xi)=0⇒∑i=1Nyiμ1=∑i=1Nyixiμ1^=∑i=1Nyixi∑i=1Nyi=∑i=1NyixiN1同理μ2^=∑i=1NyixiN2①=sum _{i=1}^{N}y_{i}logfrac{1}{(2pi )^{p/2}|Sigma |^{1/2}}expleft {-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}[logfrac{1}{(2pi )^{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}-2mu _{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}(-2Sigma ^{-1}x_{i}+2Sigma ^{-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

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

∂tr(AB)∂A=BT∂∣A∣∂A=∣A∣A−1tr(AB)=tr(BA)tr(ABC)=tr(CAB)=tr(BCA)frac{partial tr(AB)}{partial A}=B^{T} frac{partial |A|}{partial A}=|A|A^{-1} tr(AB)=tr(BA) tr(ABC)=tr(CAB)=tr(BCA)

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

C1={xi∣yi=1,i=1,2,⋯ ,N}C2={xi∣yi=0,i=1,2,⋯ ,N}∣C1∣=N1,∣C2∣=N2,N1+N2=NC_{1}=left {x_{i}|y_{i}=1,i=1,2,cdots ,Nright } C_{2}=left {x_{i}|y_{i}=0,i=1,2,cdots ,Nright } |C_{1}|=N_{1},|C_{2}|=N_{2},N_{1}+N_{2}=N

然后进行求解:

Σ^=argmaxΣ(①+②)①+②=∑xi∈C1logN(μ1,Σ)+∑xi∈C2logN(μ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∣Σ∣−12−12(xi−μ)TΣ−1(xi−μ)]=∑i=1N[C−12log∣Σ∣−12(xi−μ)TΣ−1(xi−μ)]=C−12Nlog∣Σ∣−12∑i=1N(xi−μ)TΣ−1(xi−μ)=C−12Nlog∣Σ∣−12∑i=1Ntr[(xi−μ)TΣ−1(xi−μ)](实数的迹等于其本身)=C−12Nlog∣Σ∣−12∑i=1Ntr[(xi−μ)(xi−μ)TΣ−1]=C−12Nlog∣Σ∣−12tr[∑i=1N(xi−μ)(xi−μ)TΣ−1]=C−12tr(NSΣ−1)(S=1N∑i=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)]+Csum_{i=1}^{N}logN(mu ,Sigma )=sum_{i=1}^{N}logfrac{1}{(2pi )^{p/2}|Sigma |^{1/2}}expleft {-frac{1}{2}(x_{i}-mu )^{T}Sigma ^{-1}(x_{i}-mu )right } =sum_{i=1}^{N}[logfrac{1}{(2pi )^{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(NSSigma ^{-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(SSigma ^{-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+N1∂tr(Σ−1S1)∂Σ+N2∂tr(Σ−1S2)∂Σ]=−12[NΣ−1+N1S1T(−1)Σ−2+N2S2T(−1)Σ−2]=−12(NΣ−1−N1S1TΣ−2−N2S2TΣ−2)=0NΣ−N1S1−N2S2=0Σ^=N1S1+N2S2Nfrac{partial ①+②}{partial Sigma}=-frac{1}{2}[Nfrac{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}[NSigma^{-1}+N_{1}S_{1}^{T}(-1)Sigma ^{-2}+N_{2}S_{2}^{T}(-1)Sigma ^{-2}] =-frac{1}{2}(NSigma^{-1}-N_{1}S_{1}^{T}Sigma ^{-2}-N_{2}S_{2}^{T}Sigma ^{-2}) =0 NSigma-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,xi∈Rp,yi∈{0,1}left {(x_{i},y_{i})right }_{i=1}^{N},x_{i}in mathbb{R}^{p},y_{i}in left {0,1right }

  1. 朴素贝叶斯的模型

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

对于x∣y来说xi∣y与xj∣y是相互独立的(i≠j),即P(x∣y)=∏i=1pP(xi∣y)对于x|y来说x^{i}|y与x^{j}|y是相互独立的(ineq j),即 P(x|y)=prod_{i=1}^{p}P(x^{i}|y)

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

从线性回归到线性分类及感知机算法

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

y^=argmaxyP(y∣x)=argmaxyP(x,y)P(x)=argmaxyP(y)P(x∣y)P(x)=argmaxyP(y)P(x∣y)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(x∣y)P(x|y)则符合条件独立性假设P(x∣y)=∏i=1pP(xi∣y)P(x|y)=prod_{i=1}^{p}P(x^{i}|y),其中对于xix^{i},如果xix^{i}是离散的,则可以认为其服从类别分布(Categorical distribution),如果xix^{i}是连续的,则可以认为其服从高斯分布(Gaussian distribution)。

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

七、小结

分类任务分为两类,对于需要直接输出类别的任务,感知机算法中我们在线性模型的基础上加入符号函数作为激活函数,那么就能得到这个类别,但是符号函数不光滑,于是我们采用错误驱动的方式,引入 ∑xi∈Dwrong−yiwTxisumlimits_{x_iinmathcal{D}_{wrong}}-y_iw^Tx_i 作为损失函数,然后最小化这个误差,采用批量随机梯度下降的方法来获取最佳的参数值。而在线性判别分析中,我们将线性模型看作是数据点在某一个方向的投影,采用类内小,类间大的思路来定义损失函数,其中类内小定义为两类数据的方差之和,类间大定义为两类数据中心点的间距,对损失函数求导得到参数的方向,这个方向就是 Sw−1(x‾c1−x‾c2)S_w^{-1}(overline x_{c1}-overline x_{c2}),其中 SwS_w 为原数据集两类的方差之和。

另一种任务是输出分类的概率,对于概率模型,我们有两种方案,第一种是判别模型,也就是直接对类别的条件概率建模,将线性模型套入 Logistic 函数中,我们就得到了 Logistic 回归模型,这里的概率解释是两类的联合概率比值的对数是线性的,我们定义的损失函数是交叉熵(等价于 MLE),对这个函数求导得到 1N∑i=1N(yi−p1)xifrac{1}{N}sumlimits_{i=1}^N(y_i-p_1)x_i,同样利用批量随机梯度(上升)的方法进行优化。第二种是生成模型,生成模型引入了类别的先验,在高斯判别分析中,我们对数据集的数据分布作出了假设,其中类先验是二项分布,而每一类的似然是高斯分布,对这个联合分布的对数似然进行最大化就得到了参数, ∑i=1NyixiN1,∑i=1N(1−yi)xiN0,N1S1+N2S2N,N1Nfrac{sumlimits_{i=1}^Ny_ix_i}{N_1},frac{sumlimits_{i=1}^N(1-y_i)x_i}{N_0},frac{N_1S_1+N_2S_2}{N},frac{N_1}{N}。在朴素贝叶斯中,我们进一步对属性的各个维度之间的依赖关系作出假设,条件独立性假设大大减少了数据量的需求。

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

Modular团队解决AI性能碎片化问题的新方法

2023-12-20 5:03:14

AI教程

使用中间表示SSQL进行原理正确的生成

2023-12-20 6:33:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索