您现在的位置是:首页 > 人工智能人工智能
吴恩达:机器学习的六个核心算法
cc博主2022-06-06【人工智能】472人已围观
编辑 | 陈彩娴
最近,吴恩达在其创办的人工智能周讯《The Batch》上更新了一篇博文,总结了机器学习领域多个基础算法的历史溯源。文章开头,吴恩达回忆他的研究历程中曾有一次抉择:多年前,在一次项目中,选择算法时,他不得不在神经网络与决策树学习算法之间做选择。考虑到计算预算,他最终选择了神经网络,在很长的一段时间内弃用增强决策树。这是一个错误的决定,「幸好我的团队很快修改了我的选择,项目才成功。」吴恩达谈道。他由此感叹,不断学习与更新基础知识是十分重要的。与其他技术领域一样,随着研究人员的增加、研究成果数量的增长,机器学习领域也在不断发展。但有些基础算法与核心思想的贡献是经得起时间考验的:- 算法:线性和逻辑回归、决策树等
- 概念:正则化、优化损失函数、偏差/方差等
线性回归:直的&窄的线性回归是机器学习中的一个关键的统计方法,但它并非不战而胜。它由两位杰出的数学家提出,但200 年过去了,这个问题仍未解决。长期存在的争议不仅证明了该算法具有出色的实用性,还证明了它的本质十分简单。那么线性回归到底是谁的算法呢?1805 年,法国数学家 Adrien-Marie Legendre 发表了将一条线拟合到一组点的方法,同时试图预测彗星的位置(天体导航是当时全球商业中最有价值的科学方向,就像今天的人工智能一样)。图注:Adrien-Marie Legendre 的素描画像四年后,24 岁的德国神童 Carl Friedrich Gauss (高斯)坚称他自 1795 年以来一直在使用它,但认为它太琐碎了,无法写。高斯的主张促使Legendre匿名发表了一份文章,称“一位非常著名的几何学家毫不犹豫地采用了这种方法。”图注:Carl Friedrich Gauss斜率和偏差:当结果与影响它的变量之间的关系遵循直线时,线性回归很有用。例如,汽车的油耗与其重量成线性关系。
- 汽车的油耗 y 与其重量 x 之间的关系取决于直线的斜率 w(油耗随重量上升的幅度)和偏置项 b(零重量时的油耗):y=w*x+b。
- 在训练期间,给定汽车的重量,算法会预测预期的油耗。它比较了预期和实际的油耗。然后,它将平方差最小化,通常通过普通最小二乘技术,磨练 w 和 b 的值。
- 考虑汽车的阻力可以生成更精确的预测。附加变量将线延伸到平面。通过这种方式,线性回归可以容纳任意数量的变量/维度。
逻辑回归:跟随曲线曾经有一段时间,逻辑回归只用于对一件事进行分类:如果你喝了一瓶毒药,你可能会被贴上的标签是“活着”还是“死去”呢?时代变了,今天,不仅呼叫紧急服务为这个问题提供了更好的答案,而且逻辑回归也成为了深度学习的核心。毒物控制:逻辑函数可以追溯到 1830 年代,当时比利时统计学家 P.F. Verhulst 发明它来描述人口动态:随着时间的推移,指数增长的初始爆炸随着它消耗可用资源而趋于平缓,从而产生特征逻辑曲线。一个多世纪过去后,美国统计学家 E. B. Wilson 和他的学生 Jane Worcester 又设计了逻辑回归来计算给定有害物质有多少是致命的。图注:P.F. Verhulst拟合函数:逻辑回归将逻辑函数拟合到数据集,以便预测给定事件(例如,摄入士的宁)发生特定结果(例如,过早死亡)的概率。
- 训练水平调整曲线的中心位置,垂直调整曲线的中间位置,以最大限度地减少函数输出与数据之间的误差。
- 将中心调整到右侧或左侧意味着杀死普通人需要或多或少的毒药。陡峭的坡度意味着确定性:在中途点之前,大多数人幸存下来;超过一半,「就只能说再见了」(死亡的意思)。缓坡更宽容:低于曲线中部,一半以上幸存;再往上,只有不到一半的人会幸存。
- 在一个结果和另一个结果之间设置一个阈值,比如 0.5,曲线就变成了一个分类器。只需在模型中输入剂量,您就会知道您应该计划聚会还是葬礼。
- 在 1960 年代后期,英国统计学家 David Cox 和荷兰统计学家 Henri Theil 独立工作,对具有两种以上可能结果的情况进行了逻辑回归。
- 进一步的工作产生了有序逻辑回归,其中结果是有序值。
- 为了处理稀疏或高维数据,逻辑回归可以利用与线性回归相同的正则化技术。
梯度下降:一切都在下坡想象一下黄昏后在山上徒步旅行,发现脚下什么都看不到。而且您的手机电池没电了,因此您无法使用 GPS 应用程序找到回家的路。您可能会通过梯度下降找到最快的路径。小心不要从悬崖上走。太阳和地毯:梯度下降比通过陡峭的地形下降更有利。1847年,法国数学家Augustin-Louis Cauchy发明了近似恒星轨道的算法。60 年后,他的同胞 Jacques Hadamard 独立开发了它来描述薄而灵活的物体(如地毯)的变形,这可能会使膝盖向下徒步更容易。然而,在机器学习中,它最常见的用途是找到学习算法损失函数的最低点。图注:Augustin-Louis Cauchy向下爬:经过训练的神经网络提供了一个函数,该函数在给定输入的情况下计算所需的输出。训练网络的一种方法是通过迭代计算实际输出与期望输出之间的差异,然后更改网络的参数值以缩小差异,从而将输出中的损失或误差最小化。梯度下降缩小了差异,将计算损失的函数最小化。网络的参数值相当于地形上的一个位置,损失的是当前高度。随着你的下降,你可以提高网络计算接近所需输出的能力。可见性是有限的,因为在典型的监督学习情况下,该算法仅依赖于网络的参数值和损失函数的梯度或斜率——即你在山上的位置和你脚下的斜率。
- 基本方法是向地形下降最陡的方向移动。诀窍是校准你的步幅。步幅太小,就需要很长时间才能取得进展;步幅太大,你就会跳入未知的领域,可能是上坡而不是下坡。
- 给定当前位置,算法通过计算损失函数的梯度来估计最快下降的方向。梯度指向上坡,那么该算法就是通过减去梯度的一小部分来以相反的方向前进。称为学习率的分数 α 决定了再次测量梯度之前的步长。
- 反复做这几个步骤,希望你能到达一个山谷。恭喜!
神经网络:寻找函数让我们先把这个问题弄清楚:大脑不是一个图形处理单元集,如果它是的话,那它运行的软件要比典型的人工神经网络复杂得多。而神经网络的灵感来自大脑的结构:一层层相互连接的神经元,每个神经元根据其相邻状态来计算自己的输出,由此产生的一连串活动形成了一个想法——或识别出一张猫的照片。从生物到人工:大脑通过神经元之间相互作用来学习的想法可以追溯到 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(与吴恩达合作)在内的研究人员通过使用图形处理单元进一步推动了神经网络的发展,这使得越来越大的神经网络能从互联网生成的海量数据中得到学习。适合每项任务:神经网络背后的原理很简单:对于任何任务,都有一个可执行它的函数。一个神经网络通过组合多个简单函数构成可训练函数,每个函数由单个神经元执行。一个神经元的功能由称为「权重」的可调参数决定。给定这些权重和输入示例及其所需输出的随机值,就可以反复更改权重,直到可训练的函数能完成手头的任务。
- 一个神经元可接受各种输入(例如,代表像素或单词的数字,或前一层的输出),将它们与权重相乘,乘积相加,并得出由开发人员选择的非线性函数或激活函数的总和。期间要考虑到它是线性回归、加上一个激活函数。
- 训练修改权重。对于每个示例输入,网络会计算一个输出并将其与预期输出进行比较。反向传播可通过梯度下降来改变权重,以减少实际输出和预期输出间的差异。当有足够多(好的)例子重复这个过程足够多次,网络就能学会执行这个任务。
决策树:从根到叶亚里士多德是一个什么样的「野兽」?这位哲学家的追随者、第三世纪期间生活在叙利亚的 Porphyry 想出了一个合乎逻辑的方法来回答这个问题。他将亚里士多德提出的“存在类别”从一般到具体组合起来,将亚里士多德依次归入到每个分类中:亚里士多德的存在是物质的而不是概念或精神;他的身体是有生命的而不是无生命的;他的思想是理性的而不是非理性的。因此,他的分类是人类。中世纪的逻辑教师将这个序列绘制为垂直流程图:一个早期的决策树。数字差异:快进到 1963 年,密歇根大学社会学家John Sonquist和经济学家James Morgan在将调查的受访者分组时,首次在计算机中实行了决策树。随着自动训练算法软件的出现,这种工作变得很普遍,如今包括 scikit-learn 等在内的各种机器学习库也已经使用决策树。这套代码是由斯坦福大学和加州大学伯克利分校的四位统计学家花费了10 年时间开发的。到今天,从头开始编写决策树已经成为了《机器学习 101》中的一项家庭作业。空中的根:决策树可以执行分类或回归。它向下生长,从根部到树冠,将一个决策层次结构的输入示例分类为两个(或更多)。想到德国医学家和人类学家Johann Blumenbach的课题:大约在 1776 年,他首先将猴子与猿(撇开人类除外)区分开来,在此之前,猴子和猿是被归为一类的。这种分类取决于各种标准,例如是否有尾巴、胸部狭窄或宽阔、是直立还是蹲伏、还有智力的高低。使用经训练的决策树来为这类动物贴上标签,逐一考虑每个标准,最终将这两组动物分开。
- 这棵树从一个可视为包含了所有案例的生物数据库的根节点出发——黑猩猩、大猩猩和红毛猩猩,以及卷尾猴、狒狒和狨猴。根会在两个子节点间提供选择,是否表现出某种特定特征,导致两个子节点包含具有和不具有该特征的示例。以此类推,这个过程中以任意数量的叶节点结束,每个叶节点都包含大部分或全部属于一个类别。
- 为了成长,树必须找到根决策。要做选择,则得考虑所有的特征及其价值——后附肢、桶状胸等——并选择能够最大限度提高分割纯度的那个特征。「最佳纯度」被定义为一个类别示例会 100% 进入一个特定的子节点、而不进入另一个节点。分叉很少在只做了一个决定之后就百分之百纯粹、且很可能永远也达不到。随着这个过程继续进行,产生一个又一个层次的子节点,直至纯度不会因为考虑更多的特征而增加多少。此时,这棵树树已经完全训练好了。
- 在推理时,一个新的示例从上到下经历过决策树,完成每个级别不同决策的评估。它会得到它所在叶节点所包含的数据标签。
K均值聚类:群体思维如果你在聚会上与其他人站得很近,那么你们很可能有一些共同点。这就是使用 k 均值聚类将数据点分组的想法。无论是通过人类机构还是其他力量形成的群体,这个算法都会找到它们。从爆炸到拨号音:美国物理学家 Stuart Lloyd 是贝尔实验室标志性创新工厂和发明原子弹的曼哈顿计划的校友,他于 1957 年首次提出 k-means 聚类,以在数字信号中分配信息,但直到 1982 年才发表这个工作:论文地址:https://cs.nyu.edu/~roweis/csc2515-2006/readings/lloyd57.pdf与此同时,美国统计学家 Edward Forgy 在 1965 年描述了一种类似的方法,导致了它的替代名称为「Lloyd-Forgy 算法」。寻找中心:考虑将聚类分成志同道合的工作组。给定房间中参与者的位置和要形成的组数,k-means 聚类可以将参与者分成大小大致相等的组,每个组都聚集在一个中心点或质心周围。
- 在训练期间,算法最初通过随机选择 k 人来指定 k 个质心。(K 必须手动选择,找到一个最优值有时非常重要。)然后它通过将每个人与最近的质心相关联来增长 k 个集群。
- 对于每个集群,它计算分配到该组的所有人的平均位置,并将该平均位置指定为新的质心。每个新的质心可能都没有被一个人占据,但那又如何呢?人们倾向于聚集在巧克力和火锅周围。
- 计算出新的质心后,算法将个体重新分配到离他们最近的质心。然后它计算新的质心,调整集群,等等,直到质心(以及它们周围的组)不再移动。之后,将新成员分配到正确的集群就很容易。让他们在房间里就位并寻找最近的质心。
- 预先警告:鉴于最初的随机质心分配,你可能最终不会与你希望与之相处的以数据为中心的可爱 AI 专家在同一组中。该算法做得很好,但不能保证找到最佳解决方案。
- K-medoids 使用实际数据点作为质心,而不是给定集群中的平均位置。中心点是可以将到集群中所有点的距离最小化的点。这种变化更容易解释,因为质心始终是数据点。
- Fuzzy C-Means Clustering 使数据点能够不同程度地参与多个集群。它根据与质心的距离,用集群的度来代替硬簇分配。
https://read.deeplearning.ai/the-batch/issue-146/
雷峰网(公众号:雷峰网)
雷峰网版权文章,未经授权禁止转载。详情见转载须知。
Tags:
相关文章
- 还有两天就高考!B 站 UP 主用 AI 预测出2022年高考作文题,竟然是这些......
- 2022高考热搜专业出炉!人工智能位列第一丨文末赠书
- Meta 首席运营官 Sheryl Sandberg 宣布辞职
- 利用宇宙的能力来处理数据!「物理网络」远胜深度神经网络
- 高考倒计时2天!百度数字人“考生”度晓晓将挑战高考作文
- 首发|融合视觉传感芯片公司锐思智芯完成近2亿元A轮融资
- 长期免费白嫖ssr机场网址,v2ray节点购买更新端午节福利
- 微信发布青少年模式数据报告,科普知识成青少年最爱看的内容
- 香港CN2精品 2核2G 50-100M带宽流量计费赠送50G流量29元/月
- 除了顶尖性能,高通还让旗舰手机成了六边形战士