LLM 大流行的今天,我作为一个 CRUD 工程师,又想来入门深度学习了。
Practical Deep Learning for Coders
经过一番探索,找到了一个挺受欢迎的课程: Practical Deep Learning for Coders 。它的特点是边做边学,不像一些教科书中有太多枯燥的理论部分。
这个课程以视频为主,文字内容以 Jupyter Notebook 的形式 放在 GitHub 上 。视频中作者也经常会使用他以前写的一本书, Deep Learning for Coders with Fastai and PyTorch ,来进行讲解。这本书也有 Jupyter Notebook 形式的仓库 可以阅读。
我并不喜欢以视频的形式学习,更喜欢自主阅读文字材料,再辅以 AI 解释其中不理解的部分;因此下面的观点是基于上面提到的两个 Jupyter Notebook 仓库。
我只看了前 3 章。优点在于:
- 可以用代码实现实际的功能
- 讲解得很细,大部分内容是好理解的
于我而言,学习这套内容的阻力有:
- 它使用了 PyTorch,但不会对其 API 有过多的讲解;需要时常中断下来理清 API 含义
- 它使用了自己封装的 util 函数(在
fastai
库),我时常需要停下来看看它具体实现了什么 - 有些内容的讲解可能不够深入。比如在讲数字识别时,它使用的训练素材是一些灰度的图片,并将每个图片的像素点转换成了一个 0 ~ 1 范围内的浮点数。真实的图片处理会这么简单么?实践中应该怎样用 Tensor 来表达图片?为什么用 0 ~ 1 浮点数来表达像素点?这里面的内容并没有做出有意义的解释,需要自己去扩展
但总的来说是可以看的材料。
PyTorch Tutorial
PyTorch 官方有一套 入门教程 。其中 Transform 之前的章节都比较好理解。到了 Build the Neural Network 开始引入了机器学习的概念,就无法理解了。
动手学深度学习
动手学深度学习 是李沐(亚马逊首席科学家)主导,社区共创的一套内容。看起来比较流行。质量如何还需要研究。
数学
参考 Free ML Resources to Become a FAANG ML Engineer 。微积分可以看《普林斯顿微积分读本》。