《机器学习》第二次作业——第四章学习记录和心得

第四章 线性判据与回归

4.1线性判据基本概念

生成模型

给定训练样本{𝒙𝑛}直接在输入空间内学习其概率密度函数𝑝(𝒙)

在贝叶斯决策分类中生成模型通常用于估计每个类别的观测似然概率𝑝(𝒙|𝐶𝑖)再 结 合 先 验 概 率 得 到 联 合 概 率𝑝𝒙,𝐶𝑖=𝑝(𝒙|𝐶𝑖)𝑝(𝐶𝑖)

然后对所有类别进行积分得到边缘概率密度函𝑝𝒙=σ𝑖𝑝𝒙,𝐶𝑖最后得到后验概率𝑝𝐶𝑖|𝒙

  • 优势:根据p(X)采样新的样本数据,可以检测较低概率的数据,实现离群点检测
  • 劣势:高纬x需要大量训练样本才能准确估计p(x),否则会出现维度灾难

判别模型

给定训练样本{𝒙𝑛}直接在输入空间内估计后验概率𝑝(𝐶𝑖|𝒙)

  • 优势:计算量少,适合训练样本较小情况

线性判据

如果判别模型𝑓(𝒙)是线性函数,则𝑓(𝒙)为线性判据

  • 优势:计算量少,适用于训练样本较少的情况。

数学表达:

决策边界:

 𝒘的方向:决定了决策边界H的方向。

 𝑤0的作用:𝑤0决定了决策边界的偏移量,使其能够满足两个类输出值分别为正负。

任意样本到决策边界的距离:𝑓(𝒙)是样本𝒙到决策面𝐻的代数距离度量。(该距离𝑟的绝对值可以作为confidence score:值越大,这个点属于正类或者负类的程度越大。)

 决策边界到坐标原点的距离:可见,𝑤0决定决策边界相对于坐标原点的位置。

 4.2线性判据学习概述

学习和识别过程

监督式学习(训练)过程:基于训练样本{𝒙1,𝒙2,...,𝒙𝑁}及其标签{𝑡1,𝑡2,...,𝑡𝑁},设计目标函数,学习𝐰𝑤0

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

 参数空间&解域

参数空间:由各个参数维度构成的空间。

解域:在参数空间内,参数的所有可能解所处的范围。

解域:

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

          

  • 因此,只要满足上述条件,每个训练样本𝒙𝑖参数空间定义了一个通过原点、且垂直于𝒙𝑖超平面。
  • 给定N个训练样本,参数向量𝐰的解域位于N个超平面正半部分的交集

由于线性判据参数有多个可能的解,学习算法就是要从解域找到一个最优解

目标函数

设计目标函数:目标函数反映了如何实现有效决策核心思想。

  • 常见的目标函数误差(均方差)、交叉熵......
  • 加入约束条件(例如,正则项):提高泛化能力。

目标函数的求解最小化/最大化目标函数

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

加入约束条件:提高泛化能力。

  • 加入约束后,使得解域范围收缩
  • 沿着每个样本向量𝒙𝑖方向的收缩距离为:

4.3并行感知机算法

感知机算法

目的:根据标记过的训练样本{(𝒙𝑛,𝑡𝑛)}学习模型参数𝐰,𝑤0

预处理

  • 步骤1:将两个参数合为一个参数𝒂线性判据改写
  • 步骤2:将𝐶2类的训练样本全部取反
  • 几何解释:在几何上,通过在特征空间上增加一个维度,使得决策边界可以通过原点(𝑤0项)。翻转𝐶2类的样本:得到一个平面使得所有样本位于该平面同一侧。

并行感知机

目标函数:

  • 思想:被错误分类的样本最少
  • 针对所有被错误分类的训练样本(即输出值小0的训练样本),其输出值取反求和

目标函数求偏导:

  • 最小化该目标函数:取目标函数关于𝒂的偏导(即梯度)---
  • 偏导不含有𝒂,所以不能简单的通过设置偏导为0来求解𝒂

梯度下降法:使用当前梯度值迭代更新参数。

  • 更新的方向(正负):假设在k=1迭代时刻,参数取值𝒂1情况下,每个维度的梯度反方向就是该维度往目标函数最小值收敛的最速下降方向
  • 更新的大小:每个维度的梯度幅值代表参数在该维度上的更新程度
  • 通常加入步长(𝜂𝑘)来调整更新的幅度。每次迭代可以用不同的步长

 算法流程:

 4.4串行感知机算法

串行感知机(训练样本是一个一个串行给出时适用)

目标函数:(思想:当前样本被错误分类的程度最小)如果当前训练样本被错误分类,最小化其输出值取反:

目标函数求解:

  • 最小化目标函数:取关于参数向量𝒂的偏

             

  • 偏导不含有𝒂所以仍使用梯度下降法来求解𝒂

         

算法流程:

收敛性:如果训练样本是线性可分的,感知机(并行和串行)算理论上收敛于一个解步长决定收敛速度,以及是否收敛到全局或者局部最优)

感知机变体:

  • 问题:样本位于决策边界边缘时,对该样本的决策有很大的不确定性
  • 解决思路:加入margin约束条件,将错误分类的标准改为
  • 目标函数:
  • 目标函数求解:最小化目标函数,取关于参数向量𝒂的偏导

4.5Fisher线性判据

Fisher判据基本原理

找到一个最合适的投影轴,使两类样本在该轴上投影的重叠部分最少,从而使分类效果达到最佳。

目标函数

表征量的数学表达:

  • 类间样本的差异程度:用两类样本分布的均值之差度量。
  • 类内样本的离散程度:用每类样本分布的协方差矩阵表征。

在投影轴𝐰上:最大化如下目标函数

目标函数优化

  • 首先计算目标函数中的每一项
  • 带入目标函数,可以得到目标函数的新表达(类间散度,类内散度)
  • 求解目标函数

最优参数解:𝒘最优解,𝑤0的解,Fisher线性判据

决策边界:

 训练算法流程:

 4.6支持向量机基本概念

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

间隔:在两个类的训练样本中,分别找到与决策边界最近的两个训练样本,记𝒙+𝒙𝒙+𝒙决策边界的垂直距离叫作间隔,记作𝑑+𝑑

目标:最大化间隔。

支持向量的概念:

 分类器重新表达:

  • 在支持向量机中,正负类训练样本输出真值分别用+1-1来表达
  • 给定标记过的训练样本{(𝒙𝑛,𝑡𝑛)},线性分类器可以表达为:

分类器新的表达中,𝒙𝑛支持向量时,等式成立:

 间隔计算

 最大化间隔,等价于最小化||𝒘||,所以目标函数设计为:,同时满足约束条件:

 目标函数可以重新表达:

  •  该目标函数是条件优化问题
  • 目标函数自变量为𝒘,是关于𝒘的二次型函数
  • 约束条件是关于𝒘的仿射函数(线性函数)

 4.7拉格朗日乘数法

 条件优化问题

不等式约束优化问题:

 等式约束优化问题:

条件优化求解:

等式约束

 拉格朗日函数:

 等价优化问题:等式约束问题可以转换为等价的不带约束的优化问题:

不等式约束

情况1:极值点落在可行域内

 情况2:极值点落在可行域边界

 综合两种情况

 

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

 -->

 4.8拉格朗日对偶问题

主问题:带约束的原问题等价于如下(关于𝒙的)无约束问题

 拉格朗日对偶函数

对偶函数:对偶函数是主问题的最优值下界,该下界只跟对偶变量𝚲𝚪有关,与𝒙无关

对偶问题:针对𝚲>0𝚪,最大化对偶函数𝐿𝐷,得到主问题的对偶问题(首先求取𝐿关于𝒙最小值(下界),再求取下界关于𝚲,𝚪的最大值)

 对偶函数的凹凸性

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

对偶问题:凸优化

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

弱对偶性

  • 设对偶问题的最优值为𝑑、主问题的最优值为𝑝
  • 对于所有的优化问题都存在:

强对偶性

  • 强对偶性:
  •  如果强对偶性成立,则对偶问题获得主问题的最优下界

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

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

 4.9支持向量机学习算法

构建拉格朗日函数

构建对偶函数

针对𝑤𝑤0求解最小化

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

 在极值点得到𝐿𝐷

 对偶函数的约束条件:对偶函数是关于𝚲的函数,所以约束条件只需考虑𝚲的相关项

对偶问题

求解对偶问题:

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

支持向量

求解支持向量

参数最优解

w最优解:根据找到的支持向量𝒙𝑛以及对应的拉格朗日乘子𝜆𝑛构建𝒘𝑁𝑠表示支持向量的个数)

 w0最优解:根据支持向量机定义的约束条件,针对任意一个支持向量𝒙𝑠,由此得到:𝑤0通常由所有支持向量取均值得到:

 决策过程:

 4.10软间隔支持向量机

设计思想:

  • 引入松弛变量𝜉𝑛,允许一些训练样本出现在间隔区域内,形成软间隔

         

 构建目标函数

 构建拉格朗日函数

 构建对偶函数

  1.  如何针对𝑤𝑤0Ξ求解最小化:求拉格朗日函数𝐿关于𝒘,𝑤0𝜉𝑛偏导,并设偏导为0
  2. 在极值点消去𝑤𝑤0和𝜉𝑛
  3. 在极值点得到对偶函数𝐿𝐷
  4. 约束条件:对偶函数是关于𝚲的函数,所以约束条件只需考虑𝚲的相关项

 对偶问题:最大化该对偶函数得到最优的𝜦,得到最优的𝜦。即可得到最优的参数𝒘𝑤0

 支持向量

求解支持向量

 支持向量分析

 参数最优解

 𝑤最优解:用二次规划求解得到最优的𝜦,选取𝜆𝑛>0对应训练样本𝒙𝑛作为支持向量,从而估计出𝒘

𝑤0最优解:通常只用unbounded支持向量来构建𝑤0。𝑤0通常由所有支持向量取均值得到。

决策过程

 4.11线性判据多类分类

多类分类的本质:非线性

思路一:One-to-all策略

假设条件:每个类与剩余类线性

针对每个类𝐶𝑖,单独训练个线性分类器

每个分类器𝑓𝑖(𝒙)用来识别样本𝒙属于𝐶𝑖类还是不属于𝐶𝑖

设类别个数为𝐾,总共需要训练𝐾个分类器。有时也可以只训练𝐾1分类器:针对某个测试样本𝒙如果所有𝐾1个分类器都输出为非正值,则代表该样本属于剩余𝐾个类。

判别公式:

决策边界:

 

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

混淆区域:

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

思路二:线性机

假设条件:每个类与剩余类线性可分

训练:基于one-to-all策略训练𝐾个线性分类器𝑓𝑖,每个分类器对应一个类𝐶𝑖

决策:使用输出值投票法(max函数)

线性机= 𝐾个线性模型+ 一个max函数

决策边界

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

      

优势:由于使用max函数不再有混淆区域拒绝区域和重叠区域

思路三:One-to-one策略

假设条件任意两个类之间线性可分但每个类与剩余类可能是线性不可分

针对每两个𝐶𝑖𝐶𝑗训练一个线性分类器:𝑓𝑖𝑗(𝒙)=𝒘𝑖𝑗𝑇𝒙+𝑤0𝑖𝑗𝐶𝑖类真值为正;𝐶𝑗类真值为负.总共需要训练𝐾(𝐾1)/2个分类器

训练样本:对于每个分类器𝑓𝑖𝑗(𝒙),属于𝐶𝑖类的训练样本作为正样本,属于𝐶𝑗的训练样本作为负样本

判别公式:

决策边界

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

问题:会出现拒绝选项(reject case ),即样本不属于任何类的情况

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

 4.12线性回归

输出数据:二值数据,多类别数据,连续数据

输入样本:个数与特征维度的关系

线性回归模型表达:

 

 

 给定训练样本,学习参数𝑾

  • 给定𝑁个训练样本
  • 目标函数可以使用均方误差sum-of-squares error,即最小化均方误差minimize square error, MSE):
  • 目标优化:1.展开目标函数;2.对参数𝑾求偏导;3.采用梯度下降法更新𝒘𝑤0;4.设置偏导为0,得到参数𝑾闭式无需迭代(最小二乘法,适用于tall数据);5.𝑋𝑇𝑋分析:非奇异矩阵;𝑋𝑋𝑇分析:奇异矩阵;

 线性回归模型

  • 概率解释
  • 似然函数(目标函数)
  • 目标函数优化(最大似然估计)

 4.13逻辑回归的概念

MAP分类器:线性的情况,非线性的情况

Logit变换

后验概率的比例

后验概率比例取log

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

Logit变换定义:𝐶1类的后验概率与𝐶2类的后验概率之间的对数比率。

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

 线性模型𝑓(𝒙)+ Sigmoid函数= 后验概率

逻辑回归:线性模型𝑓(𝒙)+ sigmoid函数(单个逻辑回归就是一个神经元模型)

单个逻辑回归可以用于二类分类,其决策过程如下:

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

适用范围:分类&回归

逻辑回归本身是一个非线性模型

4.14逻辑回归的学习

训练样本

  • 正类(𝐶1类)样本的输出真值𝑡𝑛=1
  • 负类𝐶2类)样本的输出真值𝑡𝑛=0

最大似然估计法

模型输出的概率分布:给定单个输入样本𝒙,模型输出的类别标签𝑙可以看做一个随机变量

针对单个训练样本,模型输出的概率:个训练样本𝒙𝑛放入模型,相当于对随机变量𝑙的一次采样试验trial),输出真值标签𝑡𝑛相当于指定此次试验的正确结果

似然函数:

目标函数:似然函数求取log,由于log是凹函数,所以对目标函数取反。相应的,最大为最小化。目标函数其实就是交叉熵的表达式。

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

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

目标函数优化

梯度下降法

  • 对参数𝒘求偏导
  • 对参数𝑤0求偏导
  • 参数更新

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

  • 参数𝒘尽量选择较小的初始值避免出现梯度消失问题
  • 在达到一定训练精度后,提前停止迭代,可以避免过拟合

4.15Softmax判据的概念

逻辑回归输出:属于正类的后验概率

后验概率:多类情况

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

Softmax函数

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

Softmax判据的决策过程:

Softmax判据的决策边界

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

适用范围:分类&回归

模型对比

4.16Softmax判据的学习

 目标函数:

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

 交叉熵:目标函数:交叉熵解释给定单个样本𝒙𝑛,希望softmax模型预测输出的概率分布𝑝(𝒍𝑛|𝒙𝑛)符合输出真值的概率分布𝑞(𝒍𝑛|𝒙𝑛)。给定𝑁个训练样本,把每个样本的交叉熵求和,得到目标函数:

目标函数优化:

  • 对参数𝒘𝑘求偏导
  • 对参数𝑤0𝑘求偏导

梯度分析:从梯度公式可以看到,第𝑖个线性方程的参数𝒘𝑖𝑤0𝑖的更新不仅依赖于第𝑖类的样本𝒙𝑛𝐶𝑖,而且还依赖于所有剩余类的样本𝒙𝑛𝐶𝑗,𝑖𝑗

 

 

目标函数优化:参数更新,采用梯度下降法更新所有{𝒘𝒊,𝑤0𝑖}

 4.17核支持向量机(Kernel SVM

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

设计思想:高维空间表达

核技巧:映射函数𝜑很难得到

  1. SVM分类器需要两个步骤:通过映射函数𝜑,将𝑋空间两个向量投影到高维Φ空间;在高维Φ空间计算两个向量的点积;
  2. 低维空间点积vs.高维空间点积;
  3. 核函数:在低维𝑋空间的一个非线性函数,包含向量映射和点积功能,即作为𝑋空间两个向量的度量,来表达映射到高维空间的向量之间的点积;

Kernel SVM决策模型

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

 

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

Kernel SVM的学习算法
Kernel SVM的对偶问题:由于kernel SVM在高维Φ空间是线性的,所以kernel SVM的对偶函数可以表达为

 

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

 

 

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

 

 

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

 

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

如何构建非线性:

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

思维导图:

posted @ 2021-05-24 21:58  星星没有落下来  阅读(129)  评论(0编辑  收藏  举报