入门深度学习应该学什么

高扬

2017-11-01


最近被人问的最多的一个问题是“我想入门深度学习,我应该学些什么”。

老实说,这个问题不是那么好回答,毕竟每个人的知识背景和技能背景实在是太不一样了。如果要假设一个人基本具备大专以上的水平和比较好的学习能力的话,可以假设一条学习路径。

第一:学习Linux的基本应用

这主要指的是类似Ubuntu和CentOS这类主流Linux操作系统上的Shell操作,以及管道、端口、进程、内存等相关资源的概念。不推荐在Windows上去做深度学习的应用,因为几乎全行业的人都在Linux上做工程,如果只有你使用Windows的话,那么你会有一个很大的风险,那就是当出现各种问题的时候你很可能在网上找不到有人讨论跟你发生相同的错误时的解决方案。这对于在开源环境下的学习是十分不利的。

这个部分我建议可以系统地学习上一个月到两个月。当然在这个过程中可以穿插学习其它的知识。

第二:学习Python的应用与进阶技巧

虽然Python作为一种语言来说,跟深度学习没有什么本质的联系。只不过,Python的普及性现在变得原来越好,书写简洁,可读性好,开源社区也非常活跃。有很多第三方都开发了很多功能很强大的Python功能包,或者说对Python的调用做了支持,例如numpy,scipy,pandas等等这些就是其中的代表。那么使用Python语言,并掌握一些常用的包使用技巧会让你有站在巨人肩膀上前行的感觉。套用黄健翔的名言——你不是一个人在战斗。

这个部分是一个持续学习的过程。作为基础部分来说,Python学习一个月左右也就差不多了,关键是要多练习。

第三:相关的数学知识

这个部分大家不要害怕,因为在使用框架的过程中,你基本没有什么机会去实战数学方面的才华(除非是做模型优化的时候,例如SVD)。所以基本知道什么叫导数,偏导数,什么叫链式法则;凸函数的极值点求解怎么个思路,非凸函数的求解有哪些算法。OK,到这里可以告一段落了。我当然不会阻拦有能力的同学继续深入学习数学知识,只不过作为转行入门的数学知识,到这里已经基本够用了。

这个部分,对于大本修过高数并且没有完全还给老师的那些同学应该都是已经不用再学的了。对于没学过的同学,如果高中的数学知识掌握得还好的话,那么一周时间应该绰绰有余。

第四:一种框架的使用

不管是Tensorflow、Caffe、Torch、Chainer,还是其他的框架,可以说是尺有所短寸有所长。现在大家都喜欢用Tensorflow主要是因为他背后的老大是Google,社区活跃,所以不容易冷场。在执行效率方面,很多场景不及Caffe,但是好像并不能阻挡大家学习的热情。Caffe,刚刚说了,执行效率高,但是编译起来有很多很多很多很多的坑,所以行业里有一句戏言——“安装一万三,一层五块钱”,其实说的就是安装很麻烦,但是网络模型定义并不难这么一个事情。总之,大家在选择框架之前多做了解吧,我个人觉得Tensorflow还是可以去follow的,相对资料比较多。

这个部分的学习,如果想要熟练掌握的话也是要用至少三个月到六个月左右的不断学习才行了。多查手册,多从Github上淘淘宝贝。

第五:Github

刚刚还说到Github,现在就着重提一下。
在全球有很多好事者喜欢把自己的代码放到Github上去,不管动机是什么,但总是给我们这些学习的人带来了很多可以参考的学习材料。有的是做了某个论文的实现,有的是自己研究的一个小项目,林林总总不一而足,不乏有很多有价值的模型代码。能不能用在你的生产环境不好说,但是比其它任何实战教学来得都直接,所以有能力的人应该多去那里取取经,开阔一下视野。

         关注大数据尖端技术发展,关注奇点大数据
    

读者评论

相关博文

  • 社区使用反馈专区

    陈晓猛 2016-10-04

    尊敬的博文视点用户您好: 欢迎您访问本站,您在本站点访问过程中遇到任何问题,均可以在本页留言,我们会根据您的意见和建议,对网站进行不断的优化和改进,给您带来更好的访问体验! 同时,您被采纳的意见和建议,管理员也会赠送您相应的积分...

    陈晓猛 2016-10-04
    5421 735 3 7
  • 迎战“双12”!《Unity3D实战核心技术详解》独家预售开启!

    陈晓猛 2016-12-05

    时隔一周,让大家时刻挂念的《Unity3D实战核心技术详解》终于开放预售啦! 这本书不仅满足了很多年轻人的学习欲望,并且与实际开发相结合,能够解决工作中真实遇到的问题。预售期间优惠多多,实在不容错过! Unity 3D实战核心技术详解 ...

    陈晓猛 2016-12-05
    3299 36 0 1
  • czk 2017-07-29
    5866 28 0 1