前言:
{
我大概看了一下这一章的内容,有很多是我之前了解过的,学习这一章应该不会花费我太多时间,所以就连着上一期一起做笔记了。
线性代数警告!
}
正文:
{
k近邻学习:
{
书中描述的比较简单,这种方法大致意思就是:无标签样本标签由周围最近的k个有标签样本的标签决定(哪个标签最多就是哪个标签)。
很明显,k近邻学习甚至没有学习过程,因此被作为“懒惰学习”的著名代表。不过确实比较常用,因为很多情况下,特征相近的样本应该具有相同的标签,比如人的头发长度(特征)和性别(标签)。
值得注意的是,k近邻学习的泛化错误率不大于贝叶斯最优分类器的两倍。
}
降维:
{
现在的数据维度都很多(比如图像,每个像素就是一个维度),这样会导致性能障碍,这种维度问题被称为“维数灾难”。这章大部分都是在说降维。
低维嵌入:
{
这是一种数学降维方法。我们的目的是在保证样本间距离不变的情况下压缩特征维度。作者给出了多维缩放,其具体做法是:1,设所有样本X在目标空间的投影为Z,并且令B=为Z的内积矩阵;2,对B进行特征值分解
;3,通过得到的特征值矩阵
中特征值的大小选择一部分较大特征值和其对应的特征向量,由此组成新特征值矩阵
和特征向量矩阵
,并且通过
算出Z。
另外,这里提到了线性降维方法,即Z=,其得到的新属性是原属性的线性组合。
}
主成分分析:
{
说实话这种方式我见的最多。
我们的目的是要求上面的矩阵中的向量w,经过书上的一段公式推导(具体之后再看,先快速过一遍整书)得式(10.17)。
主成分分析的主要步骤包括:1,对所有样本进行中心化,即;2,计算中心化的样本的协方差矩阵
;3,对
进行特征值分解;4,提取d'个最大特征值所对应的特征向量,并且以此特征向量组成上述
.
另外,提取的特征向量的数量d'一般是事先指定的,作者还给出了一种确定d'的方法:d'使得式(10.18)最小(t是人为设置的,比如设为95%)。
}
核化线性降维:
{
首先要说明一点,核化线性降维是非线性降维。
下面给出了核化线性降维的一种形式:核主成分分析。
由式(10.17)可得式(10.19)和式(10.20)。
之后设x到z的映射为z=,并且结合式(12.23)可得式(12.25),其中x是新样本。
另外,式(10.23)被称为核函数。关于核函数的形式,我之前做过一篇相关记录[2]。
}
流行学习:
{
流行学习也比较常见,这里给出了两种流行学习的方式:等度量映射和局部线性嵌入。
等度量映射比较简单,抛弃了在高维空间中的较长直线距离。其包括:1,为每个样本计算其到k个最近样本的欧式距离;2,按照上一步得到的距离累加计算其他节点之间的最短距离;3,把得到的所有距离送入多维缩放算法中,并且得到其输出。
局部线性嵌入就稍微复杂点。在这里,定义每个样本都可以被周围距离最近的几个样本(最近邻)线性表示,设一共有m个样本,则可得到m*m的权值矩阵W,但只计算W中一部分值。式(10.27)用来计算W。
上式中是
的最近邻集合。
此方法的具体步骤包括:1,确定每个样本的最近邻集合;2,使用式(10.27)求得W;3然后通过式(10.29)求得样本在目标空间的映射z。其中3通过式(10.30)和式(10.31)实现。
另外,我在之前的博客[3]中记录了流行排序的相关资料。和上述两个方法不一样,流行排序是给样本打分的方法。
}
度量学习:
{
这一段主要介绍使用机器学习来获得度量的方式。
把权重属性w加入样本和
的欧式距离,可得式(10.33)。
上式中W是对角矩阵,权重可以通过训练学习。
之后,可以在上述距离中添加不同属性之间的距离,即使得W成为不为对角矩阵的M,这样就得到了马氏距离,M也被称为度量矩阵。值得注意的是,M必须可分解为,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可分解为时,产生的度量具有非负性和对称性,并且可写为欧氏距离的形式
,即此时此度量也满足同一性和直递性。
}
}
}
结语:
{
核化线性降维没看明白,但是我也没见过其应用,我想等到用得到时候再回来补,现在就先知道它大概是干什么的。
习题部分参考[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
}
}