分享

机器学习入门

 昵称48979411 2021-07-05

首先我想说的是,欢迎批评。从纷杂的想法中总结出一点东西,是一个及其困难也非常有意思的工作,不可避免会犯错误。发现错误并且改正,同样是一个非常有意思的过程。我觉得不确定的用紫色标记。

机器学习,machine learning,第一件事情,子曰,必也正名乎。柏林工业大学这门课的参考用书,叫做 Pattern Classification,作者是Duda。翻译过来叫做模式识别,这是上个世纪70年代和80年代非常流行的术语,也是机器学习最初的样子,如何区分人脸,识别语音,以及辨认各种手写体,常用的数据处理方法有最小二乘法,极大似然估计和贝叶斯估计。到了90年代,出现了凸优化,核方法,支持向量机和boosting等算法,机器学习也叫计算机视觉。到了今天,深度学习让人耳目一新。但是,神经网络本质上还是不同决策结果的综合加权。

编程的思路,我觉得上图就可以解释了。就是将数据随机分成两部分,一部分用来训练,一部分用来验证有效性。先说训练,有时候决策模型是给你的,你需要去训练参数,用训练数据里面划分好类别的数据来计算参数

我和孟同学是这么解释的,机器学习就是处理数据,提取数字特征,建立尽可能通用的模型。然后,可以用作分类,数据压缩以及预测。我还是想偷个懒,按照学校课程的安排逐章讲一下,希望可以找到内在的联系。(说句心里话,支持向量机,PCA什么的可以单独写一篇)

机器学习分为三种,有监督的机器学习,supervised learning,主要方法有支持向量机,决策树,线性回归。主要就是基于训练输入输出样本,建立输入输出之间的函数关系。无监督的机器学习,unsupervised learning,主要方法有聚类,主成分分析,Expectation Maximum。主要是一种自组织的Hebbian learning,用来在没有给定标签的情况下基于数据寻找未知的patterns. 强化学习 reinforcement主要有 boosting, modelselection, 主要是基于各种算法,再构造一个函数,来加快收敛,也就是更快的算出结果。可以参照下图:

墨迹了好久,终于写到重点了。

上面这图还是当年学Mustererkennung找来的图呢,想当年手推最小二乘法,整段整段的德语反反复复的背啊背。我找了两张最具有代表性的图,第一个是线性分类器,深入讲也可以是SVM,支持向量机,首先这里的每一个点都是一个vector, 所谓support vectors就是落在

上的点,而SVM的任务不光是分类,它还要做最好的分类器。所谓最好在图上就是说,过support vector做 linear discriminant的平行线,要让左右两边平行线的间距尽可能大,那就是最好了,从数学上讲就是求

的最小值,在满足约束条件的情况下,哎,公式打的我真累。一想到后面还有极大似然函数,拉格朗日极值问题,我就心累。有时候,某些点非常调皮,它明明和妈妈最亲,却天天和爸爸缠在一起,严重干扰了我们一般的分类。这个时候就会引入惩罚参数,允许A类的点在某一天跑到B类的区域里面,但是不可以太过分。

第二个图就是上面这张,贝叶斯分类器。贝叶斯概率是高中知识,我就不打了,决策函数是

我的理解就是 event 随机变量x取某个值 的条件下,归于C1类的概率 (也就是要比较的后验概率 posterior )可以表示成 归于C1类的概率 (也就是先验概率 prior ) 乘以 归于C1类的条件下随机变量下取某个值的概率 (也就是条件概率 conditional probability),P(x)由全概率公式展开可求,是个与参数无关的常数,constant。这样子,我们就可以根据先验概率和用来分类的数据分布,计算后验概率进行分类了。通常情况下,表达形式都是二维的高斯联合密度函数,如下:

第一个可以看见是典型的正态分布,钟形图案,第二个应该是归一化之后的结果。

我本人非常希望介绍极大似然估计和贝叶斯估计,从中可以证明均值是高斯分布的无偏估计,我给你们上图吧,公式实在打不动了

极大似然估计,均值未知

极大似然估计,均值和方差皆未知

贝叶斯估计,单变量

贝叶斯估计,多变量


最后一张图,解释了构造朗格朗日函数 lagtange multiplier的几何意义


孟问我编程的思路,我觉得上图就可以解释了。就是将数据随机分成两部分,一部分用来训练,一部分用来验证有效性validation。先说训练,有时候决策模型是给你的,你需要去训练参数,用训练数据里面划分好类别的数据来计算参数,这是监督学习,用聚类法来迭代生成每个类的参数,这是非监督学习。收敛是必须的,或许可以从梯度下降的角度来解释,当训练的误差小于我们期望的误差的时候,就可以告一段落了。再说第二部分的数据,因为 no free lunch,算法对于不同的scenarios,表现是不一样的。算法越复杂,模型对于第一部分的数据拟合的越好,却未必对第二部分的数据拟合的同样好,这就是过拟合overfitting,产生的误差叫做generalizational error,泛化误差。这时候就需要牺牲算法复杂度,来求得一个平衡,tradeoff,也叫奥卡姆剃刀原则, Occam's razor。如下图所示:

最后一点废话:

在西方,classification(分类学)可以追溯到柏拉图 Plato 以及他的学生亚里士多德 Aristotle。教我们Stochastic的教授Caire在讲白噪声滤波,由观测序列经过运算得到原始序列,提到了柏拉图的洞穴理论,我们观测的数据不过在火把照耀下,真实世界在岩壁上的投影。亚里士多德提出了两种概念,essential property 和 accidental property,前者是某一个类别里成员共同具有的,后者因为类别不同而变化。比如将苹果按照颜色分类,颜色下面又有红色,绿色等。这属于哲学认知论的一个主题。在东方,禅宗一世,菩提达摩,对于事物的本性也有着深刻的洞察,identity of objects, nature of classification and decision。类似的还有公孙龙的白马非马,属于逻辑学了,我个人觉得讨论达摩祖师的实相和空相的关系更有意思。就像先有鸡还是先有蛋一样,我喜欢拿女人举例,比如你是看到了古今中外各种美女的样子之后,心中有了对美女的定义,还是潜意识中先有了对美女的幻想之后,突然看到了某个人,知道了美女原来长这样。我估计达摩应该会说色即是空,空即是色。色是实相,空是空相。丹凤眼,柳叶眉,小蛮腰是实相,美的如梦如幻不可方物则是空相。色不异空,空不异色是表象,色即是空,空即是色则是本质。禅宗不喜欢以文字点化,因为文理昌隆近乎伪,东方哲学的最高追求是内心的和谐。西哲喜欢析理,有监督的机器学习就是建立腿长腰细胸大和美女之间的函数关系,无监督的机器学习就是给你一组女人的三围数据,让你找出美女。白马非马这里也可以拿女性举例,女朋友不是朋友,假设女朋友是朋友,普通同学也是朋友,但是女朋友和普通朋友是有着天壤之别的,所以假设不成立,所以女朋友不是朋友,证毕。

后记,感谢孟忍受我每周一的骚扰,余里和我一起讨论问题,莫的在线解答,张教我安装程序,李教了我一条题目,赵给我往年练习题答案,刘的朋友圈点赞,我还得感谢万的关心。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多