可能许多读者都会以为深度学习是最近几年才出现的。其实它的历史可以追溯到20世纪40年代,只不过因为它曾经被冷落、换了无数个名字,所以才没那么出名。这个领域就像一个艺人,经历了各种改头换面,最后才开始走红。
深度学习这个领域的历史,就像一个人经历了三次浪潮。第一次是在20世纪四五十年代,它还很稚嫩,只不过藏在“控制论”里,像小朋友玩捉迷藏。第二次则是在20世纪八九十年代,深度学习变成了一个抽象概念——联结主义,背起来比说唱还难。第三次是在2006年,它真正以“深度学习”之名复出,如同一个重归江湖的大佬,就像图1-1所示的这样。
图1-1 从控制论到联结主义,再到深度学习
深度学习是机器学习的一个重要分支,它专注于利用多层网络组合的原理来提取和表示数据的特征,这一原理恰好与神经科学中的某些观点相契合。深度学习通过构建复杂的神经网络模型,能够捕捉数据中的复杂模式和关系,从而实现更高级别的学习和推理。
现代深度学习最早的前身,其实从神经科学角度切入的简单线性模型。它们就像一群小学生,用x 1 x 2 x n 来试图理解复杂的世界,并把它们和输出y联系起来。这些模型希望通过学习一组权重w 1 w 2 w n 来计算它们的输出f x w =x 1 w 1 ++x n w n 。听起来就像一群勤奋的小学生在认真学习数学。第一波神经网络研究浪潮被称为“控制论”,让人感觉充满了掌控一切的力量。
McCulloch-Pitts神经元是脑功能的早期模型,好比是神经科学领域里的老前辈。这个线性模型可以通过检测函数f x w 的正负来区分两种不同类别的输入。当然啦,为了让模型输出正确的类别,它的权重需要被设置得恰到好处。而这些权重,只能靠操作员精心设置!后来,在20世纪50年代,感知机(Frank Rosenblatt于1957年提出)出现了,它可以根据每个类别的输入样本来自动学习权重。同时,自适应线性单元(Adaptive Linear Element,ADALINE)单纯地返回函数f x 本身的值,以便预测实数,并且它还可以通过数据学习如何进行这些预测。
图1-2 学习算法,就像是往煎饼馃子里逐步添加调料,让它越来越好吃
这些简单的学习算法就像路边摊上的小吃,虽然看似普通却大大影响了机器学习的现代景象。就像我们在煎饼馃子里加点鸡蛋、火腿等调料一样,用于调节ADALINE权重的训练算法也进行了一些改进,被称为随机梯度下降。这种算法仍然是当今深度学习的主要训练算法,它能够非常高效地训练模型,如图1-2所示。
就好像感知机和ADALINE中使用的函数f x w 一样,线性模型也是机器学习中非常重要的一个模型。虽然在许多情况下,我们需要对这些模型进行改良和调整(就像我们在做菜时会根据口味加入不同的佐料一样),但是它们仍然是目前最广泛使用的机器学习模型。就像一道基础菜肴一样,线性模型为我们提供了一个强大的基础,可以用来解决各种各样的问题,比如预测房价、股票走势等。虽然有时候需要进行改进或升级,但是线性模型对于机器学习的发展起到了至关重要的作用。
线性模型虽然是机器学习中最广泛应用的模型之一,但也存在着很多局限性。其中最典型的就是无法学习异或(XOR)函数,这种情况被称为“线性不可分”。换句话说,线性模型无法解决某些非线性问题,就像我们无法用筷子喝汤一样。当观察到线性模型存在这种缺陷时,批评者们对受生物学启发的学习产生了抵触,这导致了神经网络浪潮的第一次大衰退。
不过,随着时间的推移和技术的进步,人们又开始重新关注神经网络,并且开发出了一些能够克服这些局限性的新算法和模型,让我们能够更好地解决复杂的问题,就像我们学会了使用不同类型的餐具来吃不同的食物一样。
可能很多刚开始接触深度学习的读者都很崇尚神经科学——毕竟它可是深度学习研究的“灵感大本营”。但是事实上,神经科学在深度学习里的作用已经被削弱了。原因是我们根本没法从大脑里获取足够的信息来指导深度学习的研究!想要深入理解大脑对算法的使用原理,我们至少需要监测数千个相邻的神经元同时活动的情况。可是现在我们连这点都做不到,更别提去理解大脑最基础、最深入研究的部分了。
但是,神经科学是深度学习解决各种任务的理论支持。有些神经学家甚至把雪貂的大脑重新连接,让它们用听觉处理区域去“看”东西,结果发现它们真的可以学会这个技能。这说明大多数哺乳动物的大脑可以用同一种算法来解决各种不同的任务。在此之前,机器学习研究都比较分散,研究人员各自在自然语言处理、计算机视觉、运动规划和语音识别等领域里搞研究。但是现在,深度学习研究团体却很常见地同时研究许多甚至所有这些应用领域。所以说,神经科学可是个“大忙人”!
我们可以从神经科学中汲取一些有用的灵感。比如说,大脑里神经元之间相互作用的计算方式启发了我们实现“只要会算就能变聪明”的目标。还有一个叫“新认知机”的东西,它模仿哺乳动物视觉系统的结构,成功地搭建了一个超级强大的图片处理模型——这后来甚至成了卷积神经网络的基础。不过,现在大多数神经网络都是基于“整流线性单元”这个名字很高大上的神经单元模型的。当然,最早的那个“原始认知机”更加复杂,但现在的版本吸收了各种思想,有的来自工程界、有的来自神经科学领域,形成了一种更加简化但同样有效的模型。虽然神经科学对于我们的灵感十分重要,但是我们也不必全部照搬,因为真实的神经元和现代整流线性单元计算起来可是大不一样!而且到目前为止,更接近真实神经网络的系统并不能直接提升机器学习性能。所以,我们可以从神经科学中获得启示,但是在训练这些模型时,我们也需要仔细斟酌,不能生搬硬套。
很多媒体总是强调深度学习和大脑的相似性。虽然深度学习研究者比其他机器学习领域的研究者更容易引用大脑作为灵感,但这并不意味着深度学习就是在模拟大脑!其实现代深度学习是从好多领域获取灵感的,比如数学中的线性代数、概率论、信息论和数值优化等。当然,有些深度学习的研究者会把神经科学引用作为重要来源,但也有研究者完全不关心神经科学。就像我们吃饭一样,有人喜欢甜的、辣的、咸的,有人却只管它好不好吃。所以,深度学习并不是非得模仿大脑才可以。
注意: 有些学者也在研究大脑的算法层面,也就是所谓的计算神经科学。别把它和深度学习搞混了,虽然它们有时候会互相研究,但它们还是两个不同的领域。深度学习主要关注如何让计算机变得更聪明,而计算神经科学则致力于模拟大脑神经元的工作原理。简单来说,前者是教计算机怎么学习,后者是教我们怎么搞懂大脑在想什么。
在20世纪80年代,神经网络研究的第二次浪潮出现了,它就像一条激流,带来了联结主义和并行分布处理的风潮。联结主义和认知科学差不多,都是融合多个层次的跨领域思维方式。早前的认知科学家主要考虑符号推理模型,这种模型虽然很受欢迎,但是真的难以用来解释大脑是如何运作的。于是,联结主义者开始深入研究基于神经系统实现的认知模型,在心理学家Donald Hebb的工作中找到了很多复苏的灵感。
联结主义理论的中心思想是,当大量简单的计算单元相互连接时,就能够实现智能行为。这一点也同样适用于人类身体内的神经元。神经元是人类神经系统中最基本的组成部分,它们通过神经元轴突和树突之间的连接进行通信。神经元的数量非常庞大,而它们的相互连接也非常复杂。这种神经元之间错综复杂的连接方式可以被看作一种网络,它使大脑能够执行各种不同的任务。
联结主义的另一个核心概念是学习与记忆。神经元之间的连接可以通过反复使用而变得更加强壮,从而使其更容易激活。这就是我们所说的记忆。此外,神经元之间的连接还可以自适应地进行调整,以适应新信息的输入,这就是学习。因此,联结主义被广泛应用于人工智能领域,其目的是模仿人类大脑的运作方式,让计算机能够像人类一样进行学习和记忆。
用生活中常见的例子来解释,就像家里的电线一样,连接起来才能点亮更多的灯泡,让房间更加明亮,如图1-3所示。神经元连接起来,也可以产生智能行为。
图1-3 联结主义的思想,就像是用电线把多个灯泡连起来一样
虽然联结主义是20世纪80年代的一个老话题,不过别小瞧这个“老古董”,它的几个关键概念在今天的深度学习中还是非常重要的。其中有一个概念叫作“分布式表示”,就是要让系统对每一个输入都用多个特征表示,并且每个特征都应该参与到多个可能输入的表示。简单来说,就像我们在分辨红色、绿色或蓝色的挖掘机、潜水艇和手电筒时,用了分布式表示法把颜色和对象身份描述分开,这样就只需要6 个神经元而不是9个。
而说到联结主义,就不得不提起另一个概念——反向传播算法。深度神经网络的反向传播算法就像是一位超级保姆,无论你要做什么事情,它都能为你提供全程指导和帮助。虽然这个算法曾经不太受欢迎,但现在它已经成为训练深度学习模型的“金牌教练”,因为它可以为模型提供完美的训练路线和理想的参数调整方案。就像你要学习如何打篮球,虽然你可能会犯错、跑偏,但是有一位好的教练带领你,你就能更快地进步,成为一个出色的球员。同样地,反向传播算法可以帮助深度学习模型更好地理解数据,找到最优的信息表达方式,从而提高准确性和稳定性。所以,要想成为一名深度学习大师,掌握反向传播算法是必备的条件。
到了20世纪90年代,使用神经网络进行序列建模取得了重要进展,例如大名鼎鼎的长短期记忆网络。长短期记忆网络(Long Short-Term Memory,LSTM)听起来好像是一位超级记忆高手。例如,你在上学时要背诵很多单词和公式,但总有一些东西你不容易记住。现在,LSTM就像你的“小助理”一样,可以帮你轻松地记住这些难以理解的概念。虽然之前研究人员遇到了一些根本性数学难题,但是LSTM网络出现了,它可以记住过去发生的事情,并预测未来可能发生的事情,就像是你在回忆过去、计划未来一样。所以,如果你还在为记忆力差而苦恼,不妨让LSTM来当一名“私人助理”,相信它一定会让你的记忆力提升到一个新的水平。
在当时,许多基于神经网络和其他AI技术的创业公司争先恐后地寻求投资,它们的野心非常大,但却不够实际。因此,当这些不合理的期望没有被实现时,投资者感到了失望。与此同时,机器学习的其他领域却取得了长足的进步,比如核方法和图模型都在很多重要任务上实现了很好的效果。这就像是神经网络半路跌倒了,而核方法和图模型却顺利地走上了巅峰。所以,神经网络浪潮的第二次衰退就这样开始了,并且一直持续到2007年。也许这就是科技界的残酷现实,有时候即便再努力,也可能会被其他更优秀的技术击败。
即便如此,神经网络也还是在一些任务上表现得越来越好。图灵奖得主LeCun和Ben-gio都发表了令人印象深刻的论文。加拿大高级研究所(CIFAR)还有个很厉害的计划,叫作神经计算和自适应感知(NCAP),可以帮助维持神经网络研究,他们联合了多伦多大学、蒙特利尔大学和纽约大学的机器学习研究小组,领头的分别是Geoffrey Hinton、Yoshua Bengio和Yann LeCun。这个团队还有神经科学家、人类和计算机视觉专家,可谓是汇聚了各行各业的精英。
当我们面对一道看似很难的数学题时,可能会望而却步。人们普遍认为,和解一道数学难题一样,深度神经网络也很难训练,一时间不知道如何下手。但是,事实上,这道题可能只是看起来有些棘手,它并不是无解之谜,深度神经网络也不是不能训练。就像20世纪80年代存在的算法一样,它们虽然早已问世,但直到2006年前后才经过充分的实验,真正地展现出其威力。或许,深度神经网络也一样,只是因为计算代价太高,以至于我们需要更强大的硬件来进行足够的实验。
到了2006年,出现了一个叫作深度信念网络的神经网络,它的训练方法被称为贪婪逐层预训练。这种方法非常有效,可以帮助我们训练比以前更深的神经网络。很多研究小组都发现了同样的策略,并将其应用于各种不同类型的深度网络。这些神经网络已经超越了其他机器学习技术和手工设计功能的AI系统。当然,在监督学习和使用大型标注数据集方面,它们仍然有很大的优化空间。但是随着时间的推移,它们也变得更加智能,更加优秀。
大量的数据是深度学习算法发展的基础。深度学习算法需要大量的数据来训练模型,从而提高模型的准确性和鲁棒性。这些数据可以是图片、文本、音频等各种形式的数据。
随着互联网和移动设备的普及,我们现在可以轻松地搜集和存储海量数据。同时,云计算技术的发展也使得处理这些大量数据变得更加容易,这为深度学习算法的广泛应用提供了支持。
图1-4 深度学习需要大量数据和反复训练,就像我们练习打篮球一样
举个例子来说,就好比你在生活中学习一门新技能。你想要学会打篮球,开始的时候可能会看一些教学视频,听教练讲解基本动作。但是要想真正掌握篮球技术,则需要反复练习和不断调整。同样地,深度学习算法也需要大量的数据和反复的训练才能具备良好的性能,就像图1-4所示的这样。
虽然以前也有深度学习算法,但是并没有现在这么流行。那时候,用深度学习来解决实际问题被视为一种高级黑科技,只有专家才能搞得定。而现在,随着数据越来越多,深度学习的技巧也越来越容易掌握了。就好比最开始学篮球,你需要掌握的技巧很多,但随着练习的不断进行,这些技巧也逐渐变得简单明了。
现在,我们的生活越来越数字化,几乎所有的活动都离不开计算机,这自然也导致产生了越来越多的数据。这些数据记录了我们的方方面面,可以用于机器学习的数据集也因此越来越大。这就像你天天练习篮球,记录下每一次的进步和改善,最终可以形成一个庞大的技术库。有了这些数据,深度学习算法的表现也会越来越优秀,甚至能够达到人类的水平。
当然,要想让深度学习在更小的数据集上获得成功,还需要研究如何通过无监督学习或半监督学习充分利用大量的未标注样本。这就好比你练篮球时,可能教练不在身边,你只能自己摸索,并且借助于其他球员的经验和技巧。总之,随着数据规模的不断扩大和技术的不断提升,相信深度学习算法在未来一定会发挥更加重要的作用。