每天五分钟机器学习—这是一条GitHub高赞的学习路径(附教程分享

每天五分钟机器学习—这是一条GitHub高赞的学习路径(附教程分享

三大路径与专题

在三大路径中,机器学习工程师已经完成并发布,其它商业数据分析和云计算还没有完成。其中在机器学习工程师需要从基本的工具、传统机器学习到深度学习打造完整的知识体系,同时也要知道如何工程化地开发和部署模型。

在学习 ML 和 DL 的过程中,作者表示重点是按照层次理解各模型的概念,并通过优秀的开源框架实现这些概念。文章后面会具体介绍机器学习工程师应该学习哪些模型与工具才能一步步成长。

对于后面的两条路径,它们注重的内容不同,知识体系也不一样,有需要的同学还需要等几周。此外,作者还提供了一些额外的扩展知识,包括数据专题和软技能专题。

其中数据专题介绍了数据的各种操作,它们的确是每一位数据工作者的核心工具包。从某种角度看,与数据打交道是一门艺术,最佳实践会帮助你理解处理数据的正确方式,但同时你也需要培养一种如何处理数据的「直觉」,而这种「直觉」大都是由情境和经验驱动的。基于此,这些专题将着重讨论训练和实践。

机器学习工程师成才之路

这一部分介绍了已经发布的「机器学习工程师」学习路径,作者介绍了很多学习资源,我们只展示了简要的示例,更多细节请查看原项目。

这里列出的所有东西都是开源且免费的,而且大部分来自世界著名的大学和开源协会。

当我们学习一些新的东西,尤其是那些内容广泛又复杂的事物时,避免混淆是很有必要的。因此本文接下来将介绍一些相关内容,而且尽可能采用那些来自相同语境和作者的内容。如果没有合适的内容,作者收集了理论和例子以及一些指向资源的内容,如「______的最佳实践」。

作者将学习路径分为四部分:

1. 先决条件

  • Python
  • Jupyter Notebook
  • 需要掌握的数学
  • 机器学习路径

2. 用 Scikit-Learn 库进行机器学习

  • 为什么选择 Scikit-Learn?
  • 端到端机器学习项目
  • 线性回归
  • 分类
  • 训练模型
  • 支持向量机
  • 决策树
  • 集成学习和随机森林
  • 无监督学习
  • 当前总结和未来展望

3. 用 TensorFlow 学习神经网络

  • 为什么选择 TensorFlow
  • 启动和运行 TensorFlow
  • ANN——人工神经网络
  • CNN——卷积神经网络
  • RNN——循环神经网络
  • 训练网络:最佳实践
  • 自编码器
  • 强化学习
  • 下一步

4. 学习工具

  • 机器学习项目
  • 数据科学工具
  • 博客/Youtube 频道/网站

背景知识

Python 是最有用和受欢迎的编程语言之一,因此它用于机器学习领域是无可厚非的事。和数据科学领域的大部分框架一样,TensorFlow 和 Python 结合了,而 Scikit-Learn 则是用 Python 写的。

简而言之,Jupyter Notebook 就是用来写并运行 Python 代码的编辑器。与数据打交道意味着需要大量实验,并将实验组织成某些具体的形式以获取潜在知识,所以 Jupyter Notebook 就必不可少了。

Python 和 Jupyer Notebook 是最基础的模块,相信大家已经非常熟了。如果需要走机器学习之路,除了 Python 外,首先就需要知道如何使用数值计算库 NumPy、可视化库 Matplotlib 和数据预处理库 Pandas,它们都是机器学习工程必不可少的工具。

有人告诉你机器学习背后的数学很难?这么说也没错。但是,要知道你每次要用它的时候,机器会为你处理这些。所以重点是抓住主要概念并认识到其局限性和应用方面。如果你不熟悉这些概念,那就学习,因为这是所有一切的原理。

有了这三种资源,你就能够明白你真正需要深入理解的大部分东西。

  • 关于线性代数的精品课程:https://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/
  • 与基本概率和统计学概念结合:https://www.edx.org/course/introduction-to-probability-0
  • 你需要了解的大多数数学:https://explained.ai/matrix-calculus/index.html#sec4.5

如下书籍所述,它描述了有关什么是机器学习以及什么时候需要机器学习,这些都是最简洁和最具启发性的概述。

地址:https://www.oreilly.com/library/view/hands-on-machine-learning/9781491962282/ch01.html

每天五分钟机器学习—这是一条GitHub高赞的学习路径(附教程分享

传统编程开发流程。

每天五分钟机器学习—这是一条GitHub高赞的学习路径(附教程分享

机器学习开发流程。

机器学习与 Scikit-Learn

Scikit-Learn 是最完整、最成熟以及完档最完整的机器学习任务库之一。Scikit-Learn 利用功能强大和先进的模型实现「开箱即用」,并且为数据科学流程提供设施功能。初次使用时,作者建议你过一遍下面的 Kaggle 案例,它目的是试图对泰坦尼克号上的乘客是否最有可能生还作出预测。

泰坦尼克号示例:https://www.kaggle.com/startupsci/titanic-data-science-solutions

其它更多的示例与资料可在 Kaggle 上获得,该平台提供大量免费数据集以及有趣的挑战和机器学习模型试验。

1. 线性回归

最简单的机器学习形式,也是每个对预测数据集结果感兴趣的人的起点。

  • 例 1:https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html#sphx-glr-auto-examples-linear-model-plot-ols-py
  • 例 2:https://bigdata-madesimple.com/how-to-run-linear-regression-in-python-scikit-learn/
  • 例 3:https://www.geeksforgeeks.org/linear-regression-python-implementation/

2. 分类

当想要从不同的可能性中预测结果时,分类是最重要的机器学习任务之一。

  • 二分类:https://machinelearningmastery.com/make-predictions-scikit-learn/
  • logistic 回归:https://towardsdatascience.com/building-a-logistic-regression-in-python-301d27367c24
  • 分类器度量标准:https://medium.com/thalus-ai/performance-metrics-for-classification-problems-in-machine-learning-part-i-b085d432082b

3. 支持向量机(SVM)

支持向量机是一种非常经典的 ML 模型,它的目的是寻找一个超平面来对样本进行分割,分割的原则是类别间隔最大化,最终转化为一个凸二次规划问题来求解。

  • 理论解释:https://www.bilibili.com/video/av28186618
  • 实战指南:https://www.bilibili.com/video/av38543231
  • 实战指南:http://dataaspirant.com/2017/02/01/decision-tree-algorithm-python-with-scikit-learn/

4. 决策树

决策树预测结果背后最简单但最有效的方法之一,它们被用于很多方面(如随机森林)。

  • 理论解释:https://www.bilibili.com/video/av26086646
  • 实战指南:https://www.bilibili.com/video/av35523476
  • 实战指南:http://dataaspirant.com/2017/02/01/decision-tree-algorithm-python-with-scikit-learn/

5. 集成学习和随机森林

集成学习是利用所有不同特征、一些机器学习模型的优缺点来获得一组「投票者」,这些投票者在每次预测时都会给你最有可能的结果,这些投票由不同的分类器给出(SVM、ID3 算法、logistic 回归)。

6. 无监督学习

  • 台大李宏毅视频:https://www.bilibili.com/video/av10590361/?p=24
  • explains Unsupervised Learning really well:https://towardsdatascience.com/unsupervised-learning-with-python-173c51dc7f03
  • 无监督学习、有监督学习和强化学习的区别:https://blogs.nvidia.com/blog/2018/08/02/supervised-unsupervised-learning/

深度学习和 TensorFlow

自 2015 年开源以来,深度学习框架的天下就属于 TensorFlow。不论是 GitHub 的收藏量或 Fork 量,还是业界使用量都无可比拟地位列顶尖。这一部分作者介绍了很多 TensorFlow 相关的教程与实现,推荐读者可以直接看 TensorFlow 的官方教程。对于深度学习,读者可以跟着斯坦福的 CS231n 课程或《深度学习》进行学习。

  • 从框架优缺点说起,这是一份 TensorFlow 入门极简教程
  • 三天速成!香港科技大学 TensorFlow 课件分享
  • 请快点粘贴复制,这是一份好用的 TensorFlow 代码集
  • 英语不行?你可以试试 TensorFlow 官方中文版教程
  • 关于 TensorFlow,你应该了解的 9 件事
  • 用 TensorFlow Estimator 实现文本分类

在了解 TensorFlow 后,作者表示我们可以迭代地学习用深度学习做工程:

  1. 通过斯坦福 CS231n、吴恩达的 DL 专项课程或李宏毅的 ML 课程理解最基本的概念,不需要完全弄懂数学推导,只需要知道是什么为什么就行。
  2. 每一次深度挖掘一个专题,包括理论、教程、实现案例(例如 RNN 理论、RNN 教程和 RNN 实现案例)。
  3. 第二步循环多个主题后,再看一遍第一步的资源,抓住主要的推导与细节。

后面作者从全连接网络、循环网络、卷积网络和自编码器等模块介绍了很多学习资源,详细内容请查看原 GitHub 项目。

学习工具

这一部分,作者整理大量学习资源,包括机器学习项目、工具、Youtube 频道、博客、网站等,感兴趣的读者可自行查看。

每天五分钟机器学习—这是一条GitHub高赞的学习路径(附教程分享

柠檬为大家准备了一些学习教程,希望可以帮助到大家。

每天五分钟机器学习—这是一条GitHub高赞的学习路径(附教程分享

每天五分钟机器学习—这是一条GitHub高赞的学习路径(附教程分享

获取方式:请大家关注并私信小编关键词:“资料”即可获取。

相关推荐