机器学习`侠`练成记录 Becoming a Machine Learning Practitioner
modifiedname
管理员
Becoming a Machine Learning Practitioner
为什么叫机器学习`侠`,是`调包侠`, `调参侠`的梗上图来自Google 2015的论文,图片里面很小的黑色矩形是ML算法,其他部分是围绕算法的很多其他成分。
业界做ML,当然有算法的成分,有些公司也有很高深的算法(比如Google),但是工程的成分其实经常会远远,远远的多于算法,在一个激灵想出来的算法能真正落地给业务产生impact之前,有大量的工程方面的设计和考虑。好的大公司也在纷纷构建自家的机器学习平台让ML的投产变得更容易。
但是这些需求在学校ML课程里面很少被提及,给人的印象就是,做ML就是“调包,调参”。但是实际工作里面调包和调参的时间比例可能也就10-20%...
为什么发这篇帖子,也是来自于之前一直在DS领域总结学习,希望持续分享自己学习的历程,求讨论
Why this post
It’s an opinionated list of core skills that I found useful in the daily work of a machine learning practitioner, in the tech industry. I am not a researcher and am not interested in becoming one, so the list does not go in depth into any active research domain.
需要强调的是,我不是做ML科研的,也不想做科研,所以本文就是于业界做ML的大家交流讨论,并不打算深入任何科研领域,请做科研的大牛轻拍。
I’ll be maintaining this list just as I maintained the learning path for data science in the past here https://www.1point3acres.com/bbs/forum.php?mod=viewthread&tid=76429&extra=&page=1.
It’s not meant to be exhaustive, and we probably don’t need to know them all.
另外这篇内容也并不会多完备。机器学习领域大牛很多,领域很广,应用更是广阔到难以尽数,所以不求尽善尽美,只是抛砖引玉,求交流学习。
Suggestions/discussions welcome.
本文适合什么人
## 0. Who is this for
This is a practitioner’s approach. Researchers: This post is not for you. 不是给ML方向做研究的人;牛人路过就好,不喜勿进。
- Data analyst: you don’t need this. Read this instead: https://www.1point3acres.com/bbs ... 76429&extra=&page=1
- Data scientist who’s more junior in modeling or focuses on causal inference: 3, some of 4. This list will give more resources: https://www.1point3acres.com/bbs ... 76429&extra=&page=1
- Machine learning scientist: 2, 3, expert knowledge of 4,
- Machine learning engineer: 1, 2, some 3, good knowledge of 4, 5, some knowledge of 6
- Machine learning systems engineer: 1, 2, maybe 3, some knowledge of 4, expert knowledge of 5 and 6
## 1. CS Fundamentals 计算机基础
Data structure ( 地里关于Berkeley 61B的板块 or Coursera specialization )
Design and analysis of algorithms( Coursera Part 1, Coursera Part 2)
Database (Stanford archived DB course or Using Database with Python)
Discrete math (Coursera Discrete Math specialization)
Operating System (Book: Modern Operating Systems)
## 2. Programming languages 编程语言
为什么与上一节计算机基础分开来说:因为老是遇到同学说我会numpy啊为什么你说我基础不行。。。。实际上是可以在不太懂基础的情况下楞刷题,或者写些基本能用的代码的。但是稍微深一点的地方会感觉基础知识的缺乏会让人难以在ML道路上上升到一定高度。
Must have :Python, Java
必须一门Python(因为ML好多framework就是python),和一门compiled language.
仅仅只会python,作为scientist是够了,作为engineer就会有显著差距。
Good to have: C++ 不一定是必须的。但是如果做的工作对速度有比较强的要求,那还是需要会C++的
Will likely encounter at work: scala/go/js 这些看每家tech stack不一样,会有不同涉及。遇到了再学即可。
Will likely encounter in academic settings: Matlab/Octave, R, Julia 这些是学校里面用的多,我至今(2018年底)没看见公司里面用julia的。
## 3. Math Fundamentals 数学和统计基础
Linear algebra 线性代数,必须的
Calculus 这个大家应该都上过
Optimization 优化:必须的
Statistics 基础统计(不是概率论 which is also good to have,这里是特指统计)
(real analysis and functional analysis might be useful, but is not required)
有空的话学实分析和泛函也可以,但是不是必须的
## 4. Machine Learning, from intro to advanced
这部分稍微区分一下从入门到进阶
### 4a. Intro 入门
- 这门课可能没有人不知道了 Introductiont to Machine Learning by Andrew Ng
- 这本书是ESL的简单版,作为直觉培养和思路练成,仍然是不错的,但是那里面的编程就很轻很轻了,真的只够本科生用 Very light but still a good book: an introduction to statistical learning
- 深度学习,也是Ng这课来入门还是不错的
- 另外个人比较喜欢Udacity的第一门旗舰课程讲AI的,基于斯坦福的一门本科生课程。会稍微设计一点比前几门入门课更宽广的概念,虽然很浅但是对了解domain很有好处。
### 4b. Advanced 进阶
- 前面几门主要还是supervised learning,下面这门稍微宽广一点,并不完全是ML,但是也是因此感觉对知识面和落地有帮助
Data mining & other topics: Mining Massive Data Sets http://web.stanford.edu/class/cs246/
- 这门课可惜没有录像,关于实战的部分讲的还是不错的,而且是其他课程都没有涉及到,但是工作里面的确需要的部分
Cornel course (slides only) adv ml http://www.cs.cornell.edu/courses/cs6780/2010fa/lectures.html
- Book:
经典ESL 不必多说,统计角度 Elements of Statistical Learning
经典不必多说,CS角度 Pattern Recognition and Machine Learning
- 下面看几个应用大方向
- Info retrieval & search engine 信息提取和搜索
Some intro here:
UIUC course slides https://github.com/SSQ/Coursera-UIUC-Text-Retrieval-and-Search-Engines-Lecture-Slides
- Recommender systems 推荐系统
- Image: 图像识别,如今主要就是CNN了
Andrej版的CS231n堪称经典 stanford CS231n Convolutional Neural Networks for Visual Recognition
- NLP 自然语言处理
others to be added
NLU 暂时不知道哪里有比较好的课- Reinforcement Learning, Deep Reinforcement Learning 加强学习
(book and course TBD)
- Lots more stuff in DL here
经典课本(但是我觉得读起来还是蛮晦涩。。。不知道我是不是一个人)Deep learning book by Ian Goodfellow and Yoshua Bengio
之前学DL的时候的一些收集 看这里
### 4c. Frameworks
非深度学习,最常用的肯定就是 General ML framework: sci-kit-learn
深度学习的目前很多了 DL: Tensorflow(Keras), Caffe, Pytorch(Caffe2)
TF的看狗家自己的内容,或者Ng那个课;Pytorch的看fast.ai
Up & coming 或者已经下去了的: theano, MXnet, dl4j
## 5. Scaling considerations: Big data, distributed systems etc 数据量大了面临的问题
做小数据ML(笔记本上跑跑regression or classification,产生个报告给别人看)严格来说算不上ML,其实主要只能算是modeling(统计建模)
high dimensional data 是另外一个故事,这里先按下不提。
只说业界,面试会考系统设计的地方,需要用到的机器学习系统:
从最最小白的地方看起:(非科班同学不妨看看,科班的可以绕过)
This blog post: thorough intro to distributed systems
And this
System Design: 虽然这个是准备面试用的,但是作为大致入门也是差不多了
Grokking system design interview (for brushing up fundamentals and case studies)
DDIA 堪称经典 Book Designing Data Intensive Applications : for an in-depth look, refer back to fundamental knowledge in OS
Distributed OLTP and OLAP
## 6. ML Systems & Platforms 机器学习系统和平台
- 这门课还是可惜没有录像只有slides
Adv ML systems (Cornell, slides only)
- Book: 这本书我也只有翻过,还不知道到底多好
- NIPS2018: to find some talks http://learningsys.org/nips18/schedule.html
### ML Systems 什么是机器学习系统
- Prod ML, paper 1 (tech debt) https://ai.google/research/pubs/pub43146,
- paper 2 (test score), https://ai.google/research/pubs/pub46555
- tbd
### ML Platforms 机器学习平台
- Google:
TFX https://www.tensorflow.org/tfx/ & KDD talk https://www.kdd.org/kdd2017/papers/view/tfx-a-tensorflow-based-production-scale-machine-learning-platform
- Facebook:
FB Learner flow https://code.fb.com/ml-applications/introducing-fblearner-flow-facebook-s-ai-backbone/
- Uber:
Michelangelo https://eng.uber.com/scaling-michelangelo/
深度学习 Horovod https://eng.uber.com/horovod/
- Linkedin:
Pro ML https://twimlai.com/twiml-talk-200-productive-machine-learning-at-linkedin-with-bee-chung-chen/
- Airbnb:
居然缺logo 另外这个podcast很不错,建议不要错过
Podcast TwimlAI is featuring a lot of these systems lately, a fantastic listen
https://twimlai.com/shows/
其他还有 Amazon, Netflix etc, ...
已获得 172 大米


+2
共87条回复
modifiedname
管理员
作者置顶
MIT,和无人车的内容统一更新在这一楼
good stuff here:
https://deeplearning.mit.edu/
lots of practitioner's talk on actual, industry scale systems that's hard to find elsewhere
无人车
Part of MIT course, self driving car (slightly out of date but still good stuff)https://ocw.mit.edu/resources/re ... 5/unit-8.-robotics/
Here's a 2017 talk by Cruise,
https://www.youtube.com/watch?v=s-8cYj_eh8E
百度 Apollohttps://www.youtube.com/watch?v=jiZhSIrmODk
2019 MIT 的最新总结
https://www.youtube.com/watch?v=53YvP6gdD7U
good stuff here:
https://deeplearning.mit.edu/
lots of practitioner's talk on actual, industry scale systems that's hard to find elsewhere
无人车
Part of MIT course, self driving car (slightly out of date but still good stuff)https://ocw.mit.edu/resources/re ... 5/unit-8.-robotics/
Here's a 2017 talk by Cruise,
https://www.youtube.com/watch?v=s-8cYj_eh8E
百度 Apollohttps://www.youtube.com/watch?v=jiZhSIrmODk
2019 MIT 的最新总结
https://www.youtube.com/watch?v=53YvP6gdD7U
已获得 1 大米
✨ 您正在体验新版论坛UI

