写点什么

如何系统学习机器学习?

作者:宇宙之一粟
  • 2022 年 5 月 29 日
  • 本文字数:3869 字

    阅读完需:约 13 分钟

如何系统学习机器学习?

0 前言

为了能够真正帮助到对机器学习感兴趣的同学,所以翻阅了网上众多的信息,结合自己读研期间的相关经历,整理出如下的这份关于如何系统学习机器学习的思维导图。



1 步骤

在正式踏入机器学习之旅之前,我们要了解机器学习的步骤。所以我们需要哪些的前置知识呢?

1.1 前置知识

英语听读能力

首先,掌握英语的听和读的能力。机器学习领域的课程和论文几乎都是英文的,如果我们要看懂或者听懂,最好需要掌握一定的英语能力,实在有困难,还可以借助于谷歌翻译和 DeepL 等翻译软件也是可以的。

数学

众多周知,计算机科学离不开数学。机器学习自然也需要一定的大学数学基础:微积分、线性代数和统计学。

1. 高等数学:导数、微分和积分、泰勒展开式(这些也是考研必考内容)

2. 线性代数:矩阵、向量,推荐著名的科普视频 up 主 3Blue1Brown 的专题 Essence of linear algebra,B 站链接 在此。

3. 统计学与概率论:条件概率、期望、方差、回归问题和拟合问题、贝叶斯法则

机器学习中,大约有 80% 的时间将用于收集和清洁数据。统计学是处理数据集合,分析和表示的领域。

1.2 编程技能

选择一门编程语言:Python

然后为了能动手实践机器学习,不仅仅停留在课本和书面上的话,一定要掌握一门编程语言,现在越来越多大学会开设 Python 程序设计这门课,足以见到这门语言在研究领域的热门。而有些大学工科类专业会开设 Matlab 这门课,统计和数学专业会学习 R 语言或者 Scala 等。

着重说一下,语言不是关键,任何语言只要是你喜欢的,都可以用来入门和学习。但是为了减少重复造轮子,Python 简洁的语法和其在数据科学领域有着众多的工具和资源,实际上,有许多 Python 库,这些第三方库对于人工智能和机器学习特别有用,例如 Keras,Tensorflow,Scikit-Learn 等,所以还是比较推荐 Python。

书籍和课程推荐

网上关于 Python 入门的书籍很多,这里只提及对机器学习有帮助的 Python 进阶书:《流畅的 Python》和 《利用 Python 进行数据分析 》,学习完数学与 Python 之后,就可以开始了解机器学习的概念、发展历史、算法、优势与未来。

1.3 什么是机器学习

现在我们已经完成了先决条件,可以继续学习机器学习的核心部分!当然也是从基础开始,然后再学习更复杂的东西。

机器学习概念

IBM 的亚瑟·塞缪尔(Arthur Samuel,,被誉为“机器学习之父”) 在 1959 年创造了“机器学习”一词,并把机器学习定义为:机器学习是在不直接针对问题进行编程的情况下,赋予计算机学习能力的一个研究领域。

机器学习是人工智能的一部分,它将数据与统计工具相结合,以预测可用于制作可行见解的输出。

机器学习术语

模型:模型是通过应用一些机器学习算法从数据中学习的特定表示。模型也称为假设。

特征:特征是数据的单个可测量属性。一组数字功能可以通过功能向量方便地描述。特征向量作为模型输入。例如,为了预测水果,可能会有诸如颜色,气味,味道等的特征。

目标(标签):目标变量或标签是我们模型要预测的值。对于特征部分讨论的水果示例,每组输入的标签将是水果的名称,如苹果、橙子、香蕉等。

训练:这个想法是给出一组输入(特征)和它的预期输出(标签),所以在训练之后,我们将有一个模型(假设),然后将新数据映射到训练过的类别之一。

• 预测:一旦我们的模型训练好,那么提供一组输入,它将能给出一个预测的输出(标签)。

机器学习的类别

监督学习:这涉及使用分类和回归模型从带有标记数据的训练数据集中学习。这个学习过程一直持续到达到所需的性能水平。

无监督学习:这涉及使用未标记的数据,然后找到数据中的底层结构,以便使用因子和聚类分析模型越来越多地了解数据本身。

半监督学习:这涉及使用未标记的数据,例如带有少量标记数据的无监督学习。使用标记数据极大地提高了学习的准确性,并且比监督学习更具成本效益。

• 强化学习:这涉及通过反复试验来学习最佳行动。所以下一步行动是由基于当前状态的学习行为决定的,这将在未来最大化奖励。

机器学习的 7 个步骤



1. 收集数据:机器学习最耗时的部分可能是数据收集,大量的数据中获取高质量的数据往往需要经过很多步骤。这里也推荐了很多个著名的数据集:Amesome数据集、Kaggle 数据集 等等。

2. 数据处理:这就是我们的统计知识派上用场的地方,数据集成、清理、优化。

3. 选择模型:在真实数据集上学习各种模型和实践。帮助我们围绕在不同情况下适合哪种类型的模型。

4. 训练:使用不同模型获得的结果可能也不同,需要大量的调参和训练。

5. 评估:针对训练结果评估模型的好坏。

6. 超参数调整:如果评估成功,则进入超参数调整步骤。此步骤试图改善在评估步骤中获得的积极结果。

7. 预测:机器学习过程的最后一步是预测。在此阶段,我们认为模型已准备就绪,可以用于实际应用。



资源推荐

吴恩达 Machine learning by Andrew Ng:吴恩达在斯坦福大学的机器学习课程非常受欢迎。它的重点是机器学习,数据挖掘和统计模式识别,并使用说明视频对了解 ML 背后的理论和核心概念非常有帮助。

斯坦福 李飞飞 cs231n 计算机视觉课程

• 李宏毅机器学习

• 林轩田:基石与技法


书籍推荐

• 西瓜书: 周志华老师的《机器学习 》

• 南瓜书: 机器学习公式详解 ,对“西瓜书”中重难点公式加以解析,以及对部分公式补充具体的推导细节。链接点此处

• 李航老师的《统计学习方法》第二版,配合 Github 上 15.6 k star 的代码实现一起学习更佳!

• 《机器学习实战 》:k 近邻算法、朴素贝叶斯算法、Logistic 回归算法、支持向量机、AdaBoost 集成方法、基于树的回归算法和分类回归树(CART)算法等等这里都有。

• 《Pattern Recognition and Machine Learning 》

• 《Element of Sta tistic Learning 》

• 《动手学深度学习》 :本书的特点就是每一节都是可以下载并运行的 Jupyter 记事本,它将文字、公式、图像、代码和运行结果结合在一起,也有在线版,点此处 。

• 花书《深度学习 》:学有余力的大牛推荐啃花书

如果这些书籍都觉得不够,推荐你去豆瓣机器学习专题 。

2 学习好的工具

在你对机器学习领域越来越了解的时候,一个好的工具能够帮助你更快的进行实践。机器学习的目的是让一台机器可以从数据(即示例)中学习以产生准确的结果的想法。机器学习与数据挖掘和贝叶斯预测建模密切相关。该机器接收数据作为输入,并使用算法来提出答案。所以建议学好数据科学中的常用工具。

数学科学的工具

如果是 Python 开发,推荐使用学会 Anaconda:

• Jupyter

• numpy

• pandas

• matplotlib

• seaborn

• ...

机器学习领域的框架

• scikit-learn

• PyTorch

• TensorFlow

• Caffe

• Theano

• ...

然后借助于这些工具把上一章节中的算法一一实现。

3 选择一个领域

机器学习的领域广泛,如数据挖掘、广告推荐、图像识别、欺诈检测、投资组合优化、任务自动化、自动驾驶等。每一个领域都值得深挖,选择一个自己感兴趣的领域继续探索:

• 数据分析与挖掘

• 自然语言处理 NLP

• 计算机视觉 CV

• 推荐算法

• ...

4 问题与实践

最后,在了解机器学习的基础知识和技术应用场景之后,我们可以通过如何利用机器学习来解决实际问题。

比如可以通过比赛,也可以通过学习往年的优秀案例,来加强自己的实践能力。这个过程将通过理论知识与实际实施相结合,从而更加精通机器学习,同事还能收获丰富的奖励。

华为云大赛平台

• 阿里云天池

• Kaggle

• ...

也可以通过关注最新的会议,看同行解决了什么样的问题,自己能不能复现、优化,甚至也能发表一篇经过同行评审的优秀论文,大家可以关注这些 AI 领域的顶会:

• AAAI

• SIGKDD

• IJCAI

• AISTATS

• ...


如果你能完成这些比赛和其他如此简单的挑战之后,或者你发表了多篇顶会论文……

恭喜!!!您正在成为一名成熟的机器学习工程师,您可以通过越来越多的挑战,最终创建越来越有创造力和困难的机器学习项目来继续增强自己的技能。

如果还想继续深耕于 AI 领域,成为一名算法工程师或 AI 工程师,推荐《百面机器学习 》。

5 总结

5.1 机器学习为什么很火?

因为机器学习在对软件的设计方式产生巨大的影响。从而使其能够跟上业务变化的步伐。机器学习之所以如此引人注目,是因为它帮助你使用数据来驱动业务规则和逻辑。

在传统的软件开发模式下,程序员根据业务的当前状态编写逻辑,然后添加相关数据。然而,业务变化已经成为常态。传统的开发模式几乎不可能预测到什么变化会改变市场。机器学习借助于对计算机进行训练,允许我们不断地从数据中学习并预测未来。这套强大的算法和模型正被用于各行业,以改善流程并获得对数据中的模式和异常的洞察力。

5.2 机器学习为什么难?

那是因为其背后蕴藏了大量的知识,学习门槛很好,很多人可能在某个环节就已经被劝退了。网上也有众多的推荐学习模式和视频,各大平台也都在开设自己的课程,但笔者在整理这套系统学习方法的时候,发现很多核心的点是大家一致认同的:

• 要有机器学习的思维模式:包括对机器学习的认可和喜爱、持续学习的恒心。

• 强调动手和实践的能力:机器学习喧嚣的热度之后,留下的才是真正解决实际问题的工程师。

时至今日,机器学习无时无刻不在影响着我们的生活,广告智能推荐、人脸识别、自动驾驶...它的影响力并将持续下去,如果你也想系统学习机器学习,那么现在就开始吧,希望这篇文章能对你有所帮助。


参考资料:

• Machine Learning Tutorial for Beginners: What is, Basics of ML

• Interactive Machine Learning Roadmap https://dbourke.link/mlmap

• Machine Learning Roadmap Resources - https://github.com/mrdbourke/machine-...

• https:// www.geeksforgeeks.org/how-to-start-learning-machine-learning/

发布于: 刚刚阅读数: 6
用户头像

宇宙古今无有穷期,一生不过须臾,当思奋争 2020.05.07 加入

🏆InfoQ写作平台-第二季签约作者 🏆 混迹于江湖,江湖却没有我的影子 热爱技术,专注于后端全栈,轻易不换岗 拒绝内卷,工作于软件工程师,弹性不加班 热衷分享,执着于阅读写作,佛系不水文

评论

发布
暂无评论
如何系统学习机器学习?_机器学习_宇宙之一粟_InfoQ写作社区