MATLAB机器学习
上QQ阅读APP看书,第一时间看更新

1.2 机器学习算法的分类

机器学习算法的能力来源于算法的质量译者注:泛化(generalization)能力。,这正是过去这些年科学家着力更新、改进的内容。这些算法根据使用的输入数据、训练方式以及学习到的模型的输出结果,可分为如下3类。

(1)监督学习:这类算法根据一系列样本(每个样本的输入有对应的输出)的观测结果建立从输入到输出的映射关系,最终构建一个预测模型。

(2)非监督学习:这类算法只需一系列样本点的输入,不需要样本事先标注出对应的输出。算法学习的信息能够构建一个描述性模型译者注:描述这个数据集样本间某种关系的模型。,一个经典的例子是搜索引擎译者注:可以通过网页间的相互引用关系、文本内容等,自动将不同网站进行归类。

(3)强化学习:这种算法能够通过多次迭代并观察每次迭代后环境产生的反馈进行学习。事实上,每次迭代后的输出结果和模型采取的行动都会对环境产生影响,而环境也会针对这些影响进行反馈。这类算法多用于语音识别和文本识别译者注:还有游戏角色的开发。

图1.5描述了不同机器学习算法间的关系。

图1.5 机器学习算法分类

1.2.1 监督学习

监督学习同时用样本的输入集合I和每个样本对应的标签集合O作为输入数据,能够建立从输入I到标签O的映射关系f,即模型与参数间的关系。用于求解模型、参数的数据集称为训练集(training set)。监督学习的训练流程如图1.6所示。

图1.6 监督学习训练流程

所有监督学习算法的训练都基于以下这个论断:如果一个算法拥有足够大的训练集,那么经过训练后,它能够建立一个映射关系B——这个映射关系能够无限逼近于潜在的真实映射关系A译者注:从概率论的角度来说,如果数据集中的所有样本都是从同一分布P(A)中抽样得到的,那么通过向监督学习算法输入足够的样本,算法优化后得到的分布P(B)能够无限逼近真实分布P(A)。

在用于预测问题时,监督学习假设相似的输入有相似的输出。也就是说,当B足够接近A时,在新数据上应用时,给BA同一输入,应该产生相似的输出结果。译者注:从概率论的角度来说,将模型P(B)应用在新数据上时,其输出结果应当与真实分布P(A)的输出结果相似。

总体来说,在实际应用中这两个假设并不总是成立的。显然,这种算法的最终表现在很大程度上取决于输入数据集的质量。如果输入数据集只包含少量样本,那么训练得到的模型就没有学习到足够经验以进行正确预测。相反,过多的冗余样本将导致优化的模型过于复杂,会降低模型的执行速度。

此外,在实际开发中我们发现,监督学习算法对数据集中的噪声、奇异值非常敏感。即使很小比例的奇异值,也将导致整个系统产生极大偏误,并给出错误预测。译者注:这段话太片面,在频率视角下和概率视角下的最大似然估计方法、贝叶斯方法中的高斯分布(单极值点)的确存在这个问题。但是对于多数模型,添加先验概率后的后验概率分布在很大程度上解决了这个问题。对于多极值点的模型,高斯混合分布的鲁棒性是非常高的。因为这段话我不太认同,所以在这里专门添加了译者注。

在监督学习中,我们可以根据输入数据的特点、学习任务的不同,将其分成两类。当需要输出离散类型的数据和对数据集中的样本进行归类时,此类问题称为分类问题;当需要输出连续的结果时,这类问题称为回归问题。

1.2.2 非监督学习

非监督学习的目标是自动从数据集中提取信息,整个过程中没有事先对数据集给出任何先验假设。与监督学习不同,训练数据集只包含样本的输入,不包含对应的输出。非监督学习的目标是能够自动在数据集中发现有用的信息,例如聚类(根据样本间的相似特点将样本组合在一起),典型的应用是搜索引擎。译者注:搜索引擎的学习算法能够通过网页间的相互引用关系、文本内容等,自动将不同网站分类。当用户输入搜索关键词时,算法同样可以将用户输入的指令进行归类,并将属于同一类别的网页返回给用户。在整个过程中,算法都没有得到任何有关类别的信息,但通过计算样本间的相似度,算法能够自动建立样本间的联系。

非监督学习算法的有效性在很大程度上取决于从数据集中抽取到的信息质量。这些算法通过比较数据集中样本间的相似和不同之处来进行学习。图1.7展示了监督学习和非监督学习的例子。

图1.7 监督学习vs. 非监督学习

非监督学习在处理数值型数据集时具有很好的表现,但当处理非数值型数据集时,精确度会下降一些。总体来说,非监督学习适合处理含有顺序的,或者能够被明显划分成组并被明确辨识的数据集。

1.2.3 强化学习

强化学习的目标是构建一种算法,这类算法通过多次迭代和观察每次迭代后环境产生的反馈进行学习。这类算法借助模型输出决策所引起的外部环境反馈进行交互式学习。当模型给出正确决策时,外部环境会给予正向奖励;当出错时,外部环境会给予负向惩罚。算法的学习目标是最大化奖励。

监督学习好比一位“老师”译者注:是指数据集中含有标注。,通过标注数据来教学生(算法)学习。然而,不是对于所有问题都可以有这种“老师”。很多情况下,即使人类也只能给出定性的信息(好/坏、成功/失败等)。

这类定性信息称为“增强信号”(reinforcement signal)。在这种情况下,模型只能得到每次学习结果的增强信号,无法获取任何关于如何优化智能体(agent)表现(模型参数)的信息。因为我们无法针对结果定义损失函数(cost function),所以也就无法计算出梯度(gradient)以供模型优化参数。强化学习的解决办法是创建聪明的智能体并在外部环境中不断试错,来从经验中学习。

图1.8展示了强化学习的流程。

图1.8 强化学习与环境间的交互