Code前端首页关于Code前端联系我们

吴恩达的博文:6种基本机器学习算法

terry 2年前 (2023-09-27) 阅读数 71 #数据结构与算法
吴恩达更新的关于他创立的人工智能周讯《The Batch》的博文。文章开头,吴恩达回忆了自己研究过程中的一个决定:在多年前的一个项目中,在选择算法时,他必须在神经网络和决策树学习算法之间做出选择。考虑到计算预算,他最终选择了神经网络,并长期放弃了boosted决策树。 这是一个错误的决定。吴恩达说:“幸运的是,我的团队很快调整了我的选择,项目取得了成功。” 他感叹不断学习和更新基础知识非常重要。与其他技术领域一样,随着更多研究人员和更多研究成果的增长,机器学习领域也在不断发展。但一些基本算法和基本思想的贡献是经得起时间考验的:
  • 算法:线性回归、逻辑回归、决策树等
  • 概念:正则化、优化损失函数、偏差/方差等
V 根据吴恩达的说法,这些算法和概念是许多机器学习模型背后的主要思想,包括房价预测器、文本图像生成器(如 DALL·E)等算法,并提供了更详细的解释。 这六种算法分别是:线性回归、逻辑回归、梯度下降、神经网络、决策树和k-means聚类算法。 吴恩达博文:机器学习的6个核心算法

线性回归:直而窄

线性回归是机器学习中的关键统计方法,但它不会不战而胜。它是由两位杰出的数学家提出的,但200年后这个问题仍然没有得到解决。这场长期的争论不仅证明了该算法的显着实用性,而且还证明了其基本的简单性。 那么线性回归是谁的算法呢? 1805年,法国数学家Adrien-Marie Legendre发表了一种将直线拟合到一组点的方法,同时试图预测彗星的位置(天体导航是当时全球贸易中最有价值的科学方向) ,与今天的人工智能相同)。 吴恩达博文:机器学习的6个核心算法说明:Adrien-Marie Legendre 的素描四年后,24 岁的德国神童卡尔·弗里德里希·高斯从 1795 年起就坚持使用它,但认为它太微不足道了。写不了。高斯的说法促使勒让德匿名发表文章,指出“一位非常著名的几何学家毫不犹豫地采用了这种方法”。 吴恩达博文:机器学习的6个核心算法插图:Carl Friedrich Gauss斜率和方差:当结果与影响结果的变量之间的关系呈直线时,线性回归很有用。例如,汽车的油耗与其重量呈线性关系。
  • 汽车 y 的油耗与其重量 x 之间的关系取决于直线 w 的斜率(油耗随重量增加多少)和偏差 b(零重量时的油耗): y=w* x+b。
  • 在训练过程中,算法会预测相对于汽车重量的预期油耗。比较预期油耗和实际油耗。然后,通常通过普通最小二乘技术,通过细化 w 和 b 的值来最小化平方差。
  • 考虑汽车阻力会产生更准确的预测。其他变量将线延伸到平面。这样,线性回归可以容纳任意数量的变量/维度。
普及的两个步骤:该算法立即帮助航海家追踪星星,并帮助后来的生物学家(特别是查尔斯·达尔文的表弟弗朗西斯·高尔顿)识别动植物的遗传特征。这两项进展开启了线性回归的广泛潜力。 1922 年,英国统计学家罗纳德·费舍尔 (Ronald Fisher) 和卡尔·皮尔逊 (Karl Pearson) 展示了线性回归如何适应相关性和分布的一般统计框架,从而使其在所有科学中都有用。近一个世纪后,计算机的出现提供了更大范围的数据和计算能力。 如何处理模糊性:当然,数据永远不会被完美测量,并且某些变量比其他变量更重要。这些生活事实激发了更复杂的变化。例如,具有正则化的线性回归(也称为岭回归)鼓励线性回归模型不要严重依赖任何变量,或者更均匀地依赖最重要的变量。 如果为了简单起见,不同形式的正则化(L1 而不是 L2)会产生套索(压缩估计),鼓励尽可能多的系数为零。换句话说,它学会选择具有高预测能力的变量并忽略其余的。弹性网络结合了这两种类型的正则化。当数据稀疏或元素似乎相关时,这非常有用。 在每个神经元中:现在简单的版本仍然非常有用。神经网络中最常见的神经元类型是线性回归模型,其次是非线性激活函数,使得线性回归成为深度学习的核心组成部分。

逻辑回归:遵循曲线

曾经有一段时间,逻辑回归只用于对一件事进行分类:如果你喝了一瓶毒药,你可能会被贴上“活着”或“活着”的标签,那么“死”呢? “?时代已经变了,今天,拨打 911 不仅可以为这个问题提供更好的答案,而且逻辑回归也是深度学习的核心。毒物控制:逻辑函数可以追溯到 1830 年代,当时比利时统计学家 P.F. Verhulst 发明它是为了描述人口动态:随着时间的推移,由于消耗可用资源,最初出现指数级增长。是微妙的,产生特征对数曲线。一个多世纪后,美国统计学家 E. B. Wilson 和他的学生 Jane Worcester 设计了逻辑回归来计算给定危险物质的致命量。 吴恩达博文:机器学习的6个核心算法图表:P.F. Verhulst拟合函数:逻辑回归将逻辑函数拟合到数据集,以预测给定事件(例如摄入马钱子碱)的特定结果(例如过早死亡)的发生概率。
  • 训练调整曲线水平中心位置和垂直方向中心位置,以最小化函数输出与数据之间的误差。
  • 将中心向右或向左调整,意味着需要或多或少的毒才能杀死普通人。陡峭的斜坡意味着确定性:在一半之前,大多数人都会活下来;一半之后“就说再见”(意思是死亡)。平缓的斜坡比较宽容:拱门中心以下,一半以上幸存下来;在此之上只有不到一半的人存活下来。
  • 在一个结果和另一个结果之间设置一个阈值,例如 0.5,曲线就成为分类器。只需将剂量输入模型,您就会知道是否计划庆祝活动或葬礼。
其他结果:Verhulst 的工作发现了二元结果的概率,忽略了其他可能性,例如中毒受害者最终可能会走向来世的哪一边。他的继任者扩展了该算法:
  • 在 20 世纪 60 年代末,英国统计学家 David Cox 和荷兰统计学家 Henri Theil 独立工作,对具有两种以上可能结果的情况进行了逻辑回归。
  • 进一步的工作产生了有序逻辑回归,其中结果是有序值。
  • 为了处理稀疏或高维数据,逻辑回归可以使用与线性回归相同的正则化技术。
吴恩达博文:机器学习的6个核心算法插图:David Cox多功能曲线:Logistic 函数可以相当准确地描述各种现象,因此 Logistic 回归在许多情况下提供了有用的基本预测。在医学上,它估计死亡率和疾病风险。在政治学中,它预测选举的赢家和输家。在经济学中,它预测商业前景。更重要的是,它驱动各种神经网络中的神经元子集(其中非线性是 sigmoid 函数)。

梯度下降:一切都在下坡

想象一下,天黑后您在山中行走,并意识到您看不到下面的任何东西。而且您的手机电池没电了,因此您无法使用 GPS 应用程序找到回家的路。您可以使用梯度下降找到最快的路径。小心不要掉下悬崖。 阳光和地毯:梯度下降比陡峭地形下降更有利。 1847年,法国数学家奥古斯丁-路易斯·柯西发明了一种近似恒星轨道的算法。六十年后,他的同胞雅克·哈达玛(Jacques Hadamard)独立开发了它来描述薄而柔韧的物体的变形,例如可以方便齐膝远足的地毯。然而,在机器学习中,它最常见的用途是找到学习算法损失函数的最低点。 吴恩达博文:机器学习的6个核心算法标题:Augustin-Louis Cauchy向下攀登:经过训练的神经网络提供了一个函数,可以根据输入计算所需的输出。训练网络的一种方法是通过迭代计算实际输出和期望输出之间的差异,然后更改网络参数的值以减小差异,来最小化输出中的损失或误差。梯度下降缩小了差异并最小化了计算损失的函数。 网络参数值相当于地形位置,loss为当前高度。随着您的深入,您可以提高网络计算接近所需输出的能力。可见性是有限的,因为在典型的监督学习情况下,算法仅依赖于网络参数值和损失函数的梯度或斜率——即你在山上的位置以及你下面的斜坡。
  • 基本方法是向地形下降最陡的方向移动。诀窍在于步长校准。迈出的一步太小,需要很长时间才能实现;迈得太大,你就会陷入未知的领域,也许是在上坡而不是下坡。
  • 给定当前位置,算法通过计算损失函数的梯度来估计最快下降的方向。梯度指向上坡,因此算法通过减去一小部分梯度来向相反的方向前进。称为学习率的 α 分数决定了下一次梯度测量之前的步长。
  • 重复这些步骤,希望能到达山谷。恭喜!
陷入山谷:太糟糕了,你的手机电池没电了,因为算法可能没有把你推到山底。您可能会陷入由多个山谷(局部最小值)、峰(局部最大值)、鞍点(鞍点)和高原组成的非凸景观。事实上,图像识别、文本生成和语音识别等任务都是非凸的,并且出现了许多梯度下降的变体来处理这种情况。 例如,算法可能有动力帮助它放大小的起伏,使其更有可能触底。研究人员提出了如此多的变体,以至于优化器似乎与局部最小值一样多。幸运的是,局部最小值和全局最小值往往大致相同。 最佳优化器:梯度下降是寻找任何函数最小值的明显选择。在可以直接计算精确解的情况下(例如,在具有大量变量的线性回归问题中),它可以近似值,通常更快、更便宜。但它在复杂的非线性任务中派上用场。凭借斜坡和冒险精神,您或许可以在晚餐时间及时出山。

神经网络:寻找特征

首先,让我们解决这个问题:大脑不是图形处理单元的集合,如果是的话,它会运行比典型人工智能复杂得多的软件神经网络。 。神经网络受到大脑结构的启发:互连的神经元层,每个神经元根据其邻居的状态计算自己的输出。由此产生的一系列活动形成了思想——或者识别了思想。一只猫的图片。 从生物到人工:大脑通过神经元之间的相互作用进行学习的想法可以追溯到1873年,但直到1943年,美国神经科学家Warren McCulloch和Walter Pitts才使用简单的数学规则建立了生物神经网络的模型。 1958年,美国心理学家弗兰克·罗森布拉特(Frank Rosenblatt)开发了传感器,这是一种在清关机器上实现的单层视觉网络,目标是为美国海军创建硬件版本。 吴恩达博文:机器学习的6个核心算法越大越好:Rosenblatt的发明只能识别单行分类。后来,乌克兰数学家 Alexey Ivakhnenko 和 Valentin Lapa 通过堆叠任意层数的神经网络克服了这一限制。 1985 年,法国计算机科学家 Yann LeCun、David Parker 和美国心理学家 David Rumelhart 及其同事独立工作,描述了使用反向传播来有效训练此类网络。 在新千年的第一个十年,包括 Kumar Chellapilla、Dave Steinkraus 和 Rajat Raina(曾与吴恩达合作)等研究人员通过使用图形处理单元进一步改进了神经网络,越来越大的神经网络可以从大量数据中学习这些图形处理单元。互联网产生的数据。 适合每项任务:神经网络的原理很简单:对于每项任务都有一个执行它的函数。神经网络通过组合几个简单的函数来形成可训练的函数,每个函数都由单个神经元执行。神经元的功能由称为“权重”的可调节参数决定。给定输入示例及其所需输出的这些权重和随机值,可以迭代地更改权重,直到可训练函数执行任务。
  • 神经元获取各种输入(例如代表像素或单词的数字或前一层的输出),将它们与权重相乘,对乘积求和,并导出开发人员选择的非线性函数或激活函数之和。在此期间,您应该认为它是线性回归和激活函数。
  • 训练改变体重。对于每个输入示例,网络计算输出并将其与预期输出进行比较。反向传播通过梯度下降改变权重,以减少实际输出和预期输出之间的差异。当这个过程通过足够的(好的)例子重复足够多的次数时,网络就会学会完成任务。
黑匣子:即使一个训练有素的网络只要运气好就能完成它的工作,你最终会读到一个往往非常复杂的函数——有数千个变量和嵌套的激活函数——到它也非常困难解释该网络如何成功完成其使命。 此外,训练有素的网络的好坏取决于它所学习的数据。例如,如果数据集有偏差,则网络的输出也会有偏差。如果它只包含猫的高分辨率图像,则不知道它会对低分辨率图像有何反应。 众所周知:当我们报道 Rosenblatt 1958 年的传感器发明《纽约时报》为人工智能炒作铺平了道路时,报告指出“美国海军想要一种能够行走、说话、看、写的机器,以及电子计算机的原型虽然当时的传感器不能满足这一要求,但它催生了许多令人印象深刻的模型:图像的卷积神经网络;循环神经网络;以及图像、文本、语音、视频、蛋白质结构等的转换器。他们已经在做一些令人惊奇的事情,例如在围棋方面超越人类水平,在诊断 X 射线等实际任务中接近人类水平。然而,它们在常识和逻辑推理方面仍然比较困难。

决策树:从根到叶

亚里士多德是什么样的“动物”?波菲利是一位生活在三世纪叙利亚的哲学家的追随者,他想出了一个合乎逻辑的方法来回答这个问题。 他将亚里士多德提出的“存在范畴”从一般到特殊结合起来,逐渐将亚里士多德归入各个分类:亚里士多德的存在是物质的,而不是概念或精神;亚里士多德的存在是物质的,而不是概念或精神;他的身体是有生命的而不是无生命的;他的想法是理性的而不是非理性的。因此,它的分类是人性化的。中世纪的逻辑教师将这个序列绘制为垂直流程图:早期的决策树。数字差异:快进到 1963 年,当时密歇根大学的社会学家 John Sonquist 和经济学家 James Morgan 首次在计算机中应用决策树来对调查受访者进行分组。随着自动训练算法的软件的出现,这种工作变得很常见,决策树现在使用各种机器学习库,包括 scikit-learn 等。 该代码由斯坦福大学和加州大学伯克利分校的四位统计学家历时十多年开发而成。时至今日,从头开始编写决策树已经成为《机器学习 101》的家庭作业。 根在天空:决策树可以执行分类或回归。它向下生长,从根到冠,并将决策层次结构的输入示例分为两个(或更多)。我想到了德国医学家和人类学家约翰·布鲁门巴赫(Johann Blumenbach)的话题:大约在 1776 年,他首次区分了类人猿和类人猿(更不用说人类了)。在此之前,猴子和猿被归为一类。 这个分类取决于各种标准,例如是否有尾巴,胸部是窄还是宽,是直立还是蹲着,以及智力水平。使用经过训练的决策树来识别此类动物,逐一考虑每个标准,最后将两组动物分开。
  • 该树从可被视为生物数据库的根节点开始,该数据库包含所有案例 - 黑猩猩、大猩猩和猩猩,以及卷尾猴、狒狒和狨猴。根提供两个子节点之间关于它们是否表现出特定特征的选择,从而导致两个子节点包含具有和不具有该特征的示例。类似地,这个过程最终会产生任意数量的叶节点,每个叶节点都包含大部分或全部类别。
  • 树要生长,必须找到根。选择时,请考虑所有特征及其价值 - 后附肢、桶状胸部等 - 并选择能够最大限度提高分割清晰度的特征。 “最佳纯度”被定义为类别的实例 100% 进入特定子节点而不是另一个节点。在做出一个决定后,叉子很少能 100% 干净,而且可能永远不会。随着这个过程的继续,子节点会产生一个又一个级别,直到通过考虑更多特征而大大提高纯度。此时树已完全训练完毕。
  • 在推理过程中,一个新的例子从上到下遍历决策树,完成每个级别的各种决策的评估。获取所在叶子节点包含的数据标签。
进入前 10 名:考虑到布鲁门巴赫的结论(后来被查尔斯·达尔文推翻),即人类与猿类的不同之处在于拥有宽阔的骨盆、手和咬紧的牙齿,如果我们想要扩展决策树,不仅仅是对猿类和猴子进行分类,但当我们对人进行分类时会发生什么? 澳大利亚计算机科学家 John Ross Quinlan 在 1986 年通过 ID3 使这成为可能,它扩展了决策树以支持非二进制结果。 2008年,一种名为C4.5的扩展细化算法在IEEE国际数据挖掘会议的十大数据挖掘算法列表中名列第一。在创新猖獗的世界里,它是一股持续的力量。 收集叶子:决策树有一些缺陷。他们可以通过添加多个层次结构轻松地覆盖数据,以便叶节点仅包含一个实例。更糟糕的是,它们很容易产生蝴蝶效应:改变一个例子,长出的树就会大不相同。 走进森林:美国统计学家 Leo Breiman 和新西兰统计学家 Adele Cutler 将这一特性转化为优势,并于 2001 年开发了随机森林(random Forest)——决策树的集合,每个决策树处理不同的、重叠的示例选择和对最终结果进行投票。 随机森林及其相对的 XGBoost 不太容易过度拟合,使它们成为最流行的机器学习算法之一。这就像亚里士多德、波菲利、布卢门巴赫、达尔文、简·古道尔、戴安·福西和其他 1,000 名动物学家聚集在一个房间里,以确保您的分类是最好的。

K 均值聚类:群体思维

如果您在聚会上站在其他人附近,很可能你们有一些共同点。这就是利用k-means聚类对数据点进行分组的思想。该算法可以找到它们,无论它们是由人类活动还是其他力量创建的群体。从爆炸到铃声:美国物理学家斯图尔特·劳埃德 (Stuart Lloyd) 毕业于标志性创新工厂贝尔实验室和发明原子弹的曼哈顿计划,他于 1957 年首次提出 k 均值聚类来分配数字信号中的信息,但他做到了1982 年才发表的工作:吴恩达博文:机器学习的6个核心算法 论文地址: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 Dimension Orgy:尽管如此,原始形式的算法仍然广泛有用 - 特别是因为,作为一种无监督算法,它不需要收集昂贵的标记数据。使用起来也越来越快。例如,包括 scikit-learn 在内的机器学习库受益于 2002 年添加的 kd-tree,它可以非常快速地对高维数据进行分区。

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

热门