失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 价值连城 ImageNet图像分类大神 Andrej Karpathy的采访 给AI 深度学习从业者的建议

价值连城 ImageNet图像分类大神 Andrej Karpathy的采访 给AI 深度学习从业者的建议

时间:2022-10-19 01:10:54

相关推荐

价值连城 ImageNet图像分类大神 Andrej Karpathy的采访 给AI 深度学习从业者的建议

欢迎你 Andrej 非常荣幸今天能邀请到你 谢谢你的邀请 很多人都知道你在深度学习方面的工作 但并不是每个人都了解你的个人经历 那么 你能先讲讲 你是如何走上深度学习的研究道路吗 —

当然可以 我记得 我第一次接触深度学习 是在多伦多大学读本科的时候 当时Geoff Hinton在那儿开设了一门深度学习课程 当时使用MNIST数字集训练

受限玻尔兹曼机(Restricted Boltzmann Machine) 我很喜欢Geoff所说的训练网络的方式 他当时用的术语是 网络的心智 我当时觉得 在使用这些数据进行训练时 会发生某些神奇的事情 这就是我第一次接触深度学习时的情况 尽管当时我没有了解很多细节 后来 当我在英属哥伦比亚大学

攻读硕士学位时

我再次修了一门机器学习课程 那时 我第一次对这些网络有了更深入的了解 有意思的是 当时我对人工智能非常感兴趣 所以我修了不少人工智能的课程 不过我当时看到的很多东西 都不够令人满意 有大量的深度优先搜索

广度优先搜索 Alpha-Beta剪枝 等等这些东西 我当时并不满意 当我第一次碰到机器学习中的神经网络时 我觉得这是个更偏技术的术语 并不像大家都谈论的人工智能那样出名 我几乎可以这样说

机器学习在当时更像是一个技术术语 我对人工智能并不满意 当我看到机器学习时 感觉就像 这就是我想花时间研究的人工智能

这是真正有趣的东西 于是我就走上了这个方向 我觉得这几乎一个新的计算范式

因为通常情况下 由人来编写代码 但是在这种情况下 由优化程序编写代码 你只是创建输入输出规范 准备很多很多的样本 然后优化程序编写代码 有时候它写的代码比你还要好 所以我觉得这是一种非常新的编程思想

这让我着迷 在你的工作成果中 最令人称道的一件事 是你现在成为了ImageNet图像分类大赛的人类基准 这是怎么一回事呢

大体来说 人们常把ImageNet比赛看做 计算机视觉领域的世界杯 所以无论人们是否关注这个基准和数字 我们的错误率都会随时间越来越低 在我看来 人类在这个评分标准上

能达到什么程度并不明显 我曾使用CIFAR-10数据集进行了

类似的较小规模的实验 当时使用CIFAR-10数据集时

我只是看着这些32乘32的图像 然后自己尝试进行归类 那时候 只有十个分类 所以很容易为它创建一个界面 我觉得 当时我的错误率大约是6% 基于我了解的情况 以及任务本身的难度 我预测了我们可以达到的最低错误率是 好吧 我记不起来确切的数字了 我猜是10%

现在我们达到了3%或2% 甚至更了不起的水平 这就是我第一次开展人类基准实验的情况 而且我觉得这是非常重要 你在课上也指出了这一点 我的意思是 这个数字对于了解

人类的所能达到的水平非常重要 然后我们就可以拿机器学习算法和它进行比较 对于ImageNet来说 在这个基准的重要性 与应该花多大精力来降低错误率之间

似乎存在一些分歧 我们甚至都不知道 人类在这个基准上的表现如何 所以我编写了这个JavaScript界面

然后我自己看图片 ImageNet的问题在于 不只有10个分类 比如有1000个分类 这几乎成了用户界面上的挑战 很明显 我记不住这1000个分类都是什么

那么我怎么做才能 保证公平呢 于是我把所有的分类都列了出来

让自己看了一些样本 对于每张图片 我向下滚动 浏览过1000个分类 尝试根据我看到的每个分类里的样本 来判断这张图片的分类可能是什么 我觉得这个练习非常有启发 我的意思是 我之前并不知道

ImageNet有三分之一是狗和狗的品种 当我看到网络花了大量的时间来处理狗 我觉得很有意思 它三分之一的性能来源于狗 这些工作可能花了我 一到两周的时间 我放下了其他的事物 我觉得这是个非常有意思的练习 最终我得到了一个数字 然后我觉得一个人不够 我需要更多的人 所以我想办法在实验室内部

组织其他人也参与进来 我觉得人们并不那么愿意 奉献一两周 来做这么辛苦的工作 坐上五个小时 想办法确定一条狗的品种是什么 所以在这方面 我没法得到足够的数据 但至少对人类的表现得到了一些近似的估计

我觉得这很有趣 然后大家知道了这件事 但我当时并没有察觉 我只是想知道这个数字 然后就成了这样 大家都很高兴有人做了这件事 还开玩笑地把我称为参考人类 当然 我也觉得很有趣

当软件 也就是深度网络 最后超过你的表现时 你吃惊吗

当然 当然 非常吃惊 我的意思是 有时候真的很难

看出一张图片到底是什么 有的图片就像一团黑点 我也看不出来是什么 我只能猜测它大概属于20个分类中的某一个

但网络直接就找出来了 我不明白这是怎么回事 有点超出人类的范畴 此外 我觉得网络非常擅长

识别诸如地砖图案和纹理 的统计规律

我觉得在那方面 网络可以更好地 提取大量图片中的精细的统计信息

这点我并不吃惊 在很多情况下 我觉得惊讶的是

有些图片需要你读取文字 图片中只是一个瓶子 光看你不知道它是什么 但它上面有文字 告诉你它是什么 作为人类 我能读懂 这没什么问题

但对网络来说 它必须学习阅读才能识别这个物体

因为从外形看并不明显

让你出名的一件事 也是让深度学习社区感谢你的一件事是 你开展教学并把它放到了网上 能讲讲这件事的经过吗 —

当然可以 我有一种强烈的感觉 总的来说 这种技术是一种变革 很多人想用它 它就像一个锤子 我想做的事情是 能够把这个锤子随机地交给很多人 我只是觉得这非常急迫 从博士研究生的角度来说 这不一定可取 因为你放下了你的研究 我的意思 这占用了我120%的时间 我必须放下所有的研究 我的意思是 这门课我教了两次

每次大概都要花四个月时间 那段时间基本都花在上课上 所以从这个角度来看并不太建议

但是总体来说这是我博士阶段的亮点 它甚至与研究无关 我认为教课 绝对是我博士阶段的亮点 只要看到那些学生 就能感觉到他们有多兴奋 这门课与众不同 通常 课程讲的是19世纪左右 发现的东西 但是我们可以在课堂跟大家说

看 这是一周之前发表的论文 甚至昨天发表的论文 有新的结论 我觉得本科生和 其他的学生 真的很喜欢课堂的这一面 而且他们真的能理解这些内容 这不是核子物理或火箭科学 你只需了解微积分 代数 你就能够理解背后的所有原理 我这个领域非常强大 日新月异 人们觉得自己站在浪潮前沿 这感觉很棒 我觉得这是人们真正喜欢这门课的原因 而且你确实帮了很多人 递出去了很多锤子 —

没错 作为一个对深度学习有着长期研究的人 这个领域还在迅速发展 我很想知道 你自己是怎样想的 这些年来 你对深度学习的理解有什么变化

大体来讲 当我第一次见到受限玻尔兹曼机 处理数字时 对我来说 这种技术的应用前景并不明朗 也不知道它将来有多重要 当我开始研究 计算机视觉 卷积网络的时候 这些概念也已经存在了 但很多计算机视觉领域的人 觉得短时间内用不上 我觉得大家当时的观点是 在少量的场景下有用 但无法扩展到处理更大的图像 这种观点完全错误 所以总体来说 我对这个技术的通用程度感到惊讶 也没想到能取得这么好的结果 这是最大的惊喜 而且不仅如此 一方面 它的表现非常好 比如说ImageNet 另一方面 我觉得出乎所有人预料的是 至少出乎我的意料的是 你可以对训练好的网络 进行迁移 你可以在任意的其他任务中对网络进行微调 因为现在 你不仅解决了需要数百万样本的 ImageNet的问题 这个网络还成为了非常通用的特征提取器 我觉得很少有人能预料到这第二个方面 在这方面的论文中 人们一直在研究计算机视觉 场景分类 动作识别 对象识别 基本属性 等等 人们只是通过微调网络 就解决了每个任务 这让我觉得非常惊讶 是的 我觉得监督学习占据了大部分的版面 虽然微调训练好的模型 或是迁移学习的效果很好 但由于某些原因 人们谈论的比较少

是的 正是如此

是的 我觉得有些方面的研究不多

大家对无监督学习抱有很高的期望 这才是吸引很多研究人员在左右 投身这一领域的原因 我觉得这方面的前景 还没有实现 让我意外的是 监督学习的效果那么好 而无监督学习仍然处于 不明朗的状态 它的运作原理和应用前景尚不明确 虽然这个领域仍然有 很多忠实信徒

我知道你属于一直思考人工智能

长远发展的那种人 你能跟我们分享下这方面的想法吗

我在OpenAI用了大约一年半的时间 思考这些问题 在我看来 这个领域会分成两条道路 一条是应用人工智能 就是创建和训练神经网络 主要使用监督学习 也可能用无监督学习 然后逐步提升性能 比如图像识别器或类似的东西

我觉得另一个方向是 人工通用智能 也就是 怎么让神经网络成为一个完全动态的系统 它能思考 说话 可以做人能做的任何事情

在这些方面具有智能 我一直以来都觉得有趣的是 比如在计算机视觉中

我认为 我们一开始使用的方法是错误的 我们想把它分解成不同的部分 就像是 人类可以认出人 人类可以认出场景 人类可以认出物体 所以我们只是关注人类能做的各种事 一旦完成了这些独立的目标

就分成了不同的领域 有了这些独立的成果 我们再考虑如何把它们拼在一起 我觉得这个方法不对 我们已经见证了历史给出的结果

所以我觉得在更高级的人工智能领域 历史正在重演 人类会问问题 会做计划 会通过实验来了解世界的运行原理

人类需要互相交谈 所以发明了语言 人们试图把人类的能力分解成各种功能

然后逐一实现 再把它们一起放进某种大脑 我觉得这种方法不对

所以我更倾向于不按照那样分解 而是使用一种完全动态的神经网络 这样你总是与完全的代理人程序打交道 然后的问题是 应该如何构建目标 使得当你在优化 大脑的权重时 能得到智能的行为 这是我在OpenAI里一直深入思考的东西 我认为人们已经想出了很多不同的方法 来处理这个问题

比如 在监督学习方向 我在网上发过一篇文章 不算是论文 只是我写的一个小故事 这个小故事试图设想出一个假想的世界 我们只通过扩大监督学习的规模的方式

来发展人工通用智能 我们知道这是可行的 然后就会得到 像亚马逊土耳其机器人这样的东西 人们让数量众多的机器人执行任务 然后以此为监督学习的数据集进行训练 来模仿人类 这样的东西会是什么样的 等等

还有其他的方向 比如源于算法信息论的无监督学习 像AIXI那样 或者源于人工生命 这更像是人工进化 这就是我花了很多时间所思考的东西 我觉得我找到了正确的答案 但是我不想在这儿说

至少我可以通过读你的博客 学到更多的东西 —

是的 当然

你已经给了很多建议 现在 仍有很多人想进入人工智能和深度学习领域 你能给这些人一些建议吗 —

没问题 我觉得当人们和我谈起CS231n课程

以及他们认为 这门课程非常有用的原因时 我反复听到的是 人们喜欢我们一直深入底层细节 他们不是在用什么库 而是看到了真正的代码 他们看到了一切是如何实现的 自己也实现了其中的大部分 要一直深入底层 理解背后的所有原理

不把事物过于抽象简化也很重要 你需要充分了解全栈 当我学习这些知识的时候 这种做法收获最大 我只是从头开始把它实现了 这是很重要的 从理解知识的角度来看 这样做 性价比最高 我写了自己的库 叫做ConvNetJS 它是用JavaScript写的 实现了卷积神经网络 那就是我学习反向传播的方法 所以我一直建议人们 不要一开始就使用 TensorFlow这样的东西 当你能自己编写最底层的代码后 再去使用 你知道了底层的所有原理后 再使用这些框架 框架为你抽象掉了一些细节 但你必须知道背后的原理 所以这点对我帮助最大 这是人们上CS231n课程时最喜欢的一点 这也是我给大家的建议 所以不是去运行神经网络 然后顺其自然 对 在某些层的序列中 我知道当我加一些 Dropout层 效果会更好 但那并不是你想要的 在这种情况下 你就无法进行有效的调试 也无法有效地改进模型

是的 听你这么说

我很高兴在deeplearning.ai的课程中 开课的时候首先讲了很多个星期的Python编程

是的 很好

非常感谢你分享这些见解和建议 在深度学习的世界里

你已经是许多人心目中的英雄 我很高兴 也很感谢你

今天能在这里与我们分享

谢谢你的邀请

参考

/learn/machine-learning-projects/lecture/Ggkxn/andrej-karpathy-interview

如果觉得《价值连城 ImageNet图像分类大神 Andrej Karpathy的采访 给AI 深度学习从业者的建议》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。