zl程序教程

您现在的位置是:首页 >  硬件

当前栏目

机器学习笔记之线性分类——高斯判别分析(一)模型思路构建

机器思路笔记学习 模型 构建 分类 线性
2023-09-11 14:15:53 时间

机器学习笔记之线性分类——高斯判别分析之模型思路构建

引言

上一节介绍了线性分类中概率判别模型的经典方法——逻辑回归(Logistic Regression),本节将介绍线性分类中概率生成模型的经典方法——高斯判别分析(Gaussian Discriminant Aanlysis)。

回顾:软分类思想

软分类角度观察线性分类:以二分类为例,假设样本数据以及样本标签分布表示如下:
X = ( x ( 1 ) , x ( 2 ) , ⋯   , x ( N ) ) N × p T Y = ( y ( 1 ) , y ( 2 ) , ⋯   , y ( N ) ) N × 1 T y ( i ) ∈ { 0 , 1 } \mathcal X = (x^{(1)},x^{(2)},\cdots,x^{(N)})^{T}_{N \times p} \\ \mathcal Y = (y^{(1)},y^{(2)},\cdots,y^{(N)})^{T}_{N \times 1} \\ y^{(i)} \in \{0,1\} X=(x(1),x(2),,x(N))N×pTY=(y(1),y(2),,y(N))N×1Ty(i){0,1}

软分类的朴素思想 是:给定样本 X \mathcal X X条件下,判别后验概率 P ( Y ∣ X ) P(\mathcal Y \mid \mathcal X) P(YX)之间的大小关系。即:
P ( Y p r e d = 0 ∣ X ) = ? P ( Y p r e d = 1 ∣ X ) P(\mathcal Y_{pred} = 0 \mid \mathcal X)\overset{\text{?}}{=}P(\mathcal Y_{pred} = 1 \mid \mathcal X) P(Ypred=0X)=?P(Ypred=1X)
已知一个样本 x ( i ) x^{(i)} x(i),通过某种方法得到了 P ( y p r e d ( i ) = 0 ∣ x ( i ) ) P(y_{pred}^{(i)}=0 \mid x^{(i)}) P(ypred(i)=0x(i)) P ( y p r e d ( i ) = 1 ∣ x ( i ) ) P(y_{pred}^{(i)} =1 \mid x^{(i)}) P(ypred(i)=1x(i))之间大小关系:
P ( y p r e d ( i ) = 0 ∣ x ( i ) ) > P ( y p r e d ( i ) = 1 ∣ x ( i ) ) P(y_{pred}^{(i)}=0 \mid x^{(i)}) > P(y_{pred}^{(i)} =1 \mid x^{(i)}) P(ypred(i)=0x(i))>P(ypred(i)=1x(i))
我们将基于样本 x ( i ) x^{(i)} x(i)的预测标签结果 y p r e d ( i ) y_{pred}^{(i)} ypred(i)判别为 0 0 0,反之同理
基于上述思想,为了得到各后验概率间的大小关系,具体分为两种方法:概率判别模型、概率生成模型

概率判别模型

概率判别模型的 朴素思想 是:既然要比较各后验概率间大小关系,那么干脆直接将各后验概率具体值求出来,然后直接比较即可。最典型的操作是逻辑回归(Logistic Regression)。
逻辑回归求解后验概率 P ( y ( i ) ∣ x ( i ) ) P(y^{(i)} \mid x^{(i)}) P(y(i)x(i))的方法是 利用模型进行求解基于二分类的逻辑回归模型表示如下:
偏置项 b b b省略,融合进‘权重信息’ W \mathcal W W中。
P ( y p r e d ( i ) ∣ x ( i ) ) = s i g m o i d ( W T x ( i ) ) = 1 1 + e − W T x ( i ) P(y_{pred}^{(i)} \mid x^{(i)}) = sigmoid(\mathcal W^{T}x^{(i)}) = \frac{1}{1 + e^-{\mathcal W^{T}x^{(i)}}} P(ypred(i)x(i))=sigmoid(WTx(i))=1+eWTx(i)1
对应两种后验概率表示如下:
{ P ( y p r e d ( i ) = 1 ∣ x ( i ) ) = 1 1 + e − W T x ( i ) P ( y p r e d ( i ) = 0 ∣ x ( i ) ) = 1 − 1 1 + e − W T x ( i ) = e − W T x ( i ) 1 + e − W T x ( i ) \begin{cases} P(y_{pred}^{(i)} =1 \mid x^{(i)}) = \frac{1}{1 + e^-{\mathcal W^{T}x^{(i)}}} \\ P(y_{pred}^{(i)} =0 \mid x^{(i)}) = 1 - \frac{1}{1 + e^-{\mathcal W^{T}x^{(i)}}} = \frac{e^{-\mathcal W^{T}x^{(i)}}}{1 + e^{-\mathcal W^{T}x^{(i)}}} \end{cases} P(ypred(i)=1x(i))=1+eWTx(i)1P(ypred(i)=0x(i))=11+eWTx(i)1=1+eWTx(i)eWTx(i)

最终对后验概率 P ( y p r e d ( i ) ∣ x ( i ) ) P(y_{pred}^{(i)} \mid x^{(i)}) P(ypred(i)x(i))进行极大似然估计,等价于最小化交叉熵方法,最终求解最优模型参数 W \mathcal W W
重点关注的是:最终求解的参数是模型参数

概率生成模型

概率生成模型的 朴素思想 是:相比于概率判别模型直接求解 P ( y ( i ) ∣ x ( i ) ) P(y^{(i)} \mid x^{(i)}) P(y(i)x(i)),由于最终目标是判断后验概率的大小关系,因此不需要将 P ( y ( i ) ∣ x ( i ) ) P(y^{(i)} \mid x^{(i)}) P(y(i)x(i))求解出来也能够判别出大小关系

概率生成模型实现判别任务的核心依据:贝叶斯定理
P ( Y p r e d = i ∣ X ) = P ( X ∣ Y = i ) P ( Y = i ) P ( X ) ( i = 0 , 1 ) P(\mathcal Y_{pred} = i \mid \mathcal X) = \frac{P(\mathcal X \mid \mathcal Y = i)P(\mathcal Y=i)}{P(\mathcal X)} \quad (i=0,1) P(Ypred=iX)=P(X)P(XY=i)P(Y=i)(i=0,1)
其中分母 P ( X ) P(\mathcal X) P(X)是一个关于样本集合 X \mathcal X X边缘概率分布
P ( X ) = ∫ Y P ( X ∣ Y ) P ( Y ) d Y P(\mathcal X) = \int_{\mathcal Y}P(\mathcal X \mid \mathcal Y)P(\mathcal Y)d\mathcal Y P(X)=YP(XY)P(Y)dY
由于 P ( X ) P(\mathcal X) P(X) Y \mathcal Y Y无关,因此将 P ( X ) P(\mathcal X) P(X)视为常数;从而可以将 P ( Y p r e d = i ∣ X ) P(\mathcal Y_{pred}=i \mid \mathcal X) P(Ypred=iX)表示如下:
P ( Y p r e d = i ∣ X ) ∝ P ( X ∣ Y = i ) P ( Y = i ) ( i = 0 , 1 ) P(\mathcal Y_{pred}=i \mid \mathcal X) \propto P(\mathcal X \mid \mathcal Y=i)P(\mathcal Y=i) \quad (i=0,1) P(Ypred=iX)P(XY=i)P(Y=i)(i=0,1)
因而根据概率生成模型的朴素思想,对结果的比较方式进行替换
P ( Y p r e d = 0 ∣ X ) = ? P ( Y p r e d = 1 ∣ X ) → P ( X ∣ Y = 0 ) P ( Y = 0 ) = ? P ( X ∣ Y = 1 ) P ( Y = 1 ) P(\mathcal Y_{pred} = 0 \mid \mathcal X)\overset{\text{?}}{=}P(\mathcal Y_{pred} = 1 \mid \mathcal X) \\ \to P(\mathcal X \mid \mathcal Y=0)P(\mathcal Y = 0) \overset{\text{?}}{=} P(\mathcal X \mid \mathcal Y=1)P(\mathcal Y = 1) P(Ypred=0X)=?P(Ypred=1X)P(XY=0)P(Y=0)=?P(XY=1)P(Y=1)

观察等式两边的任意一项:
P ( Y = 0 ) P(\mathcal Y = 0) P(Y=0)表示关于标签数据结果为 0 0 0的先验概率分布 P ( X ∣ Y = 0 ) P(\mathcal X \mid \mathcal Y=0) P(XY=0)表示标签数据确定的情况下,样本 X \mathcal X X的概率分布,即似然的概率分布

根据概率生成模型的朴素思想,我们将通过求解似然、先验分布的概率分布参数来比较后验概率分布的大小

通过比较发现:
概率判别模型与概率生成模型的核心区别:

  • 概率判别模型求解的是模型参数
  • 概率生成模型求解的是概率分布参数

高斯判别分析

高斯判别分析就是基于概率生成模型的朴素思想,对似然 P ( X ∣ Y ) P(\mathcal X \mid \mathcal Y) P(XY)、先验 P ( Y ) P(\mathcal Y) P(Y)进行一系列假设,从而通过对似然、先验概率进行求解来替代后验概率 P ( Y ∣ X ) P(\mathcal Y \mid \mathcal X) P(YX)进行比较

场景描述

仍然以二分类为例,数据集合 D a t a = { ( x ( i ) , y ( i ) ) } i = 1 , 2 , ⋯   , N Data = \{(x^{(i)},y^{(i)})\}_{i=1,2,\cdots,N} Data={(x(i),y(i))}i=1,2,,N;其中任意 x ( i ) x^{(i)} x(i) p p p维向量,对应 y ( i ) y^{(i)} y(i)是一个表示分类标签的标量
x ( i ) = ( x 1 ( i ) , x 2 ( i ) , ⋯   , x p ( i ) ) T y ( i ) ∈ { 0 , 1 } x^{(i)} = (x_1^{(i)},x_2^{(i)},\cdots,x_p^{(i)})^{T} \\ y^{(i)} \in \{0,1\} x(i)=(x1(i),x2(i),,xp(i))Ty(i){0,1}

策略构建

由于是二分类,我们不妨设分类标签的先验概率服从伯努利分布。即:
这个‘伯努利分布’仅因为我们假设的是二分类而设定的,如果是多分类,也可以设置为categorical分布。
Y ∼ B e r n o u l l i ( ϕ ) \mathcal Y \sim Bernoulli(\phi) YBernoulli(ϕ)
其中 ϕ \phi ϕ表示选择各类标签的概率。任意分类标签 y ( i ) ( i = 1 , 2 , ⋯   , N ) y^{(i)}(i=1,2,\cdots,N) y(i)(i=1,2,,N)概率分布选择 表示如下:

y ( i ) y^{(i)} y(i)10
P P P ϕ \phi ϕ 1 − ϕ 1 - \phi 1ϕ

因此,分类标签的先验概率 P ( Y ) P(\mathcal Y) P(Y)概率密度函数表示如下:
P ( Y ) = ϕ Y ( 1 − ϕ ) 1 − Y P(\mathcal Y) = \phi^{\mathcal Y}(1- \phi)^{1- \mathcal Y} P(Y)=ϕY(1ϕ)1Y

高斯判别分析的核心假设
分类标签的先验概率分布确定的条件下,我们设各标签对应的似然 P ( X ∣ Y = 0 ) , P ( X ∣ Y = 1 ) P(\mathcal X \mid \mathcal Y = 0),P(\mathcal X \mid \mathcal Y = 1) P(XY=0),P(XY=1)服从高斯分布,为了简化运算,假定两个高斯分布包含 相同的协方差信息
该假设不同于‘先验分布假设’,该假设是’高斯判别分析‘的特有假设。
{ X ∣ Y = 1 ∼ N ( μ 1 , Σ ) X ∣ Y = 0 ∼ N ( μ 2 , Σ ) \begin{cases}\mathcal X \mid \mathcal Y=1 \sim \mathcal N(\mu_1,\Sigma) \\ \mathcal X \mid \mathcal Y =0 \sim \mathcal N(\mu_2,\Sigma)\end{cases} {XY=1N(μ1,Σ)XY=0N(μ2,Σ)
P ( X ∣ Y ) P(\mathcal X \mid \mathcal Y) P(XY)概率密度函数表示如下:
P ( X ∣ Y ) = N ( μ 1 , Σ ) Y N ( μ 2 , Σ ) 1 − Y P(\mathcal X \mid \mathcal Y) = \mathcal N(\mu_1,\Sigma)^{\mathcal Y}\mathcal N(\mu_2,\Sigma)^{1- \mathcal Y} P(XY)=N(μ1,Σ)YN(μ2,Σ)1Y
上述公式同逻辑回归后验概率的处理方法,只是 合并上述两种似然情况的一种表达方式

  • Y = 0 \mathcal Y = 0 Y=0时, P ( X ∣ Y ) = N ( μ 2 , Σ ) P(\mathcal X \mid \mathcal Y) = \mathcal N(\mu_2,\Sigma) P(XY)=N(μ2,Σ)
  • Y = 1 \mathcal Y=1 Y=1时, P ( X ∣ Y ) = N ( μ 1 , Σ ) P(\mathcal X \mid \mathcal Y) = \mathcal N(\mu_1,\Sigma) P(XY)=N(μ1,Σ)

至此,似然、先验概率分布均表达完毕。观察具体对哪些概率分布参数进行求解
θ = { μ 1 , μ 2 , Σ , ϕ } \theta = \left\{\mu_1,\mu_2,\Sigma,\phi\right\} θ={μ1,μ2,Σ,ϕ}
P ( X , Y ) = P ( X ∣ Y ) P ( Y ) P(\mathcal X,\mathcal Y) = P(\mathcal X \mid \mathcal Y)P(\mathcal Y) P(X,Y)=P(XY)P(Y)进行极大似然估计

  • 有人可能会问:既然已经引入了’先验概率‘ P ( Y ) P(\mathcal Y) P(Y),为什么依然是’极大似然估计‘(MLE),不应该是’最大后验概率估计‘(MAP)吗?
    以下是个人理解
    极大似然估计与最大后验概率估计中介绍过,最大后验概率估计可以理解为在极大似然估计的基础上,添加一个先验分布作为约束,但是该先验分布是 预先知道的,分布中没有任何未知量
    就像文中提到的投掷骰子的例子,我们让先验分布 P ( θ ) P(\theta) P(θ)服从一个高斯分布
    θ ∼ N ( μ = 0.5 , σ 2 = 0.01 ) \theta \sim \mathcal N(\mu=0.5,\sigma^2=0.01) θN(μ=0.5,σ2=0.01)
    高斯判别分析的假设中,对于先验分布 P ( Y ) P(\mathcal Y) P(Y)中的 ϕ \phi ϕ同样是未知的,也是待求解的一部分。因此,与其说是极大似然估计,还不如说是极大联合概率分布估计

极大似然估计表达如下:
为了方便计算,依然使用 log ⁡ \log log似然
L ( θ ) = log ⁡ ∏ i = 1 N P ( x ( i ) , y ( i ) ) = ∑ i = 1 N log ⁡ [ P ( x ( i ) ∣ y ( i ) ) P ( y ( i ) ) ] \begin{aligned}\mathcal L(\theta) & = \log \prod_{i=1}^N P(x^{(i)},y^{(i)}) \\ & = \sum_{i=1}^N \log\left[P(x^{(i)} \mid y^{(i)})P(y^{(i)})\right]\end{aligned} L(θ)=logi=1NP(x(i),y(i))=i=1Nlog[P(x(i)y(i))P(y(i))]
其中 θ = { μ 1 , μ 2 , Σ , ϕ } \theta =\{\mu_1,\mu_2,\Sigma,\phi\} θ={μ1,μ2,Σ,ϕ},最优模型参数表示如下:
θ ^ = arg ⁡ max ⁡ θ L ( θ ) = arg ⁡ max ⁡ θ ∑ i = 1 N log ⁡ [ P ( x ( i ) ∣ y ( i ) ) P ( y ( i ) ) ] = arg ⁡ max ⁡ θ ∑ i = 1 N [ log ⁡ P ( x ( i ) ∣ y ( i ) ) + log ⁡ P ( y ( i ) ) ] \begin{aligned}\hat {\theta} & = \mathop{\arg\max}\limits_{\theta} \mathcal L(\theta) \\ & = \mathop{\arg\max}\limits_{\theta} \sum_{i=1}^N \log\left[P(x^{(i)} \mid y^{(i)})P(y^{(i)})\right] \\ & = \mathop{\arg\max}\limits_{\theta} \sum_{i=1}^N \left[\log P(x^{(i)} \mid y^{(i)}) + \log P(y^{(i)})\right] \end{aligned} θ^=θargmaxL(θ)=θargmaxi=1Nlog[P(x(i)y(i))P(y(i))]=θargmaxi=1N[logP(x(i)y(i))+logP(y(i))]
将对应概率密度函数代入上式:
θ ^ = arg ⁡ max ⁡ θ ∑ i = 1 N { log ⁡ [ N ( μ 1 , Σ ) y ( i ) N ( μ 2 , Σ ) 1 − y ( i ) ] + log ⁡ [ ϕ y ( i ) ( 1 − ϕ ) 1 − y ( i ) ] } \begin{aligned}\hat {\theta} & = \mathop{\arg\max}\limits_{\theta} \sum_{i=1}^N \left\{\log \left[\mathcal N(\mu_1,\Sigma)^{y^{(i)}} \mathcal N(\mu_2,\Sigma)^{1 - y^{(i)}}\right] + \log\left[\phi^{y^{(i)}}(1 - \phi)^{1 - y^{(i)}}\right]\right\} \\ \end{aligned} θ^=θargmaxi=1N{log[N(μ1,Σ)y(i)N(μ2,Σ)1y(i)]+log[ϕy(i)(1ϕ)1y(i)]}
为了方便对各参数求最优解,将 μ 1 , μ 2 \mu_1,\mu_2 μ1,μ2参数分开,最终表示结果如下:
θ ^ = arg ⁡ max ⁡ θ ∑ i = 1 N { log ⁡ [ N ( μ 1 , Σ ) y ( i ) ] + log ⁡ [ N ( μ 2 , Σ ) 1 − y ( i ) ] + log ⁡ [ ϕ y ( i ) ( 1 − ϕ ) 1 − y ( i ) ] } \hat {\theta} = \mathop{\arg\max}\limits_{\theta} \sum_{i=1}^N \left\{\log \left[\mathcal N(\mu_1,\Sigma)^{y^{(i)}}\right] + \log \left[\mathcal N(\mu_2,\Sigma)^{1 - y^{(i)}}\right] + \log\left[\phi^{y^{(i)}}(1 - \phi)^{1 - y^{(i)}}\right]\right\} θ^=θargmaxi=1N{log[N(μ1,Σ)y(i)]+log[N(μ2,Σ)1y(i)]+log[ϕy(i)(1ϕ)1y(i)]}

下一节将对 θ \theta θ中的各个参数求最优解

相关参考:
机器学习-线性分类(6)-高斯判别分析(Gaussain Discriminant Analysis)-模型定义