机器学习开篇之路

程序浅谈 2022 2022-10-21

机器学习开篇之路

《底层逻辑》把智慧分为三个层次:博弈、定力、选择。

博弈:代表你要用双赢的思维,去赢得你选择赛道的胜利。

定力:代表你要坚定自己选择的赛道,不随意更换,来赢得长期的红利。

选择:代表你的选择要能顺应时代的趋势,做正确的事要比正确的做事更重要。

而这个时代的趋势,选择“机器学习”这个赛道就是正确的事,可能远远比你在工程领域去正确的做事,能收获更大的时代红利。让我产生这个想法,也是自己在招聘市场看到的现象,我们项目组要同时招聘Java工程师和算法工程师,从薪资、经验、发展三个方向来看,算法工程师这个职位都是完胜的。

  • 薪资:Java工程师的顶薪只是算法工程师的起薪。
  • 经验:Java工程师市场供给远远大于需求,企业挑选人才的标准也就高了,不仅要毕业学校好,还要有大厂经历。而算法工程师,明显市场需求大于供给,有名校和大厂毕业的就更少了,企业挑选人才的范围少了,要求自然不会有这么高。
  • 发展:算法这个行业更看重你底层的功底和能力,未来更注重你思维逻辑和算法经验;而不像工程可能还存在拼体力的过程,任务紧张,需要你去拼时间来完成工作量。

虽然如此,但是要你再在一个新的领域重新开始时,你依然会纠结和彷徨,再三对比和衡量得失。时代的趋势在不停向前发展,大的方向其实大家心里都或多或少有所了解,那就从此刻开始改变吧,人生最好开始的时刻要么在10年前,要么在此刻。

我理解的“机器学习”

机器学习学的是输入和输出之间的映射关系,这种映射关系最后会以模型的形式展现。

那么模型就可以表示为:输入输出符合的概率分布,或者输入输出之间的数量关系。从数据的角度看,如果这个模型可以用一组有限且固定数目的参数完全刻画,求出的模型就是参数模型;反过来,不满足这个条件的模型就是非参数模型。

参数模型

参数模型优势在于只用少量参数就可以完整地刻画出数据的概率特性,每个参数都具有明确的统计意义。经典的数学模型包括:典型概率分布,离散变量的二项分布B(n,p)只包含两个参数,分别代表:独立重复试验的次数和每次试验中事件发生的概率。

为什么参数模型中,有限的参数就能够描述无限的数据呢?

来源于超强的先验假设,所有数据符合特定类型的概率分布。在实际的学习任务中,我们并非对问题一无所知,通常都具有一定的先验知识。先验知识并不源于对数据的观察,而是先于数据存在,参数模型正好就是先验知识的体现和应用。

参数模型虽然简单实用,但其得到的结论就一定可信?

参数模型的可信度依赖于先验知识的可信度。如果先验知识可信度本身就不符合实际,那么不管训练数据集的体量多大,学习算法的性能多强,学习出来的结果都会与事实真相南辕北辙,背道而驰。

当对所要学习的问题知之甚少的时候,就不要使用先验信息。

非参数模型

不依赖于先验经验,完全靠数据进行学习得到的模型就是非参数模型。

非参数模型意味着模型参数的数目是不固定的,并且极有可能是无穷大,这决定了非参数模型不可能像参数模型那样用固定且有限数目的参数完全刻画出来。

非参数模型不存在关于数据潜在模式和结构化特性的任何假设,数据的所有统计都源于数据本身,所见即所得。

因此对比参数模型,非参数模型的时空复杂度都会比参数模型大得多。但可以证明的是,当训练数据趋于无穷多时,非参数模型可以逼近任意复杂的真实模型。

更系统和专业的概念

非参数模型可以理解为一种局部模型。在局部上,相似的输入会得到相似的输出,而全局的分布就是所有局部分布的叠加。

参数模型具有全局的特性。所有数据都满足统一的全局分布,一组全局分布的参数就可以表示所有的数据。

从模型构造的角度来看,参数模型对应的就是数据模型,非参数模型对应的就是算法模型。

著名统计学家布雷曼,最看重的就是学习算法从数据中获取有用结论和展示数据规律的能力。从一点出发,将输入x和输出y的关系看成黑盒。数据模型认为这个黑盒里装着一组未知的参数,学习的对象是这组参数;算法模型则认为这个黑盒里装着一个未知的映射函数,学习的对象就是这个映射函数。

数据模型最典型的方法是线性回归,输出结果表示为输入特征的线性加权组合,算法通过训练数据来学习权重系数。

算法模型最典型的方法是随机森林算法,随机森林是一种集成学习方法,构成这座森林的每一颗树都是决策树,每一颗决策树都用随机选取数据和待选特征构造出来,再按照少数服从多数的原则从所有决策树的结果中得到最终输出。

决策树本身是具有较好的可解释性的数据模型,它表示的是几何意义上的对特征空间的划分,但是精确度却不堪理想。随机森林解决了这个问题:通过综合使用建立在同一个数据集上的不同决策树达到出人意料的良好效果,在精确度上提升了数倍,但换来的就是可解释性的下降。

从学习方法上看,数据模型和算法模型具有相同的本质。此外还有一种针对学习对象的划分方式,就是生成模型和判别模型之分。

生成模型:学习的对象是输入x和输出y的联合分布p(x,y)。

判别模型:学习的则是已知输入x的条件下,输出y的条件分布p(y|x)。

这两个模型可以通过贝叶斯定理建立联系。

生成模型的求解更加复杂,当数据量趋于无穷大时,渐进条件下的精确性也更差,但其收敛的速度更快,在较少数据的训练后就可以收敛到错误的下限。

判别模型更加简单,在分类问题上的表现也更差,却不能提供关于数据生成机制的信息。

当下,参数模型还是机器学习的主流,非参数模型在应用范围上还是性能表现上都要略逊一筹。

后续计划

  • 模型的设计准则

  • 模型的验证方法

  • 模型的评估指标

  • 实验设计

Apipost 私有化火热进行中

评论