吴恩达的博文:6种基本机器学习算法
吴恩达更新的关于他创立的人工智能周讯《The Batch》的博文。文章开头,吴恩达回忆了自己研究过程中的一个决定:在多年前的一个项目中,在选择算法时,他必须在神经网络和决策树学习算法之间做出选择。考虑到计算预算,他最终选择了神经网络,并长期放弃了boosted决策树。 这是一个错误的决定。吴恩达说:“幸运的是,我的团队很快调整了我的选择,项目取得了成功。” 他感叹不断学习和更新基础知识非常重要。与其他技术领域一样,随着更多研究人员和更多研究成果的增长,机器学习领域也在不断发展。但一些基本算法和基本思想的贡献是经得起时间考验的:
说明:Adrien-Marie Legendre 的素描四年后,24 岁的德国神童卡尔·弗里德里希·高斯从 1795 年起就坚持使用它,但认为它太微不足道了。写不了。高斯的说法促使勒让德匿名发表文章,指出“一位非常著名的几何学家毫不犹豫地采用了这种方法”。
插图:Carl Friedrich Gauss斜率和方差:当结果与影响结果的变量之间的关系呈直线时,线性回归很有用。例如,汽车的油耗与其重量呈线性关系。
图表:P.F. Verhulst拟合函数:逻辑回归将逻辑函数拟合到数据集,以预测给定事件(例如摄入马钱子碱)的特定结果(例如过早死亡)的发生概率。
插图:David Cox多功能曲线:Logistic 函数可以相当准确地描述各种现象,因此 Logistic 回归在许多情况下提供了有用的基本预测。在医学上,它估计死亡率和疾病风险。在政治学中,它预测选举的赢家和输家。在经济学中,它预测商业前景。更重要的是,它驱动各种神经网络中的神经元子集(其中非线性是 sigmoid 函数)。
标题:Augustin-Louis Cauchy向下攀登:经过训练的神经网络提供了一个函数,可以根据输入计算所需的输出。训练网络的一种方法是通过迭代计算实际输出和期望输出之间的差异,然后更改网络参数的值以减小差异,来最小化输出中的损失或误差。梯度下降缩小了差异并最小化了计算损失的函数。 网络参数值相当于地形位置,loss为当前高度。随着您的深入,您可以提高网络计算接近所需输出的能力。可见性是有限的,因为在典型的监督学习情况下,算法仅依赖于网络参数值和损失函数的梯度或斜率——即你在山上的位置以及你下面的斜坡。
越大越好:Rosenblatt的发明只能识别单行分类。后来,乌克兰数学家 Alexey Ivakhnenko 和 Valentin Lapa 通过堆叠任意层数的神经网络克服了这一限制。 1985 年,法国计算机科学家 Yann LeCun、David Parker 和美国心理学家 David Rumelhart 及其同事独立工作,描述了使用反向传播来有效训练此类网络。 在新千年的第一个十年,包括 Kumar Chellapilla、Dave Steinkraus 和 Rajat Raina(曾与吴恩达合作)等研究人员通过使用图形处理单元进一步改进了神经网络,越来越大的神经网络可以从大量数据中学习这些图形处理单元。互联网产生的数据。 适合每项任务:神经网络的原理很简单:对于每项任务都有一个执行它的函数。神经网络通过组合几个简单的函数来形成可训练的函数,每个函数都由单个神经元执行。神经元的功能由称为“权重”的可调节参数决定。给定输入示例及其所需输出的这些权重和随机值,可以迭代地更改权重,直到可训练函数执行任务。
论文地址:https://cs.nyu.edu/~rowis/csc2515-2006/readings/lloyd57.pdf同时,美国统计学家 Edward Forgy 在1965 年,这导致了它的替代名称“Lloyd-Forgy 算法”。 寻找中心:考虑将集群分成志同道合的工作组。给定参与者在房间中的位置和要形成的组的数量,k 均值聚类可以将参与者分成大小大致相等的组,每个组围绕一个中心点或质心聚集。
- 算法:线性回归、逻辑回归、决策树等
- 概念:正则化、优化损失函数、偏差/方差等
线性回归:直而窄
线性回归是机器学习中的关键统计方法,但它不会不战而胜。它是由两位杰出的数学家提出的,但200年后这个问题仍然没有得到解决。这场长期的争论不仅证明了该算法的显着实用性,而且还证明了其基本的简单性。 那么线性回归是谁的算法呢? 1805年,法国数学家Adrien-Marie Legendre发表了一种将直线拟合到一组点的方法,同时试图预测彗星的位置(天体导航是当时全球贸易中最有价值的科学方向) ,与今天的人工智能相同)。- 汽车 y 的油耗与其重量 x 之间的关系取决于直线 w 的斜率(油耗随重量增加多少)和偏差 b(零重量时的油耗): y=w* x+b。
- 在训练过程中,算法会预测相对于汽车重量的预期油耗。比较预期油耗和实际油耗。然后,通常通过普通最小二乘技术,通过细化 w 和 b 的值来最小化平方差。
- 考虑汽车阻力会产生更准确的预测。其他变量将线延伸到平面。这样,线性回归可以容纳任意数量的变量/维度。
逻辑回归:遵循曲线
曾经有一段时间,逻辑回归只用于对一件事进行分类:如果你喝了一瓶毒药,你可能会被贴上“活着”或“活着”的标签,那么“死”呢? “?时代已经变了,今天,拨打 911 不仅可以为这个问题提供更好的答案,而且逻辑回归也是深度学习的核心。毒物控制:逻辑函数可以追溯到 1830 年代,当时比利时统计学家 P.F. Verhulst 发明它是为了描述人口动态:随着时间的推移,由于消耗可用资源,最初出现指数级增长。是微妙的,产生特征对数曲线。一个多世纪后,美国统计学家 E. B. Wilson 和他的学生 Jane Worcester 设计了逻辑回归来计算给定危险物质的致命量。- 训练调整曲线水平中心位置和垂直方向中心位置,以最小化函数输出与数据之间的误差。
- 将中心向右或向左调整,意味着需要或多或少的毒才能杀死普通人。陡峭的斜坡意味着确定性:在一半之前,大多数人都会活下来;一半之后“就说再见”(意思是死亡)。平缓的斜坡比较宽容:拱门中心以下,一半以上幸存下来;在此之上只有不到一半的人存活下来。
- 在一个结果和另一个结果之间设置一个阈值,例如 0.5,曲线就成为分类器。只需将剂量输入模型,您就会知道是否计划庆祝活动或葬礼。
- 在 20 世纪 60 年代末,英国统计学家 David Cox 和荷兰统计学家 Henri Theil 独立工作,对具有两种以上可能结果的情况进行了逻辑回归。
- 进一步的工作产生了有序逻辑回归,其中结果是有序值。
- 为了处理稀疏或高维数据,逻辑回归可以使用与线性回归相同的正则化技术。
梯度下降:一切都在下坡
想象一下,天黑后您在山中行走,并意识到您看不到下面的任何东西。而且您的手机电池没电了,因此您无法使用 GPS 应用程序找到回家的路。您可以使用梯度下降找到最快的路径。小心不要掉下悬崖。 阳光和地毯:梯度下降比陡峭地形下降更有利。 1847年,法国数学家奥古斯丁-路易斯·柯西发明了一种近似恒星轨道的算法。六十年后,他的同胞雅克·哈达玛(Jacques Hadamard)独立开发了它来描述薄而柔韧的物体的变形,例如可以方便齐膝远足的地毯。然而,在机器学习中,它最常见的用途是找到学习算法损失函数的最低点。- 基本方法是向地形下降最陡的方向移动。诀窍在于步长校准。迈出的一步太小,需要很长时间才能实现;迈得太大,你就会陷入未知的领域,也许是在上坡而不是下坡。
- 给定当前位置,算法通过计算损失函数的梯度来估计最快下降的方向。梯度指向上坡,因此算法通过减去一小部分梯度来向相反的方向前进。称为学习率的 α 分数决定了下一次梯度测量之前的步长。
- 重复这些步骤,希望能到达山谷。恭喜!
神经网络:寻找特征
首先,让我们解决这个问题:大脑不是图形处理单元的集合,如果是的话,它会运行比典型人工智能复杂得多的软件神经网络。 。神经网络受到大脑结构的启发:互连的神经元层,每个神经元根据其邻居的状态计算自己的输出。由此产生的一系列活动形成了思想——或者识别了思想。一只猫的图片。 从生物到人工:大脑通过神经元之间的相互作用进行学习的想法可以追溯到1873年,但直到1943年,美国神经科学家Warren McCulloch和Walter Pitts才使用简单的数学规则建立了生物神经网络的模型。 1958年,美国心理学家弗兰克·罗森布拉特(Frank Rosenblatt)开发了传感器,这是一种在清关机器上实现的单层视觉网络,目标是为美国海军创建硬件版本。- 神经元获取各种输入(例如代表像素或单词的数字或前一层的输出),将它们与权重相乘,对乘积求和,并导出开发人员选择的非线性函数或激活函数之和。在此期间,您应该认为它是线性回归和激活函数。
- 训练改变体重。对于每个输入示例,网络计算输出并将其与预期输出进行比较。反向传播通过梯度下降改变权重,以减少实际输出和预期输出之间的差异。当这个过程通过足够的(好的)例子重复足够多的次数时,网络就会学会完成任务。
决策树:从根到叶
亚里士多德是什么样的“动物”?波菲利是一位生活在三世纪叙利亚的哲学家的追随者,他想出了一个合乎逻辑的方法来回答这个问题。 他将亚里士多德提出的“存在范畴”从一般到特殊结合起来,逐渐将亚里士多德归入各个分类:亚里士多德的存在是物质的,而不是概念或精神;亚里士多德的存在是物质的,而不是概念或精神;他的身体是有生命的而不是无生命的;他的想法是理性的而不是非理性的。因此,它的分类是人性化的。中世纪的逻辑教师将这个序列绘制为垂直流程图:早期的决策树。数字差异:快进到 1963 年,当时密歇根大学的社会学家 John Sonquist 和经济学家 James Morgan 首次在计算机中应用决策树来对调查受访者进行分组。随着自动训练算法的软件的出现,这种工作变得很常见,决策树现在使用各种机器学习库,包括 scikit-learn 等。 该代码由斯坦福大学和加州大学伯克利分校的四位统计学家历时十多年开发而成。时至今日,从头开始编写决策树已经成为《机器学习 101》的家庭作业。 根在天空:决策树可以执行分类或回归。它向下生长,从根到冠,并将决策层次结构的输入示例分为两个(或更多)。我想到了德国医学家和人类学家约翰·布鲁门巴赫(Johann Blumenbach)的话题:大约在 1776 年,他首次区分了类人猿和类人猿(更不用说人类了)。在此之前,猴子和猿被归为一类。 这个分类取决于各种标准,例如是否有尾巴,胸部是窄还是宽,是直立还是蹲着,以及智力水平。使用经过训练的决策树来识别此类动物,逐一考虑每个标准,最后将两组动物分开。- 该树从可被视为生物数据库的根节点开始,该数据库包含所有案例 - 黑猩猩、大猩猩和猩猩,以及卷尾猴、狒狒和狨猴。根提供两个子节点之间关于它们是否表现出特定特征的选择,从而导致两个子节点包含具有和不具有该特征的示例。类似地,这个过程最终会产生任意数量的叶节点,每个叶节点都包含大部分或全部类别。
- 树要生长,必须找到根。选择时,请考虑所有特征及其价值 - 后附肢、桶状胸部等 - 并选择能够最大限度提高分割清晰度的特征。 “最佳纯度”被定义为类别的实例 100% 进入特定子节点而不是另一个节点。在做出一个决定后,叉子很少能 100% 干净,而且可能永远不会。随着这个过程的继续,子节点会产生一个又一个级别,直到通过考虑更多特征而大大提高纯度。此时树已完全训练完毕。
- 在推理过程中,一个新的例子从上到下遍历决策树,完成每个级别的各种决策的评估。获取所在叶子节点包含的数据标签。
K 均值聚类:群体思维
如果您在聚会上站在其他人附近,很可能你们有一些共同点。这就是利用k-means聚类对数据点进行分组的思想。该算法可以找到它们,无论它们是由人类活动还是其他力量创建的群体。从爆炸到铃声:美国物理学家斯图尔特·劳埃德 (Stuart Lloyd) 毕业于标志性创新工厂贝尔实验室和发明原子弹的曼哈顿计划,他于 1957 年首次提出 k 均值聚类来分配数字信号中的信息,但他做到了1982 年才发表的工作:- 在训练过程中,算法首先通过随机选择 k 个人来确定 k 个质心。 (K 必须手动选择,找到最佳值有时非常重要。)然后,它通过将每个人与最近的质心相关联来增长 k 个簇。
- 对于每个集群,它计算该组中所有人员的平均位置,并将该平均位置指定为新的质心。每一个新的重心不一定都被一个人占据,但那又怎样?人们倾向于聚集在巧克力和火锅周围。
- 计算出新的重心后,算法会将个体重新分配到最近的重心。然后,它计算新的质心,调整集群,依此类推,直到质心(及其周围的组)不再移动。之后,将新成员分配到正确的集群就很容易了。将它们放在房间中的某个位置并找到最近的重心。
- 预先警告:由于重心最初是随机的,您最终可能不会与您想见到的以数据为中心的人工智能专家在同一组中。该算法做得很好,但不能保证找到最佳解决方案。
- K-medoids使用实际数据点作为质心而不是给定集群中的平均位置。中心点是与簇中所有点的距离最小的点。这种变化更容易解释,因为质心始终是一个数据点。
- 模糊 C 均值聚类允许数据点不同程度地参与多个聚类。它用基于质心距离的聚类度取代了硬聚类分配。
版权声明
本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。
code前端网