【阅读记录】降维与度量学习(《机器学习》第10章)

本文是《机器学习》第10章的学习笔记,涵盖了k近邻学习、降维方法(如主成分分析PCA、核化线性降维)以及度量学习的概念。介绍了线性代数在机器学习中的应用,讨论了如何处理高维数据的维数灾难,以及如何利用机器学习改进距离度量。同时,文章提及了流行学习的等度量映射和局部线性嵌入方法。
摘要由CSDN通过智能技术生成

前言:

{

    我大概看了一下这一章的内容,有很多是我之前了解过的,学习这一章应该不会花费我太多时间,所以就连着上一期一起做笔记了。

    线性代数警告!

}

 

正文:

{

    k近邻学习

    {

        书中描述的比较简单,这种方法大致意思就是:无标签样本标签由周围最近的k个有标签样本的标签决定(哪个标签最多就是哪个标签)。

        很明显,k近邻学习甚至没有学习过程,因此被作为“懒惰学习”的著名代表。不过确实比较常用,因为很多情况下,特征相近的样本应该具有相同的标签,比如人的头发长度(特征)和性别(标签)。

        值得注意的是,k近邻学习的泛化错误率不大于贝叶斯最优分类器的两倍。

    }

 

    降维:

    {

        现在的数据维度都很多(比如图像,每个像素就是一个维度),这样会导致性能障碍,这种维度问题被称为“维数灾难”。这章大部分都是在说降维。

        低维嵌入

        {

            这是一种数学降维方法。我们的目的是在保证样本间距离不变的情况下压缩特征维度。作者给出了多维缩放,其具体做法是:1,设所有样本X在目标空间的投影为Z,并且令B=Z^{T}Z为Z的内积矩阵;2,对B进行特征值分解;3,通过得到的特征值矩阵中特征值的大小选择一部分较大特征值和其对应的特征向量,由此组成新特征值矩阵和特征向量矩阵,并且通过算出Z。

            另外,这里提到了线性降维方法,即Z=W^{T}X,其得到的新属性是原属性的线性组合。

        }

        主成分分析

        {

            说实话这种方式我见的最多。

            我们的目的是要求上面的矩阵W中的向量w,经过书上的一段公式推导(具体之后再看,先快速过一遍整书)得式(10.17)。

           

            主成分分析的主要步骤包括:1,对所有样本进行中心化,即;2,计算中心化的样本的协方差矩阵XX^{T};3,对XX^{T}进行特征值分解;4,提取d'个最大特征值所对应的特征向量,并且以此特征向量组成上述W^{T}.

            另外,提取的特征向量的数量d'一般是事先指定的,作者还给出了一种确定d'的方法:d'使得式(10.18)最小(t是人为设置的,比如设为95%)。

           

        }

        核化线性降维

        {

            首先要说明一点,核化线性降维非线性降维。

            下面给出了核化线性降维的一种形式:核主成分分析

            由式(10.17)可得式(10.19)和式(10.20)。

           

           

           

            之后设x到z的映射为z=\phi(x),并且结合式(12.23)可得式(12.25),其中x是新样本。

           

           

           另外,式(10.23)被称为核函数。关于核函数的形式,我之前做过一篇相关记录[2]。

        }

        流行学习

        {

            流行学习也比较常见,这里给出了两种流行学习的方式:等度量映射局部线性嵌入

            等度量映射比较简单,抛弃了在高维空间中的较长直线距离。其包括:1,为每个样本计算其到k个最近样本的欧式距离;2,按照上一步得到的距离累加计算其他节点之间的最短距离;3,把得到的所有距离送入多维缩放算法中,并且得到其输出。

            局部线性嵌入就稍微复杂点。在这里,定义每个样本都可以被周围距离最近的几个样本(最近邻)线性表示,设一共有m个样本,则可得到m*m的权值矩阵W,但只计算W中一部分值。式(10.27)用来计算W。

           

            上式中Q_{i}x_{i}的最近邻集合。

            此方法的具体步骤包括:1,确定每个样本的最近邻集合;2,使用式(10.27)求得W;3然后通过式(10.29)求得样本在目标空间的映射z。其中3通过式(10.30)和式(10.31)实现。

           

           

            另外,我在之前的博客[3]中记录了流行排序的相关资料。和上述两个方法不一样,流行排序是给样本打分的方法。

        }

 

    度量学习

    {

        这一段主要介绍使用机器学习来获得度量的方式。

        把权重属性w加入样本x_{i}x_{j}的欧式距离,可得式(10.33)。

       

        上式中W是对角矩阵,权重可以通过训练学习。

        之后,可以在上述距离中添加不同属性之间的距离,即使得W成为不为对角矩阵的M,这样就得到了马氏距离,M也被称为度量矩阵。值得注意的是,M必须可分解为PP^{T},P是M的正交基(因为需要保证M是(半)正定矩阵和对称矩阵,分别对应距离的非负性和对称性)。

        M中是权值,所以其训练方法和训练其他权值的方法类型,例如可以把M的参数直接代入到目标函数进行梯度下降。

        另外,书中还介绍了一种新的度量学习方法。当训练某个距离度量时,我们可能遇到两种不同的结果,即两个样本的标签相同和两个样本的标签不同,我们希望标签相同的样本尽量接近,标签不同的样本尽量远离。设,则可进行式(10.39)的优化。

       

        即在保证标签不同的样本之间的距离不小于1的同时,使得标签相同的样本最接近。

        值得一提的是,在我之前的博客[4]中,我简述了两种孪生网络的实现,其中第一种网络最后部分的结构就用的这种引入权重的距离。

        此外,马氏距离还可以转换成欧氏距离的形式,并且当正交基P不满秩时,可通过P对样本进行降维。

    }

 

    习题:

    {

        10.2,由式(10.2)可得,因为,所以

                  (另一半暂缺)

        10.3,(没看懂,不知道l是什么,而且这样计算的计算量貌似也没少)。

        10.4,关于中心化和标准化的问题,我之前搜索过,搜到的比较切题的资料是stackoverflow上的一个问题[6],其中第一个回答指出了不同特征的缩放尺度(scalings)不一样,我们可能不需要把这些缩放尺度考虑在内(具体可以看[6]中的例子)。

        10.5,和马氏距离的度量矩阵类似,当投影矩阵为正交矩阵时,认为特征之间相互独立,忽略了特征之间可能有的联系,但是计算量也相应较少;当投影矩阵为非正交矩阵时,计算量增加,但考虑了特征之间的关联。

        10.7,联系:都属于非线性降维。核化线性降维的优缺点:以上述核主成分分析为例,其保留了主成分分析的优点,但是计算复杂,样本多时计算开销叫大。流行学习的优缺点:很好地保留了原数据的局部结构,使用局部结构来重构所有数据,但是此方法尚在理论阶段,还有许多问题

        10.10,如上所述,当度量矩阵M为(半)正定矩阵和对称矩阵时,即M可分解为PP^{T}时,产生的度量具有非负性和对称性,并且可写为欧氏距离的形式,即此时此度量也满足同一性和直递性。

    }

       

    }

}

 

结语:

{

    核化线性降维没看明白,但是我也没见过其应用,我想等到用得到时候再回来补,现在就先知道它大概是干什么的。

    习题部分参考[7]。

    我手上的高数小册子中没有涉及奇异值分解的知识,这方面的内容我参考了[8]。

    关于习题10.4,我之前试过把若干模型的输出添加到新模型的输入特征里(stacking,这是一种集成学习,[1]中集成学习章节没有涉及,我是在stackexchange上找的相关线索[9]),但是没有标准化。之后输出的结果就很差,远远不如之前的结果。

    参考资料:

    {

        [1] 周志华.《机器学习》.清华大学出版社

        [2] https://blog.csdn.net/fish_like_apple/article/details/85077197

        [3] https://blog.csdn.net/fish_like_apple/article/details/84895847

        [4] https://blog.csdn.net/fish_like_apple/article/details/84769744

        [5] https://www.cnblogs.com/lzhu/p/9146976.html

        [6] https://stackoverflow.com/questions/42024705/should-i-perform-data-centering-before-apply-svd

        [7] https://blog.csdn.net/icefire_tyh/article/details/52243773

        [8] https://www.cnblogs.com/pinard/p/6251584.html

        [9] https://stats.stackexchange.com/questions/218893/can-i-use-output-of-classifier-a-as-feature-for-classifier-b

    }

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值