fzu2021机器学习作业2

作业标题 《机器学习》第二次作业——第四章学习记录和心得
课程链接 中国大学MOOC·模式识别与机器学习
作业说明 根据慕课和补充课件进行学习,并在自己理解的基础上,在博客园记录第四章的学习笔记。注意各个知识点的互相联系。
作业要求 表述学习心得。以及可以依据自己的理解,描述知识点串接的思路。画出思维导图!

4.1 线性判据基本概念

生成模型

给定训练样本{Xn},在输入空间内学习其概率密度函数p(x)
在根据公式得到后验概率\({P(C_i,\ x)}\)

优势:
可以根据p(x)采样新的样本数据
可以检测出较低概率的数据,实现离群点检测

劣势:
如果是高维的x,需要大量训练样本才能准确的估计p(x)
否则,会出现维度灾难问题

判别模型:

给定训练样本{Xn}, 直接在输入空间内估计后验概率\({P(C_i,\ x)}\)
在分类任务中,后验概率分布\({P(C_i,\ x)}\)相当于直接从输入样本x映射到类别输出Ci的判别函数f(x),即判别模型

优势:
快速直接、省去了耗时的高维观测似然概率估计
(在分类任务中,观测概率分布所包含的大量复杂内容有时对于后验概率的影响比较有限)

线性判据

最简单的判别模型
如果判别模型f(x)是线性函数,则f(x)为线性判据
可以用于两类分类,决策边界是线性的
也可以用于多类分类,相邻两类之间的决策边界也是线性的

优势:
计算量少:在学习和分类过程中,线性判据方法都比基于学习概率分布的方法计算量少
适用于训练样本较少的情况

模型及判别公式:

决策边界
令f(x)=0,决策边界是d维空间上的超平面

\(w\)垂直于决策边界的任何向量,决定了决策边界H的方向
\(w_0\)决定了决策边界在w方向上的偏移量,使其能够满足两个类输出值分别为正负。
任意样本x到决策边界的垂直距离\(r=\left\|\frac{f(x)}{w}\right\|\)
r值可作为confidence score,越大,这个点属于正类或者负类的程度越大。
f(x)是样本x到决策面H的代数距离度量

4.2 线性判据学习概述

线性判据的监督式学习过程

基于训练样本{x1, x2, ..., XN }及其标签{t1, t2 ..., tN},设计目标函数,学习\(w\)\(w_0\)

识别过程:
将待识别样本x带入训练好的判据方程:

写LaTeX好累啊,有空再把这些图片里的公式敲出来

解不唯一:
由于训练样本个数通常会远远大于参数个数(\(w\)的维度+ \(w_0\)的维度),所以线性判据满足条件的解不唯一。
学习算法就是要找到一个最优解。

解域:
针对两类(正负类)分类,方便起见,将负类的输出值取反,则得到:

给定N个训练样本,参数向量w的解域位于N个超平面正半部分的交集。

寻找最优解

设计目标函数:目标函数反映了如何实现有效决策的核心思想。
如误差(均方差)、交叉熵,也可以加入约束条件以提高泛化能力,使得解域范围收缩
目标函数的求解:最小化/最大化目标函数。

  • 解析求解:求关于训练参数的偏导,并设置偏导为0
  • 迭代求解: 先猜测参数初始值,然后不断的根据当前计算得到的更新值迭代更新参数。

4.3 并行感知机算法

根据目标函数的不同,可以设计不同的线性判据算法。

一小时过去了

感知机算法预处理

目的:
根据标记过的训练样本{(xn, tn)},学习模型参数: \(w\)\(w_0\)
预处理:

  1. 首先将两个参数合为一个参数, 线性判据改写
  2. 再将C2类的训练样本全部取反
  3. 从而得到预处理后两个类的输出值都是正数。

几何解释:

  • 在特征空间中增加一个维度,是的使得决策边界可以通过原点
  • 翻转C2类的样本,是的所有样本处于该平面的同一侧

目标函数思想:被错误分类的样本最少
被错误分类的样本,输出值f(n)是负数。且输出值的绝对值越大,错误的程度越大

目标函数:针对所有被错误分类的训练样本(即输出值小于0的训练样本),其输出值取反求和

该目标函数是关于a的一次线性函数

并行感知机:目标函数

目标函数求偏导:
取目标函数关于𝒂的偏导(即梯度)来最小化该目标函数:

偏导不含a,不可简单地使偏导为0来求解a

梯度下降法:

每个维度的梯度反方向就是该维度往目标函数最小值收敛的最速下降方向
更新的大小:每个维度的梯度幅值代表参数在该维度上的更新程度。
通常加入 步长(\(\eta_{\kappa}\)) 来调整更新的幅度,每次迭代可以用不同的步长

并行感知机:参数更新(梯度下降法)

4.4 串行感知机算法

适用于:训练样本串行给出的情况

串行感知机:目标函数

思想:与并行相同
目标函数:如果当前训练样本被错误分类,最小化其输出值取反

目标函数求解:
最小化目标函数,取关于参数向量a的偏导
同样地,偏导不含有a,故仍使用梯度下降法求解a

感知机:收敛性

定义:如果训练样本是线性可分的,感知机(两种)算法理论上收敛于一个解

步长决定收敛的速度、以及是否收敛到局部或者全局最优点

问题:
当样本位于决策边界边缘时,对该样本的决策有很大的不确定性

解决思路:
加入margin约束条件,将错误分类的标准改为:
\(a^Ty \leq b,\ where\ b > 0\)
这里b的作用是避免出现=0的解,提高泛化能力。
目标函数:

4.5 Fisher线性判据

线性判据的模型可以看做是把原空间各点x投影到新的一维空间y
\(y = w^Tx + w_0\)
w的方向不同,投影结果也不同 => 学习w使二者最有效分开

Fisher线性判据基本原理

找到一个最合适的投影轴,使两类样本在该轴上投影的重叠部分最少,同时使得各自类内样本分布的离散程度尽可能小,从而使分类效果达到最佳
投影之后不同样本的类间差异尽可能大(两类样本分布的均值差),类内样本离散程度尽可能小(两类样本分布的协方差矩阵)

Fisher线性判据目标函数

最大化该目标函数:

\(\mu, \Sigma\)带入目标函数得到

总之经过一系列求解后,得到线性判据

双一小时过去了

决策边界:令上式为0。该决策边界就是过点\(\mu\),斜率为\((\mu_1-\mu_2)S_w^{-1}\)的超平面

4.6 支持向量机基本概念

引言

感知机最小化分类误差
Fisher线性判据先降到一维空间,再从最大化类间距离同时最小化类内散度的角度设计。但它的部分样本在边界附近会出现犬牙交错的情况
如何拥有更好的泛化性能?
=> SVM:两个类中与决策边界最近的训练样本到决策边界之间的间隔最大

支持向量机:设计思想

给定一组训练样本,使得两个类中与决策边界最近的训练样本到决策边界之间的间隔最大。

支持向量概念

在支持向量机中,正负类训练样本输出真值分别用+1和-1来表达
给定标记过的训练样本{(xn, tn)},线性分类器可以转换表达
加入间隔的概念,引入一个正常数,分类器进一步转换表达为

意味着没有训练样本落在\(\pm\Delta\)间隔范围内。

间隔计算

据观察似乎使用了点到直线距离公式
\(x_+和x_-\)是位于间隔边界的支持向量,总的间隔可以表达为
\(M= ... = \frac2{\left\|w\right\|}\)

目标函数

目标:最大化总间隔
最大化总间隔,等价于最小化\(\|w\|\),所以目标函数设计为\(\min_w\frac{1}{2}\|w\|_2^2\)
同时满足不等式约束条件:

SVM目标函数loss的python实现

def loss(self, X, y, reg):
    loss = 0.0
    dW = np.zeros(self.W.shape)
    scores = X.dot(self.W)
    num_train = X.shape[0]

    scores_y = scores[range(num_train), y].reshape(num_train, 1)
    # 所有数据的正确类得分
    margins = np.maximum(0, scores-scores_y+1)
    margins[range(num_train), y] = 0
    # 因为正确分类不需要参与loss计算,此处置0方便后面sum
    loss += np.sum(margins)/num_train
    loss += reg * np.sum(self.W ** 2)

    margins[margins > 0] = 1
    # 重复利用上面的margins,而它在上面已经将所有<=0的都设为了0
    margins[range(num_train), y] = -np.sum(margins, axis=1)
    # 按行计算不正确分类的个数总和,并赋给正确分类所在位置
    dW += np.dot(X.T, margins)
    dW += 2 * reg * self.W
    return loss, dW

4.7 拉格朗日乘数法

可用于求解SVM的目标函数

不等式约束优化问题:

\(\min f(x)\)
\(s.t.\ g(x)\leq0\)
可行域:g(x)≤0的区域

等式约束优化问题:

\(\min f(x)\)
\(s.t.\ g(x)=0\)
ps: s.t.即subject to(such that)的缩写,表示受约束

可行域:g(x)=0的区域

等式约束优化求解思路:

函数在等高面上任意一点的梯度方向与其等高面(切线方向)正交,且朝向( 即正方向)函数值较高的方向。
f(x)的极值点x必须位于曲线g(x)=0上
搜寻极值点x:
沿着g(x)=0的切线方向、向着f(x)负梯度方向移动
当出现沿着切线方向、无法再向f(x)负梯度方向移动时停止

此时,在该点f(x)等高线与g(x)=0相切,即f(x)与g(x)梯度方向在同一直线上,该点为f(x)的极值点\(x^*\)
f(x)与g(x)的梯度记作\(\nabla f(x) 和 \nabla g(x)\)
如果是等式约束,在极值点\(x^*\)上,\(\nabla f(x^*) 和 \nabla g(x^*)\)的方向必然平行,可能同向或反向,梯度的幅值可能不同。

存在一个\(\lambda\)使得:

可以定义一个拉格朗日函数
\(L(x,\ \lambda)=f(x)+\lambda g(x)\)
拉格朗日函数满足驻点条件和约束条件:

\[\min f(x) \\ s.t.\ g(x)=0\\ \Rightarrow \\ L(x,\ \lambda)=f(x)+\lambda g(x)\\ \]

等式约束问题就转换成了等价的不带约束的优化问题

拉格朗日乘数法:不等式约束

  1. 极值点落在可行域内

此时相当于在拉格朗日函数中设置λ=0
2. 极值点落在可行域边界
即极值点位于区域g(x)=0区域

此时相当于存在一个λ>0,满足驻点条件\(\nabla f(x^*) + \nabla g(x^*) = 0\)

  1. 综合两种情况
    无论是g(x)<0 (λ=0)还是g(x)=0 (λ>0)的约束情况,始终存在一个λ≥0 (对偶可行性), 满足:
    \(\lambda g(x)=0\)
    同时始终存在一个λ>0,满足驻点条件\(\nabla f(x^*) + \nabla g(x^*) = 0\)

不等式约束:KKT条件

在𝑔(𝒙)≤0约束条件下最小化𝑓(𝒙)的问题,可以转化为如下约束条件(KKT条件)下的拉格朗日函数优化问题:

多约束条件也同理转化为KKT条件求解:

总结

至此能解决的仅是等式约束的情况
通过拉格朗日乘数法进一步将其转换为不带约束的优化问题
还不能处理不等式约束的SVM目标函数

叒一小时过去了

4.8 拉格朗日对偶问题

引言

带有约束条件的拉格朗日函数如何优化求解?

主问题

带约束的原问题等价于如下(关于x的)无约束问题。

主问题难以求解或者是NP难问题 => 对偶函数

对偶函数

取拉格朗日函数关于x在其可行域内的最小值,记作\(L_D\)

对偶函数给出了主问题最优值的下界,该下界只跟对偶变量𝚲和𝚪有关,与𝒙无关
根据视频,指的是该对偶函数将小于等于主问题最小值,比该最优值还小一些
针对𝚲>0和𝚪,最大化对偶函数\(L_D\),得到主问题的对偶问题(首先求取𝐿关于𝒙的最小值(下界),再求取下界关于𝚲, 𝚪的最大值)

对偶函数的凹凸性

最小值函数的凹凸性:逐点(pointwise)最小值函数min是凹函数
由于逐点最大化函数是凹函数,且拉格朗日函数可以看做关于对偶变量的仿射组合,所以对偶函数\(L_D\)是凹函数

由于目标函数\(L_D\)是凹函数,约束条件是凸函数,所以对偶问题是凸优化问题
凸优化问题优势:局部极值点就是全局极值点
这样一来,对于难以求解的主问题(例如,非凸问题或者NP难问题),可以通过求解其对偶问题,得到原问题的一个下界估计

对偶问题与原问题的差异

设对偶问题的最优值为\(d^*\)、主问题的最优值为\(p^*\)

弱对偶性
对于所有的优化问题都存在:\(d^* < p^*\)

强对偶性
\(d^* = p^*\)

强对偶性成立的条件(Slater条件)

  • 目标函数\(f(x)\)是凸函数
  • 约束条件\(g_i(x)\)是凸函数
  • 等式约束条件\(h_j(x)\)是仿射函数
  • 在可行域至少有一点使得不等式约束严格成立

\(\Rightarrow\) 如果强对偶性成立,则对偶问题就能获得主问题的最优下界

总结

至此就能使用拉格朗日对偶法求解SVM的目标函数

4.9 支持向量机学习算法

求解SVM目标函数的步骤

写出SVM目标函数
利用该目标函数构建拉格朗日函数

构建对偶函数

对w和\(w_0\)求偏导并设为0求解到w表达式,在极值点计算\(\|w\|_2^2\)

在极值点计算拉格朗日函数第二项,在极值点得到

将上两个计算结果带回拉格朗日函数\(L_D(\Lambda)\),消去w和\(w_0\)

对偶函数的约束条件:对偶函数是关于\(\Lambda\)的函数,所以约束条件只需考虑\(\Lambda\)的相关项
对于不等式约束,构建拉格朗日函数必须满足对偶可行性条件\(\Lambda \geq 0\)
最大化该对偶函数:

得到最优的\(\Lambda\),即可得到最优的参数w和\(w_0\)

叕一小时过去了

求解对偶问题

这是标准的关于𝜆的二次规划(quadratic programming)问题
可以调用Matlab提供的quadprog函数来求解

求解支持向量

用二次规划求解得到最优的\(\Lambda^*\),包含N个最优的拉格朗日乘数

\(w\) 最优解
根据找到的支持向量\(x_n\)以及对应的拉格朗日乘子\(\lambda_n^*\)构建\(w^*\)

其中\(N_s\)表示支持向量的个数

\(w_0\) 最优解
根据支持向量机定义的约束条件,针对任意一个支持向量\(x_s\)

支持向量机:识别决策

\(w 和 w_0\) 的学习过程实际上是从训练样本中选择一组支持向量,并将这些支持向量存储下来,用作线性分类器

4.10 软间隔支持向量机

将SVM的硬间隔(hard margin)放宽到软间隔(soft margin),允许一些训练样本出现在间隔区域内,从而具备一定的克服过拟合的能力

设计思想

引入松弛变量\(\xi_n\),允许一些训练样本出现在间隔区域内,形成软间隔

通过软间隔,使得线性SVM可以近似分类非线性数据

构建目标函数

构建拉格朗日函数

KKT条件

后续步骤

紧接着构建对偶函数
\(w、w_0和\Xi\)求解最小化
通过拉格朗日函数𝐿关于\(w、w_0和\xi_n\)偏导为0分别解出三个式子
利用上述三式在极值点处消去\(w、w_0和\Xi\)
在极值点得到对偶函数\(L_D\)

约束条件:对偶函数是关于𝚲的函数,所以约束条件只需考虑𝚲的相关项
最大化该对偶函数得到最优的𝜦,即可得到最优的参数\(w 和 w_0\)

求解支持向量

用二次规划求解得到最优的\(\Lambda^*\)\(\Lambda^* = [\lambda^*_1,\ \lambda^*_2,\ ..., \lambda^*_N]^T\)

支持向量分析

参数最优解

𝑤最优解:用二次规划求解得到最优的\(\Lambda^*\),选取\(\lambda_n^* > 0\)对应的训练样本\(x_n\)作为支持向量,从而估计出𝒘
\(w_0\)最优解:通常只用unbounded支持向量来构建𝑤0,且通常由所有支持向量取均值得到

识别决策

4.11 线性判据多类分类

引言

单个线性判据只能实现二类分类,如何用线性判据实现多类分类?
多类分类的本质:非线性
实现非线性分类途径:一个模型刻画非线性决策边界、多个模型组合成非线性决策边界

叕又一小时过去了

思路一:One-to-all策略

假设条件:每个类与剩余类线性可分
针对每个类𝐶𝑖,单独训练一个线性分类器\(𝑓_𝑖(𝒙) = w_i^Tx + w_{i0}\)
每个分类器\(𝑓_𝑖(𝒙)\)用来识别样本𝒙是属于𝐶𝑖类还是不属于𝐶𝑖类
设类别个数为𝐾:K>2,总共需要训练𝐾个分类器

给定测试样本x,其属于分类器输出值为正的那个类

有时也可以只训练𝐾−1个分类器:针对某个测试样本𝒙,如果所有𝐾−1个分类器都输出为非正值,则代表该样本属于剩余的第𝐾个类

训练样本选择:对于每个分类器\(𝑓_𝑖(𝒙)\),属于𝐶𝑖类的训练样本作为正样本,其余类别的训练样本作为负样本

问题:存在混淆区域

拒绝选项(reject case):针对单个测试样本𝒙,所有分类器输出都不是正值
重叠:针对单个测试样本𝒙,出现多个分类器输出为正,形成多个类重叠的区域

思路二:线性机

\(\Rightarrow\) 解决混淆区域问题

假设条件:每个类与剩余类线性可分
训练:基于one-to-all策略训练𝐾个线性分类器\(𝑓_𝑖\),每个分类器对应一个类𝐶𝑖
决策:使用输出值投票法(max函数)
给定测试样本x,其属于分类器输出值最大的那个类

为什么取输出值最大?
输出值\(𝑓_𝑖(𝒙)\)近似于x到分类边界(Ci类与剩余类的距离),该值最大即表示属于该类的可能性大

决策过程相当于将输入特征x直接映射到类别标签l
可见:线性机 = 𝐾个线性模型+ 一个max函数
因为max函数非线性,因此线性机可以实现非线性分类

决策边界:
通过max函数的引入,线性机将特征空间最终分为𝐾个决策区域。
决策边界𝐻𝑖𝑗垂直于超平面(\(𝒘_𝑖 − 𝒘_𝑗\))

优势:

由于使用max函数,不再有混淆区域(即拒绝区域和重叠区域)

问题: 可能出现最大的\(𝑓_𝑖(𝒙) \leq 0\),即测试样本x实际上位于拒绝区域,基于one-to-all的线性机无法正确判断

思路三:One-to-one策略

假设条件:任意两个类之间线性可分,但每个类与剩余类可能是线性不可分的
如下图的C1与C2

基本思想:针对每两个类𝐶𝑖和𝐶𝑗,训练一个线性分类器:\(𝑓_{ij}(𝒙) = w_{ij}^Tx + w_{0ij}\)
𝐶𝑖类真值为正、𝐶𝑗类真值为负,总共需要训练𝐾(𝐾−1)/2个分类器

训练样本:对于每个分类器\(𝑓_{ij}(𝒙)\),属于𝐶𝑖类的训练样本作为正样本,属于𝐶𝑗类的训练样本作为负样本
\(\Rightarrow\) 避免了one-to-all策略正负样本个数不均衡的问题

判别公式&决策边界:

优势:
适用于一些线性不可分的情况,从而实现非线性分类。与one-to-all策略相比,不再有重叠区域。

问题:
会出现拒绝选项(reject case),即样本不属于任何类的情况
解决:
采用类似线性机的策略,在决策过程中采用max函数,测试样本属于\(\Sigma_j f_{ij}\)最大的那个类Ci

总结:
使用线性判据进行多类分类,本质上是利用多个线性模型组合而成一个非线性分类器。
因此,决策边界不再是由单个超平面决定,而是由多个超平面组合共同切割特征空间。

叕双一小时过去了

4.12 线性回归

输出数据:二值数据,多类别数据,连续数据
输入样本:个数与特征维度的关系

线性回归模型表达:

模型对比:

线性回归模型的学习

Linear regression: \(y = W^Tx\)
给定训练样本,学习参数W

给定𝑁个训练样本X
若W最优,则对于每个样本\((x_n,\ t_n)\)而言,模型输出值yn应与输出真值tn之间差值最小
因此,目标函数可以使用均方误差(sum-of-squares error),即最小化均方误差(minimize square error, MSE):

目标优化:

  1. 展开目标函数
  2. 对参数W求偏导
  3. 采用梯度下降法更新w和\(w_0\)
  4. 设置偏导为0,得到参数W的闭式解,无需迭代(此即最小二乘法,适用于tall数据)
  5. \(𝑋^𝑇𝑋\)分析:非奇异矩阵,即满秩,W有唯一解
  6. \(𝑋𝑋^𝑇\)分析:奇异矩阵,不满秩,W有无穷个解或者无解

线性回归模型概率解释

似然函数(目标函数)

目标函数优化(最大似然估计)
取对数

由此可得,最大似然等同于最小化均方误差(MSE)

4.13 逻辑回归的概念

将线性模型改进为非线性模型
典型模型的属性

MAP分类器:

当两个类别数据分布协方差矩阵不同的时候,其决策边界就会是一个超二次型曲面,即非线性
相同就是线性的
故MAP可以在线性和非线性之间切换

MAP分类器输出后验概率,
每类数据是高斯分布且协方差矩阵相同的情况下,
𝒙属于𝐶1类的后验概率与属于𝐶2类的后验概率之间的对数比率就是线性模型f(x)的输出

后验概率比例取log,再化简可证,此即Logit变换
后验概率对数比率=线性判据𝑓(𝒙)输出

Logit变换定义:

𝐶1类的后验概率与𝐶2类的后验概率之间的对数比率

Sigmoid函数

连接线性模型和后验概率的桥梁
线性模型𝑓(𝒙) + Sigmoid函数 = 后验概率

逻辑回归(Logistic Regression)

线性模型𝑓(𝒙) + sigmoid函数(单个逻辑回归就是一个神经元模型)
给定测试样本x,Logistic回归输出其属于C1类的后验概率
单个逻辑回归可以用于二类分类,其决策过程如下:

给定两个类,逻辑回归的决策边界仍然是线性的超平面:

逻辑回归与神经元:

适用范围:分类、回归

总结

  • 逻辑回归本身是一个非线性模型
  • 逻辑回归用于分类:仍然只能处理两个类别线性可分的情况。但是,sigmoid函数输出了后验概率,使得逻辑回归成为一个非线性模型。因此,逻辑回归比线性模型向前迈进了一步
  • 用于拟合:可以拟合有限的非线性曲线

叕叒一小时过去了

模型对比:

4.14 逻辑回归的学习

训练样本

正类(C1类)样本的输出真值𝑡𝑛=1
负类(C2类)样本的输出真值𝑡𝑛=0
ps. SVM里用的是+1、-1

目标函数的设计

模型输出的概率分布:给定单个输入样本𝒙,模型输出的类别标签𝑙可以看做一个随机变量
针对单个训练样本,模型输出的概率:单个训练样本\(x_n\)放入模型,相当于对随机变量𝑙的一次采样试验(trial),输出真值标签\(t_n\)相当于指定此次试验的正确结果

似然函数:
使用最大似然估计,似然函数为所有训练样本输出概率的乘积:

目标函数:
对似然函数求取log,由于log是凹函数,所以对目标函数取反。相应的,最大化变为最小化
最终得到的目标函数为:

该目标函数其实就是交叉熵的表达式。

交叉熵:
可以用来度量两种分布的差异程度

给定𝑁个训练样本,把每个训练样本的交叉熵求和,得到最终的目标函数:

目标函数优化:梯度下降法

对参数\(w\)求偏导
对参数\(w_0\)求偏导
参数更新:梯度下降

梯度下降法要注意的问题:梯度消失问题

梯度下降法的问题

梯度消失:
当输出y较大时,sigmoid的输出z会出现饱和(z接近1),导致sigmoid梯度接近0,导致了梯度消失
\(\Rightarrow\) 参数𝒘尽量选择较小的初始值,避免出现梯度消失问题
在达到一定训练精度后,提前停止迭代,可以避免过拟合

4.15 Softmax判据的概念

引言

单个逻辑回归只能处理二类分类,而藉由softmax就可以实现的单个模型处理多类分类

逻辑回归输出:属于正类的后验概率
\(sigmoid(w^Tx+w_0) = P(C_1|x)\)

后验概率:多类情况

逻辑回归是由Logit变换反推出来的。
由Logit变换可知:正负类后验概率比率的对数是一个线性函数。
分类𝐾个类,可以构建𝐾个线性判据。
第𝑖个线性判据表示\(𝐶_i\)类与剩余类的分类边界,剩余类用一个参考负类(reference class) \(𝐶_𝐾\)来表达。

参考类的后验概率\(𝑝(𝐶_𝐾|𝒙)\)
任意正类的后验概率\(𝑝(𝐶_𝑖|𝒙)\)
重新审视参考负类的后验概率\(𝑝(𝐶_𝐾|𝒙)\)
任意类的后验概率\(𝑝(𝐶_𝑖|𝒙)\)

可见,对于多类分类,K个线性模型也跟每个类对应的后验概率建立起了联系

叕叕一小时过去了

Softmax函数

上述后验概率的计算方法称为softmax函数;

Softmax判据:𝐾个线性判据 + softmax函数。
Softmax判据是一个非线性模型

Softmax判据的决策过程:
给定测试样本x,经由线性模型和softmax函数计算K个类对应的后验概率,x属于最大后验概率对应的类别

Softmax判据的决策边界:
用于分类,等同于基于one-to-all策略的线性机

Softmax判据与神经网络:
相当于由𝐾个神经元组成的神经网络输出层,每个神经元输出值代表属于该类的后验概率\(𝑝(𝐶_i|𝒙)\subseteq[0,1]\)

Softmax适用范围:

分类
前提:每个类和剩余类之间线性可分

回归
范围:可以你和指数函数(exp)形式的非线性曲线

总结

  • Softmax判据本身是一个非线性模型
  • 用于分类只能处理多个类别、每个类别与剩余类线性可分的情况 但是, Softmax判据可以输出后验概率。 因此,Softmax判据比基于one-to-all策略的线性机向前迈进了一步。
  • 用于拟合可以输出有限的非线性曲线

模型对比:

4.16 Softmax判据的学习

最大似然估计

还是使用最大似然估计,最大化输出标签分布的似然函数
目标函数:

对其取log再取反,得到目标函数,实际上即为交叉熵的表达式

交叉熵解释

Softmax模型输出的概率分布:针对单个样本𝒙𝑛,
可以得到softmax预测输出的概率分布\(𝑝(\{𝑙_𝑛^𝑖\}_{𝑖=1,...,K} | 𝒙_𝑛)\)、输出真值的概率分布\(q(\{𝑙_𝑛^𝑖\}_{𝑖=1,...,K} | 𝒙_𝑛)\)

交叉熵:
给定单个样本\(x_n\),希望softmax模型预测输出的概率分布\(𝑝(𝒍_𝑛 | 𝒙_𝑛)\)符合输出真值的概率分布\(q(𝒍_𝑛 | 𝒙_𝑛)\)
使用交叉熵估计这两种分布的差异程度

给定𝑁个训练样本,把每个样本的交叉熵求和,得到目标函数:

目标函数优化:

对参数\(w_k\)求偏导
对参数\(w_{0k}\)求偏导
梯度分析:从梯度公式可以看到,第𝑖个线性方程的参数𝒘𝑖和𝑤0𝑖的更新不仅依赖于第𝑖类的样本𝒙𝑛∈𝐶𝑖,而且还依赖于所有剩余类的样本𝒙𝑛∈𝐶𝑗, 𝑖≠𝑗。

梯度对比:

参数更新:采用梯度下降法更新所有{\(w_i\), \(w_{0i}\)}

问题

softmax判据输出非线性,但仍然只能刻画线性分类边界(相邻两类之间的边界仍然是线性的),如何实现非线性分类边界?

4.17、核支持向量机

Kernel方法的基本思想:

如果样本在原始特征空间(𝑋空间)线性不可分,可以将这些样本通过一个函数𝜑映射到一个高维的特征空间(\(\Phi\)空间),使得在这个高维空间,这些样本拥有一个线性分类边界

设计思想:高维空间表达
给定向量\(x \subseteq R^D\)投影到高维空间后,新向量\(\varPhi(x) \subseteq R^P\)记作:

核技巧

SVM分类器需要两个步骤:

  1. 通过映射函数𝜑,将𝑋空间两个向量投影到高维\(\varPhi\)空间
  2. 在高维\(\varPhi\)空间计算两个向量的点积

但在实际应用中,映射函数𝜑的确切形式很难得到

叕叕又一小时过去了

核函数:
在低维𝑋空间的一个非线性函数,包含向量映射和点积功能,即作为𝑋空间两个向量的度量,来表达映射到高维空间的向量之间的点积;
\(\Kappa(x, x_k) = \varPhi(x)^T\varPhi(x_k)\)

Kernel SVM决策模型

给定测试样本𝒙,KernelSVM的决策模型为(在X空间):

Kernel SVM:一个单隐层神经网络

Kernel SVM的学习算法

由于kernel SVM在高维\(\varPhi\)空间是线性的,所以kernel SVM的对偶函数可以表达为

软间隔Kernel SVM的对偶问题

由于kernel SVM(尤其是高斯核)很容易产生过拟合,所以通常会加入松弛正则项,即软间隔Kernel SVM,其对偶问题为

核函数的条件

Mercer条件:只要是半正定对称函数,都可以用作核函数。
即对于𝑁个样本,如下矩阵𝐾是半正定对称矩阵

常见的核函数:多项式核函数,高斯核函数
核函数优缺点:

示例:XOR问题,其他非线性分类

如何构建非线性:

  • 需要有非线性的基函数,例如,核函数
  • 需要多个这样的基函数进行组合(可以是线性组合)

组合方式:
并行组合:Kernel SVM
串行组合:?

终于结束了

思维导图

ps. 建议右键新标签页打开后查看,或是下载后查看大图

posted @ 2021-05-26 15:45  NoNoe  阅读(237)  评论(0编辑  收藏  举报