黑人小哥四个月速成全栈机器学习全程解密

作者 | Jason Carter

翻译 | AI科技大本营(rgznai100)

参与 | reason_W,波波

前言

程序员转型AI、机器学习需要学多久?1年?3年?这是绝大多数考虑转型的人,从一开始就要认真思考的问题。

光说不练在这里没用,咱们还是要看真实的故事,来看看黑人小哥Jason Carter的转型之路。他是多伦多的一位软件工程师,在4月份打算转型机器学习,并公布了一项为期3个月的学习计划。

如今计划期满,他完成得怎么样呢?转型之路有何心得?我们先听听这位小哥自己的说法。

这其实就是线性代数,不是什么高深的学问。

我做了什么?怎么做到的?

这里,我就不再介绍原先的学习计划以及随后在LinkedIn上的跟进讨论了。如果你不怕冗繁的细节,可以重新去看原文:

学习计划: https://medium.com/towards-data-science/my-3-month-deep-learning-career-pivot-af94cd8d6a31 跟进讨论: https://www.linkedin.com/pulse/self-study-guide-becoming-deep-learning-non-expert-jason-carter

长话短说:我学完了,现在退出,开始找工作。

想马上知道接下来的事情吗?且听我说。我并没有完全照着一开始的计划,按部就班地学习,而更像是一段长达4个月的、挤满额外内容的学习经历。现在,我马上就要完成这段职业生涯的转型经历了,所以想和你们分享一下我的体会。

先分享一下我最终版的学习日程,然后再跟您们讨论这中间的变动以及我这样做的原因,最后是给初学者的一些建议。

顺便说一句,文章开篇这句“这其实就是线性代数,不是什么高深学问”,意味的是机器学习或深度学习并不简单。

我的学习日程

这段时间,我一直全身心的投入在学习上,每天学习10-14小时。我每天都努力完成时间安排,并且没有放下健身房和午餐的休息时间。大部分时候都可以正常完成,有时候也会熬到凌晨1点或2点再睡觉,但也有几天什么事情也没完成。有时候是因为我的懒惰(夏天实在容易变懒),其他时候是因为太累了。

这里还要提一下我学这些的背景—教育基础,我有一个软件工程学位和优达学城纳米级数据分析师的认证。除了工作经验,还是一名开发者和分析师。

第1个月

深度学习 - 第1部分(开始)- https://medium.com/towards-data-science/fast-ai-the-toc-of-practical-deep-learning-part-1-70c89187d654 尝试Kaggle竞赛 - https://www.kaggle.com/ 分享经验:中级 参加本地研讨会(一般AI讨论)

第2个月

深度学习 - 第1部分(完成)- https://medium.com/towards-data-science/fast-ai-the-toc-of-practical-deep-learning-part-1-70c89187d654 从头开始构建深度学习框架- https://medium.com/towards-data-science/build-a-deep-learning-pc-for-1-000-cad-f3c5f26ba134 MNIST对抗挑战(使用500px面试项目进行实践)- https://github.com/jasonicarter/MNIST-adversarial-images/blob/master/MNIST-adversarial-images.ipynb 数据科学家与Python,职业培训营:DataCamp(开始)-https://www.datacamp.com/tracks/data-scientist-with-python 分享经验:中级 参加本地研讨会(AI讲座和小组讨论)

第3个月

深度学习 - 第2部分(开始+暂停) 数据科学家与Python,职业培训营:DataCamp(完成)- https://www.datacamp.com/tracks/data-scientist-with-python 吴恩达的机器学习:Coursera(已完成) 分享经验:中级 更多本地研讨会(DeepLearning:TensorFlow和Kubernetes)- https://medium.com/@deeplearni.ng

第4个月

深度学习,第2部分(开始) Capstone:构建和部署端到端深度学习产品(开始) 分享经验:中级

杂项

就像一个笔记,每个课程或程序都有很多阅读材料——博客文章,斯坦福大学在线CNN课程,学术论文等——和往常一样,终究要花功夫学习额外的知识。我虽然做了大量的“额外”阅读,但肯定有一些地方跳了过去或者没有兴趣继续了解下去。 我目前已经学习到第四个月(到7月中旬实际上是3.5个月,我提前了),但是打算不久之后就开始找工作,不会一整个月都拿来学习。

细节

我对原来的时间表做了3个比较大的改动:

  1. 数据科学家与Python(DataCamp)- https://www.datacamp.com/tracks/data-scientist-with-python
  2. 吴恩达的机器学习(Coursera)- https://www.coursera.org/learn/machine-learning
  3. Capstone项目(端到端深入学习项目)

在开始深度学习的第2部分之后,我决定参加Datacamp举办的数据科学家与Python培训营。要多从实践的角度思考所学的内容,因为我目前的角色并不能简单的划分成单纯的深度学习或单纯的经典机器学习。所以尽管动手实践深度学习的经历很棒,但如果在接受采访时,我不了解KNN和k-means算法之间的区别,仍将会十分尴尬。

另外,尽管Python提供了快速AI程序,但它并不教授Python,而DataCamp的职业生涯训练营则有许多Python在数据挖掘和操作方面的课程。

由于我之前已经完成了优达学城的数据分析课程, 所以DataCamp的项目对我来说,更多的像是复习(当然也有一些新的提示和技巧),但这正是我需要的。

总结起来就是:

  • DataCamp项目适合进行深入的学习,且涵盖范围广泛。它这种让你一行一行实践Python代码的方式非常棒!
  • 优达学城的项目为每个机器学习算法提供了非常多的细节,方便你了解如何使用它们并构建优秀的大型项目。

斯坦福大学机器学习课程,由吴恩达在Coursera上教授的可能是互联网上最著名的机器学习课程。这差不多是我想学它的主要原因。另外,我也从朋友那里听说这是一个很棒的课程。

我学这门课的目标是为了强化自己的知识基础。虽然在之前我已经学习过优达学城和DataCamp的课程,这两个课程都涉及机器学习 - 从不同的角度讲述,但我认为再多学习一门这个领域中最好的课程绝对有利无害。

这门课非常有意思,有趣且具有挑战性。像其他一切一样,有一些我完全理解的部分,也有一些我还没有完全搞清楚的部分。

我不认为Octave会在任何新项目里帮到我,但对于完成几次作业来说,这个软件并不难上手。虽然这门课是一个很棒的经历,但我仍然相信Udacity的数据分析师纳米学位有更实际的用处。

最后一件帮助我完成学习目标的事,是Capstone的端到端深度学习项目。数据科学或机器/深度学习不仅仅是关于理论,算法,研究和出版论文!对于我来说,我一直想要构建产品,做一个实践者,做一些事情。

在我的Capstone项目中,我将定义一个问题、潜在的解决方案、源数据、构建和测试模型、生成模型、实现API、UI前端并部署到“生产”上。本质上,我将要建立一个端到端的深入学习管道,从而打造一个直播产品。

...或者至少,这是一个计划。

我对初学者的建议

开始学习。你没有什么好的借口可以不去学习,哪怕是换了职业。

学几门数学课程,但几门也就够了。

边注:据我所知,实际的机器和深度学习不涉及计算/编码std、求导、反向传播、KNN等的亲自实现,甚至Python中都没有函数库 - 尽管我相信一些面试官不这样认为(也就是不使用str.split()函数而分割这个字符串,因为在生产中我们不使用库,这让你明白我们一般如何处理这种商业案例。)

但我还是要偏一句题,这不是说你不需要数学,而是说你只需要了解术语代表什么意思,如何解释它们,以及如何根据他们的信息来修正模型(或参数)即可。但在实际实施机器学习和深度学习的世界中,并不需要博士学位:

这其实就是线性代数,不是什么高深学问。

但是,现在并不建议你开始着手一个大的项目,因为它将占满你的学习时间。尝试做一些实际动手的工作,使用真实的数据进行练习,你需要它们来增长经验和参加面试,而不是马上就开始处理你开始新的职业生涯之后才会遇到的,更重要的现实世界的问题。

我觉得我的脑子里已经充满了机器学习和深度学习的“东西”,总是有一篇要去读的新论文或发表的文章。但还是得慢慢来,我很确定我还没有达到我想要的程度。

综上所述,我建议你学习的课程包括:

  1. 数据科学家与Python(DataCamp)
  2. 数据分析师纳米学位(Udacity)
  3. Andrew Ng(Coursera)的机器学习
  4. 深度学习(快速AI)
  5. 进行个人项目或参加Kaggle竞赛进行练习(在进行步骤1-4的时候)

另附:这里还有我正在更新的一些“阅读清单”,以记录我在学习过程中做的更重要的事情。你可以在我的博客上找到它们:http://jasonicarter.github.io/deep-learning-reading-list

课程

  1. Deep Learning - Part 1: MOOC version and USF, Data Institute: Deep Learning - Part 1 from the company Fast.ai http://course.fast.ai/ https://www.usfca.edu/data-institute/certificates/deep-learning-part-one
  2. Data Scientist with Python track - DataCamp https://www.datacamp.com/tracks/data-scientist-with-python
  3. Machine Learning by Stanford University - Coursera https://www.coursera.org/learn/machine-learning

视频

  1. Deep Learning Demystified https://youtu.be/Q9Z20HCPnww
  2. How Convolutional Neural Networks work https://youtu.be/FmpDIaiMIeA

书、论文、文章及博客

  1. Neural Network Architectures https://medium.com/towards-data-science/neural-network-architectures-156e5bad51ba
  2. A Neural Network in 11 lines of Python http://iamtrask.github.io/2015/07/12/basic-python-network
  3. Standford CS231n: Convolutional Neural Networks for Visual Recognition http://cs231n.github.io/
  4. Grokking Deep Learning https://www.manning.com/books/grokking-deep-learning
  5. Designing great data products https://www.oreilly.com/ideas/drivetrain-approach-data-products
  6. Get Started with TensorFlow https://www.tensorflow.org/get_started
  7. Deep MNIST for Experts https://www.tensorflow.org/get_started/mnist/pros
  8. TensorFlow Machancis 101 https://www.tensorflow.org/get_started/mnist/mechanics
  9. The Unreasonable Effectiveness of Recurrent Neural Networks http://karpathy.github.io/2015/05/21/rnn-effectiveness
  10. Breaking Linear Classifiers http://karpathy.github.io/2015/03/30/breaking-convnets
  11. Explaining and Harnessing Adversarial Examples https://arxiv.org/abs/1412.6572
  12. How to trick a neural network into thinking a panda is a vulture https://codewords.recurse.com/issues/five/why-do-neural-networks-think-a-panda-is-a-vulture
  13. Attacking Machine Learning with Adversarial Examples https://blog.openai.com/adversarial-example-research
  14. GAN by Example using Keras on Tensorflow Backend https://medium.com/towards-data-science/gan-by-example-using-keras-on-tensorflow-backend-1a6d515a60d0
  15. Perceptual Losses for Real-Time Style Transfer and Super-Resolution http://arxiv.org/abs/1603.08155
  16. A Neural Algorithm of Artistic Style http://arxiv.org/abs/1508.06576
  17. Convolutional Arithmetic Tutorial http://deeplearning.net/software/theano/tutorial/conv_arithmetic.html

我接下来的计划

找工作。我的最后一件事当然是恢复工作。我会尝试尽可能有选择地去找工作,不是说我以前没有这样做,而是我认为这是一个职业变化,认真审视这个过程的每一方面都是很好的。

到目前为止,我一直在被动地审查公司,调查他们在机器学习和深度学习领域中究竟做了什么。所谓的“机器学习工程师”在深度学习方面做的很少,而其他“数据工程师”则需要很多CNN或NLP的知识以及Docker和Apache Spark等的技术。

到目前为止,我学到的两件事(或者说还没学到?)

  1. 没有真正的“深度学习工程师”角色,它只是被附加到了ML的描述中,所以得记得仔细阅读工作责任部分。
  2. 数据科学家,数据工程师甚至数据分析师的角色可能因公司和工作职责而异。这个可以细分成企业需求和创业公司的需求。

对于我个人来说,根据我的兴趣,我将寻找一个职位,让我能够扩展我在深度学习中的专长(它本身就是一个大领域),同时还能使用一些“经典”的机器学习技术。如果他们能丢给我一些UI开发工作,甚至会更好...

那么,了解完我的这段经历,你认为,任何人都有机会能成为全栈机器学习工程师吗?

原文地址: https://medium.com/towards-data-science/4-months-of-machine-deep-learning-89f6ab56a2fd

文章来源:AI科技大本营

原创声明,本文系作者授权云+社区-专栏发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

1 条评论
登录 后参与评论

相关文章

来自专栏AI科技大本营的专栏

四个月速成全栈机器学习?这位黑人小哥三个半月就开始找工作了

程序员转型AI、机器学习需要学多久?1年?3年?这是绝大多数考虑转型的人,从一开始就要认真思考的问题。 光说不练在这里没用,咱们还是要看真实的故事,来看看黑...

3418
来自专栏CreateAMind

一旦机器人眼超越人眼,机器人物种会发生大爆炸 | 张晓林 一席第424位讲者 内容丰富深入

作者介绍了眼睛进化的丰富知识,生物视觉的各种类型、还有鹰眼、兔眼等各种生物眼,介绍了生物视觉的各种应用:机器视觉的路线分析。仿生眼的制作思路。前庭动眼反射就是人...

884
来自专栏AI科技大本营的专栏

刚刚,DeepMind被IJCAI授予杰出成就奖,因为他家把AlphaGo Zero做成了暖心的新垣结衣?

啥都别说,先看图好不好 首先,恭喜DeepMind荣获大奖。 其次,获奖评语中,一定不会少的是对他家新品AlphaGo Zero的大加赞叹。 这货3天走完人类的...

35214
来自专栏大数据文摘

全方位搜集汪星人行为数据,让AI学做一只狗 | 华盛顿大学最新研究

1875
来自专栏大数据文摘

AI角 | 吴恩达李飞飞西瓜书课程学习打卡开启,追随superstar,搞定AI核心知识!

1883
来自专栏AI科技评论

学界丨这届机器学习论文评比,搞怪无厘头我只服 Reddit

你知道吗?Reddit 上的 Machine Learning 小组上目前已经聚集了 85,613 位关注者了,而在 2016 年底的时候,@Mandratha...

3455
来自专栏大数据文摘

关于大脑,这五个“常识”其实是谣言

1252
来自专栏智能算法

遗传算法:让发明自动“进化”

未来十年,哪些技术会对我们的生活产生重大影响?近日,英国《新科学家》杂志遴选出了七项技术,并作了解读。今天我们介绍其中的第六项技术。 目前,我们正处在历史上一...

3107
来自专栏ATYUN订阅号

赫尔辛基大学AI基础教程:我们如何定义人工智能(1.1节)

也许你已经注意到,人工智能目前是一个“热门话题”:关于人工智能的媒体报道和公众讨论几乎是不可避免的。但是,你也许也会注意到,它对不同的人意味着不同的东西。对于有...

932
来自专栏大数据文摘

李飞飞:我们怎么教计算机理解图片

20713

扫码关注云+社区