模式识别笔记2-线性模型

Posted 边哭边吃饭的人,一定能够活下去

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模式识别笔记2-线性模型相关的知识,希望对你有一定的参考价值。

1. 参数VS非参数

技术分享图片

给定样本集 $(x_i, y_i), i= 1,2,\cdots, n $,其中 \(x_i\) 表示特征向量, \(y_i\) 表示样本标签。

考虑一个新的向量 \(x\),要将他分类到可选分类 \({C_1, C_2,\cdots, C_c}\)中 。

方法:

  • 参数的
  • 非参数的

1.1 参数方法

参数方法:

  • 参数方法假设样本分布的形式(概率密度函数Probability Density Function)是已知的

  • 使用训练样本来估计分布参数,比如高斯分布中的 \(\mu\)\(\sigma\)

  • 如果对于分布的假设是正确的,则预测会很准确;否则预测可能会很差

?

参数方法使用极大似然估计来训练分类器,这点在前面一章的贝叶斯决策论也讲过。

假定:

  • 给定训练集 \(D=(x_k, y_k), k=1,2,\cdots,n\)
  • \(p(x|\omega_i)\sim N(\mu_i, \Sigma_i), i=1,2,\cdots, c\)

方法:

  • 将训练集 \(D\) 划分为 \(D_i,i=1,2,\cdots, c\)
  • 对每一个分类的数据 \(D_i\) 分别估计 \(\mu_i\)\(\Sigma_i\)
  • 判别函数 \(g_i(x)\) 取决于 \(\mu_i\)\(\Sigma_i\)

\[ \begin{align} \hat{\mu}&=\frac{1}{n}\sum_{k=1}^nx_k, & \hat{\sigma}^2=\frac{1}{n}\sum_{k=1}^n(x_k-\hat{\mu})^2 \end{align} \]

1.2 非参数方法

非参数方法:

  • 不会去假设样本分布符合某种特定分布
  • 相反,它假设判别函数具有某种特定的形式。比如SVM ,神经网络等等
  • 训练样本被用来估计分类器的参数
  • 局部最优,但易于使用

技术分享图片

2. 线性分类模型(二分类为例)

技术分享图片{:width="100px"}

考虑一个简单的场景:类之间不相交

  • 数据线性可分
  • 不同类的数据由一个线性决策表面完全分开

线性判别式注意:

  • 决策表面是输入的线性函数
  • 输入空间划分为决策区域

2.1 二分类问题

决策表面如此定义 \(g(x)=0\):
\[ \begin{align} g(x)=w^Tx+w_0 \end{align} \]
因为 \(g(x)\) 是线性的,所以决策表面是一个超平面:

技术分享图片

2.1.1 线性判别函数的几何意义

对于一个2分类线性判别函数:

  • 判别函数表示向量\(x\)(代表一个待分类的数据)各个分量的线性组合,公式(2)已经说明了这个问题
  • \(g(x)=w^Tx+w_0\),其中 \(w\)\(w_0\) 表示权重向量和偏置
  • 对于一个给定的 \(x\),若 \(g(x)\geq0\) ,则 \(x\in C_1\) ,否则 \(x\in C_2\)
  • 决策边界 \(g(x)=0\)

几何意义:任意点到决策表面的距离

技术分享图片

  • \(x\) 为任意点

  • \(x_\perp\)表示 \(x\) 到决策表面的正交投影

?
\[ \notag x=x_\perp + r\frac{w}{||w||} \text { where } r \text{ denote the distance between } x_\perp \text{ and } x \]

  • 两边都乘以相同的因子 \(w^T\),则:
    \[ \notag g(x)=0+\frac{r}{||w||}\Rightarrow r=\frac{g(x)}{||w||} \]

2.2 决策区域的凸性

简单的说,就是两个点 \(x_a\)\(x_b\)在区域 \(R_k\)中,则两点连线上的所有点,均在这个区域内。

2.3 向量增强

对公式(2)如下操作:

  • 增加一维 \(x_0=1\)
  • \(x \leftarrow (x_0,x)\)
  • \(w\leftarrow (\omega_0, w)\)

于是:
\[ g(x)=w^Tx \]
显然这个决策边界在增强的 \(D+1\) 维样本空间中穿过原点

2.4 模型小结

技术分享图片

  • 判别函数表示向量\(x\)(代表一个待分类的数据)各个分量的线性组合,视作每个独立单元
  • 每个单元都具有输入输出
  • 输入单元精确输出与输入相同的值
  • 如果加权输入之和大于0,则输出单元输出1,否则输出-1

2.5 感知器算法

输入向量 \(x\) 通过一个固定的非线性变化得到一个特征向量 \(\phi(x)\)
\[ \notag g(x)=f(w^T\phi(x)) \]
\(f\) 是一个符号函数
\[ \notag f(a)=\left\{ \begin{array} {ll} +1,a\geq0\-1, a<0 \end{array} \right. \]
+1和-1分别表示向量 \(x\) 属于两个类。根据这个设定,我们可以得到损失函数。

2.5.1 感知器标准

使用标签 \(y_n\in\{+1,-1\}\),每个模式需要满足:
\[ \notag w^T\phi(x_n)y_n>0 \]
对每个分错的样本,感知器标准试图最小化:
\[ E(w)=-w^T\phi(x_n)y_n \]

2.5.2 算法流程

随机梯度下降梯度更新公式:
\[ \begin{array}{ll} w^{k+1}&=w^k-\eta\nabla E(w)\&=w^k+\eta\phi(x_n)y_n \end{array} \]
其中,\(\eta\) 是学习率,\(k\) 是steps

算法训练循环以下步骤:

  • 如果样本错分为\(C_1(y_n=+1)\),增加权重
  • 如果样本错分为\(C_2(y_n=-1)\),减小权重

2.6 最小二乘分类

主要思想,最小化投影距离:
\[ J_s(w)=\sum_{i=1}^n(w^Tx_i-b_i)^2 \]
其中 \(b_i\) 是任意选取的。

对公式(6)进一步化简:
\[ J_s(w)=||Xw-b||^2 \]
其中矩阵符号:
\[ \notag w=\begin{pmatrix} w_0 \\ w_1 \\ \vdots \\ w_d \end{pmatrix},X=\begin{pmatrix} x_{10} &x_{11} & \cdots &x_{1d} \\ x_{20}&x_{21} & \cdots & x_{2d}\ \vdots & \vdots & \ddots & \vdots \\ x_{n0}& x_{n1} & \cdots & x_{nd} \end{pmatrix},b=\begin{pmatrix} b_0 \\ b_1 \\ \vdots \\ b_d \end{pmatrix} \]
最小化 \(J\), 显然 \(Xw=b\),所以有:
\[ \notag w = X^{-1}b \]

然而,矩阵 \(X\) 可能是奇异的,也就是说,没有逆矩阵。

2.6.1 违逆法pseudo-inverse method

对于公式(7),求梯度:
\[ \notag \nabla J_s(w)=2X^T(Xw-b) \]
极值必要条件:
\[ \notag X^TXw=X^Tb \]
可以求得:
\[ w=(X^TX)^{-1}X^Tb \]

2.6.2 最小均方算法least-Mean-Squared

相比于违逆法,该方法的优势在于

  • 违逆法在 \(X^TX\) 奇异的时候有问题
  • 避免了矩阵很大的时候计算复杂
  • 违逆法训练时间更长

回顾公式(6),直接求其对于\(w\)的梯度:
\[ \notag \nabla J_s(w)=2\sum_{i=1}^n(w^Tx_i-b_i)x_i \]
更新公式:
\[ w(k+1)=w(k)+\eta(k)(b_i-w^Tx_i)x_i \]

  • 即使分离超平面存在,LMS方法也不需要收敛到它
  • 由于梯度噪声,LMS不会达到最佳效果

2.7 广义线性模型

广义线性判别函数:
\[ g(x)=f(w^Tx+\omega_0) \]
其中 \(f\) 是激活函数。相应的决策表面:
\[ \notag g(x)=\text{constant Or }w^Tx+\omega_0=\text{constant} \]
所以决策边界在特征空间里是线性的,即使 \(f\) 是非线性的

广义线性判别函数:
\[ \notag g(x)=\sum_{i=1}^nw_i\phi_ix \]
二次判别函数:
\[ \notag \begin{array} g(x)=w_0+w_ix+w_2x^2\\text{where } \phi_1(x)=1,\phi_2(x)=x,\phi_3(x)=x^2 \end{array} \]
对于样本 \(x_i\),如果分类正确,则 \(g(w,x_i)y_i>0\)

定义一个判别函数 \(J(w)\),如果 \(w\)是一个解向量,则该函数达到最小值

算法流程:

  • 随机选择初始权重 \(w_1\)

  • 计算梯度 \(\nabla J(w(1))\)

  • 根据负梯度计算:
    \[ \notag w(k+1)=w(k)-\eta(k)\nabla J(w(k)) \text{ for }\nabla J=\frac{\partial J}{\partial w} \]
    \(\eta\) 是学习率,控制步幅

3.多分类

3.1 扩展到多分类方法

  • One-versus-the-rest

构建判别函数,使用 \(c\) 个分类器,每个分类器解决一个2分类问题

  • One-versus-one

\(c\) 个分类,对每两个分类构建一个分类器,则共有 \(\frac{c(c-1)}{2}\) 个判别函数

3.2 多分类判别

考虑一个 \(c\) 分类问题,判别函数形式:
\[ \notag y_k(x)=w_k^Tx+w_{k0} \]
对于给定输入 \(x\),如果 \(y_k(x)>y_j(x) \text{ for all }j\neq k\),则 \(x\in C_k\),则 \(C_k\)\(C_j\)之间的决策边界为:
\[ \notag y_k(x)=y_j(x) \]
相应的超平面为:
\[ \notag (w_k-w_j)^Tx +(\omega_{k0}-\omega_{j0})=0 \]
二分类问题其实也是如此。

技术分享图片

优势:

  • 避免默认两可的区域
  • 每个决策区域单连通
  • 低复杂度
  • 需要c个分类器














































以上是关于模式识别笔记2-线性模型的主要内容,如果未能解决你的问题,请参考以下文章

Python数模笔记-Sklearn支持向量机

Python数模笔记-Sklearn支持向量机

哈尔滨工业大学计算机学院-模式识别-课程总结-线性判别函数

模式识别与机器学习——3.1线性判别函数

人工智能之模式识别北京理工大学Mooc笔记更新中

模式识别(Pattern Recognition)学习笔记(三十五)-- K-L变换与PCA