前段时间,特斯拉 AI 高级总监、自动驾驶 Autopilot 负责人 Andrej Karpathy 在推特上宣布自己即将离职,并表示从今年三月份开始,自己已休假四个月。
在休假的这段时间,Karpathy 也没有闲着,自己在家录了个课程。视频内容长达 2 小时 25 分钟,基于 micrograd 详细引见了神经网络和反向传递。
对于这门课程,Karpathy 自信地表示:「这是 8 年来范畴内对神经网络和反向传递的最佳讲解。」
视频地址:https://twitter.com/karpathy/status/1559672719414681601
Karpathy 还在个人推特上打起了赌:只要你懂 Python,并能模糊记起高中学过的求导知识,看了这个视频你还不理解反向传递和神经网络核心要点的话,那我就吃一只鞋。
言外之意这门课程只需观看者掌握基本的 Python 编程技能和高中微积分的单纯知识,非常适合零基础的同学在线进修。
有网友调侃到虽然自己很想看 Karpathy 直播吃鞋,但他相信 Karpathy 的视频课程不会让人失望的。
课程内容
接近 2 个半小时的视频按照时间段划分了近 20 个小部分,主要包括以下内容。
micrograd 项目概述。2020 年 4 月,Karpathy 开源了其编写的微型 autograd 引擎 micrograd,其中用 100 行代码兑现了针对动态构建的 DAG 的反向传递算法,并用 50 行代码兑现了类 PyTorch API 的库。目前,micrograd 项目的 GitHub Star 量已达 2.2k。
项目地址:https://github.com/karpathy/micrograd/
然后 Karpathy 引见了只有一个输入的单纯函数的导数和具有多个输入的单纯函数的导数、启动 micrograd 的核心 Value 对象及其可视化的方法,并举了两个手动反向传递的例子。
接下来 Karpathy 系统地引见了:
为单个操纵兑现反向传递;
为整个表达式图兑现反向函数;
修复一个节点多次出现的反向传递 bug;
使用更多操纵替换 tanh 激活函数;
用 PyTorch 兑现上述操纵,并与 micrograd 进行比较;
用 micrograd 构建一个神经网络库 (MLP);
创建一个微型数据集,编写损失函数;
收集神经网络的所有参数;
手动做梯度下降优化,训练网络。
最后 Karpathy 总结了反向传递与现代神经网络的关系。此外,Karpathy 还在视频中探究了 PyTorch 中 tanh 激活函数的反向传递机制。
Andrej Karpathy
个人主页:https://karpathy.ai/
2005-2009 年,Andrej Karpathy 本科就读于加拿大多伦多大学,主修计算机科学与物理,辅修数学。在这里,他第一次接触到深度进修,聆听 Hinton 的课程。
2009 -2011 年,Karpathy 硕士就读于加拿大不列颠哥伦比亚大学,其导师为计算机科学系教授 Michiel van de Panne,主要研究物理模拟中用于敏捷机器人的机器进修。
2011-2016 年,Karpathy 博士就读于斯坦福大学,师从著名 AI 学者李飞飞,专注于研究卷积 / 循环神经网络以及它们在计算机视觉、自然语言处理和交叉范畴的应用。期间,他设计并担任斯坦福首个深度进修课程《CS231n:卷积神经网络与视觉识别》的主要讲师。
与此同时,Karpathy 还有三段练习经历。2011 年,他进入发展初期的google大脑练习,致力于视频范畴的大规模无监督进修。之后的 2013 年,他再次在google研究院练习,从事 YouTube 视频的大规模监督进修。2015 年,他在 DeepMind 练习,参与深度强化进修团队的工作。
Karpathy 是 OpenAI 的创始成员和研究科学家。仅一年多后,2017 年,Karpathy 接受马斯克的邀请加入特斯拉,接替了当时的特斯拉 Autopilot 负责人、苹果 Swift 语言、LLVM 编译器之父 Chris Lattner。
五年里,Karpathy 一手促成了 Autopilot 的开发。随着特斯拉从最开始的自动驾驶慢慢扩展到更广泛的人工智能范畴,Karpathy 也被提为特斯拉的 AI 高级总监,直接向马斯克汇报工作。
现在根据领英上的资料显示,Karpathy 已于 7 月离开特斯拉。
至于离开特斯拉,接下来要做什么,此前 Karpathy 透漏还没有具体的安排,但希望重拾自己长久以来对 AI 技术工作、开源和教育等方面的热情。