【机器学习】线性模型

news/2024/11/8 9:34:50/

文章目录

  • 第三章:线性模型
    • 一、线性回归模型
      • 1.1、线性回归模型
      • 1.2、求解线性回归模型(时刻要分清维度)
      • 1.3、多输出线性回归模型
    • 二、线性分类模型
      • 2.1、判别函数
      • 2.2、概率判别模型
      • 2.3、概率生成模型

第三章:线性模型

一、线性回归模型

1.1、线性回归模型

训练数据包含𝑁个输入数据 ( x 1 , x 2 , … … x N ) (\mathbf{x_1},\mathbf{x_2},……\mathbf{x_N}) (x1,x2,……xN)以及对应函数值 ( t 1 , t 2 … … t N ) (t_1,t_2……t_N) (t1,t2……tN),回归任务是对一个新的输入 x \mathbf{x} x预测对应的目标值

最简单的线性回归模型形式如下(以下均是针对具有D个元素的单一向量 x \mathbf{x} x进行分析):
y ( x , w ) = w 0 + w 1 x 1 + ⋯ ⋅ w D x D = w T x y(\mathbf{x},\mathbf{w})=w_{0}+w_{1}x_{1}+\dots\cdot w_{D}x_{D}=\mathbf{w^T}\mathbf{x} y(x,w)=w0+w1x1+wDxD=wTx
其中 w = ( w 0 , w 1 , ⋯ , w D ) T \mathbf{w}= (w_{0},w_{1},\cdots ,w_{D})^{T} w=(w0,w1,,wD)T, x = ( 1 , x 1 , ⋯ , x D ) T \mathbf{x}= (1,x_{1},\cdots ,x_{D})^{T} x=(1,x1,,xD)T

但输入线性组合限制了模型能力,所以要引入非线性基函数对输入进行变换:
y ( x , w ) = ∑ j = 0 M − 1 w j ϕ j ( x ) = w T ϕ ( x ) y({\bf x},{\bf w})=\sum_{j=0}^{M-1}w_{j}\phi_{j}({\bf x})={\bf w}^{\mathrm{T}}\phi({\bf x}) y(x,w)=j=0M1wjϕj(x)=wTϕ(x)
其中 w = ( w 0 , w 1 , ⋯ , w M − 1 ) T w= (w_{0},w_{1},\cdots ,w_{M-1})^{T} w=(w0,w1,,wM1)T, ϕ = ( ϕ 0 , ϕ 1 , ⋯ , ϕ M − 1 ) T , ϕ 0 ( x ) = 1 \phi = (\phi _{0},\phi _{1},\cdots ,\phi _{M-1})^{T} , \phi _{0} (x)=1 ϕ=(ϕ0,ϕ1,,ϕM1)T,ϕ0(x)=1

可以看出, ϕ \mathbf{\phi} ϕ共有 M M M个,把一个 x \mathbf{x} x中的D维数据转化到了M维,因而 w w w也只需要 M M M个(结合下面实例理解)。

常见的基函数有:

image-20230311205848108

基函数 ϕ j ( x ) \phi _{j}(\mathbf{x}) ϕj(x)可以看作是对原始数据的特征提取或变换过程

image-20230311210013195

此图可理解成 ϕ 1 = x 1 2 \phi_1=x_1^2 ϕ1=x12 , ϕ 2 = x 2 2 \phi_2=x_2^2 ϕ2=x22 ……,通过三个 ϕ \phi ϕ把二维 x \mathbf{x} x变成了三维。

1.2、求解线性回归模型(时刻要分清维度)

训练数据包含𝑁个输入数据 ( x 1 , x 2 , … … x N ) (\mathbf{x_1},\mathbf{x_2},……\mathbf{x_N}) (x1,x2,……xN)以及对应函数值 ( t 1 , t 2 … … t N ) (t_1,t_2……t_N) (t1,t2……tN),模型为线性回归模型 y ( x , w ) = w T ϕ ( x ) y(\mathbf{x},\mathbf{w})=\mathbf{w}^T \phi(\mathbf{x}) y(x,w)=wTϕ(x)

image-20230314171604139 image-20230314171423418 image-20230314171525921

其中:
∑ n = 1 N { t n − w T ϕ ( x n ) } ϕ ( x n ) T = 0 \sum_{n=1}^{N}\{t_{n}-\mathbf{w}^{\mathsf{T}}\phi(\mathbf{x_{n}})\}\phi(\mathbf{x_{n}})^{\mathsf{T}}=0 n=1N{tnwTϕ(xn)}ϕ(xn)T=0可以先拆成: ∑ n = 1 N t n ϕ ( x n ) T = \sum_{n=1}^{N}t_{n}\phi(\mathbf{x_{n}})^{\mathsf{T}}= n=1Ntnϕ(xn)T= ∑ n = 1 N w T ϕ ( x n ) ϕ ( x n ) T \sum_{n=1}^{N}\mathbf{w}^{\mathsf{T}}\phi(\mathbf{x_{n}})\phi(\mathbf{x_{n}})^{\mathsf{T}} n=1NwTϕ(xn)ϕ(xn)T是用之后用矩阵代替连加号 , 即可得到结果,记住答案即可。

不过解析式有时很难得到;数据量大时,数据矩阵操作计算量大,可以不使用最大似然估计,而是:

image-20230314172741233

1.3、多输出线性回归模型

输出结果不是一个单独的 t t t值,而是一个向量 t = ( t 1 , t 2 , ⋯ t K ) T \mathbf{t}=(t_1,t_2,\cdots t_K)^T t=(t1,t2,tK)T

  • 思路一:对𝒕的每一个元素成分使用不同的基函数组,进行𝐾个独立的单输出回归
  • 思路二:对𝒕的所有元素成分使用相同的基函数组,进行联合回归

思路一过于冗杂,所以采用思路二。

与单输出大体相同,只是由向量 w w w变成了矩阵 W W W

image-20230314173617799 image-20230314173641217

其中输出数据组织为一个𝑁×𝐾维矩阵 T T T,其第 n n n行是 t n T t_n^T tnT

二、线性分类模型

有三种方法可被用来解决分类问题 : 最简单的方法是构造一个判别函数,它直接将每个向量x分配给一个特定的类。然而,一种更强大的方法是在推理阶段对条件概率分布 p ( C k ∣ x ) p(C_k|x) p(Ckx)进行建模,然后随后使用这个分布来做出最优决策.有两种不同的方法来确定条件概率 p ( C k ∣ x ) p(C_k|x) p(Ckx)。一种技术是直接对它们进行建模,例如,通过将它们表示为参数模型,然后使用一个训练集来优化参数,最终得到 p ( C k ∣ x ) p(C_k|x) p(Ckx),此为概率判别模型。另一种是概率生成模型,我们将由 p ( x ∣ C k ) p(x|C_k) p(xCk)给出的类条件密度,以及类的先验概率 p ( C k ) p(C_k) p(Ck)进行建模,得到 P ( C k , x ) P(C_k,x) P(Ck,x)即联合概率分布密度,之后由贝叶斯公式 p ( C k ∣ x ) = P ( C k , x ) P ( x ) p(C_k|x)=\frac{P(C_k,x)}{P(x)} p(Ckx)=P(x)P(Ck,x)得出结果。

2.1、判别函数

判别函数的功能是将输入特征向量 x x x分配到 K K K个类别中的某一类 C K C_K CK,它将输入空间分为不同的决策区域,每个区域是一个类别,决策区域的边界称为决策边界(decision boundary)或决策平面(decision surface).

  1. 对于二分类问题:

    最简单的方法是使用线性函数: y ( x ) = w T x + w 0 y(\mathbf{x})=\mathbf{w}^T\mathbf{x}+w_0 y(x)=wTx+w0,其中 w \mathbf{w} w为权重, w 0 w_0 w0为偏差
    x 的类别 = { c 1 , 若 y ( x ) ⩾ 0 c 2 , 若 y ( x ) < 0 x的类别= \begin{cases}c_{1},若y(\mathbf{x})\geqslant0\\c_{2},若y(\mathbf{x})<0\end{cases} x的类别={c1,y(x)0c2,y(x)<0
    image-20230311223903926

    其中决策边界的性质:

    • w \mathbf{w} w是决策平面的法向,即 w \mathbf{w} w垂直于决策平面内的任意向量

    • 任意向量 x \mathbf{x} x到决策平面的有符号垂直距离 r r r
      r = y ( x ) ∣ ∣ w ∣ ∣ = w T x + w 0 ∣ ∣ w ∣ ∣ r=\frac{y({\bf x})}{||\mathbf{w}||}=\frac{\mathbf{w}^{\mathrm{T}}{\bf x}+w_{0}}{||\mathbf{w}||} r=∣∣w∣∣y(x)=∣∣w∣∣wTx+w0

    证明如下所示:

    image-20230315202615203

x = x ⊥ + r w ∥ ∣ w ∣ ∣ w T x + w 0 = w T x ⊥ + w 0 + r w T w ∥ ∣ w ∣ ∣ y ( x ) = 0 + r w T w ∣ ∣ w ∣ ∣ \begin{array}{c}{{\mathbf{x}=\mathbf{x}_{\perp}+r{\frac{\mathbf{w}}{\||\mathbf{w}||}}}}\\ {{\mathbf{w}^{\mathrm{T}}\mathbf{x}+w_{0}=\mathbf{w}^{\mathrm{T}}\mathbf{x}_{\perp}+w_{0}+r{\frac{\mathbf{w}^{\mathrm{T}}\mathbf{w}}{\||\mathbf{w}||}}}}\\y(\mathbf{x})=\mathbf{0}+r{\frac{\mathbf{w}^{\mathsf{T}}\mathbf{w}}{||\mathbf{w}||}} \end{array} x=x+r∥∣w∣∣wwTx+w0=wTx+w0+r∥∣w∣∣wTwy(x)=0+r∣∣w∣∣wTw

  1. 对于多分类问题

    • 分类K个类别:(通过构建多个二分类器完成多分类)
    image-20230311225204155

    one-vs-rest表示的是属于 C 1 C_1 C1的概率和不属于 C 1 C_1 C1的概率,最终看属于C几的概率最大

    one-vs-one表示的是属于 C 1 C_1 C1的概率和属于 C 2 C_2 C2的概率,属于 C 1 C_1 C1的概率和属于 C 3 C_3 C3的概率等等,最后看归属C几的数目最多

    参考one-vs-one和one-vs-rest简单理解 - herb.dr的文章 - 知乎

    • K类判别式法,包含K个线性函数:

    y k ( x ) = w k T x + w k 0 , k = 1 , ⋯ K y_{k} (\mathbf{x})= \mathbf{w}_{k}^{T} \mathbf{x}+ w_{k0} ,k=1, \cdots K yk(x)=wkTx+wk0,k=1,K

    x 的类别为 C k , 如果 ∀ j ≠ k , y k ( x ) > y j ( x ) \mathbf{x}的类别为 C_{k} ,如果 \forall j \neq k, y_{k} (\mathbf{x})> y_{j} (\mathbf{x}) x的类别为Ck,如果j=k,yk(x)>yj(x)

    C k 和 C j 类之间的决策边界 : y k ( x ) = y j ( x ) 或 ( w k − w j ) T x + ( w k 0 − w j 0 ) = 0 C_{k} 和C_j类之间的决策边界: y_{k} (x)= y_{j} (x)或 (\mathbf{w}_{k}-\mathbf{w}_{j})^{T} x+( w_{k0} - w_{j0} )=0 CkCj类之间的决策边界:yk(x)=yj(x)(wkwj)Tx+(wk0wj0)=0

    其中,𝐾类判别式方法的决策区域是单连通和凸的,证明如下:

    image-20230314174107304
  2. 判别函数学习法(为了求出参数而服务):

    • 最小平方和误差

      image-20230315203225150

      其中 t n \mathbf{t_n} tn采取独热编码,若 x n \mathbf{x_n} xn的类别是 C k \mathbf{C_k} Ck,则 x n \mathbf{x_n} xn的第k个元素是1,其余为0

      image-20230315203453725

      可以看出,和前面多输出模型结果相同。

    • Fisher线性判别式

      判别方法:二分类器 y = w T x + w 0 y=\mathbf{w}^T \mathbf{x}+w_0 y=wTx+w0,可以看做 y = w T x y=\mathbf{w}^T \mathbf{x} y=wTx y > = − w 0 , x y>=-w_0,\mathbf{x} y>=w0,x类别为 C 1 C_1 C1,否则为 C 2 C_2 C2

      image-20230315204242809

      主要思想是:选择投影方向,使投影后两类相隔尽可能远,而同一类内部的样本又尽可能的聚集。

      主要使用参数定义如下:
      image-20230315205245877

      Fisher准则 J ( w ) = ( m 2 − m 1 ) 2 s 1 2 + s 2 2 = w T S B w w T S W w J ( w ) = 类间距  类内距  J(\mathbf{w})=\frac{\left(\mathrm{m}_2-\mathrm{m}_1\right)^2}{s_1^2+s_2^2}=\frac{\mathbf{w}^{\mathrm{T}} \boldsymbol{S}_{\mathrm{B}} \mathbf{w}}{\mathbf{w}^{\mathrm{T}} \boldsymbol{S}_{\mathrm{W}} \mathbf{w}} \quad J(\mathbf{w})=\frac{\text { 类间距 }}{\text { 类内距 }} J(w)=s12+s22(m2m1)2=wTSWwwTSBwJ(w)= 类内距  类间距 

      其中:
      S B = ( m 2 − m 1 ) ( m 2 − m 1 ) T \boldsymbol{S}_{\mathrm{B}}=\left(\mathbf{m}_2-\mathbf{m}_1\right)\left(\mathbf{m}_2-\mathbf{m}_1\right)^{\mathrm{T}} \quad SB=(m2m1)(m2m1)T

    S W = ∑ n ∈ C 1 ( x n − m 1 ) ( x n − m 1 ) T + ∑ n ∈ C 2 ( x n − m 2 ) ( x n − m 2 ) T \boldsymbol{S}_{\mathrm{W}}=\sum_{n \in C_1}\left(\mathbf{x}_n-\mathbf{m}_1\right)\left(\mathbf{x}_n-\mathbf{m}_1\right)^{\mathrm{T}}+\sum_{n \in C_2}\left(\mathbf{x}_n-\mathbf{m}_2\right)\left(\mathbf{x}_n-\mathbf{m}_2\right)^{\mathrm{T}} SW=nC1(xnm1)(xnm1)T+nC2(xnm2)(xnm2)T

    之后进行优化 w ∗ = a r g m a x J ( w ) \mathbf{w}^*=arg max J(\mathbf{w}) w=argmaxJ(w)

    可得结果 w ∝ S w − 1 ( m 2 − m 1 ) \mathbf{w} \propto \mathbf{S}_w^{-1}(\mathbf{m_2}-\mathbf{m_1}) wSw1(m2m1)

    具体证明可见Fisher线性判别算法原理及实现 MATLAB_fisher算法_寂静的以的博客-CSDN博客,这里记结果即可

    • 感知机算法(参考自一文读懂感知机算法 - yuquan的文章 - 知乎)

      假设样本线性可分,感知机学习的目标就是求能将正负样本完全分开的分离超平面,即要寻找w,b(因为wx+b=0确定了分离超平面)。因此我们需要确定一个学习策略,即定义损失函数,并通过训练样本使其最小化。

      损失函数的一个自然选择是误分类点的总数,但是,通过这种方式定义的损失函数对参数w,b来说不是连续可导函数,不易于优化。所有感知机采取的是误分类点到超平面S的总距离。损失函数的推导如下:

      image-20230316091744174
      image-20230316092020982

2.2、概率判别模型

对于二分类情况,在相当一般的假设条件下,类别 C 1 , C 2 C_1,C_2 C1,C2的后验概率可以写成作用在特征向量 ϕ \phi ϕ的线性函数上的 logistic-sigmoid 函数的形式,即:
p ( C 1 ∣ ϕ ) = y ( x ) = σ ( w T ϕ ) p(C_1|\phi)=y(x)=\sigma(w^T\phi) p(C1ϕ)=y(x)=σ(wTϕ)

p ( C 2 ∣ ϕ ) = 1 − p ( C 1 ∣ ϕ ) p(C_2|\phi)=1-p(C_1|\phi) p(C2ϕ)=1p(C1ϕ)

其中 σ ( a ) \sigma(a) σ(a)是 logistic- sigmoid 函数,这个模型被称为 logistic回归.
σ ( a ) = 1 1 + exp ⁡ ( − a ) , d σ d a = σ ( 1 − σ ) \sigma(\mathrm a)=\dfrac{1}{1+\exp(-a)},\dfrac{d\sigma}{da}=\sigma(1-\sigma) σ(a)=1+exp(a)1,dadσ=σ(1σ)
之后进行最大似然估计:

给定𝑁个数据样本集 ( ϕ n , t n ) ∣ t n ∈ { 0 , 1 } , ϕ n = ϕ ( x n ) , n = 1 , 2 , … , N {(\pmb{\phi}_{n},t_{n})|t_{n}\in\{0,1\},\pmb{\phi}_{n}=\pmb{\phi}(\mathbf{x}_{n}),n=1,2,\ldots,N} (ϕn,tn)tn{0,1},ϕn=ϕ(xn),n=1,2,,N其中 t n = 1 t_n=1 tn=1表示 C 1 C_1 C1

似然函数为:
p ( t ∣ w ) = ∏ n = 1 N y n t n { 1 − y n } 1 − t n p(\mathbf{t}|\mathbf{w})=\prod_{n=1}^N y_n^{t_n}\{1-y_n\}^{1-t_n} p(tw)=n=1Nyntn{1yn}1tn
其中 t = ( t 1 , … , t N ) T y n = p ( C 1 ∣ ϕ n ) = σ ( w T ϕ n ) \quad\mathbf{t}=(t_1,\ldots,t_N)^{\mathcal{T}}\quad y_n=p(C_1|\boldsymbol{\phi}_n)=\sigma(\mathbf{w}^{\mathcal{T}}\boldsymbol{\phi}_n) t=(t1,,tN)Tyn=p(C1ϕn)=σ(wTϕn)

之后进行优化:
E ( w ) = − l n p ( t ∣ w ) = − ∑ n = 1 N { t n l n y n + ( 1 − t n ) l n ( 1 − y n ) } E(\mathbf{w})=-\mathrm{ln}p(\mathbf{t}|\mathbf{w})=-\sum_{n=1}^{N}\{t_{n}\mathrm{ln}y_{n}+(1-t_{n})\mathrm{ln}(1-y_{n})\} E(w)=lnp(tw)=n=1N{tnlnyn+(1tn)ln(1yn)}
优化目标为: w ∗ = arg ⁡ m i n E ( w ) \mathbf w^*=\arg\:\mathrm{min}\:E(\mathbf w) w=argminE(w)

要求的是极值(不是零点),采用牛顿迭代法: x k + 1 = x k − f ′ ( x k ) f ′ ′ ( x k ) x_{k+1}=x_k-\dfrac{f'\left(x_k\right)}{f''\left(x_k\right)} xk+1=xkf′′(xk)f(xk),

w ( n e w ) = w ( o l d ) − H − 1 ∇ E ( w ) \mathbf{w}^{(\mathrm{new})}=\mathbf{w}^{(\mathrm{old})}-\mathbf{H}^{-1}\nabla E(\mathbf{w}) w(new)=w(old)H1E(w)

计算可得:

∇ E ( w ) = ∑ n = 1 N ( y n − t n ) ϕ n = Φ T ( y − t ) \nabla E(\mathbf w)=\sum\limits_{n=1}^N(y_n-t_n)\:\boldsymbol\phi_n=\boldsymbol\Phi^{\mathrm T}(\mathbf y-\mathbf t) E(w)=n=1N(yntn)ϕn=ΦT(yt), H = ∇ ∇ E ( w ) = ∑ n = 1 N y n ( 1 − y n ) ϕ n ϕ n T = Φ T R Φ \mathbf{H}=\nabla\nabla E(\mathbf{w})=\sum\limits_{n=1}^{N}y_n(1-y_n)\:\boldsymbol{\phi}_n\boldsymbol{\phi}_n^{\text{T}}=\boldsymbol{\Phi}^{\text{T}}\mathbf{R}\boldsymbol{\Phi} H=∇∇E(w)=n=1Nyn(1yn)ϕnϕnT=ΦTRΦ

其中矩阵 ϕ \boldsymbol \phi ϕ,第n行为 ϕ n T \phi_n^T ϕnT R \mathbf R R为N*N对角矩阵, R n n = y n ( 1 − y n ) R_{nn}=y_n(1-y_n) Rnn=yn(1yn)

ALL IN ALL:
w (new) = w (old) − ( Φ TR Φ ) − 1 Φ T ( y − t ) = ( Φ T R Φ ) − 1 Φ T R z z = Φ w (old) − R − 1 ( y − t ) \begin{array}{l}\mathbf{w}^{\text{(new)}}=\mathbf{w}^{\text{(old)}}-\left(\boldsymbol{\Phi}^{\text{TR}}\boldsymbol{\Phi}\right)^{-1}\boldsymbol{\Phi}^{\text{T}}(y-t)=\left(\boldsymbol{\Phi}^{\text{T}}\mathbf{R}\boldsymbol{\Phi}\right)^{-1}\boldsymbol{\Phi}^{\text{T}}\mathbf{R}\mathbf{z}\\ \mathbf{z}=\boldsymbol{\Phi}\mathbf{w}^{\text{(old)}}-\mathbf{R}^{-1}(y-t)\end{array} w(new)=w(old)(ΦTRΦ)1ΦT(yt)=(ΦTRΦ)1ΦTRzz=Φw(old)R1(yt)
对于多分类的情况:
p ( C k ∣ ϕ ) = y k ( ϕ ) = exp ⁡ ( a k ) ∑ j exp ⁡ ( a j ) a k = w k T ϕ p(C_k|\phi)=y_k(\phi)=\dfrac{\exp(a_k)}{\sum_j\exp(a_j)}\quad\quad a_k=\mathbf{w}_k^T\phi p(Ckϕ)=yk(ϕ)=jexp(aj)exp(ak)ak=wkTϕ
image-20230322200052562

2.3、概率生成模型

我们对类条件密度 p ( x ∣ C k ) p(x|C_k) p(xCk)以及类先验 p ( C k ) p(C_k) p(Ck)进行建模,然后利用它们通过贝叶斯定理计算后验概率 p ( C k ∣ x ) p(C_k|x) p(Ckx).
p ( C 1 ∣ x ) = p ( x ∣ C 1 ) p ( C 1 ) p ( x ) = p ( x ∣ C 1 ) p ( C 1 ) p ( x ∣ C 1 ) p ( C 1 ) + p ( x ∣ C 2 ) p ( C 2 ) p(C_1|\mathbf{x})=\dfrac{p(\mathbf{x}|C_1)p(C_1)}{p(\mathbf{x})}=\dfrac{p(\mathbf{x}|C_1)p(C_1)}{p(\mathbf{x}|C_1)p(C_1)+p(\mathbf{x}|C_2)p(C_2)} p(C1x)=p(x)p(xC1)p(C1)=p(xC1)p(C1)+p(xC2)p(C2)p(xC1)p(C1)
此时 p ( x ∣ C 1 ) , p ( C 1 ) p(\mathbf{x}|C_1),p(C_1) p(xC1)p(C1)这些都是未知的,我们换一种形式来表示这个式子:
= 1 1 + exp ⁡ ( − a ) = σ ( a ) =\frac{1}{1+\exp(-a)}=\sigma(\mathrm{a}) =1+exp(a)1=σ(a)
其中: a = ln ⁡ p ( x ∣ C 1 ) p ( C 1 ) p ( x ∣ C 2 ) p ( C 2 ) a=\ln\dfrac{p(\mathbf{x}|C_1)p(C_1)}{p(\mathbf{x}|C_2)p(C_2)} a=lnp(xC2)p(C2)p(xC1)p(C1)

同理,对于多分类问题:
p ( C k ∣ x ) = p ( x ∣ C k ) p ( C k ) ∑ j p ( x ∣ C j ) p ( C j ) = exp ⁡ ( a k ) ∑ j exp ⁡ ( a j ) a k = ln ⁡ p ( x ∣ C k ) p ( C k ) p(C_k|\mathbf{x})=\dfrac{p(\mathbf{x}|C_k)p(C_k)}{\sum_j p(\mathbf{x}|C_j)p(C_j)}=\dfrac{\exp(a_k)}{\sum_j\exp(a_j)}\quad\quad a_k=\ln p(\mathbf{x}|C_k)p(C_k) p(Ckx)=jp(xCj)p(Cj)p(xCk)p(Ck)=jexp(aj)exp(ak)ak=lnp(xCk)p(Ck)
此时 a a a只是便于后续运算所需的符号,其内部的变量仍需我们求解出来之后,再得到 p ( C 1 ∣ x ) p(C_1|\mathbf{x}) p(C1x)的结果。

p ( x ∣ C 1 ) p(\mathbf{x}|C_1) p(xC1)

通常我们可以将先验分布选为一些熵比较高的分布例如均匀分布或高斯分布,然后通过对数据的不断观测,减小后验概率的熵从而使其集中在比较可能的参数配置上。

对于连续输入特征:

输入为连续特征,设类条件密度服从高维高斯分布,所有类具有相同协方差矩阵,则:
p ( x ∣ C k ) = 1 ( 2 π ) D / 2 1 ∣ Σ ∣ 1 / 2 exp ⁡ { − 1 2 ( x − μ k ) T Σ − 1 ( x − μ k ) } p(\mathbf{x}|C_k)=\dfrac{1}{(2\pi)^{D/2}}\dfrac{1}{|\Sigma|^{1/2}}\exp\left\{-\dfrac{1}{2}\left(\mathbf{x}-\boldsymbol{\mu}_k\right)^{\text{T}}\boldsymbol{\Sigma}^{-1}(\mathbf{x}-\boldsymbol{\mu}_k)\right\} p(xCk)=(2π)D/21∣Σ1/21exp{21(xμk)TΣ1(xμk)}
(这个东西就是我们假设出来的一个先验分布)

此时,我们之前用的 a a a就可以表示成
a = ln ⁡ p ( x ∣ C 1 ) p ( C 1 ) p ( x ∣ C 2 ) p ( C 2 ) = w T x + w 0 a=\ln\dfrac{p(\mathbf{x}|C_1)p(C_1)}{p(\mathbf{x}|C_2)p(C_2)}=\mathbf{w^T}\mathbf{x}+w_0 a=lnp(xC2)p(C2)p(xC1)p(C1)=wTx+w0
其中: w = Σ − 1 ( μ 1 − μ 2 ) \mathbf{w}=\boldsymbol{\Sigma}^{-1}(\boldsymbol{\mu}_1-\boldsymbol{\mu}_2) w=Σ1(μ1μ2),, w 0 = − 1 2 μ 1 T Σ − 1 μ 1 + 1 2 μ 2 T Σ − 1 μ 2 + ln ⁡ p ( C 1 ) p ( C 2 ) w_0=-\frac{1}{2}\boldsymbol{\mu}_1^{\text{T}}\boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}_1+\frac{1}{2}\boldsymbol{\mu}_2^{\text{T}}\boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}_2+\ln\frac{p(C_1)}{p(C_2)} w0=21μ1TΣ1μ1+21μ2TΣ1μ2+lnp(C2)p(C1)

推导过程如下:

image-20230322213104670

同理,对于多分类问题:
a k = ln ⁡ p ( x ∣ C k ) p ( C k ) = w k T x + w k 0 a_k=\ln p(\mathbf{x}|C_k)p(C_k)=\mathbf{w}_k^\mathbf{T}\mathbf{x}+w_{k0} ak=lnp(xCk)p(Ck)=wkTx+wk0
其中: w k = Σ − 1 μ k \mathbf{w}_k=\boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}_k wk=Σ1μk,, w k 0 = − 1 2 μ k T Σ − 1 μ k + ln ⁡ p ( C k ) w_{k0}=-\dfrac{1}{2}\boldsymbol{\mu}_k^{\text{T}}\boldsymbol{\Sigma}^{-1}\boldsymbol{\mu}_k+\ln p(C_k) wk0=21μkTΣ1μk+lnp(Ck)

一旦我们为类条件密度 p ( x ∣ C k ) p(x|C_k) p(xCk)指定了参数泛函数形式,我们就可以使用最大似然来确定参数的值,以及先验类概率 p ( C k ) p(C_k) p(Ck)。这需要一个包含对x的观测值及其相应的类标签的数据集。

给定N个数据样本集 { ( x n , t n ) ∣ t n ∈ { 0 , 1 } , n = 1 , 2 , … , N } \{(\mathbf{x}_{n},t_{n})|t_{n}\in\{0,1\},n=1,2,\ldots,N\} {(xn,tn)tn{0,1},n=1,2,,N}, t n = 1 t_n=1 tn=1表示 C 1 C_1 C1;先验概率 p ( C 1 ) = π , p ( C 2 ) = 1 − π p(C_1)=\pi\:,\:\:p(C_2)=1-\pi p(C1)=π,p(C2)=1π,则似然函数为
p ( t ∣ π , μ 1 , μ 2 , Σ ) = ∏ n = 1 N [ π N ( x n ∣ μ 1 , Σ ) ] t n [ ( 1 − π ) N ( x n ∣ μ 2 , Σ ) ] 1 − t n p(t|\pi,\boldsymbol{\mu}_1,\boldsymbol{\mu}_2,\boldsymbol{\Sigma})=\prod_{n=1}^N\:[\pi\mathcal{N}(\mathbf{x}_n|\boldsymbol{\mu}_1,\boldsymbol{\Sigma})]^{t_n}[(1-\boldsymbol{\pi})\mathcal{N}(\mathbf{x}_n|\boldsymbol{\mu}_2,\boldsymbol{\Sigma})]^{1-t_n} p(tπ,μ1,μ2,Σ)=n=1N[πN(xnμ1,Σ)]tn[(1π)N(xnμ2,Σ)]1tn
之后我们逐个求偏导,就可得到参数值:
π = 1 N ∑ n = 1 N t n = N 1 N = N 1 N 1 + N 2 μ 1 = 1 N 1 ∑ n = 1 N t n x n a n d s o o n \pi=\dfrac{1}{N}\sum\limits_{n=1}^N t_n=\dfrac{N_1}{N}=\dfrac{N_1}{N_1+N_2}\\ \mu_1=\dfrac{1}{N_1}\sum_{n=1}^N t_n x_n\\ and so on π=N1n=1Ntn=NN1=N1+N2N1μ1=N11n=1Ntnxnandsoon

参考
《Pattern Recognition and Machine Learning》
老师上课的PPT


http://www.ppmy.cn/news/85202.html

相关文章

Linux中的文件描述符

1. 认识文件描述符 文件描述符的概念&#xff1a;在Linux中&#xff0c;文件描述符是内核为了高效的管理已经被打开的文件所创建的索引 &#xff0c;它是一个非负整数&#xff0c;用于指代被打开的文件&#xff0c;所有执行I/O操作的系统调用都是通过文件描述符完成的。文件描述…

分文件实现温湿度数据管理系统项目

目标&#xff1a; 了解分文件的概念&#xff0c;要依次从C语言的函数声明、变量的存储类别、C语言编译预处理&#xff0c;说起。这些知识点我们之前或多或少接触过&#xff0c;这里做个总结与拓展。经过总结&#xff0c;最后我们归纳出一个实现C语言模块化编程的技巧&#xff…

Vue中组件之间通信的-六大方式-总结

方式一&#xff1a;props/$emit 父组件向子组件传值 通过一个例子&#xff0c;说明父组件如何向子组件传递值&#xff1a;在子组件Users.vue中如何获取父组件App.vue中的数据 users:["Henry","Bucky","Emily"] 注&#xff1a;父组件通过props向…

【leetcode刷题】剑指offer基础版(完结)

leetcode刷题笔记—剑指offer 剑指 Offer 05. 替换空格 class Solution { public:string replaceSpace(string s) {int len s.size();string g;for(int i 0; i < len; i){if(s[i] ){g "%20";continue;}g s[i];}return g;} };剑指 Offer 58 - II. 左旋转字…

Android Qcom Display学习(十五)

该系列文章总目录链接与各部分简介&#xff1a; Android Qcom Display学习(零) 简单方法 按键截图实现原理,通过PhoneWindowManager.java -> DisplayPolicy.java -> ScreenshotHelper.java,这个网上的叙述很多就不展开了 adb shell input keyevent KEYCODE_SYSRQ/fram…

01-bootstrap-概述

Bootstrap 是一款流行的前端开发框架&#xff0c;最初由 Twitter 开发&#xff0c;现在由社区维护。Bootstrap 提供了一套基于 HTML、CSS 和 JavaScript 的模板、样式、组件等&#xff0c;可以帮助开发者快速构建响应式、移动设备友好的网站和 Web 应用程序。 以下是 Bootstra…

百度API实现logo商标识别接口介绍

作者介绍 严松&#xff0c;男&#xff0c;西安工程大学电子信息学院&#xff0c;2022级研究生 研究方向&#xff1a;机器人抓取检测 电子邮件&#xff1a;2448052777qq.com 王泽宇&#xff0c;男&#xff0c;西安工程大学电子信息学院&#xff0c;2022级研究生&#xff0c;张…

计算机组成原理-存储系统-缓存存储器(Cache)

目录 一、Cache基本概念 1.2性能分析 二、 Cache和主存的映射发生 ​​​​​​2.1全相连映射​编辑 2.2直接映射​编辑 2.3组相连映射 三、Cachae的替换算法 3.1 随机算法(RADN) 3.2 先进先出算法(FIFO) 3.3 近期最少使用(LRU) 3.4 最近不经常使用(LFU) 四、写策略 4…