算法的“偏见”:一场关于效率和通用的哲学思考

写这篇文章,源于最近和朋友们讨论机器学习中的一个看似简单,实则深邃的概念:归纳偏置/偏见(Inductive Bias)

我们常说让机器从数据中学习,但这到底是如何发生的?机器是如何从有限的经验中,推断出能够适用于未知情况的规律呢?这背后隐藏着一个关键的概念,那就是算法内置的 “假设”,或者在机器学习领域常说的归纳偏置(Inductive Bias)

你可能听说过“假设”这个词,在日常生活中,我们常说不要随意假设。但在机器学习的世界里,没有假设,学习几乎不可能发生

算法的“偏见”:为什么它是必要的?

想象一下,我们想让计算机识别猫咪的照片。我们给它看了一大堆猫的照片,它需要从中学习猫咪的特征。但问题是,世界上有无数种猫,我们不可能给它看遍所有的猫。它如何能识别出那些它从未见过的猫呢?

这就需要算法带有某种“偏见”。这种“偏见”不是指歧视,而是算法在面对未知情况时,会倾向于做出某种判断或假设。

机器学习理论中有一个著名的定理叫做没有免费午餐”定理(No Free Lunch Theorem)。它告诉我们,在所有可能的学习任务上,没有任何一个算法能永远 outperform 其他算法。任何一个算法在一个任务上的优势,必然来自于它对数据或任务所做的某种假设。这些假设,就是归纳偏置

简单来说,如果没有归纳偏置,一个算法在学习时就像完全没有头绪,面对新的数据只能随机猜测,根本无法从有限的数据中泛化出普遍的规律。

结构偏置与归纳偏置:名字不同,心有灵犀?

在神经网络的语境下,我们又会遇到另一个词:结构偏置(Structural Bias)

结构偏置体现在神经网络的架构设计中。比如,我们设计卷积神经网络(CNN),让它拥有卷积层和池化层。这种特殊的结构,本身就蕴含了一种偏置:它假设数据(比如图像)具有局部相关性,并且对平移具有一定的容忍度。

你可能会问,这和归纳偏置有什么区别?

可以这样理解:结构偏置是实现归纳偏置的一种具体方式。我们相信图像具有局部性和平移不变性(这是一种归纳偏置),所以我们设计了 CNN 的结构(这是一种结构偏置)来有效地利用这种特性。

两者都涉及将某种先验知识注入模型,但归纳偏置是更广泛的概念,可以体现在算法设计的方方面面,而结构偏置是体现在模型结构上的具体实现。它们都是算法在学习前就带有的“偏见”,是算法能够从有限数据中推断出更广泛规律的关键。

Sutton 的“苦涩的教训”:先验知识越多越好吗

说到这里,我们不禁会想起强化学习领域的大家 Rich Sutton 提出的 “苦涩的教训” (The Bitter Lesson)

Sutton 观察到,在人工智能的发展历程中,那些依赖于大量人类专家手工注入的、特定领域先验知识的方法,往往在短期内表现不错,但最终会被那些更通用、更依赖于用计算发现模式的方法超越。

他认为,未来的突破在于构建能够利用强大的计算能力,自主地从海量数据中学习和发现规律的算法,而不是过多地依赖人类对特定问题的理解。换句话说,他似乎在 advocating 减少人工注入的先验知识,而更多地依赖于算法自身的学习能力。

这听起来似乎和我们刚才说的“归纳偏置是必要的”有些矛盾。

那么,先验知识到底应该多还是少?

算法的坐标轴:效率、通用性与先验知识的权衡

或许,我们可以用一个坐标轴来理解这个问题。

想象一下,这个坐标轴的一端,站着传统计算机算法。它们高度依赖于人类的智慧和领域知识。为了解决一个特定问题,我们需要深入分析,设计精密的算法和数据结构。这需要大量的人力投入,但算法本身通常非常高效,计算量相对较小。然而,这种方法往往通用性较差,换一个问题可能就需要重新来过。

算法的坐标轴

坐标轴的另一端,站着最通用的学习方法(姑且称之为“白板算法”)。这种方法假设对数据和任务几乎一无所知,完全依赖于从数据中学习。这需要较少的人力投入(开发相对标准化),但需要巨大的计算量来探索可能的解空间。这种方法具有理论上最强的通用性,可以在各种任务上学习,但实际效率可能很低,而且在数据不足时可能表现不佳。

任何一个算法,都能看作是在这个坐标轴上的某个点。

  • 如果我们追求极致的效率,并且问题稳定明确,我们会更靠近左端,注入更多针对性的先验知识。
  • 如果我们追求强大的通用学习能力,希望算法能够自主适应各种情况,我们会更靠近右端,减少特定领域的先验注入,而更依赖于数据和计算。

更好的归纳偏置:关于“世界本身”的先验

回过头来看 Sutton 的“苦涩的教训”。他反对的,也许不是所有的先验知识,而是那些过于狭隘、依赖手工工程的领域先验。这些先验知识一旦脱离了特定的领域,就可能变得无用甚至有害,从而限制了算法的通用性。

而成功的通用算法,比如 CNN 或 Transformer,它们引入的先验知识,更多地是关于 “世界本身”的普遍性先验。比如图像的局部性,序列数据中不同位置的依赖关系。这些先验不是针对某个具体任务的,而是关于数据或物理世界的普遍属性。

因此,更正确的理解可能是:

  1. 归纳偏置是必需的: 没有先验假设,学习是不可能的。
  2. 先验知识有优劣之分: 狭隘的、手工注入的领域先验容易限制通用性;而关于数据或世界普遍性质的先验,如果能够通过可扩展的算法利用,则能极大地提升学习效率和泛化能力。
  3. 通用算法的突破在于发现了“更好的”归纳偏置: 那些在各种任务上表现出色的通用算法,往往是因为它们巧妙地引入了之前没有被充分利用的、关于世界本身的、不损害通用性的归纳偏置。
  4. 同时,高效利用计算力至关重要: 即使有了好的归纳偏置,如果算法不能在大规模数据和计算资源上高效运行,其潜力也无法充分发挥。

所以,也许我们应该尽量多地探索和引入那些关于“世界本身”的、不影响通用性的普遍性先验,并将其体现在可扩展的算法设计中,同时不断提升算法对计算力的利用效率。

AGI:坐标轴上的一个特殊点

说到这里,我们自然要看向人工智能的终极目标之一:AGI,通用人工智能(Artificial General Intelligence)

把 AGI 放在我们刚才构建的坐标轴上,它会处于一个非常特殊的位置。一个最高效的 AGI 算法恰巧将领域先验与普遍性先验分隔在两侧,其依赖那些基础性的、关于计算和学习本身的普遍性先验

AGI在坐标轴的位置

这些普遍性先验不是指人类对物理定律、历史事件或社会规则的理解,而是更底层、更抽象的原理。例如,关于如何有效地组织信息(比如层次结构)、如何发现数据中的关联(比如注意力机制)、如何进行有效的搜索和推理等。这些是关于智能本身如何通过计算和学习来实现的基础性假设。它们是 AGI 能够高效学习和泛化的基石。

所以,AGI 的特殊之处在于:

  1. 它的算法设计依赖于那些能够支持通用学习、高效探索基础性、计算或数学层面的普遍性先验
  2. 它需要能够从与世界的交互和大量数据中,自己去发现和掌握更具体的、关于任务的知识。

因此,AGI 所在的点,既远离了过度依赖特定领域先验的那一端,也并非完全没有算法层面的先验。它代表了一种追求极致通用学习能力,并依赖于关于学习和计算的普遍性原理。

这是一个充满挑战和机遇的领域。理解算法中的“偏见”——归纳偏置——及其与效率、通用性、计算力的关系,是我们探索人工智能未来的重要一步。

你对此有什么想法?欢迎在评论区交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值