书籍资源和书中习题答案、python代码下载
扫码关注公众号 「图灵的猫」,点击“学习资料”菜单,可以获得海量python、机器学习、深度学习书籍、课程资源,以及书中对应习题答案和代码。后台回复SSR更有机场节点相送~
入门避坑指南
自学三年,基本无人带路,转专业的我自然是难上加难,踩过无数坑,走过很多弯路。这里我整理了一下自己踩过的坑,供大家参考。
1. 不要从头开始学数学
如果不是一点数学都不会,你没有必要从零学起。用上个把月,把微积分、线性代数、以及概率统计复习一遍就够了。我自己因为没有学过高数,所以花了半年时间,甚至读了数学分析、泛函分析和测度论这样的教材。现在回想起来,其实学到的大部分知识并没有在后来的算法生涯中用到,虽然算不上沉没成本,但投入产出比绝对不高。
因此,不要过度投入到数学领域,打好基础即可。有个例子说的很好, 如果你想造汽车,你需要有20年的理论功底,以及技术实践。 但如果你只是想开汽车,却很快就能学会。 当个司机,你需要去了解汽油发动机原理吗? 不需要。 因为你开的车,甚至有可能根本就用不上汽油发动机(电动车)。
2. 代码能力要过关
我在大三一年自修完了计算机系的所有必修课,因为我深知数据科学离不开计算机底层知识。我见过不少只会背推导公式,连JVM虚拟机是什么都不知道的人。除了Python,请至少学习1-2门底层语言,比如C/C++,Java。
此外,如果你的目标是算法工程师,那么数据结构与算法、计算机系统、内存机制、网络编程、大数据框架也要着手学习,因为你是以企业工作为导向的。这方面我有空会把自己读研时找实习的经历整理分享出来。
3. 不要过分深入
深度学习,底层结构很复杂,理论知识读懂即可,书也可以跳着看。除了自己感兴趣的部分,其他不需要深入。
4. 不要重复造轮子
不管是你是做科研还是搞业务算法,在开始入门的时候,认认真真自己实现一遍基础算法的底层代码就足够了,对于更多复杂的算法实现,如非必要(比如打比赛),否则请不要浪费时间,要记住,你只是入门,不需要专精这个领域。
我曾经读过hadoop的ML包源码,以及xgboost的C++源码,对当时还在入门的我来说,是做无用功。轮子还没修好,就照着别人的高铁学习结构,效率不会太高。现如今,对于大多数深度模型调用,代码量基本不过百行。除非你的方向是大规模、高可用深度学习系统的底层开发、架构开发,那么没有必要深入底层代码。
5. 不要报培训班
这一点仁者见仁。但我认为,网络上的公开课足够你学的了,比如Coursera,斯坦福CS231,可汗学院等等,这些现在都有中文字幕。相关资源我整理放在文末了,大家可以取用。要强调的是,有的同学会觉得花了钱,自然就会心疼,就会坚持学下去。这个想法很好,但太天真,有两点
- 国内的教学体系才刚起步,很多985高校都是和计算机、数学系一起上课,老师自己很可能都不是研究AI出身的。所以,请思考一下:校外的培训机构,会有比985还好的教学能力吗?
- 深度学习没有速成一说,虽然深度学习经常被诟病没有基础理论支撑,不需要数学知识,但那是说给大牛听的。你一旦深入某个方向,底层的数学照样少不了。培训班最不会教你的,就是这些。它们只会利用你的兴趣,揠苗助长,然后收割学费