编程技术网

关注微信公众号,定时推送前沿、专业、深度的编程技术资料。

 找回密码
 立即注册

QQ登录

只需一步,快速开始

极客时间

吴恩达采访 Andrej Karpathy(六)

王智和 人工智能 2021-12-9 22:39 138人围观

腾讯云服务器

吴恩达采访 Andrej Karpathy

吴恩达:欢迎Andrej,今天你能来我很高兴。

Andrej:是的,谢谢你的采访邀请。

吴恩达:人们已经很熟悉你在深度学习领域中的工作了,但不是每个人都知道你的个人故事,不如你就告诉我们,你是怎么一步步完成深度学习的这些工作的?

Andrej:是的,当然好,我第一次接触深度学习时,还是一个在多伦多大学的本科生,那时Geoff Hinton就在那里,他带一门深度学习课,那时候用的是受限玻尔兹曼机,在MNIST手写数字集上训练,但我真的很喜欢Geoff谈到训练网络的方式,他会用网络的智能,这些词,我那时想,这听起来,当我们训练这些数字时会发生奇迹,这是我第一次接触,不过那时候我没有了解很多细节,后来当我在不列颠哥伦比亚大学读硕士时,我上了一门[ Nato Defreiter]教的课,还是机器学习,那时我第一次深入了解这些网络和相关知识,我觉得很有趣,当时我对人工智能非常感兴趣,所以我上了很多人工智能课,但是我看到的很多东西没那么令人满意,那时课程介绍了很多深度优先搜索,广度优先搜索,Alpha-Beta剪枝各种方法,我那时不太懂,我并不满意,当我第一次在机器学习课程中见到神经网络时,我觉得这个词更技术一点,知名度没那么高,人工智能大家都能说上一两句,但机器学习就更小众一点,可以这么说吧,所以我对人工智能不满意,当我看到机器学习,我就想这才是我要花时间研究的AI 这才是真正有趣的东西,就是这些原因让我开始走这条路,这几乎是全新的计算范式,可以这么说,因为正常情况下是人类在编程,但是在这种情况下是优化程序自己写代码,所以当你建立了输入输出规范之后,你只需要给它喂一大堆例子,优化程序就自动编程,有时候它写出的程序比人工的还好,所以我觉得这只是一种非常新颖的编程思路,这就是让我感兴趣的地方。

吴恩达:然后通过你的工作,其中一件让你声名远扬的事是你是ImageNet分类竞赛的人类基准,这是怎么来的?

Andrej:所以基本上,他们的ImageNet比赛可以说成是计算机视觉领域的世界杯,不管人们是否注意这个基准和数字,我们的错误率也会随时间下降,对我来说,人类在这个评分标准上的位置并不清楚,我之前在CIFAR-10数据集上做了类似的小规模实验,我在CIFAR-10数据集中做的是,我观察了这些32x32的图像,我试图自己对他们进行分类,那时候只有十大类,所以很容易构造一个界面去人工分类,那是我自己的错误率大概是6%,然后根据我实际见到的东西,一个具体任务有多难,我预测出最低能达到的错误率大概会是多少,好吧,我不记得具体数字是多少,我想大概是10%,现在算法做到了3%或2%,或者某个变态的数值,那是我第一次做人类基线实验,非常有趣,我认为这是非常重要的,做这个基线的目的和你的视频里介绍的一样,我的意思是你真的希望这个数字能够表示人类的水平,这样我们就可以和机器学习算法比较,而对于ImageNet似乎存在一些分歧,这个基准到底有多重要,应该花多少精力去尽量得到较低的数字,我们甚至不了解人类自己在这个评分系统中的位置,所以我写了这个JavaScript界面,我给自己看图,然后ImageNet的问题在于,你不只有10个分类,你有1000个分类,这几乎就像一个用户界面挑战,显然我自己记不住1000多个分类,所以我应该怎么设计这个界面,让比赛公平一点,所以我把全部分类列表处理,然后给我自己看看各个分类的例子,所以对于每张图像,我大概浏览了1000多个类别,只是想看看,根据我在每个类别里看到的例子判断这个图像可能是什么,而且我认为这个练习本身就是非常有启发性的,我的意思是,我不明白为什么ImageNet有三分之一类别都是狗,狗的品种,所以我兴致勃勃地看着那个网络花了大量时间去处理狗,我想它的三分之一性能用来处理狗。我这个小实验做了一两个星期,我把其他所有任务都搁置了,我那时想这练习非常有趣,我最后得到了一个数字,我觉得一个人是不够的,我需要更多人参与到这个实验中来,我试图在实验室内组织人员做同样的事情,我想那时大家都不怎么愿意贡献,花上一两周时间来做这么痛苦的工作,就是坐五个小时,尝试分辨出这只狗的品种是什么,所以在这方面,我无法得到足够多的数据,我们大概估计了一下人类的表现,我觉得很有趣,然后就传开了,那时我还没觉得很明显,我只是想知道这个数字,但这很快变成了一个概念,大家都很喜欢这个事实,然后就这样了,大家都开玩笑地说,我是那个作为基准的人,当然,我都笑死了,是啊。

吴恩达:当DeepNet软件超越了你的表现时,你有没有很惊讶?

Andrej:绝对,是的,绝对的,我的意思是,有时一张图真的很难看出是什么,那图就是小块黑白色,还有一些黑点,到处都是,我没看出来是什么,我只能猜测这属于20个类别之间,但网络就直接懂了,我不明白是怎么一回事,所以这里有点点超人类的意思了,但还有,我想网络非常擅长识别这些,地砖图案和纹理的统计规律,我想在这方面,网络比人类表现优秀毫不奇怪,它可以从大量图像中提取精细的统计特征,而在许多情况下,我很惊讶,因为有些图像需要识字,图片有时就是一个瓶子,你看不出来是什么,但它上面有文本,告诉你它是什么,作为人类,我可以阅读文字,这没问题,但网络必须自己学习读取信息来识别物体,因为单看图像并不明显。

吴恩达:还有一件事让你声名远扬,深度学习社区一直很感激你的贡献,就是你教了CS231n课程,并把它放到网上,可以告诉我具体的经过吗?

Andrej:是的,当然了,所以我有个强烈的感觉,这种技术是革命性的,很多人都希望能用上,这几乎像一把锤子,我想做的是,我那时能够随意把这把锤子交给很多人,我觉得这种工作很有吸引力,从博士生的角度来看,不太建议做这种事,因为你会把你的研究搁置一边,我的意思是说,这占用了我120%时间,我必须将所有研究放一边,我是说,这门课我带过两次,每次都要4个月时间,所以时间基本上是花在课上,所以从这个角度来看不太建议,但这基本上是我的博士阶段的亮点,这与研究甚至没有关系,我认为教一门课绝对是我博士生的亮点,只要看到学生,看到他们真的很兴奋,这门课和一般的不同,通常,课程里讲的内容是19世纪发现的,这些经典知识,但这样一门课,我可以介绍一周前刚发表的论文,甚至昨天刚发表的,这些都是前沿研究,想本科生,还有其他学生,真的很喜欢这门课贴近前沿的特点,他们发现他们是可以理解到前沿的,这不是核物理或火箭科学,你只需要会微积分,代数,你实际上就能理解所有背后的原理,我想这个事实如此强大,事实上这个领域日新月异,学生们就会觉得每天都处于时代浪潮的前端,我想这就是大家那么喜欢这门课的原因。

吴恩达:而且你真的帮助了很多人,送出去了很多锤子,是啊,作为一个研究深度学习,有些时日的研究员,这个领域还在迅速发展,我想知道,你自己的想法是怎样的,这么多年来你对深度学习的理解有何改变?

Andrej:是的,基本上当年我见到的是受限玻尔兹曼机处理这些手写数字数据,那时我还不知道这种技术会被大规模应用,不知道这个领域有多重要,还有,当我开始研究计算机视觉,卷积网络时,这些概念都已经存在,但它们并不像是计算机视觉界很快就会使用的东西,那时人们的看法是,这些处理小案例不错,但无法推广到更大的图像,这种认识错到极端了。[笑]所以基本上,我很惊讶现在这个技术到处都在用,结果非常好,我说这是最大的惊喜,而且还不仅如此,它在一个地方表现很好,比如ImageNet,但另一方面,没有人预计到它的趋势, 至少我自己没预计到,就是你可以把这些预先训练好的网络迁移到其他领域,你可以在任意其他任务中精细调校网络,因为现在你不只解决了ImageNet问题,而且你需要数百万个例子,网络变成了非常普适的特征提取器,而且这是我的第二个想法,我觉得更少人预计到了这个发展,还有这些论文,它们就在这里,人们在计算机视觉里的一切努力,场景分类,动作识别,对象识别,基本属性等等,人们只需要通过微调网络就把每个任务都解决了,所以对我来说是非常意外的。

吴恩达:是的,我想监督学习在媒体上很热门,但是,然而预先训练微调或迁移学习,其实都效果拔群,但这些领域媒体报道更少一些。

Andrej:对的,就是这样,是的,我觉得其中一个进展不大的方向是无监督学习,被寄予了太多希望,我认为这才是真正吸引,在2007年左右吸引很多研究人员进入了这个领域的概念,但我觉得那个梦想还没被实现,还有令我意外的一方面是,监督学习竟然效果这么好,而无监督学习,它还是处于很原始的状态,怎么利用它,或者怎么让它达到实用,还不太明显,即使很多人还是对它的未来深信不疑,我说在这个领域,可以用这个词。

吴恩达:所以我知道你是其中一个,一直在思考AI远期未来的研究员,你想分享你的想法吗?

Andrej:所以我最后花了差不多一年半,在OpenAI这里思考这些话题,在我看来,这个领域会分成两条轨迹,一边是应用AI 就是搭建这些神经网络,训练它们,主要用监督学习,有可能用无监督学习,然后慢慢提升性能,比如说提高图像识别率之类的;另一个方向是,更一般的人工智能方向,就是如何让神经网络变成一个完全动态的系统,可以思考,有语言能力,可以做人类能做的所有事情,并以这种方式获得智能,我认为一直到很有趣的地方是 例如在计算机视觉中,我们一开始研究的方向,我想是错误的,那时我们试图把它分解成不同的部分,我们就像是,人可以识别人,可以识别场景,人可以识别物体,所以我们就开始研究人类能做的各种事情,一旦做出来了,就分成各种不同的子领域了,一旦我们有了这些独立的系统,我们再开始把它们组装起来,我觉得这种做法是错误的,我们已经见到历史上这么做结果如何,我想这里还有其他类似的事情正在发展,很可能是更高水平的AI,所以人类会问问题,会做计划,会做实验来了解世界运作的规律,或者和其他人交谈,我们就发明了语言,人们试图通过功能来区分各种能力,然后复制每一种能力,把它们放到一起组成某种机械大脑,我觉得这个方法论是错的,我更感兴趣的领域,不是这种分解的,还原论的手段,而是希望构建一种全面动态的神经网络系统,这样你一直处理的是完整的代理人程序。

那么问题在于,你如何构思目标去优化权重,优化构成大脑的各种权重,才能得到真正的智能行为?所以这是OpenAI里我一直在想的很多东西,我认为有很多不同的方式,人们在这个问题上也有很多思考,,例如,在监督学习方向,我在网上发了这篇文章,这不是一篇文章,而是我写的一个小故事,这个小故事尝试构想出一个虚拟的世界,如果我们只通过扩大监督学习规模来逼近这个AGI,我们知道这是可行的,然后得到像这样的东西,比如亚马逊土耳其机器人,人们可以接触不同机器人,让它们完成各种任务,然后我们在这个基础上训练,把它看成是模仿人类的监督学习数据集,这样的东西会具体是什么样的,所以这里还有其他方向,比如基于算法信息理论的无监督学习,如AIXI,或者构成人工生命,看起来更像人工进化的东西,所以这就是我花时间思考很多的事情,我已经得到正确答案了,但我不愿意在这里说。

吴恩达:至少我们可以通过阅读你的博文来了解更多信息。

Andrej:是的,当然了。

吴恩达:你今天已经提出了很多建议,还有很多人想进入AI和深度学习领域,对于这些人来说,你有什么建议呢?

Andrej:是的,当然了,我想人们在讨论CS231n的时候,为什么他们认为这是一个非常有用的课程,我听到最多的是,人们很喜欢我会一直讲到最底层的技术细节,他们要调用的不是一个库,而是可以看到底层代码,看到一切是怎么实现的,然后,他们自己去实现各大部分,所以你必须接触到最底层,知道一切程序背后的原理,不要随便抽象化,你必须充分了解全栈,了解整个流程,当我学习这些内容时,我发现这样学,学到的东西最多,就是你自己从零开始去实现,这是很重要的,就是这部分学习性价比最高,从理解领域知识方面来看,所以我自己写库,这个库叫ConvNetJS,它是用Javascript写的,可以实现卷积神经网络,那是我学习后向传播的方法,我一直建议别人不要一开始就用TensorFlow之类的东西,一旦你自己写出了最底层的代码之后,你可以用,因为你知道所有背后的原理,这样你就很放心,现在就可以使用这样的框架,可以帮你省去一点细节功夫,,但你自己必须知道背后的所有原理,所以这是帮助我最多的东西,这是人们在上CS231n课程时最感兴趣的东西,所以我建议很多人这么做。

吴恩达:不是直接跑神经网络,让一切自然发生。

Andrej:是的,在某些层的序列中,我知道当我加入一些dropout层,可以让它表现更好,但这不是你想要的在这种情况下, 你会无法有效调试,你不能有效地改进模型。

吴恩达:是的, 这个答案让我想起我们的deeplearning.ai课程,一开始先用几周介绍Python编程,然后再..。

Andrej:是的 这样很好。

吴恩达:非常感谢你来到这里分享你的见解和建议,在深度学习世界中,你已经是很多人的偶像了,我真的很高兴,非常感谢你今天可以接受采访。

Andrej:是的 谢谢你邀请我。

腾讯云服务器

相关推荐

阿里云服务器
关注微信
^