机器学习自学笔记

目录

一绪论

1.1机器学习定义

1.2机器学习任务的分类

1.3机器学习算法的过程

二、支持向量机

2.1线性可分定义

2.2问题描述

2.3优化问题

 2.4线性不可分割情况

2.5 低维到高维的映射

 2.6 核函数的定义

2.7 原问题和对偶问题

 2.8 转化为对偶问题

2.10 兵王问题描述


一绪论

1.1机器学习定义

1.机器学习是这样的领域,它是赋予计算机学习的能力,这种学习能力不是通过显著式编程获得的

  让计算机自己总结规律的编程方法—非显著式编程—机器学习关注点

  规定收益函数后,让计算机自己去找最大化收益函数的行为 

 非显著式编程:通过数据、经验自动的学习,完成我们交给的任务

2.一个计算机程序被称为可以学习,是指他能够针对某个任务T和某个性能指标P,从经验E中学习,这种学习的特点是,它在T上的被P所衡量的性能,会随着经验E的增加而提高。

例1:任务T—编写程序设别菊花和玫瑰

         经验E—一大堆菊花和玫瑰花的图片(样本值)

         性能指标P—不同机器学习的算法会不同,eg 识别率—正确率

         根据经验E来提高性能指标P的过程——典型的最优化问题 

1.2机器学习任务的分类

  划分标准—经验E(训练样本和标签的集合)

 1.监督学习— 所有的经验E 都是人工采集并输入计算机的

  1)监督学习根据数据标签存在与否的分类:

(1)传统的监督学习:每个训练数据都有对应的标签。算法:支持向量机,人工神经网络,深度神经网络

(2)非监督学习:所有训练数据都没有对应的标签。非监督学习算法包括:聚类,EM算法,主成分分析     

​         

 如何分类:

  需要假设:同一类的训练数据在空间中离更近→根据样本的空间信息→设计算法将它们的聚集为两类→从而实现无监督学习

(3)半监督学习:训练数据中一部分有标签,另一部分没有标签。

2)另一种分类方法是基于标签的固有属性

2.强化学习—经验E计算机与环境互动获得的

让计算机通过改变自己的行为模式去最大化收益函数—强化学习

强化学习:让计算机通过与环境的互动逐渐强化自己的行为模式

1.3机器学习算法的过程

机器学习重点——假设在已经提取好特征的前提下,研究合理算法,使学习系统获得较好的性能(如何构造算法获得更好的性能指标)

  1. 特征提取、特征选择 

       特征提取:通过训练样本获得的,对机器学习任务有帮助的多维度数据

       特征提取的结果—特征选择

       提取了好的特征——也能获得不错的性能

       提取的特征很差——不肯能获得好的性能

       为什么不重点研究提取特征?

          不同的任务提取特征的方式不同。不同媒质不同任务,提取特征的方式千变万化

  1. 不同的算法对特征空间做不同的划分  

       设计算法:支持向量机:线性内核,多项式核,高斯径向基函数核。不同机器学习算法

       机器学习算法过程:设计一个算法,画出分类曲线(维度+标准)

       研究不同应用场景下,应该采取哪种算法

       研究新的机器学习算法,以便适应新的场景

 1.4没有免费午餐定理

    任何一个预测函数,如果在一些训练样本上表现好,那么必然在另一些训练样本上表现不好,如果不对数据在特征空间的先验分布有一定的假设,那么表现好与不好的情况将会一样多

原因:由于我们假设各种情况的先验概率一样

 研究不同应用场景下,应该采取哪种算法

 在设计机器学习算法的时候由一个假设:

     在特征空间上距离接近的样本,他们属于同一个类别的概率会更高)

    

   结论:如果不对特征空间的先验分布有假设→所有算法的表现都一样

   (1)不能片面的夸大这个定理的作用

   (2)机器学习的本质→根据有限的已知数据→在复杂的高维特征空间中预测未知的样本

             再好的算法也存在犯错的风险

二、支持向量机

2.1线性可分定义

线性可分:

二维情况下分割圆圈和×的是直线。三维情况下分割圆圈和×的是平面  。大于4维的情况下,分割圆圈和×的是超平面

               二维                                     三维

​   

非线性可分:不存在一条直线将圆圈和×分开

           二维                                               三维

​   

特征空间维度>四维时

二维空间

 

 若假设 ω’1=-ω1,ω’2=-ω2,b'=-b

 

假设:我们由N个训练样本和他们的标签

1)用数学严格定义训练样本以及他们的标签,

 

2)用向量形式来定义线性可分

 

 (3)线性可分定义的最简化形式

2.2问题描述

  如果一个数据集是线性可分的存在无穷多个超平面,将各个类别分开

  支持向量机算法:

  一、解决线性可分问题

  二、再将线性可分问题中获得的结论推广到线性不可分情况

 1.如何解决线性可分问题?

   如果一个数据集是线性可分的存在无穷多个超平面,将各个类别分开

   在这无数多个分开各个类别的超平面中,到底哪一个是最好的

 例2.1   二维特征空间中的二分类问题

根据没有免费午餐定理,可得3条线都是一样的,

我们认为第二条线是比较好的,原因是对训练样本先验分布有一定假设,例如,假设训练样本的位置在特征空间上有测量误差。

2号线对训练样本位置的测量误差的容忍程度是最高的,2号线更能抵御训练样本位置的误差。

 ​     

 2号线是怎么画出来的?

 VAPNIK的回答:基于最优化的理论,将寻找2号线的过程,变成一个最优化的问题。

​      

间隔(margin)最大的是2号线

                   1号线                                 2号线                                     3号线

​  ​  

支持向量机要找的是使间隔(margin)最大的那条线,但是使用margin最大这个条件→不能唯一确定一条直线

 为了使找到的直线唯一,还需要定义,这条线在上下两个平行线的正中间

支持向量机寻找的最优分类直线应满足:

(1)该直线分开了两类;

(2)该直线最大化(间隔)(margin)

(3)该直线处于间隔的中间,到所有支持向量距离相等

该结论是基于二维特征空间的结果,在高维特征空间中,直线将变成超平面,但以上的结论是一致的

2.3优化问题

 在数据集线性可分的情况化下,支持向量机寻找的最优超平面,应该满足下面三个条件:

 最优分类超平面应该满足:

  1.  该超平面分开了两个类
  2.  该超平面有最大化间隔
  3.  该超平面处于间隔的中间,到所有支持向量距离相等

 如何用严格的数学→由寻找最优分类超平面的过程→写成一个最优化的问题

线性可分的定义:

假定训练样本集是线性可分的,支持向量机需要寻找的是最大化间隔的超平面 ,离两边所有支持向量的距离相等

已知:训练样本集(xi,yi)i=1到Ni       待求:(ω,b)

 支持向量机优化问题推导中最难理解的部分

  用a去缩放ωb,使得

 由事实1 ,得(ω,b)表示的超平面和(aω,ab)表示的超平面是同一个平面

 事实1:

 根据事实2,支持向量X0到超平面的距离会变成

事实2:

 点到超平面的距离公式(由该公式可以推出事实2)

 最大化支持向量到超平面的距离,等价于最小化||ω||

优化问题定义为:

​,最小化||ω||

便于后续求导

限制条件:

支持向量到超平面的距离为:

在非支持向量上

 非支持向量到超平面的距离一定大于支持向量到超平面的距离

 

 总结:在线性可分情况下,支持向量机寻找最佳超平面的优化问题可以表示为:

凸优化问题:

 

已知: 训练样本集(xi,yi) i=1到Ni       待求:(ω,b)

二次规划的定义:

(1)目标函数是二次项

(2)限制条件是一次项

凸优化问题要么无解,要么只要唯一的最小值,只有唯一 一个全局极值

例子:

                          

 如何求解全局最小值:根据梯度不断试探

 线性可分条件下的支持向量机的求解是凸优化问题。

 2.4线性不可分割情况

若是线性不可分的,则上面的最优化问题是无解的,即不存在ω和b 使得限制条件成立

放松限制条件,使得最优化问题有解

放松限制条件的基本思路:

对每个训练样本及标签(Xi,Yi),设置一个松弛变量δi,

加入新的限制,阻止每个δi无限变大

 

 比例因子C:平衡两项​和​,C的值是人为设定的

该优化问题为凸优化问题

人为事先设定的参数叫作算法的超参数

不断变化C的值→对每个C测试算法的识别率→选取使识别率达到最大的超参数C的值

支持向量机是超参数很少的算法模型。

 例2.4

C=10000,迫使所有的δi趋近于0,使得最终解出的超平面和线性可分情况保持基本一致

结果:

优化方法:扩大可选函数范围。提高支持向量机解决线性不可分问题的能力

2.5 低维到高维的映射

扩大可选函数范围:

 将特征空间由低维映射到高维→用线性超平面对数据进行分类

例2.5

​      

 ​       

      假设:在一个M维空间上随机取N个训练样本,随机的对每个训练样本赋予标签+1或-1

      假设:这些训练样本线性可分的概率为P(M),    则当M趋于无穷大时,P(M)=1

      证明:当我们增加特征空间M的维度时,待估计参数(ω,b)的维度也会增加,整个算法模型的自由度会增加,就可以将低维线性不可分的数据映射到高维,形成线性可分的。

  将训练样本由低维映射到高维,就可以增大线性可分的概率。

待解决问题:如何构建低维到高维的映射φ(x)?

 假设φ(x)已知     X映射到φ(x)

 ​              ωi的维度与Xi维度相同                  ​        Xi被φ(Xi)替代    ω的维度与φ(Xi)相同

凸优化问题

 2.6 核函数的定义

​           ​  

不用知道φ(x)的具体形式,

定义该​ 形式为核函数,是一个数

例2.6.1  已知φ(x)求核函数K

核函数以及低维到高维的映射φ(x)之间的相互关系

假设:φ(x)是一个将二维向量映射维三维向量的映射

假设有两个二维向量

​   

 

例2.6.2  已知核函数K求映射φ(x)

假设 X是一个二维向量,

假设:

            假设                                                      那么

​     

 核函数K和映射φ(x)是一一对应的关系

核函数的形式不能随意的取,需要满足一定的条件,才能分解为两个φ(x)的内积

只要K满足 交换性和半正定性的形式,则一定可以写成φ(x)内积的形式

 例如2.6.3  可以证明

满足以上两个条件,

 这里的φ(x)不能写成显式的表达式,虽然无法知道φ(x)的形式,但可以通过一些方法知道

​的值,进而可以知道测试样本X所属的类别

如何在已知K,不知φ(x)的情况下,求解支持向量机的优化问题

2.7 原问题和对偶问题

 自变量ω 是多维向量,目标函数f(ω)

定义该原问题的对偶问题如下:

1.定义函数:                

2.定义对偶问题

 

综合原问题和对偶问题的定义得到:

定理一:

​     

 对偶差距≥0

强对偶定理 

  如果 g(ω)=Aω+b,h(ω)=Cω+d,f(ω)为凸函数,则有f(ω*)=Θ(α*,β*),则对偶差距为0

 如果原问题的目标函数是凸函数,限制条件是线性函数,那么原问题的解f(ω*),对偶问题的解

 Θ(α*,β*)相等,即f(ω*)=Θ(α*,β*),对偶差距为0

​的值为0 

 2.8 转化为对偶问题

证明支持向量机的原问题满足强对偶定理

目前支持向量机的优化问题

将支持向量机的优化问题转化为原问题

1.首先将

得到

​         

 再整理得:

限制条件都是线性的,目标函数是凸的,满足强对偶定理

原问题中的自变量ω=支持向量机优化问题中的(ω,b, δi)

原问题中的gi(ω)≤0 =支持向量机优化问题中的 两部分,一部分是

另一部分是 

由于没有等式条件,故不存在hi(ω)的情况

支持向量机的原问题转化为对偶问题的形式

如何将原问题转化为对偶问题

 由于遍历所有的(ω,b, δi),求最小值,故对(ω,b, δi)求导并令导数为0

 将支持向量机的原问题转化为对偶问题:

该对偶问题也是一个二次规划问题,可以通过最优化算法求解

 利用对偶理论,将支持向量机的原问题转化为相应的对偶问题

2.9算法总体流程

基于对偶问题,对支持向量机求解整个算法的统一流程

支持向量机的对偶问题: 

 如何求解这个对偶问题,基于这个对偶问题,给出支持向量机算法的统一流程

由于​,只需求解核函数,即可求解对偶问题,解出所有的​,根据​(由于φ(x)不知道是否有显式表达,故ω也不知道是否有显式表达)

无需知道ω的显式表达式,也可以通过核函数K(X1,X2)算出ωTX+b的值

1.如何求b

​       

根据KKT条件,可以推出

 如果对某个i,αi≠0且αi≠c,则根据KKT条件,必有δi=0,且

 

                             ↑ ↑

          ​ 

 2.对于测试样本X如何确定其类别

核函数戏法:即使不知道φ(x),只知道核函数K(x1,x2),也可通过上面的公式算出

 基于对偶问题的求解,支持向量机训练和测试的路程

  1.  训练过程

        输入选了数据{(Xi,yi)}  i=1~N 其中 yi=±1

       (1)求出αi

       

       (2)求b

          

  1.  测试过程

          考察测试数据X,预测它的类别y

         (1)预测规则

           

2.9 兵王问题描述

 用SVM解决实际问题

  • 0
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值