机器学习
当计算机科学家说起机器学习时,他们通常指的是进行一种训练,通过这种训练可以编写能自动学会根据数据隐含模式进行合理推断的程序。
基本范式如下:
- 观察一组实例,通常称为训练数据,它们可以表示某种统计现象的不完整信息;
- 对观测到的实例进行扩展,并使用推断技术对扩展过程建模;
- 使用这个模型对未知实例进行预测。
机器学习算法
机器学习的算法数不胜数,但所有方法都试图建立一个模型来对现有实例进行归纳。所有方法都具有以下3个部分:
- 模型的表示;
- 用于评估模型优度的
目标函数
; - 一种
优化方法
,可以通过学习找出一个模型,使目标函数值最小化或最大化。
一般来说,机器学习算法可以分为监督式学习方法和无监督式学习方法。
监督式学习
在监督式学习中,我们先从一组成对的特征向量和值开始。目标是从这些特征向量和值中推导出某种规则,以预测与未知的特征向量所对应的值。
回归模型为每个特征向量关联一个实数。
分类模型为每个特征向量关联一组数量有限的标签/类。
非监督式学习
在非监督式学习中,我们被给定一个没有标注的特征向量集合。非监督式学习的目标就是发现特征向量集合中的隐含模式。一般来说,非监督式机器学习方法可以分为两种,一种是聚类方法,另一种是隐变量模型学习方法。
隐变量
隐变量的值不能直接观测到,但可以通过其他可观测的变量的值推测出来。例如,大学的招生负责人可以根据学生的中学成绩和在标准测试中的表现等一系列观测值,推测出申请者是一个优秀学生(隐变量)的概率。
聚类
聚类将实例集合划分为多个子集(称为“簇”),使得同一子集中的实例之间的相似度大于与其他子集中的实例的相似度。
特征向量
信噪比
有用输入和无关输入的比值。例如,约会时,信号就是你约会对象的声音,噪声就是其他声音。
特征工程
特征工程的目的就是将现有数据中可以作为信号的特征与那些仅是噪声的特征区分开来。
特征工程的失败会导致糟糕的模型。当数据的维度(即特征的数量)相对于样本量来说比较大时,特征工程就具有较高的失败风险。
成功的特征工程是一个抽象过程,它可以将大量的可用信息缩减为可以用于归纳的信息。举例来说,如果你的目标是学习一个模型,用来预测某个人是否容易患心脏病,那么有些特征就可能是与之高度相关的,比如年龄。而其他特征就可能没那么重要,比如这个人是否是左撇子。
可以使用特征消除技术
自动识别特征集合中那些最可能有用的特征。例如,在监督式学习中,我们可以选择那些与实例的标签具有最强相关性
的特征。但是,如果我们初始选择的特征不是有用特征的话,这些特征消除技术就几乎起不了什么作用。
假设在处理心脏病实例时,我们在初始特征集合中包括了身高和体重,那就可能出现这样的情况。尽管身高和体重都不能对心脏病具有较高的预测能力,但是身体质量指数(BMI)却是一个非常好的特征。虽然BMI可以通过身高
和体重计算出来,但是这个关系(以千克为单位的体重除以以米为单位的身高的平方)太复杂了,现有的机器学习技术还不能自动地找到这个关系。成功的机器学习过程经常需要一些领域的专家来对特征进行设计。
在非监督式学习中,这个问题更为棘手。我们通常会根据自己的直觉选择那些可能会与我们要寻