深度学习-推荐系统-CV-NLP

深度学习总结、资源与规划

2018-04-28  本文已影响29人  readilen
深度学习总结、资源与规划

深度学习总结、资源与规划

Sherlock

Sherlock

第一个坑是关于编程的,作为学数学出生的人,没有受过太多计算机科学的训练,所以在写代码上一直存在一些问题,知乎编程大神萧井陌写过一个编程入门指南,这在我学习编程初期给了我莫大的帮助,通过学习MIT 6.00.1x(计算机科学与python编程导论)让我们在初期很快地爱上了编程。

之后由于时间的关系,后面的学习也就一直没有继续下去了,但是心里一直记着一本书,叫做SICP(Structure and Interpretation of Computer Programs)(计算机程序的构造和解释),这本书被称为神书。萧大神说过,学完此书编程能力会有一个巨大的飞跃,所以心里一直想着要找时间学完此书,但是美中不足的是这本书的教学语言是Scheme,虽然SICP会从头教你如何用Scheme,但是对于一门陌生的语言,还是一直拖着我开始这本书的学习。

直到最近我发现了一门神课,Berkeley开的暑期课程CS61A,这么课将以python作为教学语言学SICP,同时开课的教授还会针对python重新一本SICP的在线教材,这本教材还在不断地更新中,直到8月10号该课结束。这对于我来讲真的是雪中送炭,虽然没有课程的视频,但是有lecture和作业也是极好的,所以我决定开的第一个坑就是CS61A,如果之后有时间会开SICP的坑,将书学了,书后的习题做了。同时各位对编程痴狂的小伙伴不妨按着萧大神的编程指南,将里面的内容都学了,那么就达到萧井陌大神所谓的「入门」水平了,我觉得你会有「会当凌绝顶」的感觉。(我是暂时体会不到了)

第二个坑是关于深度学习和机器学习的系统性学习,此前只是零零散散看了一些内容,但是并没有做笔记,也没有深刻地进行理解,所以之后决定系统性的学一些课程,看一些书,当然在此之前肯定是要做一个合理的规划了,所以便有了Roadmap of DL and ML,这是我对目前我了解到的深度学习和机器学习的课程,书籍,论文的总结,里面有很出名的课程,如cs229,机器学习基石和技法,cs231n等等,也有最新的课程,比如Berkeley的 Deep Reinfrcement Learning, MIT的 Deep Learning for Self-Driving Cars 等,还有一些优化的课程和线性代数的课程。

除此之外还有一门极其牛逼的课程,这门课程牛逼到我单独拿出来说,那就是MXNet主要开发者之一的陈天奇在华盛顿大学开的一门课 Deep Learning System,陈天奇还开发了一个极其牛逼的框架,可能你已经用了很久了,只是你不知道是他开发的,那就是XGBoost,所以这门课可以说是一个系统设计的天才将他对系统设计的理解教给你。你说牛不牛逼,当你学完之后,你会对现在深度学习主流框架如tensorflow等有了完备的理解,当然学完之后距离你自己开发一套框架还是有一定的距离。(ps 我还没学呢,很想学......)。

另外github里面的内容还在不断更新,我会慢慢放上我的学习笔记,骗一波star啦。当然,也欢迎各位小伙伴上传一些自己推荐的学习资料和笔记,萧伯纳说:「你有一个苹果,我有一个苹果,我们交换一下,一人还是一个苹果;你有一个思想,我有一个思想,我们交换一下,一人就有两个思想。」

最后开第三个坑,这个坑纯属被骗入坑的,至于如何被骗入坑,且听我从今年CVPR2017慢慢道来。

看过我之前文章的人都知道我一直用的是PyTorch,当然用起来也非常的愉快,之前耳闻MXNet特别厉害,不仅在显存上更为节省,最主要的是速度更快,而是自动并行和分布式,听着就很牛逼,有木有。于是满眼星星准备入坑,谁知道文档做得太差了,很多API都找不到,而且也没有论坛,遇到问题大家都去issue里面提问,搞得issue里面也很混乱,同时对于issue也没有太多的人维护,所以没有办法,只好弃坑了。

就在我Pytorch用得好好的,我看到了李沐大神开了一个repo,发现了一个新的东西叫gluon。同时还出现了一张图片。

image

看着好牛逼,于是充满着极客精神的我手贱地点开了第一张slide,前面几页列出了目前主流的深度学习框架的优缺点,比如符号式编程的代表,tensorflow,caffe,虽然便携高效,但是不够直挂灵活,代码没有易读性,bug不好找;命令式编程的代表PyTorch,Chainer,灵活,但是对于复杂网络速度很慢。然后列出了MXNet的优势,在网络的定义上采用符号式编程,在tensor计算上采用命令式编程,用这种混合编程的方式完美的解决了前面两种框架的问题,看到这里你是不是觉得MXNet牛逼啊,准备入坑了。然而现实会残忍地打醒你,因为MXNet的文档对新手实在是太不友好了,所以你肯定入不了这个坑。

image

于是我想着李沐大神,别吹逼了,快去完善文档,修bug吧,MXNet是挺牛逼的,但是没有完善的教程和文档,新手怎么入坑啊。但是心细的读者肯定发现了右下角有一个'not good enough'。没错,这个时候主角gluon登场了。

image

最后总结一波gluon的优势,有下面的车做了一个形象的比喻,原来我以前开的一直是迷你电动车啊,虽然开不了F1,但是开个奥迪宝马应该没问题吧?


image

李沐大神确实很有煽动性,就几页slide,成功引起了我对gluon的关注,于是我去了gluon的文档看了看,现在gluon只是预览版,还没有出正式版,但是没有tutorial对新手还是不友好啊,于是我又发现一个repo,全套教程,惊呆了,从简单的线性回归到目标检测,自然语言处理,GANs,DQN,一应俱全,虽然目前这个repo的已经完成的内容比较少,但是在不断地更新中,非常期待全套教程的更新完成。

而且点进几个notebook看了看,发现定义网络的方式跟PyTorch简直不要太像,这样的话从PyTorch迁移过来的成本也不会太高,虽然目前听使用的人说还是有些bug,不稳定,但是我算是成功入坑了,希望MXNet的开发者不要辜负大家的期望,努力去完善与开发,给我们提供更方便和快捷的深度学习框架。(我应该找AWS要广告费)

写了这么多,逻辑都有些混乱了,最后希望我能够填完这些大坑吧,也祝各位读者生活、学习、工作、科研都顺利吧。

上一篇下一篇

猜你喜欢

热点阅读