干货收藏:如何最高效地入坑深度学习?

人工智能与算法学习

共 2725字,需浏览 6分钟

 ·

2021-12-26 15:45

大家好,我是Giant。最近知乎上有读者提问,被导师散养,想要自己入门深度学习该如何分配任务?

看到这个问题我看见了3年前的自己。我的导师是浙大最年轻的博导、副教授,学术大牛。不过工作太忙,平日神龙见首不见尾,我的学习主要靠自驱
经历了研一到研三的学习,我对自己的深度学习路线做过系统性总结。在校招薪资逐年倒挂的背景下,希望可以帮到更多对AI真正感兴趣的同学。
下面我从大厂面试官考察一个同学的角度,来「倒推」深度学习应该怎么学。

理论学习

俗话说基础不牢,地动山摇。无论从事NLP,CV,ASR还是广告推荐搜索,理论部分的学习是同学们需要迈过的第一道坎。
由于深度学习是机器学习的重要分支,建议大家上手深度学习前,先了解一下传统的统计机器学习算法。
网上关于ML/DL有很多权威的学习资料,这里分享一些我实际学习过的靠谱资料(网课视频都可以在b站上搜索到):
1)吴恩达机器学习入门课程
2)李宏毅机器学习入门课程(2021春)
3)跟李沐学AI
亚马逊首席科学家沐神在b站开课啦!
在“跟李沐学AI”专栏,沐神用中文解读了斯坦福2021秋季的实用机器学习课程,最近还新出了“读论文”系列,像Transformer、BERT、GAN等经典paper,都能听到细致通俗的解读!
我之前也写过一篇文章专门介绍沐神的专栏:李沐 Is All You Need!

4)Kaggle 30天机器学习0基础入门

强烈推荐的理论结合coding的机器学习入门资料,虽然报名通道已经关闭了,你仍然可以访问下面的链接进入学习。

https://www.kaggle.com/thirty-days-of-ml-assignments

Kaggle是一个非常棒的ML/DL学习平台,有非常成熟的开源生态,初学者一定要记住这个网站哈!

Kaggle还为用户提供了免费的GPU计算资源,16G的Tesla V100 每周免费用40小时。详细教程可以参考之前的推文:实验室一块GPU都没有怎么做深度学习?

除了AI理论,一些计算机相关的基础知识也十分重要。

5)陈越姥姥-数据结构专题

很多考研CS硕士的同学都经历过计算机408统考,这4门课程中建议首先掌握“数据结构”,因为它和算法工程师的日常工作最紧密关联,也是面试中提升coding的必备内容。

时间充裕的同学,建议你看看浙大陈越姥姥的数据结构专题课,内容很全面。如果时间紧,建议趁早开始刷leetcode和剑指offer,边做题边巩固常用的数据结构。

操作系统、计组、计算机网络这几门课当然也很重要,但是从算法学习角度看,优先级低于数据结构;可以在整个硕士期间穿插着学习。

算法比赛

除了学理论、做项目,算法比赛也是非常适合新同学入门的选择。当然比赛有难易之分,如果你刚接触深度学习,建议从最基础的任务做起。
比如对于机器学习而言,Kaggle平台的Titanic生存率预测就是非常经典的竞赛项目。把这个比赛完整做一遍,你能学到数据准备、数据分析、构建模型、预测输出整个链路的内容。
如果从事NLP研究,建议从文本分类、匹配、NER等底层任务开始练习。参赛过程中,主动学习其他优秀选手的baseline和top方案,也是让自己进步的高效选择。
除了Kaggle,主流的算法比赛平台还有阿里天池、DataFountain、Biendata、DC竞赛、华为云竞赛、讯飞开放平台、FlyAI等。
如果你觉得一个人做比赛很难坚持,还可以加入我们的交流群,和志同道合的同学一起抱团,比单人solo进步更快哦。
还没进群的朋友,欢迎加我微信cs-yechen

科研学术

开展科研工作是深入掌握AI算法的一条“捷径”,如果经过思考和实践,提出创新性的idea,通过coding实现并撰写成文,深度学习功力一定会更上一层。
这里参考清华大学黄民烈老师的PPT,以QA的方式和大家分享一下“如何做出好的科研”。

科研是什么?

创新是科研工作的核心,发表论文是因为这种创新对别人有启发,值得分享与交流;是为了好奇心而进行科研探索:探索未知,发现不同。
如果单纯为了发paper或者升职、出国而做科研,很容易本末倒置。

为什么要做科研?

1)理论和实践需要密切结合
2)确定自己喜欢什么
3)锻炼和提高自己的能力
4)为将来的读研和读博做好准备

科研的“正确”姿势

假如导师或学长给了一个题目或方向,在跑模型前,同学应该先深入理解任务、问题、数据,读论文。

导师:结果怎么样? 


学生:不好 --- 详细的数据统计、分析、报告;理解问题、数据 


导师:为什么不好? 


学生:不知道 --- 深入理解模型原理,与问题、数据的匹配性 


导师:哪里好? 


学生:不知道 --- 理解模型的输出结果、行为表现 


导师:哪里不好? 


学生:不知道 --- 问题诊断、错误分析、读论文

参与科研的几种方式

1)跟着师兄、师姐从baseline开始做起
2)老师给题目、技术路径,自己主要做实现
3)自己想idea,让老师评估

如何投入足够时间?

1)同一物理时间,只能做一件事;
2)你做的事情,定义了你是什么样的人;尤其当你做选择时:A还是B?
3)成为一个专家需要10000小时(3年全时PhD学习),365*10*3;
4)做出一个solid的工作:最聪明的学生也需要3个月以上的时间,大部分同学需要6-12个月。
客观地说,科研学术只是一条小众路线,并不适合所有人。因为它和做项目不同,做科研付出的成本和收获很可能不对等。
比如一个一心搞research的同学,跟了一个放养型导师,埋头苦干了3年结果没发出一篇A/B类顶会,那硕士期间的产出几乎等于 nothing。
在正式开始科研前,请先认真思考自己的兴趣爱好、性格特质是什么;coding,英文阅读写作能否cover;是一时热血还是真心喜欢research?
想明白了这些,方向就不容易跑偏,剩下的只需要努力+坚持就可以了!
如果真能在硕博期间在科研上有所建树,毕业时也具备了冲击更高offer的实力(阿里星、腾讯大咖等),甚至可以考虑进入高校继续从事科研工作了。

——The  End——

读者,你好!为了方便大家学习,我们成立交流群,欢迎大家进群讨论。请先加我的微信,然后邀请你进群。无关人员请绕道,谢谢合作!

浏览 20
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报