2023人工智能机器算法样例学习.docx
人工智能机器算法样例学习目录1学习的形式51.1 监督学习81.2 决策树学习141.2.1 决策树的表达能力151.2.2 从样例中学习决策树151.2.3 选择测试属性191.2.4 泛化与过拟合22125拓展决策树的适用范围241.3 模型选择与模型优化261.3.1 模型选择28132从错误率到损失函数301.3.3 正则化33134超参数调整341.4 学习理论361.5 线性回归与分类421.5.1 单变量线性回归421.5.2 梯度下降441.53多变量线性回归471.1.4 带有硬阈值的线性分类器501.1.5 基于逻辑斯谛回归的线性分类器541.6 非参数模型581.6.1 最近邻模型581.6.3 局部敏感哈希62非参数回归631.6.5支持向量机651.6.6 核技巧701.7 集成学习721.7.1 自助聚合法731.7.2 随机森林法741.7.3 堆叠法761.7.4 自适应提升法761.7.5 梯度提升法811.7.6 在线学习821.8 开发机器学习系统851.8.1 问题形式化851.8.2 数据收集、评估和管理861.8.3 模型选择与训练911.8.4 信任、可解释性、可说明性931.8.5 操作、监控和维护95小结98我们用样例学习来描述智能体通过不断学习自己以往的经验从而改善自己的行为,并对未来进行预测的过程。如果一个智能体通过对世界进行观测来提高它的性能,我们称其为智能体学习(learning)0学习可以是简单的,例如记录一个购物清单,也可以是复杂的,例如爱因斯坦推断关于宇宙的新理论。当智能体是一台计算机时,我们称之为机器学习(machinelearning):一台计算机观测到一些数据,基于这些数据构建一个模型(model),并将这个模型作为关于世界的一个假设(hypothesis)以及用于求解问题的软件的一部分。为什么我们希望一台机器进行学习?为什么不通过合适的方式编程然后让它运行呢?这里有两个主要的原因。其一,程序的设计者无法预见未来所有可能发生的情形。举例来说,一个被设计用来导航迷宫的机器人必须掌握每一个它可能遇到的新迷宫的布局;一个用于预测股市价格的程序必须能适应各种股票涨跌的情形。其二,有时候设计者并不知道如何设计一个程序来求解目标问题。大多数人都能辨认自己家人的面孔,但是他们实现这一点利用的是潜意识,所以即使能力再强的程序员也不知道如何编写计算机程序来完成这项任务,除非他使用机器学习算法。学习的形式一个智能体程序的各个组件都可以通过机器学习进行改进。改进及用于改进的技巧取决于下面几个因素:哪些组件可以被改进;智能体有哪些先验知识,这将影响模型构建;有哪些数据,以及关于这些数据的反馈。第2章中描述了一些智能体的设计。这些智能体的组件包括:(1)从当前状态条件到动作的直接映射;(2)用于从感知序列推断世界相关性质的方法;(3)关于世界演化方式的信息,以及关于智能体可以采取的可能动作所导致的结果的信息;(4)表示状态意向的效用信息;(5)表示动作意向的动作价值信息;(6)最希望达到的状态,即目标;(7)问题生成器、评判标准和使系统得以改进的学习元素。这些组件中的任何一个都可以被学习到。我们设想一个可以通过观测人类司机行为来学习自动驾驶的汽车智能体。每次司机刹车时,这个智能体可以学习到一个关于什么时候该踩刹车的条件动作规则(组件1)o通过观察大量包含公共汽车的照相机图像,它可以学习到如何辨认公共汽车(组件2)。通过尝试不同动作以及观测相应的结果(例如在潮湿的道路上艰难地刹车),它可以学习到动作相应的结果(组件3)o接着,如果它收到在旅途中被剧烈颠簸吓坏了的乘客们的抱怨,它可以学习到关于其总体效用函数的一个有效组件(组件4)。机器学习技术已经成为软件工程的标准组成部分。无论何时你想搭建一个软件系统,即使你不认为它是一个人工智能主体,这个系统的组件也可能可以用机器学习的方式加以改进。例如,一个用于分析星系在引力透镜下的图像的软件可以通过机器学习的模型加速一千万倍(HezavehGal2017);通过采用另一种机器学习的模型可以将数据中心冷却的能耗降低40%(Gao,2014)0图灵奖得主大卫帕特森(DavidPatterson)和谷歌Al的掌门人杰夫迪安(JeffDean)宣称,计算机体系结构的“黄金时代”的到来正归功于机器学习(Deanetal.2018)0我们已经见过了一些关于智能体组件的模型示例:原子模型、因子化模型,以及基于逻辑的关系模型或基于概率的关系模型等。人们针对所有这些模型设计了广泛的学习算法。本文中我们假设不存在关于这个智能体的先验知识(Priorknowledge):它从零开始,从数据中学习。在21.7.2节中,我们将考虑迁移学习(transferlearning),在这种情形下,一个领域的知识被迁移到一个新的领域,以更少的数据使学习过程进行得更快。我们当然还要假设系统的设计者选取了合适的模型框架,从而让学习过程变得更加有效。从一组特定的观测结果得出一个普遍的规则,我们称之为归纳(induction)o例如,我们观察到,过去的每一天太阳都会升起,因此我们推断太阳明天也会升起。这与我们在第7章中研究的演绎(deduction)不同,因为归纳的结论可能是不正确的,然而在演绎中,只要前提是正确的,演绎的结论就保证是正确的。本文将集中讨论输入为因子化表示(factoredrepresentation)属性值组成的向量的问题。输入也可以是任意类型的数据结构,包括原子表示的数据和关系数据等。当输出是一个有限集合中的某个值时(如晴天/阴天/雨天或者正确/错误),我们称该学习问题为分类(ClaSSifiCation)。当输出是一个数值时(例如明天的温度,无论它是一个整数还是其他实数),我们称该学习问题为回归(regression)(这个词有些晦涩难懂山)。ri一个更好的名称是函数遢近或者数值预刑。但在1886年,法国人弗朗西斯高尔顿(FranCiSGalton)写了一篇关于这一概念的富有影响力的文章regreSSiMfothemean(例如,高个子父母的孩子很可能身高高于平均值,但没有父母那么高)。高尔顿用他所称的“回归线''给出了一些困,之后读者逐渐把“回归”一词与函数逼近这一统计技术联系起来,而不是与回归于均值的主题联系起来。伴随输入有3种类型的反馈(feedback),它们决定了3种类型的学习。在监督学习(SUPerViSedlearning)中,智能体观测到输入-输出对,并学习从输入到输出的一个函数映射。举个例子来说,输入是照相机的图像,伴随输入的输出就是“公共汽车”或者“行人”等。诸如此类的输出,我们称之为标签(Iabe1)。在智能体学习到一个函数之后,如果给它一个新的图像输入,它将预测一个合适的标签。对于踩刹车这一动作的学习(上述的组件1),其输入是当前的状态(车的速度和行驶方向、道路条件),输出是开始刹车到停车所需要行驶的距离。在这种情形下,智能体可以直接从自己的感知中获得输出值(在动作结束之后);环境就是老师,智能体学习的是从当前状态到刹车距离的一个函数。在无监督学习(UnSUPerViSedlearning)中,智能体从没有任何显式反馈的输入中学习模式。最常见的无监督学习任务是聚类(clustering):通过输入样例来检测潜在的有价值的聚类簇。例如,我们从互联网上可以获取数百万个图像,一个计算机视觉系统可以识别一大类相似的、被人类称为“猫”的图像。在强化学习(reinforcementlearning)中,智能体从一系列的强化-奖励与惩罚中进行学习。举例来说,在一局国际象棋比赛结束时,智能体会被告知它赢了(奖励)还是输了(惩罚)。智能体判断之前采取的哪个动作该为这一结果负责,并且改变它的动作以在未来得到更多的奖励。1.1监督学习更正式地说,监督学习的任务如下。给定一个训练集(trainingset)含有N个“输入.输出”对样例:(再,M),(%,%),Gd其中每一对数据都由一个未知的函数N=危)生成,寻找一个函数力来近似真实的函数A函数力被称为关于世界的假设(hypothesis)。它取自一个假设空间(hypothesisspace)H,其中包含所宥可能的函数。例如,这个假设空间可能是最高次数为3的多项式集合、JaVaSCriPt函数的集合,也可能是所有3-SAT布尔逻辑公式的集合。同样地,我们可以称人是关于数据的模型,它取自模型类(modelclass)H,也可以说它取自函数类(functionclass)中的一个函数(function)。我们称输出y为真实数据(groundtruth)我们希望模型能预测的正确答案。那么,如何选择一个假设空间呢?我们可能有一些关于数据生成过程的先验知识。如果没有的话,可以采用探索性数据分析(exploratorydataanalysis):通过统计检验和可视化方法直方图、散点图、箱形图来探索数据以获得对数据的一些理解,以及洞察哪些假设空间可能是合适的。或者我们可以直接尝试多种不同的假设空间,然后评估哪个假设空间的效果最好。有了假设空间后,如何从中选择一个好的假设呢?我们希望寻找一个一致性假设(ConSiStenthypothesis):假设对训练集中的任意一个知都有(幻=为。如果输出是连续值,我们不能期望模型输出与真实数据精确匹配;相反,我们可以寄希望于寻找一个最佳拟合函数(best.fitfunction),使得每一个/Iaj)与力非常接近(我们将在19.4.2节中给出正式表述)。衡量一个假设的标准不是看它在训练集上的表现,而是取决于它如何处理尚未观测到的输入。我们可以使用一个测试集(testset)第二组样本数据对(修,来评估假设。如果Zz准确地预测了测试集的输出,我们称具有很好的泛化(generalize)能力。图19展示了一个学习算法所得到的函数人依赖于假设所考虑的假设空间H和给定的训练集。第一行的4幅图使用同一个训练集,训练集中包含13个(y)平面上的数据点。第二行的4幅图使用第二组由13个数据点组成的训练集;两个训练集都代表了某个未知的函数/(x)。每一列展示了不同假设空间中的最佳拟合假设鼠 列L直线;形如(X)=W$的函数。对于这些数据点,不存在一致性假设的直线。线性模型正弦函数模刷分段线性模型被而次数为12的多项式图191寻找拟合数据的假设。第一行:在数据集1上训练的来自4个不同假设空间的最佳拟合函数的4个图像。第二行:同样的4个函数,但是在稍有不同的数据集上进行训练得到的结果(数据集采样自相同的函匆口) 列2:形如MX)=WJ+sin(M)的正弦函数。这个假设并不是完全一致的,但是将两个数据集都拟合得非常好。 列3:分段线性函数,其中每一条线段从一个数据点连接到下一个数据点。这类函数永远是一致的。A(x)=Vw,x7列4:形如士的12次多项式。这类函数是一致的:我们总是能找到一个12次 多项式来准确地拟合13个不同点。但是假设是一致的并不意味着这是一个好的预测。分析假设空间的一个方法是分析它们带来的偏差(不考虑训练集)和它们产生的方差(从一个训练集到另一个训练集)。我们所说的偏差(bias)是指(不严格地)在不同的训练集上,假设所预测的值偏离期望值的平均趋势。偏差常常是由假设空间所施加的约束造成的。