您现在的位置是:首页 > 人工智能人工智能
Geoffrey Hinton 最新访谈:不出五年,我们就会破解大脑的运作机制,但不是通过反向传播
cc博主2022-06-10【人工智能】461人已围观
整理|李梅、黄楠
编辑|陈彩娴过去十年,AI 在计算机视觉、语音识别、机器翻译、机器人、医学、计算生物学、蛋白质折叠预测等等领域取得了一个又一个突破,而这些突破的背后,均离不开深度学习。那么,深度学习起源于何时何地,又在何时成为最突出的AI方法?
最近,UC伯克利教授、深度学习专家Pieter Abbeel在其播客节目《机器人大脑》(Robot Brains)中,对Geoffrey Hinton进行了一次访谈。
曾获得2018年图灵奖的Hinton,被称为「深度学习三巨头」之一,是人工智能史上最重要的学者之一。他的论文被引用了50多万次,这意味着,有50万篇以上的研究论文是建立在他的研究之上。
他在深度学习领域已经研究了大约半个世纪,大部分时间相对默默无闻,但在2012年,事情发生了转折:那一年,凭借AlexNet在ImageNet比赛的胜出,他证明了深度学习在图像识别方面比其他计算机视觉的方法具备更大的优势。这被称为「ImageNet时刻」,改变了整个AI领域,掀起了深度学习的浪潮。
在这次对话中,Hinton讲述了他从学术界到谷歌大脑的工作经历、学习心理学和当木匠的经历,以及可视化技术t-SNE算法背后的历史,并就一些问题发表了他的观点,包括:
现有的神经网络和反向传播算法与大脑的运作方式有何不同?
为什么我们需要无监督的局部目标函数?
睡眠和玻尔兹曼机的功能是什么?
为什么培育计算机比制造计算机更好?
为什么需要负面数据?
如今的大规模语言模型真正理解了语言吗?
……
AI科技评论在不改变原意的基础上对他们的访谈作了编辑与整理:
反向传播不同于人脑运作方式
Abbeel:什么是神经网络?我们为什么要关注它?
Hinton:我们的大脑是这样工作的:
它有很多被称为神经元的小处理元件,每隔一段时间,一个神经元就会发出 “ping”声,而使它发出“ping”声的原因是它听到了其他神经元的“ping”声。每次它听到其他神经元的“ping”声时,就会在它得到的一些输入存储中增加权重,当权重达到一定输入后,它也会发出“ping”声。
因此,如果你想知道大脑是如何工作的,你只需要知道神经元如何决定调整这些权重。有一些用于调整权重的程序,如果我们能够把它们弄清楚,那我们就会知道大脑是如何工作的。我认为我们会在未来五年内破解这些程序。
我认为,所有现有的人工智能都是建立在与大脑高层次上所做的事情完全不同的基础上。它必须趋于相同,当你有很多参数,假设你有数十亿的参数,这些神经元间的权重在你大量训练实例的基础上去调整参数,就会发生奇妙的事情。大脑是这样,深度学习也是这样。问题在于,你如何获得调整参数的梯度,因此你要思考衡量标准及想调整的参数,使它们来完善你想达成的措施。
但我目前的信念是,反向传播,也即目前深度学习的工作方式,与大脑所做的完全不同,大脑是以不同的方式来获得梯度的。
Abbeel:你写过一篇关于训练神经网络的反向传播的论文,它成为今天大家所做一切的动力,而现在你说是时候弄清楚我们是否应该做些改变了?是否应该将其向与大脑相似做努力?你是否认为反向传播可以比大脑正在做的事更好?
Hinton:Rumelhart、Williams和我确实写了关于反向传播的论文(如下)、且被引用次数最多。
论文地址:http://www.cs.toronto.edu/~hinton/absps/naturebp.pdf
反向传播已广为人知。我们真正做的是表明了它可以学习有趣的表征,并非我们发明了反向传播,而是重新定义了反向传播。我们提出它可以学习有趣的表征,例如单词嵌入,因此认为反向传播可能比我们在大脑中的效率要高得多。将大量信息挤压到少数几个连接中,而少数几个连接只有几十亿个,因此大脑的问题是连接非常便宜,有数以万亿计的连接, 而经验是非常昂贵的,所以我们倾向于在少量经验上投入大量参数。
而我们正在使用的神经网络基本上是相反的。它们有很多的经验,并试图把输入和输出的信息联系到参数中。我认为反向传播比大脑使用的方法更有效,但并不擅长从不多的数据中抽象出很多结构。
Abbeel:对于这方面,你有什么可能获得更好性能的方法的假设吗?
Hinton:很长时间里我都认为,我们需要无监督目标函数。这里主要是指感知学习,如果你能通过观察世界来学习模型,那你就可以基于这个模型、而非原始数据采取行动,这正确率更高。
我相信大脑使用了很多局部小的目标函数,它不是一种端到端的系统链,通过训练来优化目标函数。
举个例子,如果你看张图像的一小块,试图提取些表征,可以将你从那小块图像中得到的表征、与通过附近其他斑块的表征而得到的上下文语境进行比较,由此去预测该图像中有什么。
一旦你对这个领域很熟悉,这些来自上下文的预测和本地提取的特征通常会一致。如果不一致,你也能从中学到很多。
我认为大脑可以从这种局部分歧中学到很多东西。可能在你看来,一个大图像和图像的许多小局部斑块意味着很多反馈,即图像中的局部提取和上下文预测的一致。我们可以从这些与上下文预测的一致中得到更丰富的反馈。要做到这一点很难,但我认为现在正沿着这条线发展。
Abbeel:你对SimCLR这项工作以及它与更普遍的学习的差异有什么看法?你怎么看待最近的MAE(Masked Autoencoders)?它与你刚才的描述有什么关系?
Hinton:我所得到的相关有证据表明,这种目标函数是好的。
我个人没有写过这篇论文,但在很久以前,曾与Sue Becker写过一篇关于从图像的两个不同斑块得到一致表征思考的论文。我认为,那是关于通过在同一图像的两个块表征之间达成一致、来进行自监督学习的想法的起源。
Abbeel:我们来谈一谈你提到的使用端到端学习反向传播来支持端到端学习的方法。你的意思是,以接近大脑的学习方式,即从更少的数据中学习、提取更多数据,将是在了解大脑运作方式上取得进展的关键。今天,很多人正在努力解决从无标签数据中有效学习的问题,因为它需要的人力更少,但他们仍然使用跟反向传播相同的机制。
Hinton:我不喜欢MAE的地方在于,你有一些输入补丁,经过多层表征,在网络的输出中试图重建缺失的输入补丁。
我认为大脑有这些层次上的表征,但每个层都在试图重构下面那个层次的内容。并不是说经历了这么多层再返回,而是有这么多层,每一层都试图重建下一层的东西。在我看来,这更像大脑,但问题在于:如果不使用反向传播,你能做到这一点吗?
显然,如果通过多个层次重建输出的缺失部分,你需要通过所有层次来获得信息,而反向传播已经内置于所有的模拟器中,但大脑并非如此。
Abbeel:想象一下,大脑在处理这些局部的目标时有三个选择:一是我们想要优化的局部目标是什么?二是用什么算法来优化它?三是我们将神经元连接在一起进行学习的架构是什么?在这三个问题上,我们似乎都还没有做得很好。你怎么看?
Hinton:如果你对认知学习感兴趣,那就非常清楚。
你想要一个可视主题地图,一种书写主题地图的层次结构,架构上是局部连接的。对此,你可以通过假设在反电子地图上某个位置的东西是由其对应的视神经图决定的,来解决很多信用分配问题。不需深入系统,而是使用局部交互、弄清楚像素在其中的作用。
目前,神经网络所做的是,假设在每个局部性上使用相同函数,卷积神经网络如此,transformer也如此。大脑不一定能做到这点,因为这会涉及权重共享,且要在每个地方做完全相同的计算。而有一种方法能达到权重共享的目标,那就是卷积,我认为它在大脑中能起到更有效的作用。
如果你想通过上下文预测同局部提取达成一致,那么想象一下,有一堆列在做本地预测,并通过查看附近的列以获得其上下文预测。你可以把上下文看作是本地预测的老师,反之亦然。把上下文中的信息看作是被提炼到本地提取器中。由此可得到的是相互提炼,它们都在为对方提供教学信号,这意味着关于你应在一个地方提取的知识正被转移到其他地方。
当它们试图达成一致,或者想让不同位置的事物达成一致,例如希望鼻子和嘴巴同意各自是同一张脸的一部分,那它们都应该产生相同的表征,当你试图在不同地方获得相同表征,就需要允许知识从一个地方被提炼到另一个地方,这与实际的权重共享相比有更大的优势。
显然,从生物学角度来说,一个优势是不同位置的详细架构无需相同,另一个优势是前端处理无需相同。
拿视网膜来说,不同部分的视网膜有不同大小的感知域,卷积网忽略它们多个不同的分辨率,并在每个分辨率上做卷积,但它们无法执行不同的前端处理。而如果从一个位置提取到另一个位置,要做的就是从光学阵列获得相同函数在不同位置的表示,此时在不同的位置对光学阵列采取不同的预处理也可以,即使前端处理不同,但仍可以提炼出表示整个功能的知识。
所以,虽然提取比实际显示权重效率低,但它更灵活,在神经系统上更可信。这也是我一年前提出一个重要看法,即必须有类似权重共享的技巧来提高效率,但如果你试图让相邻事物达成一致,那本地提取就会起作用。
Abbeel:既然大脑的方式不同,我们是否应该继续用另一种方式来考虑权重共享,还是说我们不应该继续权重共享?
Hinton:我认为应该继续在卷积网中做卷积的事情,在transformer中共享权重,通过共享权重来共享知识。要记住,大脑分享知识不是通过共享权重,而是通过共享从输入到输出的功能,利用提取来传递知识。
人脑尖峰神经元 vs. GPU人工神经元
Abbeel:现在还有一个话题被广泛谈论,大脑与当前神经网络很不同,神经元是用尖峰信号工作的,跟我们GPU中的人工神经元存在很大的差异。我很好奇你对这个问题的看法,这只是一个工程上的差异,还是我们可能需要更多知识来更好理解?
Hinton:这不仅仅是工程上的不同。一旦我们理解了为什么硬件这么出色,就能理解它对大脑地理标记单位视网膜是敏感的。例如,视网膜不使用尖峰神经元,有大量非尖峰神经的处理。一旦理解了大脑皮层的运作原因,我们就会发现这是生物学的正确做法。我认为这取决于学习算法是如何得到尖峰神经元网络的梯度,但目前没有人真正知道。
关于尖峰神经元的问题,往往会出现两种截然不同的决策:它在什么时候会出现尖峰,以及它会不会出现尖峰。这就是离散决策。人们想出各种替代函数来试图优化系统。
2000年,Andy Brown和我有一篇关于尝试学习尖峰玻耳兹曼机的论文,如果有一个适合尖峰码的学习算法就太棒了,我想这是阻碍尖峰神经元硬件发展的主要原因。
许多人已经意识到可以用这种方式制造更节能的硬件,并且也构建了巨大的系统,但真正欠缺的是一个出色的学习结果。因此我认为,在得到一个好的学习算法之前,我们将无法真正利用尖峰神经元做事情。
因此,当你采取一个标准的人工神经元时,只需要问:它是否能分辨输入的两个值是否相同?不能。但当你使用尖峰神经元时,就很容易建立一个系统,两个尖峰在同时到达,它们就会放电,不同时间到达则不会。因此,使用峰值时间似乎是一个衡量一致性的好方法。
正如生物系统,你之所以可以看到方向、声音,来自于信号到达两只耳朵的延时,如果拿一英尺来说,光大约是一纳秒,而第一个声音大约是一毫秒。但如果我将东西在你侧面移动几英寸,到两只耳朵的时间延迟差异,到两只耳朵的路径长度只有一英寸的一小部分,即信号到两只耳朵的时间差只有一毫秒。因此我们对30毫秒的时间很敏感,以便从声音中获得立体声。我们通过两个轴突(不同方向尖峰传递)来做到这一点,一个来自一个耳朵,一个来自另一个耳朵,当尖峰同时到达,就有细胞发出信号。
因为尖峰时间可以被用来做非常敏感的事情,那当它的精确时间没被使用时,将是件令人惊讶的事。长时间以来,我一直认为,如果你能用尖峰时间来检测自监督学习等方面的一致性,或者说,我提取了你的嘴巴和鼻子的信息,从嘴巴和鼻子来预测你整个面部,当你的嘴巴和鼻子能正确组成一个面部,这些预测就会一致。如果能用尖峰时间来观察这些预测是否一致就更好了,但很难做到,因为我们不知道、也没有一个好的算法来训练网络,就像神经元一样。
Abbeel:你刚才是说视网膜不使用所有尖峰神经元?大脑有两种类型的神经元,有些更像我们的人工神经元,有些则是尖峰神经元?
Hinton:我不确定视网膜是否更像人工神经元,但可以肯定的是,大脑新皮层有尖峰神经元,这是它的主要交流模式,发送尖峰从一个参数到另一个参数细胞。
我有一个很好的论点:大脑有非常多参数,和我们使用的典型神经网络相比没有太多的数据,这种状态下有可能过度拟合,除非使用强大的正则化。一个好的正则化技术是每次你使用一个神经网络,你忽略了一大堆的单元,因此可能也忽略神经元正在发送尖峰的事实。它们真正交流的是潜在的泊松速率。我们假设它是传递的。这个过程是有代价的,它随机发送脉冲,这个过程中速率是变化的,由输入到神经元的信息决定,你可能会想要把真实值的速率从一个神经元发送到另一个,当你想做很多正则化,可以把真实值的速率加上一些噪声,增加噪音的一种方法是使用会增加很多噪音的脉冲,大多数情况下就是退出的动机。
当你观察任何一个时间窗口,大多数神经元都不参与任何事情,你可以把尖峰看作是一个代表性的潜在个人比率。这听起来非常糟糕,因为它很嘈杂。但一旦你理解了正则化,这会是个非常好的主意。
所以我仍然对这个想法情有独钟,但实际上我们根本没有使用尖峰计时。它只是使用非常嘈杂的个人速率表示来成为一个好的正则化器,而我有点像在两者之间切换。有些年我认为神经网络是确定性的。我们应该有确定性的神经网络,这是再往后几年的东西。我认为这是一个5年的周期。最好的随机性也非常重要,它会改变一切。因此,玻尔兹曼机本质上是随机的,这对它们来说很重要。但重要的是,不要完全致力于这两种情况,而是要对这两种情况持开放态度。
现在重要的是,更多地考虑你刚才所说尖峰神经元的重要性,并弄清楚如何有效地训练尖峰神经元网络。
Abbeel:如果我们现在说不要担心训练的部分(考虑到它看起来更有效率),难道人们不想分布纯粹的推理芯片,也即是分别进行有效的预训练,然后将其编译到尖峰神经元芯片上,使它具有非常低功率的推理能力?
Hinton:很多人都想到了这一点,这非常明智,它可能在进化的道路上使用神经网络进行推理是有效的,并且所有人都在这样做,也被证明是更有效的,不同的公司已经生产了这些大的尖峰系统。
一旦你在做这些事情,你会对推理越来越感兴趣,可以用一种方式来学习在尖峰时期更多利用可用的能量。所以你可以想象有一个系统,你学习时是使用辅助设备,不是模拟硬件,例如不在这个低能量的硬件上,但你可以将其转移到低能量的硬件上就很好。
AlexNet的诞生背景
Abbeel:什么是AlexNet?它是如何产生的?你从研究受限玻尔兹曼机器到试图理解大脑如何工作的路径是什么?
Hinton:我想说,你可能突然间就证明了,更传统的神经网络方法确实行得通。
大约在2005年,我被可以使用成堆的限制电压机器来预先训练特征检测器的想法迷住了,它可以更容易地让Backdrop工作,结果是有足够的数据。后来,因为Faith Ali和她的图像识别团队有了足够的数据,尽管预训练即将回归,但不再需要预训练。
GPT-3有预训练,预训练也是个好主意,可一旦我们发现你可以预训练,这能使背景工作更好,对语音有很大的帮助,就像George John 和 Abdul Rahman Muhammad在2009年做的那样。此后,我小组的研究生 Alex 开始将相同的想法应用于视觉,很快我们发现,当你有ImageNet的数据时,你并不需要预训练。
我记得有一天Ilya来到实验室说:「看,现在我们已经有了语音识别,这东西真的很管用 ,我们必须在其他人之前做出ImageNet。」Janella也走进实验室表达了这样的想法,他的学生和博士后也说:「哇,但是我正在忙其他的事情。」事实上他没有办法让谁致力于此。后来他说服了Alex通过对数据进行预处理来完成这个实验,数据都被预处理成他所需要的。
这只是背景。我想说的是,很多研究人员都知道这个,但可能不是每个人都知道Alex的结果和Ilya之前在ImageNet图像识别竞赛上的工作相比错误率降低了一半。这就是为什么每个人都从手工设计的方法转向计算机视觉,尝试直接编程。
从学术界到谷歌
Abbeel:哪一刻标志着你的职业生涯发生了重大变化?从学术界到谷歌,对你产生了什么影响?为什么会发生这种转变?
Hinton:我有一个残疾的儿子需要抚养,所以需要一大笔钱,一个方法是教课。2012年,我教了一门神经网络的课程。但他们的软件不是很好,所以做起来非常烦躁。每周一章,我必须给他们提供教学视频,会有一大堆人要看。有时上完课第二天Yoshua Bengio会问:「你为什么(在课上)这么说?」
我与多伦多大学最初的协议是,如果从这些课程中赚到任何钱,我希望大学将钱与教授们分享,他们没有明确说明具体的分配方式,但人们认为大概在50%或类似,我对此没有意见。但在我开始授课后,教务长在没有咨询我或其他人的情况下做出了一个单方面的决定:如果资金来自课程平台,大学会拿走所有的钱,而教授什么都拿不到。我让学校帮我准备视频,制作视频的人会来问我,你知道制作视频有多贵吗?
这让我对学校感到非常生气,所以我开始考虑教授之外的其他职业选择。那个时候,我们突然引起了各种公司的兴趣,他们要招募我们,要么是给予大额拨款,要么是资助创业。通常我会说不,我不想试图从研究中赚取额外的钱,但那次学校骗了我钱的经历,让我想找一些其他的方式来赚钱。
Abbeel:当时的拍卖会是一种怎样的场景?
Hinton:那是在NIPS会议上,Terry在一个赌场里组织了一些小活动。在酒店地下室烟雾缭绕的房间里,有人在楼上赌博,感觉就像在拍电影。我们完全不知道自己值多少钱。我咨询了一位律师,他说我可以聘请专业的谈判人员,或者直接进行拍卖。
据我所知,这是第一次有像这样的小团体进行拍卖。我们通过Gmail进行拍卖,人们必须把他们的出价用电子邮件发给我,并附上电子邮件的时间戳。价格一直在涨,一开始是50万美元,之后是100万美元,这很令人兴奋,我们发现自己的价值比我们想象的要高得多。
回想起来,我们也许可以得到更多,但我们已经看到了一个我们认为是天文数字的金额。我们都想为谷歌工作,所以我们停止了拍卖,并确定加入谷歌。
Abbeel:据我了解,你今天还在谷歌。
Hinton:我现在还在谷歌工作,已经9年了。我喜欢谷歌的主要原因是,核心团队非常好。
我和Jeff Dean相处得非常好,他非常聪明,而我是非常直截了当的。他希望我做的正是我想做的事情,也就是基础研究。他认为我应该做的是尝试提出全新的算法,这就是我想做的,非常适配。我不擅长管理一个大团队,去提高百分之一的语音识别能力。但我很乐意,最好是可以再一次彻底改变这个领域。
Abbeel:你曾是多伦多大学的计算机科学教授,但你从来没有获得过计算机科学学位,你获得过心理学学位,而且你还曾做过木匠。你是如何从学习心理学、到成为一名木匠、再到进入人工智能领域的?
Hinton:在剑桥的最后一年,我过得很艰难。考试后我就退学当了一名木匠,我喜欢做木工活胜过其他任何事。高中时上完所有的课程,晚上就可以呆在家里做木工活,所以我成为了一名木匠,做了大约6个月。
但我不可能以做木匠为生。我曾是一名木匠兼装修师,在装修的过程中赚了钱,我很享受做木工活的乐趣。直到我遇到了一个真正的木匠,才意识到我在木工方面完全没有希望。他可以用手锯把一块木头完全切成方形。和他比起来,我太绝望了,我决定还是回到人工智能。
Abbeel:据我所知,你的博士是在爱丁堡大学攻读的。
Hinton:是的,我去那里攻读神经网络的博士学位,和著名教授Christopher Longa Higgins一起做研究,他真的非常出色,在30多岁时就因为研究出硼氢化物的结构而差点获得诺贝尔奖。他对神经网络以及与全息图的关系很感兴趣,大约在我到达爱丁堡的那天,他对神经网络失去兴趣,因为读了Winograd的论文而完全改变看法,认为神经网络是错误的思考方式。尽管他完全不同意我所做的事情,但他并没有阻止我做这件事。
Abbeel:70年代初,在其他人都说Minsky和Papert所提出的神经网络是无稽之谈时, 你为什么要做这个东西?
Hinton:事实上,我给那个小组做的第一次演讲就是关于如何用神经网络做真正的递归。这是在1973年、即49年前的演讲。我发现的一个项目是,当你想要一个能够画出形状的神经网络,它把形状分成不同的部分,有可能可以让一部分的形状由相同的神经硬件来画,而整个形状是由神经中枢来画的,神经中枢存储整个形状,且必须记住它在整个形状中的位置、以及整个形状的方向和位置大小。
但我现在想法改变了,你想用同样的神经元来画出形状的一部分时,你需要在某个地方记住整个形状是什么,以及你在其中走了多远。一旦你完成了这个子程序,你就可以跳回那个地方。形状这一部分的问题是,神经网络如何记住它,显然你不能只是复制神经元,因此我设法让一个系统工作和一直适应,让神经网络通过快速的重度和权重来记住它。因此,我有了一个神经网络在做真正的递归,重复使用相同的神经元和权重来做递归调用,正如在1973年所做的高级调用一样。
我认为人们不理解我的演讲,因为我不擅长演讲,但他们也会问为什么要在你的比赛中做递归。他们不明白的是,除非我们让神经网络做递归之类的事情,否则我们永远无法解释一大堆事情,现在这又变成了一个有趣的问题, 所以我打算再等一年,直到这个想法成为一个真正的古董。当它将有50年的历史时,我会写一份研究报告。
Abbeel:当你和大家一样是博士生或者博士刚毕业时,几乎所有人都告诉你,你所从事的工作是在浪费时间,而你却深信并非如此,你这种信念来源于哪里?
Hinton:我想很大一部分原因是我的学校教育。我的父亲把我送到了一所昂贵的私立学校,那里有良好的科学教育,我从7岁起就在那里上学。那是一所基督教学校,其他所有的孩子都信仰上帝,但我在家里被教导说那都是胡说八道,在我看来那确实是胡说八道,所以我习惯了别人都是错的。
我认为这很重要。你需要对科学有信念,愿意去研究那些显然正确的东西,即使其他所有人都说那是胡说八道,而且事实上并非所有人都那么认为。在70年代初,研究AI的几乎所有人都认为(我做的东西)是胡说八道。但如果你再往前看一点,在50年代,冯·诺伊曼和图灵都相信神经网络,图灵尤其相信神经网络的强化训练。我仍然相信,如果他们没有早逝,整个人工智能的历史可能会非常不同,因为他们是强大到足以左右整个领域的智者,他们还对大脑是如何工作的非常感兴趣。
非永生计算机:成本低,通过学习获取知识
Abbeel:现在的深度学习非常有效。它是我们所需要的全部,还是说我们还需要其他东西?你曾说过(也许我不是原文引用你的话),深度学习可以做到一切。
Hinton:我那样说的真正意思是,用随机梯度发送一大堆参数,深度学习得到梯度的方式可能不是反向传播,以及你得到的梯度可能不是最终的性能测量,而是这些局部目标函数。我认为这就是大脑的工作方式,而且我认为这可以解释一切。
我想说的另一件事,是我们现在拥有的计算机对银行业务非常有帮助,因为它们能记住你的账户里有多少钱。如果你去银行问,他们只会告诉你大概有多少。我们无法给出确定答案,因为我们无法做到那么精确,只能给出一个大概。在计算机处理银行业务或操控航天飞机时,我们可不希望那种事情发生,我们很希望计算机能得到完全正确的答案。我认为,人们还没有充分意识到我们做出了一个关于计算将如何发展的决定,即我们的计算机、我们的知识将会不朽。
现有的计算机有一个计算机程序,或者权重很多的神经网络(那是一种不同类型的程序)。但如果你的硬件坏了,你可以在另一个硬件上运行相同的程序。这就使得知识不朽。它不依赖于特定的硬件存活。而不朽的代价是巨大的,因为这意味着不同位的硬件必须做完全相同的事情,这显然是在做完所有错误校正之后的零点校正。它们必须做完全相同的事情,这意味着最好是数字化的或者基本数字化,它们会做一些事情,比如把数字相乘,这需要消耗很多很多的能量来使运算变得非常谨慎,而这不是硬件的目标。一旦你想要让你的程序或神经网络不朽,你就会投入到非常昂贵的计算和制造过程中。
如果我们愿意放弃不朽,我们将得到的回报是非常低的能源计算和非常廉价的制造。所以,我们应该做的不是制造计算机,而是让它们进化。打个比喻,如果你有一棵盆栽植物,你把它从花盆里拔出来,会得到一团球状的根部,这正是花盆的形状,所以所有不同的盆栽植物都有相同形状的根部,而根系的细节都不一样,但它们都在做同样的事情,它们从土壤中提取养分,它们的功能是一样的。
而这就是真正的大脑的样子,这就是我所说的非永生计算机的样子。这些计算机是培育出来的,而不是制造出来的。你不能给它们编程,它们需要在学习,它们必须有一个某种程度上是内置的学习算法。他们用模拟来做大部分的计算,因为模拟非常适合做一些事情,比如取电压,乘以电阻,然后把它变成电荷,再把电荷加起来,芯片已经做了这样的事情。问题是你接下来要做什么,你如何在这些芯片中学习。而目前,人们已经提出了反向传播或各种版本的装箱机。我认为我们还需要别的东西,但我认为,在不久的将来,我们将会看到非永生计算机,它们的制造成本很低,它们必须通过学习来获取所有的知识,而且它们所需的能量很低。当这些非永生计算机死亡时,它们的知识也会随之死亡。看权重是没有用的,因为那些权重只适用于硬件。所以你要做的,就是把这些知识提取到其他计算机上。
大规模语言模型在多大程度上理解了语言
Abbeel:今天那些占据头条的神经网络都是非常大的。在某种意义上,大型语言模型的规模已经开始向大脑靠近,非常令人印象深刻。你对这些模型有什么看法?你在其中看到了什么局限性?另一方面,比如蚂蚁的大脑显然比人类小得多,但公平地说,我们人工开发的视觉运动系统还没有达到蚂蚁或蜜蜂的水平。所以,对于最近语言模型的重大进步,你有什么样的想法?
Hinton:蜜蜂的大脑可能在你看来很小,但我认为蜜蜂有大约一百万个神经元,蜜蜂更接近GPT-3。但蜜蜂的大脑实际上是一个很大的神经网络。
我的观点是,如果你有一个参数很大的系统,而且这些参数是用一些合理的目标函数中的梯度下降来调整的,那么你会得到很好的性能,就像GPT-3那样,还有我已经提到很多谷歌的类似模型。这并没有解决它们是否能做到和我们一样的问题,我认为我们在做更多的事情,比如我们在神经网络中做的递归。
我在去年那篇关于GLOM的论文中试图阐述这些问题,关于如何在神经网络中做部分孔层次结构。你肯定要有结构,如果你说的符号计算只是你有部分和整体结构,那么我们做的就是符号计算。这通常不是人们所说的那种偏硬的符号计算,那种符号计算意味着你在使用符号,你在符号上操作的规则只取决于你处理的符号字符串的形式,一个符号所具有的唯一属性是它与其他符号是相同或不相同,也可能是它可以作为指针来得到一些东西。
论文地址:https://arxiv.org/pdf/2102.12627.pdf
神经网络与此非常不同,所以我认为我们做的不是那种偏硬的符号处理,但我们肯定做孔层次结构。但我们是在巨大的神经网络中做的,我现在不太清楚GPT-3在多大程度上能真正理解它所说的话。我认为这是相当清楚的,它不像以前的聊天机器人程序Eliza,只是重新排列符号串,而完全不知道它是在说什么。相信这一点的理由是,比如你用英文说「给我一张仓鼠戴着红帽子的图片」,它就会画出一张仓鼠戴着红色帽子的图片,而它之前从来没有预先做过这个配对,所以它必须在给出图片之前理解英语字符和图片之间的关系。如果你问这些神经网络怀疑论者、神经网络否定论者:「你如何证明它理解了」,我想他们也会接受。如果你让它画一幅画,它就画出那副画,那么它就是理解了。
Abbeel:最近谷歌的PaLM模型展示了它是如何对笑话的机制进行有效解释的。这似乎是对语言非常深刻的理解。
Hinton:不,它只是在重新排列训练中的单词。我不同意「如果不是理解了笑话所讲的是什么,它怎么可能会产生那些对笑话的解释」这种想法,我仍然对此持开放态度,因为它的框架是反向传播的,它会走向一种与我们完全不同的理解。很明显,对抗性图像告诉你可以通过它们的纹理来识别物体,在这个意义上你可能是正确的,因为它会泛化到其他物体实例。
但这是一种与我们完全不同的方法,我喜欢以昆虫和花朵为例。昆虫可以看到紫外线。在我们看来相同的两朵花,在昆虫看来可能完全不同。而现在因为花朵在我们看来是一样的,我们就能说是昆虫搞错了吗?这些花和昆虫一起进化,紫外线向昆虫发出信号,告诉它们这是哪朵花。很明显,昆虫是正确的,我们只是看不出区别而已,这是另一种思考对抗性例子的方式。所以问题是,在昆虫的例子中,谁是对的?仅仅因为两朵花在我们看来是一样的,并不意味着它们真的是一样的,在这种情况下,可能昆虫关于两朵花是非常不同的看法是正确的。
Abbeel:对于我们目前神经网络的图像识别,有人可能会认为,既然我们创造了它们,并希望它们为我们做一些事情,那么我们真的不想只是承认「好吧,它们是对的,我们是错的」。我的意思是,它们需要识别出车和行人。
Hinton:是的。我只是想告诉大家,这并不像你想的谁对谁错那么简单。我那篇关于GLOM的论文重点之一就是尝试建立更类人的感知系统。所以它们会更容易犯和我们一样的错误,而不会犯那些不同寻常的错误。举个例子,如果你有一辆自动驾驶汽车,它犯了一个任何正常人类司机都会犯的错误,这似乎比犯一个非常愚蠢的错误更容易被接受。
玻尔兹曼机、知识蒸馏与t-SNE降维算法
Abbeel:据我所知,睡眠也是你在考虑的事情。你能详细谈一谈吗?
Hinton:如果你剥夺人们的睡眠,他们就会变得非常奇怪,比如如果你让某人保持兴奋状态三天,他们就会开始产生幻觉。如果持续一个星期,他们就会疯掉,永远不会再恢复过来。
问题是,为什么?睡眠的计算功能是什么?如果剥夺你的睡眠会让你彻底崩溃,那么这其中可能就有一些非常重要的问题值得思考。目前的理论是,睡眠是用来巩固记忆的,或者是用来把记忆从海马体下载到大脑皮层,这有点奇怪,因为这就好像你在校园里要先经过法庭一样。很久以前,在80年代早期,Terrence Sejnowski和我有一个叫做玻尔兹曼机的理论(boltzmann machines ),它部分是基于Francis Crick 的一个见解,当时他在思考Hopfield Nets, 他有一篇关于睡眠的论文,他的观点是你可以给网络以随机的东西,并让它不要满足于随机的东西。
论文地址:https://www.cs.toronto.edu/~hinton/absps/cogscibm.pdf
所以在一个Hopfield Net中,你给它一些你想记住的东西,它会改变权重。所以这个矢量的能量更低。如果你给它一个随机的矢量,让能量变高,效果会更好,这就引出了玻尔兹曼机,我们就是通过它来实现的。如果你给它的不是随机的东西,你就会得到由模型自身的马尔可夫链所生成的东西。减少这种可能性,并增加数据的随机性,这实际上是一种最大似然学习。
我们认为这就是睡眠的意义。睡眠是学习的消极阶段。在对比学习的过程中,对于来自同一图像的两个补丁,你尝试让它们有相似的表现;对于两个来自不同图像的补丁,你尝试让它们有非常不同的表现。一旦它们不同,你要做的就不是让它们变得更加不同,而是让它们不再太过相似,这就是对比学习的原理。现在有了玻尔兹曼机器,你就无法把积极和消极的例子分开。你必须把积极例子和消极例子交叉在一起,否则整个事情就会出错。我试过不让它们交叉,要做很多积极例子,然后再做很多消极例子,这是很难的。
在对比学习中,你可以把积极阶段和消极阶段分开。所以你可以做很多正对的例子,然后做很多负对的例子。所以,如果你能把积极和消极的阶段分开在不同的时间进行,做一大堆积极的更新,然后再做一大堆消极的更新,这就会使得对比学习更加合理。即使是标准的对比学习,你也可以做得比较好,你必须使用很多动量之类的东西。所以我认为,睡眠的功能很有可能是做遗忘或做消极例子,这就是为什么你会不记得你的梦。当你醒来的时候,你会记得那些在快权重中的内容,因为快权重是一个临时存储。但当你醒来时,你只记得你醒来时做的梦的最后一分钟,我认为这是一个比其他任何睡眠理论都更可信的睡眠理论。如果把这一刻记忆去除,就能解释为什么,整个系统就会崩溃。你会犯灾难性的错误,开始产生幻觉,做各种奇怪的事情。
我再多说一点关于对消极例子的需求。如果你有一个神经网络,它试图优化一些内部目标函数,关于它的表现形式或者关于上下文预测和局部预测之间的一致性。它希望这种一致性成为真实数据的属性,而神经网络内部的问题是,你可能会在输入中得到各种各样的关联。假设我是一个神经元,我的输入中有各种各样的相关性,而这些相关性与真实的数据无关,它们是由网络的布线以及网络中的方式带来的。如果这两个神经元都在看同一个像素,它们就会有关联。但这并没有告诉你任何关于数据的信息,所以问题是,如何学会提取关于真实数据的结构而不是关于网络连接。要做到这一点,方法就是给它提供积极例子,在积极例子而非消极例子中找到结构,因为消极例子会经过完全相同的线路。如果消极例子里没有这个结构,但在积极例子里有,那么这个结构就是关于消极例子和积极例子之间的区别,而不是你的连接方式。所以,尽管人们对这一点没有太多思考,但如果你有强大的学习算法,你最好不要让它们学习神经网络自己的权重和连接。
Abbeel:你还提到了「学生模型打败老师模型」的概念。这是什么意思?
Hinton:MNIST是一个标准的数字数据库,你可以错误的标签来替换训练数据,得到一个数据集,其中的标签有20%的正确率和80%的错误率。问题是:你能从这个数据集中学习吗?学习的效果如何?答案是,你可以学习到95%的正确率。
假设老师模型(teacher model)有80%的错误率,而学生模型(student model)有95%的正确率,所以学生比老师要好很多。你是把这些训练例子一次打包,所以你不能对恰好有相似图像的不同训练案例的错误进行平均化。如果你问,若你有损坏的案例,你需要多少训练案例,这很有意思,因为图像数据集很小。你是愿意有一百万个标签错误的图像,还是愿意有一万个标签准确的图像?我有一个假设,重要的是标签和准确性之间的互信息量。如果标签是正确地被损坏了,那么90%的情况下标签和准确性之间没有互信息;如果它们损坏80%,就只有少量的互信息。
我注意到你们最近做了一些sim-to-real的工作,你们用神经网络给真实的数据打上不完美的标签,然后学生从这些标签中学习,而且学生比老师学得更好。人们很困惑,学生怎么可能比老师更好?但在神经网络中,这很容易实现。如果有足够的训练数据,即使老师很不靠谱,学生也会比老师更好。我几年前和Melody Y. Guan写过一篇关于这个的论文,里面使用了一些医学数据。论文的第一部分谈到了这个,我们的经验法则是被分配的标签和准确性之间的互信息才是重要的。
论文地址:https://www.cs.toronto.edu/~hinton/absps/WhoSaidWhat.pdf
Abbeel:关于你刚才提到的我们那项工作以及最近一些非常受欢迎的工作,通常老师会提供带噪音的标签,但并不是所有的噪音标签都被使用。有一种观点认为,只需要看那些更有信心的老师。
Hinton:这是一个很好的方法,只看那些你有理由相信的东西可能会有所帮助。在MNIST中,Melody绘制了一个图表,只要你有20%的标签是正确的,学生就会有95%的正确率。但当下降到大约15%时,你就会突然得到一个相变,此时你能做的只能是碰运气,因为无论如何学生一定会得到它,老师在说这些标签时,学生在某种程度上要了解哪些例子是正确的,哪些例子是错误的。一旦学生看到标签和输入之间的关系,那么一个错误标签的错误性就很明显。所以如果它被随机地错误启用了也没关系,但是有一个相变,在这个相变中你必须让它足够好,学生们能明白这个道理。这也解释了为什么我们的学生都比我们聪明。
Abbeel:在神经网络的学习中,尤其是当你建立模型的时候,你要理解它是什么,它在学习什么。通常人们试图在学习过程中把所发生的事情可视化,你发明了最流行的可视化技术之一t-SNE(t-Distribution Stochastic Neighbor Embedding),它背后的故事是什么?
论文地址:http://www.cs.toronto.edu/~hinton/absps/tsne.pdf
Hinton:如果你有一些高维数据,你试着画一个二维或三维的地图,你可以取前两个主分量,只画出前两个主分量。但是主分量关心的是如何让大距离正确。所以如果两个东西非常不同,主分量会非常担心它们在二维空间中差异很大。它根本不关心小的差异,因为它是在大的差异的平方上操作的,所以它不能很好地保持高维度相似性。但我们感兴趣的往往恰恰相反,对于得到的数据,我们感兴趣的是什么和什么非常相似,而不关心大的距离是否有一点错误,只要小的距离是正确的就行。我很久以前就有了这个想法,如果我们把距离转化成成对的概率会怎么样?
t-SNE有各种不同的版本,假设我们把它们变成概率对,比如距离小的对概率高,距离大的对概率低。我们把距离转换成概率,小的距离对应大的概率,在一个数据点周围放一个高斯分布,然后在这个高斯分布下计算其他数据点的密度,这是一个非标准化的概率,然后将其归一化。接着把这些点放在二维空间中以保持这些概率。所以它不关心两点之间是否相距很远。它们的成对概率很低,它不关心两个点的相对位置。这就产生了非常漂亮的地图,这被称为随机邻域嵌入。我们想到放入一个高斯分布,然后根据高斯分布下的密度随机选择一个邻居,它有非常简单的导数。
我们得到的地图倾向于把东西挤在一起,这是在把高维数据转换成低维数据时存在一个的基本问题。这是由高维空间和低维空间的本质带来的。在高维空间中,一个数据点可以接近很多其他点,而在一个低维空间中,这些点之间不会太近。如果它们都很接近这个数据点,它们之间就必须很接近。所以你在从高维到低维的嵌入上会遇到问题。当我在做t-SNE的时候,我有一个想法,我用概率作为一种「中间货币」来做一个混合模型。
我们成功地实施了这个想法,但我们始终没有把它做得很好。我很失望人们没能利用这个想法,然后我又做了一个更简单的版本,它是高斯分布和均匀分布的混合,效果更好。
其中的想法是:在一张地图上,所有的对都是等概率的,这就提供了一种经过大距离的背景概率,即一个小的背景概率;在另一张地图中,你贡献的概率与你在这张地图中的平方距离成比例,但这意味着在这张地图中,如果它们愿意,它们可以相隔很远,因为它们需要一些概率的这个事实被均匀化处理了。实际上这个版本是使用高斯分布混合的一个特例,是一个非常广的高斯分布,它是均匀的。如果我们用一整个高斯函数层级会如何呢?很多高斯函数具有不同宽度,称为t分布,这带来了t-SNE。t-SNE有一个很好的属性,它可以提供事物的多尺度信息,一旦距离变大,你会从中得到许多结构化的不同层次,包括整体结构和精细结构。
目标函数被用在所有这些工作中,这是一种相对密度下的高斯,来自我和Alberto Pacinero早些时候所做的工作,当时发表过程很难,我收到过一篇被会议拒绝的评论:「Hinton已经为这个想法工作了7年,但没有人感兴趣」。我认为这些评论其实告诉了我,我正在做非常有创新性的东西,它实际上包含了一个函数叫做NCE,它使用了对比方法,t-SNE实际上是这个函数的一个版本。但t-SNE是用来做地图的,后来我尝试做一个混合版本,它最初一直行不通,直到最终得到一个巧合,就是我想要使用的t分布。
视频链接:
https://www.youtube.com/watch?v=2EDP4v-9TUA
雷峰网(公众号:雷峰网)
雷峰网版权文章,未经授权禁止转载。详情见转载须知。
Tags: