吴恩达:机器学习六大核心算法!
吴恩达在他创办的《人工智能周刊》时事通讯《The Batch》上更新了一篇博文,总结了机器学习领域几种基本算法的历史渊源。
文章开头,吴恩达回忆起他在研究过程中做出的一个决定:
很多年前,在一个项目中,在选择算法时,他在神经网络和决策树之间做出选择。算法。考虑到计算预算,他最终选择了神经网络,放弃了长期决策树。
这是一个错误的决定。吴恩达说:“幸运的是,我的团队很快修改了我的选择,项目取得了成功。”
他感叹不断学习和更新基础知识非常重要。与其他技术领域一样,机器学习领域随着研究人员数量的增加和研究成果的增长而不断发展。但一些基本算法和核心思想的贡献是经得起时间考验的:
- 算法:线性和逻辑回归、决策树等。 在吴恩达看来,这些算法和概念是许多机器学习模型的核心思想,包括房价预测器、文本图像生成器(如 DALL·E)等。
在这篇最新文章中,吴恩达和他的团队调查了六种基本算法的起源、用途、演变等,并给出了更详细的解释。
六种算法分别是:线性回归、逻辑回归、梯度下降、神经网络、决策树和K-means聚类算法。
1
线性回归:直线和窄
线性回归是机器学习中重要的统计方法,但它不是不战而胜。它是由两位杰出的数学家提出的,但200年后这个问题仍然没有得到解决。长期存在的争议不仅证明了该算法的显着实用性,而且还证明了其本质上的简单性。
那么线性回归是谁的算法呢?
1805年,法国数学家阿德里安-玛丽·勒让德(Adrien-Marie Legendre)发表了一种将直线拟合到一组点的方法,同时试图预测彗星的位置(天体导航是当时全球贸易中最有价值的科学方向,例如今天的人工智能)。

说明:阿德里安-玛丽·勒让德 (Adrien-Marie Legendre) 的草图
四年后,24 岁的德国神童卡尔·弗里德里希·高斯 (Carl Friedrich Gauss) 坚称他自 1795 年以来就一直在使用它,但认为它太微不足道了。写不了。高斯的说法促使勒让德发表了一篇匿名论文,称“一位非常著名的几何学家毫不犹豫地采用了这种方法。”

图表:Carl Friedrich Gauss
斜率和偏差:当结果与影响结果的变量之间的关系呈直线时,线性回归非常有用。例如,汽车的油耗与其重量呈线性关系。 .
- 汽车的油耗y与其重量x之间的关系取决于直线的斜率w(油耗随重量增加的程度)和偏移项b(零重量时的油耗) :y=w*x+b。
- 在训练过程中,算法根据汽车的重量预测预期油耗。它比较预期油耗和实际油耗。然后,通常通过普通最小二乘技术、磨练 w 和 b 值来最小化平方差。
- 考虑到汽车的阻力可以产生更准确的预测。其他变量将线延伸到平面中。这样,线性回归可以容纳任意数量的变量/维度。
普及的两步:该算法立即帮助航海家追踪星星,并帮助后来的生物学家(特别是查尔斯·达尔文的表弟弗朗西斯·高尔顿)识别动植物的遗传特征。这两项进一步的发展表明线性回归具有广泛的潜力。 1922 年,英国统计学家罗纳德·费舍尔 (Ronald Fisher) 和卡尔·皮尔逊 (Karl Pearson) 展示了线性回归如何适应相关性和分布的一般统计框架,从而使其在所有科学中都有用。近一个世纪后,计算机数据和处理能力的出现可以更大程度地利用它。
应对模糊性:当然,数据永远不会完美测量,并且某些变量比其他变量更重要。这些生活事实激发了更多复杂的变化。例如,具有正则化的线性回归(也称为“岭回归”)鼓励线性回归模型不要过多依赖于一个变量,或者更确切地说,均匀地依赖于最重要的变量。如果为了简单起见,另一种形式的正则化(L1 而不是 L2)会产生一个套索(压缩估计),鼓励尽可能多的系数为零。换句话说,它学会选择具有高预测能力的变量并忽略其余的。弹性网络结合了这两种类型的正则化。当数据稀疏或特征看起来相关时,它很有用。
在每个神经元中:现在简单的版本仍然非常有用。神经网络中最常见的神经元类型是线性回归模型,其次是非线性激活函数,这使得线性回归成为深度学习的基本组成部分。
2
逻辑回归:遵循曲线
曾经有一段时间,逻辑回归仅用于对一件事进行分类:如果你喝了一瓶毒药,你可能会被贴上“活着”或“活着”的标签。 “?时代变了,今天不仅紧急服务为这个问题提供了更好的答案,而且逻辑回归也是深度学习的核心。
毒物控制:
逻辑回归函数返回到1830 年代,比利时统计学家 P.F. Verhulst 发明了它来描述人口动态:随着时间的推移,随着时间的推移,指数增长的初始爆发往往会趋于平坦,从而形成特征逻辑曲线。一个多世纪后,美国统计学家EB Wilson 和他的学生 Jane Worcester 开发了一种逻辑回归来计算某种危险物质的致命性。数据集上的逻辑函数可预测特定结果的发生(例如过早死亡)。最小化数据。
- 中心向右或向左调整,意味着杀死一个普通人需要或多或少的毒。陡坡意味着安全:半山之前大多数人都活了下来;超过一半,“只是再见”(意味着死亡)。平缓的斜坡更加宽容:在曲线的中间下方,一半以上的人可以生存;在曲线的中间下方,一半以上的人可以生存;超过一半的人能够幸存。
- 在一个结果和另一个结果之间设置一个阈值,例如 0.5,曲线就成为分类器。只需输入剂量和型号,您就会知道您是否正在计划举办派对或葬礼。
更多结果:Verhulst 的工作发现了二元结果的概率,忽略了进一步的可能性,例如中毒受害者最终可能会走向来世的哪一边。他的继任者扩展了算法:
- 在 20 世纪 60 年代末,英国统计学家 David Cox 和荷兰统计学家 Henri Theil 独立工作,对具有两种以上可能结果的情况进行了逻辑回归。
- 进一步的工作产生有序逻辑回归,其中结果是有序值。
- 为了处理稀疏或高维数据,逻辑回归可以使用与线性回归相同的正则化技术。
![]()
图表:David Cox
多功能曲线:逻辑函数以相当高的精度描述了各种现象,因此逻辑回归在许多情况下提供了有用的基线预测。在医学上,它估计死亡率和疾病风险。在政治学中,它预测选举的获胜者和失败者。在经济学中,它预测商业前景。更重要的是,它是各种神经网络中神经元的子集(其中非线性是 sigmoid 函数)。
3
梯度下降:一切都在下坡
想象一下黄昏后在山里徒步旅行,发现你看不到下面的任何东西。而且您的手机电池没电了,因此您无法使用 GPS 应用程序找到回家的路。您可以通过梯度下降找到最快的方法。小心不要走下悬崖。
阳光和地毯:梯度下降比通过陡峭地形下降更有利。 1847年,法国数学家奥古斯丁·路易斯·柯西发明了一种估计恒星轨道的算法。六十年后,他的同胞雅克·哈达玛(Jacques Hadamard)独立开发了它来描述薄而柔韧的物体(例如地毯)的变形,从而使膝盖向下行走更容易。然而,在机器学习中,它的常见用途是找到学习算法的损失函数的最低点。
![]()
标题:Augustin-Louis Cauchy
向下爬:经过训练的神经网络提供了一个函数,可以在给定输入的情况下计算所需的输出。训练网络的一种方法是通过迭代计算实际输出与期望输出之间的差异,然后更改网络的参数值以减小差异,来最小化输出中的损失或误差。梯度下降缩小了差异,最小化了计算损失的函数。网络的参数值相当于地面上的一个位置,损失就是实际高度。随着您的深入,您可以提高网络计算接近所需输出的能力。可见性是有限的,因为在典型的监督学习情况下,算法仅取决于网络的参数值和损失函数的梯度或斜率 - 即你在山上的位置和你下面的斜坡。
- 基本方法是向地形下降最陡的方向移动。诀窍是校准你的步幅。迈出的步子太小,需要很长的时间才能取得进展;迈出太大的一步,你就会进入未知的领域,可能是上坡而不是上坡。
- 给定当前位置,算法通过计算损失函数的梯度来估计最快下降的方向。梯度指向上坡,因此算法通过减去一小部分梯度来向相反的方向前进。称为学习率的分数 α 决定了再次测量梯度之前的步长。
- 重复这些步骤,希望你能到达一个山谷。恭喜!
困在山谷中:太糟糕了,你的手机没电了,因为算法可能没有把你推到山底。您可能会陷入由多个山谷(局部最小值)、峰(局部最大值)、鞍点(鞍点)和高原组成的非凸景观中。事实上,图像识别、文本生成和语音识别等任务都是非凸的,并且已经出现了许多梯度下降的变体来处理这种情况。例如,该算法可以具有动态特性,帮助其放大小的起伏,使其更有可能触底。研究人员设计了如此多的变体,似乎有多少个优化器就有多少个局部最小值。幸运的是,局部最小值和全局最小值往往大致相等。
最优优化器:梯度下降是寻找任何函数最小值的明确选择。在可以直接计算精确解的情况下(例如,在具有大量变量的线性回归问题中),它可以估计一个值,通常更快、更便宜。但它在复杂的非线性任务中派上用场。凭借梯度下降和冒险精神,您可能可以在晚餐时间及时出山。
4
神经网络:寻找特征
让我们首先解决这个问题:大脑不是图形处理单元的集合,如果是的话,它会运行比典型的人工神经网络复杂得多的软件。神经网络受到大脑结构的启发:互连的神经元层,每个神经元根据其邻居的状态计算自己的输出。由此产生的活动链形成一个想法,或者识别一个想法。一张猫的照片。
从生物到人工:大脑通过神经元之间的相互作用进行学习的想法可以追溯到1873年,但直到1943年,美国神经科学家Warren McCulloch和Walter Pitts才用简单的数学规则建立了它。生物神经网络模型。 1958年,美国心理学家弗兰克·罗森布拉特(Frank Rosenblatt)开发了传感器,这是一种在签到机上实现的单层视觉网络,旨在为美国海军构建硬件版本。
![]()
插图:Frank Rosenblatt
越大越好:Rosenblatt的发明只能识别单行分类。后来,乌克兰数学家 Alexey Ivakhnenko 和 Valentin Lapa 通过堆叠任意层数的神经元网络克服了这一限制。 1985 年,法国计算机科学家 Yann LeCun、David Parker 和美国心理学家 David Rumelhart 及其同事独立工作,描述了使用反向传播来有效训练此类网络。在新千年的第一个十年,包括 Kumar Chellapilla、Dave Steinkraus 和 Rajat Raina(与吴恩达合作)在内的研究人员继续推动神经网络通过使用图形处理单元,越来越大的神经网络可以从大量数据中学习来自互联网生成的数据。
适合每项任务:神经网络背后的原理很简单:对于每项任务都有一个执行它的函数。神经网络通过组合几个简单的函数来形成可训练的函数,每个函数都由单个神经元执行。神经元的功能由称为“权重”的可调节参数决定。给定输入示例及其所需输出的这些权重和随机值,可以迭代地更改权重,直到可训练函数执行任务。
- 神经元接受各种输入(例如代表像素或单词的数字,或前一层的输出),将它们与权重相乘,对乘积求和,并导出开发人员选择的非线性函数或激活函数的总和。这期间,你应该考虑有线性回归,加上激活函数。
- 训练改变体重。对于每个示例输入,网络计算输出并将其与预期输出进行比较。反向传播通过梯度下降改变权重,以减少实际输出和预期输出之间的差异。如果使用足够(好的)示例重复此过程足够多次,网络就会学会执行该任务。
黑匣子:虽然运气好的话,训练有素的网络可以完成其工作,但您最终会阅读一个通常非常复杂的函数 - 包含数千个变量和嵌套激活函数 - 如此之多以至于很难理解解释网络如何成功完成其使命。此外,训练有素的网络的好坏取决于它所学习的数据。例如,如果数据集是部分的,那么网络的输出也将是部分的。如果它只包含猫的高分辨率图像,则不知道它对低分辨率图像有何反应。
常识:《纽约时报》在报道 Rosenblatt 1958 年发明的传感器时,开启了人工智能炒作之路,其中指出“美国海军想要一种可以行走、说话、看、写的机器,电子设备的原型“尽管当时的传感器并没有满足这一要求,但它催生了许多令人印象深刻的模型:图像的卷积神经网络;用于文本的循环神经网络;它们已经在做一些令人惊奇的事情,例如在围棋上超越人类的表现,以及在诊断 X 射线图像“到达”等实际任务上超越人类的表现。 ,他们还是比较难用常识和逻辑推理来应对。
5
决策树:从根到叶
亚里士多德是个什么样的“野兽”?波菲利是一位生活在三世纪叙利亚的哲学家的后裔,他想出了一个合乎逻辑的方法来回答这个问题。他将亚里士多德提出的“存在的范畴”从一般到具体结合起来,将亚里士多德依次归入各个范畴:亚里士多德的存在是物质的而不是概念的或精神的;亚里士多德的存在是物质的而不是概念的或精神的;他的身体是有生命的而不是无生命的;他的想法是理性的而不是非理性的。因此,它的分类是人性化的。中世纪逻辑教师将这个序列绘制为垂直流程图:早期的决策树。
数字上的差异:快进到 1963 年,当时密歇根大学社会学家 John Sonquist 和经济学家 James Morgan 在对调查受访者进行分组时首次在计算机中实现了决策树。随着自动训练算法的软件的出现,这种类型的工作变得很常见,决策树现在被多个机器学习库使用,包括 scikit-learn 等。该代码由来自斯坦福大学和加州大学伯克利分校的四位统计学家历时 10 年开发而成。迄今为止,从头开始编写决策树已经成为《机器学习 101》的功课。
根在空中:决策树可以做分类或回归。它从根到冠向下生长,将决策层次结构的输入示例分为两个(或更多)。我想到了德国医学家和人类学家约翰·布鲁门巴赫(Johann Blumenbach)的话题:1776 年左右,他首次区分了猴子和猿(人类除外)。此前,猴子和猿类被归为一类。这种分类基于几个标准,例如尾巴的存在、胸部狭窄还是宽阔、动物是直立还是蹲伏以及智力。使用经过训练的决策树来标记此类动物,逐一考虑每个标准,最后将两组动物分开。
- 树从可被视为生物数据库的根节点开始,其中包括所有案例 - 黑猩猩、大猩猩和猩猩,以及卷尾猴、狒狒和狨猴。根提供两个子节点之间关于它们是否表现出特定特征的选择,从而导致两个子节点包含具有和不具有该特征的示例。以此类推,此过程以任意数量的叶节点结束,这些叶节点都包含大部分或全部类别。
- 树要生长,必须找到根。要做出选择,请考虑所有功能及其价值 - 后附件、桶箱等。 - 并选择能够最大化分割纯度的一种。 “最佳纯度”被定义为类别 100% 进入给定子节点而不进入另一个节点的情况。分叉很少会在一次决定后就达到 100% 纯净,而且可能永远不会。随着这个过程的继续,一层又一层的子节点被产生,直到通过考虑更多的特征纯度不会增加太多。此时树已经完全训练完毕。
- 在推理过程中,一个新的例子从上到下遍历决策树,完成每一层不同决策的评估。它获取其所在叶子节点包含的数据标签。
转到前 10 条:如果我们想将决策树扩展到不仅包括猿类并且对猴子进行分类,请输入布鲁门巴赫的结论(后来被查尔斯·达尔文推翻),即人类与猿类的区别在于宽大的骨盆、手和咬紧的牙齿,但是当我们对人类进行分类时会发生什么?澳大利亚计算机科学家 John Ross Quinlan 于 1986 年通过 ID3 使这成为可能,它扩展了决策树以支持非二元结果。 2008年,在IEEE国际数据挖掘会议规划的十大数据挖掘算法名单中,一种名为C4.5的扩展细化算法位居榜首。在创新猖獗的世界里,这就是持久力。
拉回叶子:决策树有一些缺点。他们可以通过添加多个层次结构轻松覆盖数据,以便叶节点仅包含单个实例。更糟糕的是,它们很容易产生蝴蝶效应:改变一个例子,长出的树就会完全不同。
走进森林:美国统计学家 Leo Breiman 和新西兰统计学家 Adele Cutler 将这一特征转化为优势,并于 2001 年开发了随机森林——每个森林都是决策树的集合。最终结果。随机森林及其表兄弟 XGBoost 不太容易出现过度拟合,这有助于使它们成为最流行的机器学习算法之一。这就像亚里士多德、波菲利、布卢门巴赫、达尔文、简·古道尔、戴安·福西和其他 1,000 名动物学家在房间里一起确保你的分类是最好的。
6
K-Means 聚类:群体思维
如果您在聚会上站在其他人附近,很可能你们有一些共同点。这就是利用k-means聚类对数据点进行分组的思想。无论群体是由人类机构还是其他力量组成,该算法都能找到它们。
从爆炸到拨号音:美国物理学家 Stuart Lloyd,贝尔实验室标志性创新工厂和发明原子弹的曼哈顿计划的校友,于 1957 年首次使用 k 均值聚类来分析数字分配信息。信号,但这项工作1982年才发表:
![]()
论文地址:https://cs.nyu.edu/~rowis/csc2515-2006/readings/lloyd57.pdf
同时美国统计学家Edward Forgy 在 1965 年描述了一种类似的方法,这导致了它的替代名称“Lloyd-Forgy 算法”。
寻找中心:考虑将集群分成志同道合的工作组。给定参与者在房间中的位置和要形成的组的数量,k 均值聚类可以将参与者分成大致相等大小的组,每个组围绕一个中心点或质心。
- 在训练过程中,算法最初通过随机选择 k 个人来指定 k 个质心。 (K 必须手动选择,找到最佳值有时非常重要。)然后,它通过将每个人与最近的质心相关联来增长 k 个簇。
- 对于每个集群,它计算分配到该组的所有人员的平均位置,并将平均位置指定为新的质心。任何一个新的质心都不能被一个人占据,但是什么呢?人们倾向于聚集在巧克力和火锅周围。
- 计算出新的质心后,算法将个体重新分配到最近的质心。然后,它计算新的质心,调整集群,依此类推,直到质心(及其周围的组)停止移动。之后,很容易将新成员分配到正确的集群。将它们移动到空间中的位置并寻找最近的质心。
- 注意:通过初始随机质心分配,您最终可能不会与您希望一起出去玩的可爱的以数据为中心的人工智能专家在同一组中。该算法做得很好,但不能保证找到最佳解决方案。
不同的距离:当然,簇状物体之间的距离不必很大。两个向量之间的任何度量都可以。例如,k 均值聚类可以根据服装、职业或其他属性对参加派对的人进行划分,而不是根据物理距离对他们进行分组。在线企业使用它根据客户的偏好或行为对客户进行细分,天文学家可以将相同类型的恒星分组在一起。
数据点的力量:这个想法带来了一些显着的变化:
- K-medoids使用实际数据点作为质心而不是给定集群中的平均位置。中心是与簇中所有点的距离最小的点。这种变化更容易解释,因为质心始终是数据点。
- 模糊C均值聚类使数据点能够不同程度地参与不同的聚类。它用基于距质心距离的聚类度来代替硬聚类分配。
n Dimensional Carnival :尽管如此,原始形式的算法仍然广泛有用 - 特别是因为,作为一种无监督算法,它不需要收集昂贵的标记数据。使用起来也越来越快。例如,包括 scikit-learn 在内的机器学习库受益于 2002 年添加的 kd-tree,它可以非常快速地对高维数据进行分区。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网

发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。