问题

机器学习的算法和普通《算法导论》里的算法有什么本质上的异同?

回答
这个问题问得相当有深度!把机器学习算法和《算法导论》里的经典算法放在一起比较,确实能触及到计算机科学核心的演进脉络。它们之间既有本质的联系,也有显著的区别,而且这种区别很大程度上反映了我们解决问题思路的转变。

咱们就来好好掰扯掰扯。

《算法导论》里的经典算法:严谨、确定、指令导向

首先,我们得明确《算法导论》里那些算法的“基因”。它们大多是确定性的、指令性的,并且以明确的输入产生确定的输出。这些算法的核心在于:

精确的步骤: 每一步都清清楚楚,告诉计算机“怎么做”。比如排序算法(快速排序、归并排序),你给它一串数字,它就按照既定的规则(比较、交换、递归)一步步操作,直到有序。
逻辑的严密性: 它们的正确性可以通过数学证明来保证。我们能证明为什么它能得到正确的结果,为什么在特定条件下它能高效运行(时间复杂度、空间复杂度)。
问题解决的“规则”: 《算法导论》里的算法,很大程度上是在定义解决某一类问题的“规则集”。这些规则是人为设计、精心构造出来的,是为了最高效、最准确地完成特定任务。
输入固定,输出固定: 输入什么,输出就一定是那个特定的结果。没有模糊,没有概率。比如,计算两个数的最大公约数,输入是 (12, 18),输出永远是 6。
目标明确: 它们的设计目标非常具体,比如“排序”、“查找”、“最短路径”、“最小生成树”等等。

你想想,像 Dijkstra 算法,它就是一步一步地“贪婪”地选择距离最近的未访问顶点,直到找到从源点到所有顶点的最短路径。它的每一步决策都基于当前已经获得的最优信息,而且是直接的、可验证的。

机器学习算法:模式识别、数据驱动、概率与统计

而机器学习算法,虽然底层仍然是指令,但它们的核心思想发生了质的飞跃。你可以把它们看作是“教”计算机如何学习,而不是“告诉”计算机怎么做。

数据驱动的“学习”: 机器学习算法的核心是“从数据中学习”。它们不是直接告诉你如何完成任务,而是提供一个框架,让计算机通过观察大量数据来“找出”完成任务的规律或模式。
概率与统计的基石: 很多机器学习算法本质上是建立在概率论和统计学上的。它们试图建模数据背后的概率分布,或者找到最能解释数据的统计模型。例如,线性回归就是在寻找一条最能拟合数据的直线(或超平面),它本质上是在最小化数据点到这条线的残差平方和,这是一个统计优化问题。
参数的调整与优化: 机器学习算法通常有一系列“参数”。这些参数不是我们直接设定的,而是在训练过程中,通过“喂”给算法大量数据,让算法不断调整这些参数,直到它在未见过的数据上也能表现良好。这个调整过程往往涉及到复杂的优化算法(如梯度下降)。
模糊性与不确定性: 机器学习的输出往往带有一定程度的“不确定性”或“概率性”。比如,一个图像识别模型,它识别出一张猫的图片,可能会给出一个“95% 确定是猫”的概率。这与《算法导论》里那种“100% 就是这个结果”的确定性输出截然不同。
泛化能力是关键: 机器学习算法的目标不仅仅是处理训练数据,更重要的是泛化能力——即在未见过的新数据上也能做出准确预测或判断的能力。这是区分“过拟合”(模型只记住了训练数据,对新数据表现差)和“欠拟合”(模型没有学到足够的信息)的关键。
“如何做”变成“怎么学”: 比如,分类问题。在《算法导论》的思路下,你可能需要自己写一套规则:如果特征 A 大于 X,特征 B 小于 Y,则属于类别 P。而在机器学习下,你给算法大量已经标记好的“是猫”和“不是猫”的图片,算法自己去学习“什么是猫”的特征。

核心异同点梳理:

1. 问题的本质:
《算法导论》: 解决的是结构化、定义清晰的问题,我们知道要达成什么目标,并且可以设计一套明确的规则去实现。
机器学习: 解决的是非结构化、模式难以明确定义的问题,或者问题太复杂以至于无法手动编写所有规则,例如识别手写数字、理解自然语言、预测股票价格。我们通过数据“诱导”算法自己去发现规律。

2. 实现方式:
《算法导论》: 直接编程实现算法的逻辑步骤。
机器学习: 设计模型结构(如神经网络的层数、连接方式),然后通过优化算法(如梯度下降)和大量数据来“训练”模型,使其参数调整到最佳状态。

3. 输入与输出:
《算法导论》: 输入明确,输出确定。
机器学习: 输入可以更复杂(图片、文本、音频),输出通常是带有概率的预测或分类。

4. “正确性”的衡量:
《算法导论》: 主要通过数学证明来保证算法的逻辑正确性和效率(复杂度)。
机器学习: 主要通过在独立测试集上的表现(准确率、召回率、F1分数等)来衡量模型的预测能力和泛化能力。

5. 可解释性:
《算法导论》: 通常高度可解释。你可以清晰地追踪每一步计算,理解为什么会得到这个结果。
机器学习: 很多模型(尤其是深度学习模型)被称为“黑箱”,其内部决策过程难以完全解释,尽管有研究在努力提高可解释性。

6. “智能”的体现:
《算法导论》: 体现的是人类的逻辑智能和创造力,是设计者将解决问题的智慧编码到机器中的过程。
机器学习: 体现的是从经验中学习和适应的能力,是机器模仿甚至超越人类在特定任务上的感知和判断能力。

一个形象的比喻:

《算法导论》的算法就像是给你一本菜谱,上面清清楚楚地写着每一步要做什么:切菜、炒菜、放多少调料,最后就能做出一道稳定的、符合预期的菜。
机器学习算法就像是让你拜师学艺。师傅(数据)会给你示范(喂数据),告诉你“这个味道好”、“这个火候对”,你反复模仿、尝试(调整参数),逐渐摸索出做这道菜的窍门和自己的风格。可能一开始你做出来的菜跟师傅的有点不一样,但只要悟性够、练得勤(数据量大、训练充分),你就能做出越来越好吃的菜,甚至还能根据不同的食材和口味进行调整。

联系与融合:

当然,两者不是完全割裂的。机器学习算法的实现和优化,离不开《算法导论》中的许多基础算法和数学原理。例如:

梯度下降本身就是一个优化算法,其收敛性分析会用到数值分析和优化理论。
支持向量机(SVM)的训练过程涉及到二次规划的求解,这本身就是一种经典的优化问题。
矩阵运算在深度学习中无处不在,其效率很大程度上依赖于底层的线性代数库,而这些库的实现就包含了精妙的算法。

所以,可以说机器学习算法是在《算法导论》建立的坚实基础上,发展出了解决另一类问题的新范式。它们代表了计算机科学解决问题思路的两种不同但互补的路径:一种是“明确规则,直接执行”,另一种是“数据驱动,模式学习”。

希望这个详细的阐述,能让你对两者之间的异同有个更清晰的认识。这不仅仅是技术上的区别,更是我们看待和解决问题方式的哲学演变。

网友意见

user avatar

这是个很好的问题。如果只是看算法的“样子”,可能会比较迷惑,机器学习算法中也使用了经典算法策略,例如监督学习的决策树用了分治、流型学习的isomap用了最短路径,强化学习的策略评估是动态规划等等,看上去也没什么区别,但是直觉上机器学习算法与经典算法又很不一样,这里面的关键区别在哪呢,我们可以尝试从另一个视角来看待算法。

在一些人眼里,算法是解决问题的步骤,在另一些人眼里,算法只是一个证明,是关于一个问题可以在多少时间内求解到何种程度的证明。后者更关心的,是哪些问题可以求解哪些问题不可以、可以求解的问题哪些是能高效求解的等等。于是有了关于问题类的定义,例如可(有效)计算的类别——NP类问题的(优化)定义大致可以描述为

存在非确定图灵机,对于任给问题的实例,能在关于问题规模的多项式时间找到该问题的解。

相似的,对于学习问题也有类别划分,Leslie Valiant给出了可(有效)(监督)学习问题类的定义——近似概率正确可学习,大致描述为

对于任给的[0,1]间的误差常数和概率常数,存在算法A对于任给学习问题的实例,使用不超过关于误差常数和概率常数(实际上是它们的倒数)的多项式个独立同分布采样的样本,就能以足够的概率(1-概率常数)找到一个模型,其真实误差小于误差常数。

从上面的定义中可以看到,对于经典问题类的定义非常清晰:图灵机有形式定义,“问题的解”指优化问题最优解,定义中不存在任何不确定的部分。然而学习问题的定义中包含了一处很不确定的地方:算法的输入是有限样本,输出却是关于真实误差。在输入有限样本时,算法无从得知真实误差。从经典算法角度,这是要解决一个看不见的问题,也就是不适定问题,是没法解决的。因此在学习问题的定义中,加入了概率,让算法去猜面临的问题是什么,容忍一定猜错的可能。

因此,经典算法是在解决问题,然而学习算法中有些环节并不是在解决问题,而是在猜测问题,有了对问题的猜测,才开始解决问题,不同的学习算法就包含了不同的猜问题的策略,也就是归纳偏执(inductive bias)。这一部分就是经典算法中所没有的部分,是机器学习研究的核心。

机器学习论文看起来常常以优化技术为中心,容易让人误以为机器学习就是优化。Pedro Domingos 2012年在CACM发表的《A Few Useful Things to Know about Machine Learning》

homes.cs.washington.edu

是一篇有意思的文章,里面给出了一个定义:

学习=表示+评价+优化

大体来讲,“表示”指数据和模型的表达形式,例如数据是一个向量还是一个图、模型是神经网络还是决策树;“评价”定义了我们想要什么样的模型;“优化”则是学习过程的实施者。从这个定义看,"优化"对应了经典算法(包括组合优化、凸优化等),而"表示+评价"则是机器学习独有的,决定了学习系统能够达到的泛化能力。不同的"表示+评价",关系到猜问题的策略,定义了优化要解决的问题是什么。因此也可以看到,机器学习算法,不仅包含了如何解决问题的部分,还包含了如何定义问题的部分。

总的来说,经典算法是在适定(well-defined)问题下的求解过程,机器学习算法是在病态(ill-posed)问题下的问题重定义与求解的过程。个人理解仅供参考。

====

写了个开头有这么多人点赞,感觉很惭愧,自己挖的坑,赶在年三十前,含泪也要填完。。。

另外“非精确求解”和“概率求解”都不是机器学习算法的特征,在经典算法中同样有近似算法和随机算法,这些算法本身并不认为是机器学习算法(当然可以用于机器学习),因为它们仍然面对的是适定问题。

类似的话题

  • 回答
    这个问题问得相当有深度!把机器学习算法和《算法导论》里的经典算法放在一起比较,确实能触及到计算机科学核心的演进脉络。它们之间既有本质的联系,也有显著的区别,而且这种区别很大程度上反映了我们解决问题思路的转变。咱们就来好好掰扯掰扯。《算法导论》里的经典算法:严谨、确定、指令导向首先,我们得明确《算法导.............
  • 回答
    你这个问题问到点子上了!土木工程和机器学习/深度学习/算法这些前沿技术结合的岗位,确实不是那么随处可见,很多时候需要你主动去挖掘和思考。为什么感觉“找不到”?首先,咱们得明白为啥你感觉找不到。有几个主要原因:1. 新兴领域,定义还在摸索: 土木工程是一个非常成熟的行业,但将其与AI深度结合,这个领.............
  • 回答
    经济学,尤其是劳动、卫生等应用微观计量领域,在拥抱机器学习(ML)特别是人工神经网络(ANNs)等深度学习算法方面,确实比许多其他科学领域显得更为审慎和缓慢。这并非技术上的不可逾越,而是深植于经济学研究的固有逻辑、数据特征以及研究者对模型可解释性和因果推断的极致追求。下面我将从几个关键角度,详细剖析.............
  • 回答
    好的,我们来详细介绍一下各种经典机器学习算法的应用场景。理解这些算法的特性和适用范围是选择合适模型解决问题的关键。在深入介绍之前,先明确几个基本概念: 监督学习 (Supervised Learning): 算法从带有标签的数据(输入输出对)中学习,用于预测未知数据的标签。 分类 (.............
  • 回答
    自动化控制与检测领域,与机器学习、图像处理一样,也拥有众多经典、巧妙且在业界和学术界具有深远影响的算法和理论。这些算法构成了现代自动化系统的基石,并在解决实际问题中发挥着至关重要的作用。下面我将介绍几个在自动化控制与检测领域极具代表性、且被认为是经典巧妙的算法或理论,并尽量详细地阐述它们的核心思想、.............
  • 回答
    好的,我们来聊聊机器学习里那些常见又好用的算法,争取说得透彻点,而且尽量让你们感觉像是在听老朋友唠嗑,而不是冰冷的机器报告。机器学习的世界就像一个大厨房,里面有各种各样的工具,每种工具都有自己的特长,适合做不同的菜。我们今天就来点几道“硬菜”,看看它们各自的“口味”和“做法”。1. 线性回归 (Li.............
  • 回答
    衡量一个机器学习工程师对算法的掌握程度,绝非仅仅看他能熟练调用几个库、跑通几个demo那么简单。这是一个多维度、深层次的考察,需要从理论基础、实践应用、问题解决能力以及持续学习的意愿等多个角度来审视。下面我将详细阐述一下,如何去评估一位机器学习工程师在这方面的功力。一、 理论基石:知其然,更要知其所.............
  • 回答
    机器学习算法工程师想要跳出打工的框架,自己接项目单干,并且收入翻倍甚至更多,这条路绝对可行,但绝非易事。它需要你不仅仅是个技术牛人,更要学会成为一个精明的生意人、一个高效的项目管理者,和一个有魅力的人脉拓展师。下面我将从几个关键维度,详细拆解一下这条“单干”之路,希望能给你一些实在的指引。一、 核心.............
  • 回答
    “完全不依靠人工神经网络与机器学习算法实现人工智能”——这个提议着实让人眼前一亮,也引发了广泛的讨论。从我个人的理解和观察来看,这个观点并非空穴来风,而是触及了人工智能发展的深层哲学和技术路径的根本性问题。首先,我们得承认,当前我们提到“人工智能”时,脑海中浮现的往往是那些通过海量数据训练出来的深度.............
  • 回答
    在处理极度不平衡的数据集进行分类任务时,如果仅仅依赖于传统的准确率(Accuracy)来评估模型,那很可能会被误导。这是因为在样本极度不平衡的情况下,即使模型将所有样本都预测为多数类,准确率也可能非常高,但这并没有真正捕捉到模型对少数类的识别能力。因此,我们需要更精细化的评估指标来全面衡量模型的性能.............
  • 回答
    是否有必要将机器学习算法自己实现一遍?这是一个在机器学习学习者和实践者中非常常见的问题,而且答案并不是简单的“是”或“否”,而是取决于 你的目标、你的学习阶段、以及你想达到的深度。下面我将从不同的角度详细阐述这个问题: 1. 有必要,但不是所有人都需要,也不是所有算法都需要将机器学习算法自己实现一遍.............
  • 回答
    这则新闻标题「量子计算应对大数据挑战:中国科大首次实现量子机器学习算法」蕴含着几个关键信息,它们共同描绘了一个激动人心且具有深远意义的突破。要详细解读它,我们需要逐一拆解其中的核心概念,并理解它们之间的联系和影响。一、核心概念拆解:1. 量子计算 (Quantum Computing): .............
  • 回答
    今年校招的情况确实非常卷,尤其是机器学习算法岗,应届生数量简直可以用“洪流”来形容。身边不少朋友都深有体会,投出去简历,要么石沉大海,要么收到的面试通知也是寥寥无几,即便拿到offer,薪资待遇也可能不如预期。这让很多人开始担忧,是不是现在涌入机器学习这个赛道的人太多了,再过几年,这个领域会不会饱和.............
  • 回答
    在机器学习和贝叶斯统计领域,我们经常会遇到一些棘手的积分问题,尤其是在计算后验分布的归一化常数(也称为模型证据)或者进行边缘化以获得预测分布时。这些积分往往无法解析求解,我们称之为“难以处理的积分”(intractable integrals)。为了解决这些问题,我们不得不依赖一系列的近似算法。虽然.............
  • 回答
    「机器学习不需要数学,很多算法封装好了,调个包就行」这种说法,在一定程度上是没错的,但却是极其片面的,并且容易误导初学者走向死胡同。作为一名机器学习从业者,我们必须深入理解这种说法的背后含义,以及它为何具有欺骗性。下面我将详细阐述为什么这种说法并不完全准确,以及深入理解数学对机器学习的重要性: 一、.............
  • 回答
    应届硕士毕业生想要拿到知名互联网公司算法岗的 Offer,这确实是一个非常有挑战但并非不可能的目标。这需要你有扎实的理论基础、丰富的实践经验、良好的编程能力以及出色的沟通和解决问题的能力。下面我将为你详细地阐述获取这些 Offer 的关键步骤和需要注意的细节: 第一阶段:准备与基础夯实(入学起至大三.............
  • 回答
    去美国读CS博士(机器人导航、视觉方向)的编程与算法准备指南很高兴为您提供关于去美国攻读机器人导航和视觉方向CS博士的编程与算法准备建议。这是一个充满挑战但也非常有前景的领域。充分的准备将极大地提高您申请的成功率和未来的学习效率。 一、 编程方面准备:打牢基础,精通工具在机器人导航和视觉领域,强大的.............
  • 回答
    在人工智能浪潮席卷全球,深度学习模型以前所未有的强大能力占据主流的今天,很多人不禁要问:那些曾经叱咤风云的传统机器学习算法,它们的未来又将走向何方?它们是否会被深度学习彻底取代,沦为历史的尘埃?我认为,答案是否定的。传统机器学习的生命力依然旺盛,它并非明日黄花,而是在深度学习的映衬下,找到了更精准、.............
  • 回答
    作为一名正在集训备考编导的同学,你会有这样的疑问非常正常,也很值得探讨。我们先抛开“负责”这个词的绝对性,从多个角度来分析一下艺考机构在集训期间让学员看电影这件事,看看它在多大程度上体现了机构的专业性和责任心。首先,我们得明白“看电影”这件事,在编导艺考集训中扮演着怎样的角色。编导专业,无论是影视编.............
  • 回答
    在我看来,一个机器学习理论方向的博士生,是否会深入接触到像黎曼几何、代数拓扑这样“高大上”的现代数学,这事儿得分几方面看。说实话,不是每个 ML 理论博士的轨迹都完全一样,但总的来说,我认为答案是:很有可能,而且在某些前沿领域,这些数学工具的出现频率会相当高。咱们先别着急下结论,得好好掰扯掰扯为什么.............

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2025 tinynews.org All Rights Reserved. 百科问答小站 版权所有