我本科是个和计算机、数学毫不相关的人文类专业,后来用了大三、大四两年时间,从中学级别的数学捡起,一路自学、实习、读研到现在。我太熟悉入门时候的坑了,直接从一大堆概念、公式、书单入手,谁看谁懵。
所谓入门,绝不是粘课程链接、讲概念定义。有些答案确实解释的非常通俗,但这不叫入门。
古语说入门,就一句话
师傅领进门,修行在个人
所以我不会随便复制粘贴一些高分书目,或者讲讲什么是深度学习。我希望能从一个不一样的角度来回答该如何入门深度学习,希望可以授人与渔,教教大家入门的方法论。
对于自学成分居多、想转行、转专业的同学来说,我的入门经历或许可以当作过来人的经验之谈,供大家参考。
对于非常幸运已经在计算机、数学等算法相关专业读书的同学,也可以看看我踩过的坑,走过的弯路,用作警示。
第一步、找到兴趣
很多同学入门深度学习,做的第一件事往往是上知乎、搜索引擎找相关资源,或者GITHUB翻项目,希望找到一份完美无缺的入门教程。
但很可惜,这份“完美教程”并不存在。于是,不少人只能硬着头皮从这个问题下海量的推荐书目,课程看起,看到最后晕头转向,兴趣被消耗殆尽。
正确的姿势应该是:先找到兴趣
先不要管什么是梯度、怎么搭建网络、要看哪些书,如果有人这么教你,请跳过那些答案。先想想自己为什么对深度学习感兴趣,然后找到自己感兴趣的点。这样做的最主要原因是,深度学习范畴下的分类太多太多了,每一个分类都可以当作博士研究、公司业务的领域,也就是说,除了深度学习最基础的一些知识(可能占所有知识的50%),其他的你并不需要深入了解:
- 如果你对计算机视觉感兴趣,那么除了基础知识,你还需要学习C++,学习图像识别、传统物体识别的知识。同时,你没有必要去深入了解RNN和各种变体,也不需要自己推导因子分解机。
- 如果你对自然语言处理感兴趣,那么你要更加了解RNN和transformer框架,你要深入了解word2vec机制,尽管它并非起源于深度学习理论。你不需要学会CNN反向传播如何推导,也不需要知道玻尔兹曼机该如何应用于语音识别。
如此一来,有两点好处
- 你的时间被大大节省了,至少缩短你50%的教材、课程阅读时间
- 你对特定领域的了解提高,在打好基础的同时