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

作者 | 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 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大数据文摘

重振人工智能雄心壮志的时刻已经到了

2068
来自专栏吉浦迅科技

乐见人工智能:深度学习如何用于检测眼疾

很多老年人都会有眼睛黄斑部退化(又称老年性黄斑部病变)的毛病,会让视力开始变差,双眼中央视野模糊;最早还能使用倍数更高的放大镜来阅读,但到最后可能都看不清他人的...

32911
来自专栏机器之心

观点 | SwiftKey联合创始人谈智能的基础:创造智能机器也许还需要身体

选自aeon 作者:Ben Medlock 机器之心编译 参与:黄小天、吴攀 本文作者 Ben Medlock 是 SwiftKey 的联合创始人。SwiftK...

33212
来自专栏机器之心

人工智能能骗过人类吗?愚人节特写:这不是玩笑

机器之心原创 作者:吴攀 人类自开始认识自己以来,大概就一直在梦想着能创造能与自己别无二致的存在(从偃师献给周穆王的歌舞艺伎到弗兰肯斯坦的怪物再到近段时间以来越...

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

教你两种黑掉“人工智能”的方法

翻译 | AI 科技大本营 参与 | shawn 编辑 | Donna 近期,微软(Microsoft)和阿里巴巴(Alibaba)先后宣布,其人工智能系统在一...

3666
来自专栏UAI人工智能

强化学习Reinforcement Learning被MIT Technology Review列入 2017 年十大技术

1293
来自专栏大数据文摘

视觉研究的前世今生(下)

2064
来自专栏企鹅号快讯

能处理视频的AI

任何一位对人工智能(AI)技术怀有极深戒备的读者都会因Nvidia的最新产品平添几分不安——他们搞出了能处理视频图像AI;从有图有真相到有视频有真相,而以后或许...

3596
来自专栏企鹅号快讯

人工智能或能帮助揭示永葆青春的秘密 寻减缓衰老药物

永葆青春的关键是什么?近日,俄罗斯科学家提出了一个寻找该问题答案的计划,而人工智能将在其中发挥重要的作用。这是一张关于衰老的概念图。 细胞培养结束之后,研究人员...

17510
来自专栏LET

最美的理论(上篇)

1424

扫码关注云+社区