2018年2月4日星期日

深度学习自学指南:6个月,从基础知识到模型构建

原作:Bargava安妮 编译自 Medium量子位 出品 | 公众号 QbitAI

给你6个月的时间开始学习深度学习,能够达到怎样的程度?

在这篇文章中,数据科学培训老师Bargava就带你半年入门深度学习。

在这份攻略中,我将给大家讲讲零基础入门深度学习可行性强的资料和学习方法。当然,虽说的零基础,但也有一个小门槛,你需要满足以下条件:

  • 在接下来的6个月中,每周花费10-20小时学习
  • 已经具备一些编程技巧,懂一些Python和云的基础知识
  • 有一些数学基础(代数、几何等)
  • 有一台计算机,并且能联网

量子位在这里补充一句,想入门的小伙伴也可以现在开始准备英语了,毕竟……这些课程都是英文的。

第一阶段

如果想学开车,应该坐上车通过模拟真实开车环境学习,而不是首先了解内燃机和离合器的工作原理。学习深度学习亦是如此,我们需要遵循这种自上而下的学习方法。

推荐fast.ai上的教程Practical Deep Learning for Coders—Part 1。这个课程需要学习4到6周的时间,并且包含一个云端运行代码的session。

不如就从这个课程开始入手吧。

当然,也有一些其他不错的服务平台可供你选择,包括Paperspace、亚马逊AWS、谷歌云平台(GCP)、Crestle和Floydhub等。

但切记,现在还没到开始构建模型的时候。

Practical Deep Learning for Coders地址:

http://www.fast.ai/

第二阶段

是时候了解一些基础知识了。在这个阶段,你需要学习微积分和线性代数。

MIT的Big Picture of Calculus课程可以帮你快速概览微积分基础知识。

对于线性代数,MIT知名教授Gilbert Strang的OpenCourseWare是个不二选择。

学习完上面两门课程后,推荐你阅读旧金山大学科学家、fast.ai联合创始人Jeremy Howard的Matrix Calculus For Deep Learning。

Big Picture of Calculus地址:

http://ift.tt/2GJFmPb

OpenCourseWare地址:

http://ift.tt/2dhXd2p

Matrix Calculus For Deep Learning地址:

http://ift.tt/2GvDdqg

第三阶段

经过前面两个基础夯实阶段,现在我们有时间贯彻上面提到的自下而上学习法了。

这个阶段推荐大家修一下Coursera上的Deep Learning专项课程,里面包含5门吴恩达创立的deeplearning.ai的课程。

Coursera上"微专业"获取方式和大学修展业很相似,学习课程后也需要完成相关作业。但讲真你值得修一个专业。

理想情况下,根据你目前的学习基础,完成一门课程需要花费一周时间。

deeplearning.ai课程地址:

http://ift.tt/2vLAXJh

第四阶段

只学习不会玩,聪明的小孩也会变傻。

现在是时候了解深度学习库了,TensorFlow、PyTorch和MXNet等都需要去了解一下,并且可以为你喜欢的问题从头开始构建架构了。

到这里我们可以发现,前三个步骤是在理解深度学习是什么,从第四步开始,你需要学习从头开始实现一个项目,并学习利用各种工具构建模型。

第五阶段

现在,可以去刚刚提到的fast.ai课程的第二部分看看了,也就是Cutting Edge Deep Learning for Coders这一课。这里面包含的问题更高级,你将学习阅读最新的研究论文并且学习去理解它们。

上面的每个阶段都需要4至6周的时间去理解它们。当你按照上面的方法学习了26周后,你会打下坚实的深度学习基础。

Cutting Edge Deep Learning for Coders课程地址:

http://ift.tt/2vVAgdb

下一站

之后,你可以学习斯坦福的CS231n: Convolutional Neural Networks for Visual Recognition和CS224d: Deep Learning for Natural Language Processing两门课程了,它们对视觉和NLP的讲解比较深度透彻。

如果有时间,还推荐你读读这本Deep Learning,对巩固理解很有帮助。

CS231n课程地址:

http://ift.tt/1ERxZ3M

CS224d课程地址

http://ift.tt/1CF36il

Deep Learning电子书地址:

http://ift.tt/1JOI14p

钻研深度学习是一件乐事,用你的每一天去创造吧。

最后,附原文链接:

http://ift.tt/2EcL9ON

欢迎大家关注我们的专栏:量子位 - 知乎专栏

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复"招聘"两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态



via 量子位 - 知乎专栏 http://ift.tt/2s2Irqc
RSS Feed

RSS5

IFTTT

报告:74%开发者编程靠自学,最爱Python,从娃娃抓起有加成

问耕 发自 凹非寺量子位 出品 | 公众号 QbitAI

我们的工作正在不断发生改变。

掌握编程技能的重要性正在不断提升,包括AI在内的各行各业都对开发者有着巨大的需求,更别提编程还能锻炼大脑的思维能力。

应该怎么学编程?学习哪种编程语言?从何时开始学编程?

最近HackerRank发布了《2018开发者技能报告》。这份报告指出,学习编程最常见的方法是——自学。参与调查的开发者中,74%都曾自己教自己。

当然还有70%是在学校或者大学里学习的编程,有老师领进门。

学习习惯正在悄然改变。视频网站Youtube已经成为自学者的第二大利器。年轻一点比年长一代更喜欢看视频,而不是看书自学。

平均而言,开发者们掌握了4种语言,而且还想再多学4种。对学习的渴望程度因人而异,18-24岁的年轻开发者想学6种语言,而35岁以上这个数字降低为3种。

即使新语言经常出现,但掌握核心的传统语言对开发者来说非常重要。总体来说,现在雇主最常见的语言要求是:JavaScript、Java、Python、C++和C。

但参与调查的开发者们,最爱的编程语言是Python。

以下是这份报告的主要内容。

1/4的开发者不会开车已会编程

在所有参与调查的39000名开发者中,超过四分之一在16岁前,就写出了自己的第一段代码。但是,只要你有一颗进取的心,开始写程序的时间早晚并不重要。

那些26岁以后才开始编程的开发这种,有36%现在是高级(甚至更高级)的开发者,他们在职业生涯中获得了快速的迁升。

有意思的是,虽然电脑已经越来越普及,但开始接触编程的时间却在推迟。

调查显示,目前45-54岁之间的开发者,超过一半在16岁之前就开始编程。而现在18-24岁的开发者,反而最不可能在16岁前开始编程(仅有20%)。

几乎所有的开发者都渴望学习

似乎每年都有一个新的标志性编程语言、框架或者库在开发者博客中泛滥。以前是Backbone.js,现在是AngularJS和React。自学是所有开发者的常态,有74%的被调查者都有过自学经历,至少部分技能是自学的。

平均而言,开发者们掌握了4种语言,而且还想再多学4种。对学习的渴望程度因人而异,18-24岁的年轻开发者想学6种语言,而35岁以上这个数字降低为3种。

开发者自学的头号工具是——Stack Overflow。

而学习习惯正在悄然改变。视频网站Youtube已经成为自学者的第二大利器。年轻一点比年长一代更喜欢看视频,而不是看书自学。

雇主想要什么?

即使新语言经常出现,但掌握核心的传统语言对开发者来说非常重要。总体来说,现在雇主最常见的语言要求是:JavaScript、Java、Python、C++和C。

不同行业对语言的需求略有差异。例如,Java在金融服务领域流行多年。C语言主导了硬件行业。C#在政府机构中间更为普遍。

雇主最看重开发者的什么能力?解决问题的能力。这不仅仅是编程语言的熟练程度问题。事实上,与教育背景相比,雇主更看重你的实际能力。

绝大数招聘经理会从简历里寻找你过往的工作证明,你干过的项目,放在GitHub上的代码都能成为你工作能力最有力的背书。

开发者想要学什么?

开发者未来想学哪种语言,似乎跟硅谷科技巨头的方向密切相关。

调查显示,Go是开发者未来最想掌握的语言。谷歌推出的Go语言提供了很高的并发性、快速编译并且提供了广泛的支持。另外谷歌把Android的开发语言从Java改成Kotlin也影响不小。

同理,Twitter放弃了Ruby on Rails改用Scala,苹果从Objective-C迁移到Swift……这些变动都让开发者不得不做出相应的调整。

但,Python才是唯一。

参与调查的开发者们,最爱的编程语言就是Python。

有意思的是,与年长的开发者相比,年轻的开发者更不喜欢新出现的语言,例如Go、Kotlin、Scala等。实际上,对Go的看法分歧最大。

18-24岁的开发者,对Go不屑一顾。而45-54岁的开发者则把Go当做最爱的语言之一。JavaScript正好相反。

福利不是找工作最重要的事情

什么样的工作最打动开发者?

使命感?福利?

都不是。在这项调查中,开发者们最关注的事情是:工作与生活的平衡。更具体一点,美国的开发者比亚洲等地的开发者,更渴望工作与生活的平衡。

但对于18-24岁的开发者来说,工作与生活的平衡并不重要。

如何改善这个平衡?

参与调查的开发者最想要弹性工作制度。他们最喜欢的工作时间是上午10点到下午8点。另外,开发者们希望能够远程办公,而不必跑到办公室。

另外,25-44岁区间的开发者,强烈支持工作时间以外不收邮件。

One More Thing

在10岁之前接触编程,好像有额外的加成。

调查显示,15%的创始人/CEO/CTO在11岁之前开始编程,而不是高管的群体中这个比例为5%。

嗯?我好想明白了什么……

欢迎大家关注我们的专栏:量子位 - 知乎专栏

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复"招聘"两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态



via 量子位 - 知乎专栏 http://ift.tt/2nCiWaM
RSS Feed

RSS5

IFTTT

报告:74%开发者编程靠自学,最爱Python,从娃娃抓起有加成

问耕 发自 凹非寺量子位 出品 | 公众号 QbitAI

我们的工作正在不断发生改变。

掌握编程技能的重要性正在不断提升,包括AI在内的各行各业都对开发者有着巨大的需求,更别提编程还能锻炼大脑的思维能力。

应该怎么学编程?学习哪种编程语言?从何时开始学编程?

最近HackerRank发布了《2018开发者技能报告》。这份报告指出,学习编程最常见的方法是——自学。参与调查的开发者中,74%都曾自己教自己。

当然还有70%是在学校或者大学里学习的编程,有老师领进门。

学习习惯正在悄然改变。视频网站Youtube已经成为自学者的第二大利器。年轻一点比年长一代更喜欢看视频,而不是看书自学。

平均而言,开发者们掌握了4种语言,而且还想再多学4种。对学习的渴望程度因人而异,18-24岁的年轻开发者想学6种语言,而35岁以上这个数字降低为3种。

即使新语言经常出现,但掌握核心的传统语言对开发者来说非常重要。总体来说,现在雇主最常见的语言要求是:JavaScript、Java、Python、C++和C。

但参与调查的开发者们,最爱的编程语言是Python。

以下是这份报告的主要内容。

1/4的开发者不会开车已会编程

在所有参与调查的39000名开发者中,超过四分之一在16岁前,就写出了自己的第一段代码。但是,只要你有一颗进取的心,开始写程序的时间早晚并不重要。

那些26岁以后才开始编程的开发这种,有36%现在是高级(甚至更高级)的开发者,他们在职业生涯中获得了快速的迁升。

有意思的是,虽然电脑已经越来越普及,但开始接触编程的时间却在推迟。

调查显示,目前45-54岁之间的开发者,超过一半在16岁之前就开始编程。而现在18-24岁的开发者,反而最不可能在16岁前开始编程(仅有20%)。

几乎所有的开发者都渴望学习

似乎每年都有一个新的标志性编程语言、框架或者库在开发者博客中泛滥。以前是Backbone.js,现在是AngularJS和React。自学是所有开发者的常态,有74%的被调查者都有过自学经历,至少部分技能是自学的。

平均而言,开发者们掌握了4种语言,而且还想再多学4种。对学习的渴望程度因人而异,18-24岁的年轻开发者想学6种语言,而35岁以上这个数字降低为3种。

开发者自学的头号工具是——Stack Overflow。

而学习习惯正在悄然改变。视频网站Youtube已经成为自学者的第二大利器。年轻一点比年长一代更喜欢看视频,而不是看书自学。

雇主想要什么?

即使新语言经常出现,但掌握核心的传统语言对开发者来说非常重要。总体来说,现在雇主最常见的语言要求是:JavaScript、Java、Python、C++和C。

不同行业对语言的需求略有差异。例如,Java在金融服务领域流行多年。C语言主导了硬件行业。C#在政府机构中间更为普遍。

雇主最看重开发者的什么能力?解决问题的能力。这不仅仅是编程语言的熟练程度问题。事实上,与教育背景相比,雇主更看重你的实际能力。

绝大数招聘经理会从简历里寻找你过往的工作证明,你干过的项目,放在GitHub上的代码都能成为你工作能力最有力的背书。

开发者想要学什么?

开发者未来想学哪种语言,似乎跟硅谷科技巨头的方向密切相关。

调查显示,Go是开发者未来最想掌握的语言。谷歌推出的Go语言提供了很高的并发性、快速编译并且提供了广泛的支持。另外谷歌把Android的开发语言从Java改成Kotlin也影响不小。

同理,Twitter放弃了Ruby on Rails改用Scala,苹果从Objective-C迁移到Swift……这些变动都让开发者不得不做出相应的调整。

但,Python才是唯一。

参与调查的开发者们,最爱的编程语言就是Python。

有意思的是,与年长的开发者相比,年轻的开发者更不喜欢新出现的语言,例如Go、Kotlin、Scala等。实际上,对Go的看法分歧最大。

18-24岁的开发者,对Go不屑一顾。而45-54岁的开发者则把Go当做最爱的语言之一。JavaScript正好相反。

福利不是找工作最重要的事情

什么样的工作最打动开发者?

使命感?福利?

都不是。在这项调查中,开发者们最关注的事情是:工作与生活的平衡。更具体一点,美国的开发者比亚洲等地的开发者,更渴望工作与生活的平衡。

但对于18-24岁的开发者来说,工作与生活的平衡并不重要。

如何改善这个平衡?

参与调查的开发者最想要弹性工作制度。他们最喜欢的工作时间是上午10点到下午8点。另外,开发者们希望能够远程办公,而不必跑到办公室。

另外,25-44岁区间的开发者,强烈支持工作时间以外不收邮件。

One More Thing

在10岁之前接触编程,好像有额外的加成。

调查显示,15%的创始人/CEO/CTO在11岁之前开始编程,而不是高管的群体中这个比例为5%。

嗯?我好想明白了什么……

欢迎大家关注我们的专栏:量子位 - 知乎专栏

诚挚招聘

量子位正在招募编辑/记者,工作地点在北京中关村。期待有才气、有热情的同学加入我们!相关细节,请在量子位公众号(QbitAI)对话界面,回复"招聘"两个字。

量子位 QbitAI · 头条号签约作者

վ'ᴗ' ի 追踪AI技术和产品新动态



via 量子位 - 知乎专栏 http://ift.tt/2nCiWaM
RSS Feed

RSS5

IFTTT

视频全程:哈萨比斯首次公开解读AlphaZero

允中 发自 凹非寺

量子位 出品 | 公众号 QbitAI

上个月,NIPS 2017召开期间,DeepMind创始人兼CEO哈萨比斯,在一个研讨会上发表了演讲。当时也是哈萨比斯首次公开解读AlphaZero。

最近,哈萨比斯这段演讲的视频全程,首次公开。

哈萨比斯在演讲中首先提到DeepMind背后的哲学,这家公司奉行的第一性原理。回顾了AlphaGo在此前比赛中的表现,特别是那些具有"独创性"的时刻。

至于最新的AlphaZero,哈萨比斯坦言结果出乎他们预料。DeepMind本来认为手动调整的国际象棋引擎Stockfish已经接近最优解,但没想到AlphaZero还是在24小时之内,通过不断地自我对弈,最终击败了Stockfish。

当然不只是击败了一个国际象棋程序,AlphaZero还横扫了日本将棋程序Shogi,以及刚刚创下佳绩的围棋程序AlphaGo Zero。

在国际象棋比赛中,AlphaZero的棋风,既不像人、也不像电脑。

哈萨比斯介绍说,AlphaZero偏爱远期的局面性弃子,没有子力的概念。AlphaZero会根据当前的局面进行判断,相较而言,如果使用了刚性规则就无法动态调整策略。人类可以向AlphaZero学习国际象棋的战略,而不是战术。

当然,哈萨比斯也没忘了问一句:人类关于国际象棋的知识是不是太有限了?

这段视频全程在此(全程英文,没有字幕)。

undefined_腾讯视频



via 量子位 - 知乎专栏 http://ift.tt/2EdjwVT
RSS Feed

RSS5

IFTTT