关于线性空间及机器学习的几点直观思考(持续更新...)

来源:互联网 发布:java中match 编辑:程序博客网 时间:2024/05/20 06:52

机器学习(包括人类认知)从根本上来讲就是用最简洁的结构来表达现实世界的各种结构,当我们对现实世界的结构了解不够清楚的情况下,我们也只能构造各种模型进行逼近和预测,以期望我们的模型在描述现实世界结构的误差最小,这种误差可能有多种的表述方式(比如最小均方误差,最近距离等等)。对于机器学习有着重要作用的正则化理论,其大意就是防止对于小范围适用的模型在推广到整体的不适应性(原理上类同盲人摸象,每人摸了其中一块就认为是表述了整体,虽然每个人针对其描述的部分是正确的),对于试验集上拟合或者逼近很好的模型,并不一定代表对于整体的最佳描述,也就是在小范围的过度学习其推广性未必好。

机器学习的研究方法从根本上无非分为两大工具:概率统计工具和代数几何工具,当然也是分别发展为两个主要流派(其实两者也是相互统一和重叠的),这也是很容易理解的。因为在我们对一个事物无法了解时,我们自然而然通过概率统计的原则对其进行描述,通过各种先验知识可以合理建立预测模型,数学上的大数定律以及贝叶斯定理等已经为这些方法提供了理论基础,总之通过概率和统计的描述,总是会得到规律的客观描述(问题是统计样本空间可能需足够大,对于小样本其推广性不佳),用此种方法的结果提供了模型预测的参考基准,这就是为什么目前机器学习、模式识别、数据挖掘等领域概率统计理论知识的占据了绝对重要地位。
另一方面,通过前述方法建立的理论,我们也就构建了一些基本定理,可以很好的描述一类事物的代表结构,这里我们只需要针对这种结构本身的研究,就可以很好地进行推广,从而针对整个事物的构成进行建模,而代数几何结构能够很好的阐述我们已知世界的事物,所以对这些代数结构的研究能够直观对应到已知事物的结构的推广,两者可以独立发展。即时脱离样本的研究也没有关系,其推广性不依赖于样本本身,因为样本的模型已经将样本的本质属性进行了总结。
貌似上面的描述有点离题,但是对于我们解决机器学习问题提供了一个基本的框架,也就是在研究机器学习问题的时候需要从宏观的结构上考量才能得到一个相对全面的结构描述,而对于机器学习一个重要方面-模式识别,其最主要的研究目标就是建立最佳的模式表述模型,对于我们所生活的空间(线性空间),阐述和研究其结构具有至关重要的意义。对于研究问题的一个很好的原则就是用最小的集合以及最简单的模型阐述一个模型,这样可以得到一个最佳的模型结构。
线性空间中的任何一个对象,通过选取基和坐标的办法,都可以表达为向量的形式。线性空间中的运动,被称为线性变换。在线性空间中,当选定一组基之后,不仅可以用一个向量来描述空间中的任何一个对象,而且可以用矩阵来描述该空间中的任何一个运动(变换)。而使某个对象发生对应运动的方法,就是用代表那个运动的矩阵,乘以代表那个对象的向量。矩阵是线性空间中的线性变换的一个描述。

下面言归正传,阐述一下线性空间我们需要研究的一些最基础内容。目前数学研究过于注重严谨性,丧失了很大部分直观性,而直观的表述往往更容易把握问题的本质,避免在繁杂复杂的公理化体系结构中迷失方向。

对于一个空间,如何去描述其属性呢?首先空间由集合构成,然后在空间集合中定义其结构特性才能区别其它空间,比如一个实数或复数向量空间加上长度概念构成赋范向量空间;一个实数或复数向量空间加上长度和角度的概念,构成内积空间;一个向量空间加上拓扑学符合运算的(加法及标量乘法是连续映射)构为拓扑向量空间;一个向量空间加上双线性算子(定义为向量乘法)构成域代数。

1.线性变换和相似矩阵:在一个线性空间中,只要我们选定一组基,那么对于任何一个线性变换,都能够用一个确定的矩阵来加以描述。所谓相似矩阵,就是同一个线性变换的不同的描述矩阵,也就是在不同基下的矩阵描述。我们可以这样理解相似变换,如果两个矩阵相似,那么它们描述的线性变换是一致的,可以说只是选择在不同视角下同一个变换的不同表述而已。

2.特征值和特征向量:特征值和特征向量问题在机器学习中有着很重要的应用,在线性代数理论中往往无法看到其直观含义,而针对工程应用才会比较深刻地理解其含义。机器学习中的主成分分析(PCA)与LDA(线性判别分析)对于特征值的计算描述了其实际意义,两种方法非常近似。LDA的原理是,将带上标签的数据(点),通过投影的方法,投影到维度更低的空间中,使得投影后的点,相同类别的点,将会在投影后的空间中更接近。LDA追求的目标是,给出一个标注了类别的数据集,投影到了一条直线之后,能够使得点尽量按类别区分开,也就是不同类别的点之间距离尽可能大,同类别的点之间距离尽可能小。PCA的原理是通过点分布的内在特性,使得变换后其之间分布的越开,从而可以得到其分布的主要部分。可以通过两种思路来推导出同样的结论:最大化投影后的方差或者最小化投影后的损失(投影产生的损失最小)。LDA的输入数据是带标签的,而PCA的输入数据是不带标签的。LDA通常来说是作为一个独立的算法存在,给定了训练数据后,将会得到一系列的判别函数,之后对于新的输入,就可以进行预测了。而PCA像是一个预处理的方法,它可将原本数据降低维度,而使得降低了维度的数据之间的方差最大(也可以说投影误差最小)(具体内容可以参考这篇博文:http://www.cnblogs.com/LeftNotEasy/archive/2011/01/08/lda-and-pca-machine-learning.html)。

0 0
原创粉丝点击