当前位置: 首页 > 科技观察

在机器学习的工具箱中,有六种重要的算法

时间:2023-03-14 22:57:51 科技观察

1。线性回归法国数学家勒让德(Adrien-MarieLegendre)一直痴迷于预测彗星的未来位置。位置,他将创建一种方法来计算其轨迹。尝试了几种方法后,终于有了进展。勒让德从猜测彗星未来的位置开始,记录数据,分析,最后用数据验证自己的猜测,减少误差平方和。这是线性回归的种子。普及的两个步骤:该算法立即帮助航海家追踪星星,后来的生物学家(尤其是查尔斯·达尔文的表弟弗朗西斯·高尔顿)确定了植物和动物的遗传特征。这两个深刻的发展释放了线性回归的广泛潜力。1922年,英国统计学家RonaldFisher和KarlPearson展示了线性回归如何适用于相关性和分布的一般统计框架,使其在所有科学中都有用。而且,将近一个世纪后,计算机的出现提供了数据和处理能力,可以更大程度地利用它。处理歧义:当然,数据永远不会被完美地衡量,有些变量比其他变量更重要。这些生活事实激发了更复杂的变异。例如,带正则化的线性回归(也称为“岭回归”)鼓励线性回归模型不要过多地依赖任何一个变量,或者更确切地说,均匀地依赖最重要的变量。如果为了简单起见,另一种形式的正则化(L1而不是L2)产生套索(压缩估计),鼓励尽可能多的系数为零。换句话说,它学会选择具有高预测能力的变量并忽略其余变量。弹性网结合了两种类型的正则化。当数据稀疏或特征似乎相关时,它很有用。在每个神经元中:现在,简单版本仍然非常有用。神经网络中最常见的神经元类型是线性回归模型,其次是非线性激活函数,这使得线性回归成为深度学习的基础部分。2.LogisticRegression曾几何时,LogisticRegression只用于分类一件事:如果你喝了一瓶毒药,你可能被标记为“活着”还是“死了”?现在,不仅呼叫紧急服务可以更好地回答这个问题,而且逻辑回归是深度学习的核心。这个函数可以追溯到1830年代,当时比利时统计学家P.F.Verhulst发明它是为了描述人口动态:随着时间的推移,最初的指数增长爆炸会随着可用资源的消耗而趋于平缓,从而形成一条典型的逻辑曲线。一个多世纪后,美国统计学家E.B.Wilson和他的学生JaneWorcester设计了逻辑回归来计算给定的有害物质中有多少是致命的。3.梯度下降想象一下,黄昏后在山上徒步旅行,发现除了脚什么都看不见。您的手机没电了,因此您无法使用GPS找到回家的路。也许你会找到梯度下降的最快路径,但要小心,不要掉下悬崖。1847年,法国数学家奥古斯丁-路易斯柯西发明了一种算法来近似恒星的轨道。六十年后,他的同胞雅克阿达玛独立开发了它来描述地毯等薄而柔韧的物体的变形,这可能使跪下徒步旅行更容易。然而,在机器学习中,它最常见的用途是找到学习算法损失函数的最低点。可惜你的手机没电了,因为算法可能没有把你推到凸山的底部。你可能会陷入由多个山谷(局部最小值)、山峰(局部最大值)、鞍点(saddlepoints)和高原组成的非凸景观。事实上,图像识别、文本生成和语音识别等任务都是非凸的,并且出现了许多梯度下降的变体来处理这种情况。例如,该算法可能有动力帮助它放大小的起伏,使其更有可能触底。研究人员设计了如此多的变体,以至于优化器的数量似乎与局部最小值一样多。幸运的是,局部最小值和全局最小值往往大致相等。梯度下降是寻找任何函数最小值的明确选择。在可以直接计算精确解的情况下,例如在具有大量变量的线性回归任务中-它可以逼近一个值,通常速度更快,成本更低。但它确实在复杂的非线性任务中发挥作用。有了梯度下降和冒险精神,你也许能及时出山吃晚饭。4.神经网络让我们先弄清楚一件事,大脑不是一组图形处理单元,如果是的话,它运行的软件要比典型的人工神经网络复杂得多。然而,神经网络受到大脑结构的启发:相互连接的神经元层,每个神经元都根据其邻居的状态计算自己的输出。由此产生的一连串活动形成了一个想法——或识别一张猫的照片。从生物到人工:大脑通过神经元之间的相互作用进行学习的想法可以追溯到1873年,但直到1943年美国神经科学家WarrenMcCulloch和WalterPitts才使用简单的数学规则对生物神经网络进行建模。1958年,美国心理学家FrankRosenblatt开发了传感器——一种在登录机器上实现的单层视觉网络——旨在为美国海军打造一个硬件版本。Rosenblatt的发明只能识别单行分类。后来,乌克兰数学家AlexeyIvakhnenko和ValentinLapa通过在任意层数中堆叠神经元网络克服了这一限制。1985年,法国计算机科学家YannLeCun、DavidParker和美国心理学家DavidRumelhart及其同事独立工作,描述了使用反向传播来有效地训练此类网络。在新千年的第一个十年,包括KumarChellapilla、DaveSteinkraus和RajatRaina在内的研究人员(与AndrewNg合作)通过使用图形处理单元进一步推动了神经网络的发展,这使得越来越大的神经网络可以从互联网产生的海量数据。《纽约时报》率先在1958年报道罗森布拉特的传感器发明时进行AI炒作,称“美国海军期望拥有一台可以行走、说话、看、写、复制自己并实现自己的机器”。存在的基本电子计算机。”虽然当时的传感器还不够完善,但它产生了许多令人印象深刻的模型:图像的卷积神经网络;文本循环神经网络;以及用于文本、语音、视频、蛋白质结构等的Transformer。他们已经做出了惊人的事情,例如在围棋方面超越了人类水平的表现,并且在诊断X射线图像等实际任务中接近人类水平的表现。然而,他们仍然在与常识和逻辑推理作斗争。5、决策树亚里士多德是什么“猛兽”?哲学家波菲利(Porphyry)的一位追随者在3世纪居住在叙利亚,他想出了一个合乎逻辑的方法来回答这个问题。他将亚里士多德提出的“存在的范畴”从一般到具体进行了归类,依次将亚里士多德置于每一类之中:亚里士多德的存在是物质的,而不是概念的或精神的;他的身体是有生命的而不是无生命的;他的头脑是理性的,而不是非理性的。因此,他的分类是人类。中世纪的逻辑老师将这个序列画成垂直流程图:早期的决策树。时间快进到1963年,当时密歇根大学社会学家JohnSonquist和经济学家JamesMorgan在对调查对象进行分组时首次在计算机中实施了决策树。随着自动训练算法的软件的出现,这项工作变得很普遍,决策树现在被各种机器学习库使用,包括scikit-learn等。该代码由斯坦福大学和加州大学伯克利分校的四位统计学家历时10年开发而成。时至今日,从零开始写决策树已经成为《机器学习 101》的作业。决策树可以执行分类或回归。它从根部向下生长到冠层,将一个输入示例的决策层次分为两个(或更多)。想想德国医学家和人类学家JohannBlumenbach的课题:在他于1776年左右首先将猴子与猿类(人类除外)区分开来之前,猴子和猿类被归为一类。这种分类基于各种标准,例如它们是否有尾巴,狭窄或宽阔的胸部,直立或蹲伏,以及他们的智力水平。使用经过训练的决策树来标记此类动物,每个标准都被一个一个地考虑,最终将两组动物分开。鉴于Blumenbach的结论(后来被CharlesDarwin推翻)人类与猿类的区别在于宽阔的骨盆、手和咬紧的牙齿,如果我们想扩展决策树以不仅对猿猴和猴子进行分类,而且对人类进行分类,那么会发生什么?澳大利亚计算机科学家JohnRossQuinlan于1986年使用ID3使这成为可能,它扩展了决策树以支持非二元结果。2008年,在IEEE国际数据挖掘大会规划的十大数据挖掘算法名单中,一种名为C4.5的扩展求精算法名列前茅。美国统计学家LeoBreiman和新西兰统计学家AdeleCutler在2001年开发随机森林时将这一特征转化为他们的优势——一组决策树,每个决策树处理不同的、重叠的示例选择,并对最终结果进行投票。随机森林及其同类XGBoost不太容易过度拟合,这有助于使它们成为最流行的机器学习算法之一。这就像让亚里士多德、波菲里、布卢门巴赫、达尔文、简·古道尔、黛安·福西和其他1,000名动物学家一起坐在房间里,并确保您的分类学是最好的。6.K-Means算法如果你在聚会上与其他人站得很近,很可能你们有一些共同点,那就是使用k-means聚类来对数据点进行分组的想法。无论是通过人类代理还是其他力量形成的群体,算法都会找到它们。从爆炸声到拨号音:美国物理学家StuartLloyd,贝尔实验室标志性创新工厂和发明原子弹的曼哈顿计划的校友,于1957年首次提出k-means聚类,以数字信号的形式分发信息,但这项工作并未直到1982年才发表。与此同时,美国统计学家爱德华·福吉(EdwardForgy)在1965年描述了一种类似的方法,并因此得名“Lloyd-Forgy算法”。寻找中心:考虑将集群划分为志同道合的工作组。给定参与者在房间中的位置和要形成的组数,k均值聚类可以将参与者分成大致相等大小的组,每个组围绕一个中心点或质心聚集。在训练期间,该算法最初通过随机选择k个人来分配k个质心。(K必须手动选择,找到最佳值有时非常重要。)然后它通过将每个人与最近的质心相关联来增长k个聚类。对于每个集群,它计算分配给该组的所有人的平均位置,并将该平均位置分配为新的质心。每个新的质心可能不会被一个人占据,但那又怎样?人们倾向于聚集在巧克力和奶酪火锅周围。在计算出新的质心后,该算法将个体重新分配到离他们最近的质心。然后它计算新的质心,调整集群等,直到质心(和它们周围的组)不再移动。之后,很容易将新成员分配到正确的集群。将它们放在房间的适当位置并寻找最近的质心。预先警告:考虑到最初的随机质心分配,您最终可能不会与您希望与之共处的可爱的以数据为中心的AI专家属于同一组。该算法做得很好,但不能保证找到最佳解决方案。距离不同:当然,聚类对象之间的距离不需要很大。两个向量之间的任何度量都可以。例如,k-均值聚类不是根据物理距离对参加聚会的人进行分组,而是可以根据他们的着装、职业或其他属性对他们进行细分。在线商店使用它根据客户的喜好或行为对客户进行细分,天文学家可以将同一类型的星星分组。数据点的力量:这个想法产生了一些显着的变化:K-medoids使用实际数据点作为质心,而不是给定集群中的平均位置。中心点是到簇中所有点的距离可以最小化的点。这种变化更容易解释,因为质心始终是数据点。模糊C均值聚类使数据点能够不同程度地参与多个聚类。它使用聚类的度而不是基于与质心的距离的硬聚类分配。N维狂欢节:尽管如此,该算法的原始形式仍然具有广泛的用途——特别是因为作为一种无监督算法,它不需要收集昂贵的标记数据。它的使用速度也越来越快。例如,包括scikit-learn在内的机器学习库受益于2002年加入的kd-trees,它可以非常快速地对高维数据进行分区。