自上而下的学习路线: 软件工程师的机器学习

灵感来源于 谷歌面试学习手册

  • 原文地址:Machine Learning for Software Engineers
  • 原文作者:ZuzooVn(Nam Vu)
  • 翻译:lsvih

这是?

这是本人为期数月的学习计划。我正要从一名移动端软件开发者(自学,无计科文凭)转型成为一名机器学习工程师。

我的主要目标是找到一种以实践为主的学习方法,并为初学者抽象掉大多数的数学概念。
这种学习方法是非传统的,因为它是专门为软件工程师所设计的自上而下、以结果为导向的学习方法。

如果您想让它更好的话,随时欢迎您的贡献。


目录

  • 这是?
  • 为何要用到它?
  • 如何使用它?
  • Follow me
  • 别认为自己不够聪明
  • 关于视频资源
  • 预备知识
  • 每日计划
  • 动机
  • 机器学习概论
  • 掌握机器学习
  • 有趣的机器学习
  • 机器学习简介
  • 一本深入的机器学习指南
  • 故事与经验
  • 机器学习算法
  • 入门书籍
  • 实用书籍
  • Kaggle知识竞赛
  • 系列视频
  • MOOC
  • 资源
  • 成为一名开源贡献者
  • 游戏
  • 播客
  • 社区
  • 相关会议
  • 面试问题
  • 我崇拜的公司

为何要用到它?

我会为了我未来的工作————机器学习工程师 遵循这份计划。自2011年以来,我一直进行着移动端应用的开发(包括安卓、iOS与黑莓)。我有软件工程的文凭,但没有计算机科学的文凭。我仅仅在大学的时候学习过一点基础科学,包括微积分、线性代数、离散数学、概率论与统计。
我认真思考过我在机器学习方面的兴趣:

  • 我能在没有计科硕士、博士文凭的情况下找到一份关于机器学习的工作吗?
    • "你当然可以,但是我想进入这个领域则无比艰难。" Drac Smith
  • 我是一名软件工程师,我自学了机器学习,我如何在没有相关经验的情况下找到一份关于机器学习的工作?
    • "我正在为我的团队招聘机器学习专家,但你的MOOC并不会给你带来工作机会。事实上,大多数机器学习方向的硕士也并不会得到工作机会,因为他们(与大多数上过MOOC的人一样)并没有深入地去理解。他们都没法帮助我的团队解决问题。" Ross C. Taylor
  • 找一份机器学习相关的工作需要掌握怎样的技能?
    • "首先,你得有正儿八经的计科或数学专业背景。ML是一个比较先进的课题,大多数的教材都会直接默认你有以上背景。其次,机器学习是一个集成了许多子专业的奇技淫巧的课题,你甚至会想看看MS的机器学习课程,去看看他们的授课、课程和教材。" Uri
    • "统计,假设,分布式计算,然后继续统计。" Hydrangea

我深陷困境。

据我所知, 机器学习有两个方向:

  • 实用机器学习: 这个方向主要是查询数据库、数据清洗、写脚本来转化数据,把算法和库结合起来再加上一些定制化的代码,从数据中挤出一些准确的答案来证明一些困难且模糊不清的问题。实际上它非常混乱。
  • 理论机器学习: 这个方向主要是关于数学、抽象、理想状况、极限条件、典型例子以及一切可能的特征。这个方向十分的干净、整洁,远离混乱的现实。

我认为对于以实践为主的人来说,做好的方法就是 “练习--学习--练习”,这意味着每个学生一开始就能参与一些现有项目与一些问题,并练习(解决)它们以熟悉传统的方法是怎么做的。在有了一些简单的练习经验之后,他们就可以开始钻进书里去学习理论知识。这些理论知识将帮助他们在将来进行更进一步的训练,充实他们解决实际问题的工具箱。学习理论知识还会加深他们对那些简单练习的理解,帮助他们更快地获得进阶的经验。

这是一个很长的计划,它花去了我一年的时间。如果你已经对它有所了解了,它将会让你省去很多时间。

如何使用它?

以下的内容全部是概要,你需要从上往下来解决这些项目。

我使用的是Github独特的flavored markdown的任务列表来检查我计划的进展。

  • [x] 创建一个新的分支,然后你可以这样来标出你已经完成的项目,只需要在框中填写一个x即可:[x]

了解更多有关 Github-flavored markdown的知识

Follow me

我是一名非常非常想去美国工作的越南软件工程师。

我在这份计划中花多少时间?在每天的艰辛工作完成后,每晚花4小时。

我已经在实现梦想的旅途中了。

  • Twitter: @Nam Vu
自上而下的学习路线: 软件工程师的机器学习_第1张图片
Nam Vu - Top-down learning path: machine learning for software engineers
USA as heck

别认为自己不够聪明

当我打开书本,发现他们告诉我多元微积分、统计与推理、线性代数是学习机器学习的先决条件的时候,我非常沮丧。因为我不知道从哪儿开始…

  • 我数学不好怎么办
  • 没有数学专业背景而理解机器学习算法的5种技巧
  • 我是如何学习机器学习的?

关于视频资源

部分视频只有在Coursera、EdX的课程注册了才能观看。虽然它们是免费的,但有些时间段这些课程并不开放,你可能需要等上一段时间(可能是好几个月)。我将会加上更多的公开的视频源来代替这些在线课程的视频。我很喜欢大学的讲座。

预备知识

这个小章节是一些在每日计划开始前我想去了解的一些预备知识与一些有趣的信息。

  • [ ] Data Analytics,Data Analysis,数据挖掘,数据科学,机器学习,大数据的区别是什么?
  • [ ] 学习如何去学习
  • [ ] 不要斩断锁链
  • [ ] 如何自学

每日计划

每个主题都不需要用一整天来完全理解它们,你可以每天完成它们中的多个。

每天我都会从下面的列表中选一个出来,一遍又一遍的读,做笔记,练习,用Python或R语言实现它。

动机

  • [ ] 梦

机器学习概论

  • [ ] 形象的机器学习简介
  • [ ] 一份温柔的机器学习指南
  • [ ] 为开发者准备的机器学习简介
  • [ ] 菜鸟的机器学习基础
  • [ ] 你如何向非计算机专业的人来解释机器学习与数据挖掘?
  • [ ] 在罩子下的机器学习,博文简单明了地介绍了机器学习的原理
  • [ ] 机器学习是什么?它是如何工作的呢?
  • [ ] 深度学习——一份非技术性的简介

掌握机器学习

  • [ ] 掌握机器学习的方法
  • [ ] 程序员的机器学习
  • [ ] 掌握并运用机器学习
  • [ ] Python机器学习小课程
  • [ ] 机器学习算法小课程

有趣的机器学习

  • [ ] 机器学习真有趣!
  • [ ] Part 2: 使用机器学习来创造超级马里奥的关卡
  • [ ] Part 3: 深度学习与卷积神经网络
  • [ ] Part 4: 现代人脸识别与深度学习
  • [ ] Part 5: 翻译与深度学习和序列的魔力
  • [ ] Part 6: 如何使用深度学习进行语音识别
  • [ ] Part 7: 使用生成式对抗网络创造 8 像素艺术
  • [ ] Part 8: 如何故意欺骗神经网络

机器学习简介(用手指沾上墨水来书写机器学习简介)

  • [ ] Part 1 : 什么是机器学习?
  • [ ] Part 2 : 监督学习与非监督学习

一本深入的机器学习指南

  • [ ] 概述,目标,学习类型和算法
  • [ ] 数据的选择,准备与建模
  • [ ] 模型的评估,验证,复杂性与改进
  • [ ] 模型性能与误差分析
  • [ ] 无监督学习,相关领域与实践中的机器学习

故事与经验

  • [ ] 一周的机器学习
  • [ ] 一年的机器学习
  • [ ] 我是如何在3天内写出我的第一个机器学习程序的
  • [ ] 学习路径:你成为机器学习专家的导师
  • [ ] 不是PhD你也可以成为机器学习的摇滚明星
  • [ ] 如何6个月成为一名数据科学家:一名黑客的职业规划
    • 视频
    • 幻灯片
  • [ ] 5个你成为机器学习工程师必须要掌握的技能
  • [ ] 你是一个自学成才的机器学习工程师吗?你是怎么做的?花了多长时间?
  • [ ] 一个人如何成为一名优秀的机器学习工程师?
  • [ ] 一个专注于机器学习的学术假期

机器学习算法

  • [ ] 用“士兵”来表示10种机器学习算法
  • [ ] Top10的数据挖掘算法
  • [ ] 介绍10种机器学习的术语
  • [ ] 机器学习算法之旅
  • [ ] 机器学习工程师需要知道的10种算法
  • [ ] 比较监督学习算法
  • 收集的最简化、可执行的机器学习算法

入门书籍

  • [ ] 《Data Smart: Using Data Science to Transform Information into Insight》第 1 版
  • [ ] 《Data Science for Business: What you need to know about data mining and data analytic-thinking》
  • [ ] 《Predictive Analytics: The Power to Predict Who Will Click, Buy, Lie, or Die》

实用书籍

  • [ ] Hacker 的机器学习
    • GitHub repository(R)
    • GitHub repository(Python)
  • [ ] Python 机器学习
    • GitHub repository
  • [ ] 集体智慧编程: 创建智能 Web 2.0 应用
  • [ ] 机器学习: 算法视角,第二版
    • GitHub repository
    • Resource repository
  • [ ] Python 机器学习简介: 数据科学家指南
    • GitHub repository
  • [ ] 数据挖掘: 机器学习工具与技术实践,第 3 版
    • Teaching material
      • 1-5 章幻灯片(zip)
      • 6-8 章幻灯片(zip)
  • [ ] Machine Learning in Action
    • GitHub repository
  • [ ] Reactive Machine Learning Systems(MEAP)
    • GitHub repository
  • [ ] An Introduction to Statistical Learning
    • GitHub repository(R)
    • GitHub repository(Python)
    • 视频
  • [ ] 使用 Python 构建机器学习系统
    • GitHub repository
  • [ ] 学习 scikit-learn: 用 Python 进行机器学习
    • GitHub repository
  • [ ] Probabilistic Programming & Bayesian Methods for Hackers
  • [ ] Probabilistic Graphical Models: Principles and Techniques
  • [ ] Machine Learning: Hands-On for Developers and Technical Professionals
    • Machine Learning Hands-On for Developers and Technical Professionals review
    • GitHub repository
  • [ ] 从数据中学习
    • 在线教程
  • [ ] 强化学习——简介(第 2 版)
    • GitHub repository
  • [ ] 使用TensorFlow(MEAP)进行机器学习
    • GitHub repository

Kaggle知识竞赛

  • [ ] Kaggle竞赛:怎么样,在哪里开始?
  • [ ] 一个初学者如何用一个小项目在机器学习入门并在Kaggle竞争
  • [ ] 如何竞争Kaggle的Master

系列视频

  • [ ] Machine Learning for Hackers
  • [ ] Fresh Machine Learning
  • [ ] Josh Gordon 的机器学习菜谱
  • [ ] 在 30 分钟以内了解机器学习的一切
  • [ ] 一份友好的机器学习简介
  • [ ] Nuts and Bolts of Applying Deep Learning - Andrew Ng
  • [ ] BigML Webinar
    • 视频
    • 资源
  • [ ] mathematicalmonk's Machine Learning tutorials
  • [ ] Machine learning in Python with scikit-learn
    • GitHub repository
    • 博客
  • [ ] 播放清单 - YouTuBe 上最热门的机器学习、神经网络、深度学习视频
  • [ ] 16 个必看的机器学习教程
  • [ ] DeepLearning.TV
  • [ ] Learning To See
  • [ ] 神经网络课程 - Université de Sherbrooke
  • [ ] 2016年的21个深度学习视频课程
  • [ ] 2016年的30个顶级的机器学习与人工智能视频教程 Top Videos, Tutorials & Courses on Machine Learning & Artificial Intelligence from 2016
  • [ ] 程序员的深度学习实战

MOOC

  • [ ] edX 的人工智能导论
  • [ ] Udacity的机器学习导论
    • 复习Udacity机器学习导论
  • [ ] Udacity的监督学习、非监督学习及深入
  • [ ] Machine Learning Foundations: A Case Study Approach
  • [ ] Coursera的机器学习
    • 视频
    • 复习Coursera机器学习
    • Coursera的机器学习路线图
  • [ ] 机器学习提纯
  • [ ] BigML training
  • [ ] Coursera的神经网络课程
    • 由Geoffrey Hinton(神经网络的先驱)执教
  • [ ] 使用TensorFlow创建深度学习应用
  • [ ] 描述统计学概论
  • [ ] 推理统计学概论
  • [ ] 6.S094: 自动驾驶的深度学习
  • [ ] 6.S191: 深度学习简介
  • [ ] Coursera 深度学习教程

资源

  • [ ] 一个月学会机器学习
  • [ ] 一份“非技术性”的机器学习与人工智能指南
  • [ ] Google机器学习工程师最佳实践教程
  • [ ] Hacker News的《软件工程师的机器学习》
  • [ ] 开发者的机器学习
  • [ ] 为人类准备的机器学习
  • [ ] 给开发者的关于机器学习的建议
  • [ ] 机器学习入门
  • [ ] 为新手准备的机器学习入门教程
  • [ ] 初学者如何自学机器学习
  • [ ] 机器学习自学资源
  • [ ] 提升你的机器学习技能
  • [ ] 一份'坦诚'的机器学习指南
  • [ ] 用机器学习让Hacker News更具可读性
    • 视频
    • 幻灯片
  • [ ] 深入机器学习
  • [ ] 软件工程师的{机器、深度}学习
  • [ ] 深度学习入门
  • [ ] 深度学习基础
  • [ ] 机器学习思维导图/小抄
  • 大学中的机器学习课程
    • [ ] 斯坦福
    • [ ] 机器学习夏令营
    • [ ] 牛津
    • [ ] 剑桥
  • Flipboard的主题
    • 机器学习
    • 深度学习
    • 人工智能
  • Medium的主题
    • 机器学习
    • 深度学习
    • 人工智能
  • 每月文章Top10
    • 机器学习
      • 2016年7月
      • 2016年8月
      • 2016年9月
      • 2016年10月
      • 2016年11月
      • 2016年
    • 算法
      • 2016年9月
      • 2016年10月-11月
  • 全面的数据科学家的资源
  • DigitalMind的人工智能资源
  • 令人惊叹的机器学习
  • CreativeAi的机器学习

成为一名开源贡献者

  • [ ] tensorflow/magenta: Magenta: 用机器智能生成音乐与艺术
  • [ ] tensorflow/tensorflow: 使用数据流图进行计算进行可扩展的机器学习
  • [ ] cmusatyalab/openface: 使用深层神经网络进行面部识别
  • [ ] tensorflow/models/syntaxnet: 神经网络模型语法

游戏

  • Halite:AI编程游戏
  • Vindinium: 挑战AI编程
  • Video Game AI比赛
  • 愤怒的小鸟AI比赛
  • The AI Games
  • Fighting Game AI Competition
  • CodeCup
  • 星际争霸AI学生锦标赛
  • AIIDE星际争霸AI竞赛
  • CIG星际争霸AI竞赛
  • CodinGame - AI Bot Games

播客

  • 适合初学者的播客:

    • Talking Machines
    • Linear Digressions
    • Data Skeptic
    • This Week in Machine Learning & AI
  • “更多”进阶的播客:

    • Partially Derivative
    • O’Reilly Data Show
    • Not So Standard Deviation
  • 盒子外的播客:

    • Data Stories

社区

  • Quora

    • 机器学习
    • 统计学
    • 数据挖掘
  • Reddit

    • 机器学习
    • 计算机视觉
    • 自然语言处理
    • 数据科学
    • 大数据
    • 统计学
  • Data Tau

  • Deep Learning News

  • KDnuggets

相关会议

  • (NIPS)
  • (ICLR)
  • (AAAI)
  • (IEEE CIG)
  • (IEEE ICMLA)
  • (ICML)

面试问题

  • [ ] 如何准备机器学习职位的面试
  • [ ] 40个机器学习与数据科学的面试问题
  • [ ] 21个必须要知道的数据科学问题与回答
  • [ ] Top 50 机器学习面试问题与回答
  • [ ] 机器学习面试问题
  • [ ] 常用的机器学习面试问题
  • [ ] 机器学习面试问题有哪些相同的?
  • [ ] 什么是评价一个机器学习研究者的最好的问题?
  • [ ] 机器学习面试问题大搜集
  • [ ] 121个需要掌握的问题与回答

我崇拜的公司

  • [ ] ELSA - 你虚拟的口语教练

你可能感兴趣的:(自上而下的学习路线: 软件工程师的机器学习)