专栏首页新智元机器学习里,数学究竟多重要?

机器学习里,数学究竟多重要?

【新智元导读】本文的主要目的是提供资源,给出有关机器学习所需的数学上面的建议。数学初学者无需沮丧,因为初学机器学习,并不需要先学好大量的数学知识才能开始。正如这篇文章提到的,最基本的需要是数据分析,然后你可以在掌握更多技术和算法的过程中继续学习数学。

过去几个月里,有不少人联系我,向我表达他们对数据科学、对利用机器学习技术探索统计规律性,开发数据驱动的产品的热情。但是,我发现他们中有些人实际上缺少为了获取有用结果的必要的数学直觉和框架。这是我写这篇文章的主要原因。

最近,许多好用的机器和深度学习软件变得十分易得,例如 scikit-learn,Weka,Tensorflow,等等。机器学习理论是与统计学、概率论、计算机科学、算法等方面交叉的领域,它产生于从数据出发的学习迭代,试图找出用于开发智能应用的隐藏的洞见。尽管机器学习和深度学习有无限的可能性,对这些技术有一个全面的数学理解对理解算法的内部工作机制、获取好的结果是有必要的。

为什么要关心数学?

为什么机器学习中的数学很重要?这个问题的理由我想强调以下几点:

  1. 选择合适的算法,要考虑的包括算法准确性、训练时间、模型复杂度、参数的数量和特征数量。
  2. 选择参数设置和验证策略。
  3. 理解偏差与方差的权衡以确定欠拟合和过拟合。
  4. 预估正确的置信区间和不确定性。

你需要多高的数学水平?

试图了解一个例如机器学习这样的跨学科领域,主要的问题是必要的数学知识的量,以及理解这些技术需要的数学水平。这个问题的答案是多方面的,取决于个人水平和兴趣。对数学公式和机器学习的理论发展的研究一直在进行着,一些研究人员研究的是更先进的技术。以下我将说明我认为成为一名机器学习科学家/工程师需要的最低程度的数学,以及每个数学概念的重要性。

1. 线性代数

Skyler Speakman曾说:“线性代数式21世纪的数学”,我完全赞同该论述。在ML领域,线性代数无处不在。主成分分析(PCA)、奇异值分解(SVD)、特征分解、LU分解、QR分解、对称矩阵、正交化&标准正交化、矩阵运算、投射、特征值&特征向量、向量空间和规范等这些概念对理解机器学习的优化方法都是必须的。我认为线性代数很棒的一点是,互联网上的资源非常多。我总是说传统课堂要消亡,因为互联网上有如此大量的资源。我最喜欢的线性代数课程是MIT的Gilbert Strang教授的。

2. 概率论与数理统计

机器学习和数理统计并不是完全不同的领域。事实上,最近有人把机器学习定义为“在Mac上做数理统计”。ML需要的数理统计基础和概率论知识包括组合数学、概率规则&公理、贝叶斯定理、随机变量、方差和均值、条件和联合分别、标准分布(伯努利、二项、多项、统一和高斯)、矩母函数、最大似然估计(MLE)、先验和后验、最大后验估计(MAP)和采样方法。

3. 多元微积分

必要的概念包括微积分、偏导数、向量函数、方向梯度、Hessian、Jacobian、Laplacian和Lagragian分布。

4. 算法和复杂性优化

这对理解机器学习算法的计算效率和可扩展性以及数据集的开发稀疏性很重要。需要数据结构(二叉树、Hashing、Heap、Stack等等)的知识,以及动态编程、随机&次线性算法、图形、梯度/随机趋势、以及原对偶方法的知识。

5. 其他

这包括上述4个主要领域没有涉及的其他数学概念。包括实分析与复分析(集合和序列、拓扑结构、度量空间、单值和连续函数、极限)、信息理论(熵、信息增益)、函数空间和流形。

下面是部分机器学习所需数学概念的一些MOOC和学习资料:

  • Khan Academy’s Linear Algebra, Probability & Statistics, Multivariable CalculusandOptimization.
  • Coding the Matrix: Linear Algebra through Computer Science Applications by Philip Klein, Brown University.
  • Linear Algebra – Foundations to Frontiers by Robert van de Geijn, University of Texas.
  • Applications of Linear Algebra, Part 1 and Part 2. A newer course by Tim Chartier, Davidson College.
  • Joseph Blitzstein – Harvard Stat 110 lectures
  • Larry Wasserman’s book – All of statistics: A Concise Course in Statistical Inference .
  • Boyd and Vandenberghe’s course on Convex optimisation from Stanford.
  • Linear Algebra – Foundations to Frontiers on edX.
  • Udacity’s Introduction to Statistics.

最后,本文的主要目的是提供有关机器学习所需的重要数学概念的建议和有用的资源。但是,有些机器学习爱好者可能是数学初学者,会觉得这篇文章令人沮丧(这并不是我的目的)。对初学者来说,你并不需要先学好大量数学知识再开始做机器学习。正如这篇文章提到的,最基本的需要是数据分析,然后你可以在掌握更多技术和算法的过程中继续学习数学。

本文分享自微信公众号 - 新智元(AI_era)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-10-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【重磅】马斯克的AI野心——OpenAI Gym系统深度解析

    【新智元导读】开源人工智能系统 OpenAI 的成立打破了谷歌、Facebook 等巨头霸占 AI 领域的格局,但其创始人、特斯拉CEO马斯克多次发表人工智能威...

    新智元
  • 玩转谷歌物体识别API,用TensorFlow和OpenCV打造实时识别应用

    【新智元导读】谷歌 TensorFlow 的 Object Detection API 刚刚开源, Pivotal Labs 的 Dat Tran 就做出了对象...

    新智元
  • 【Hacker News最火教程】机器学习必备的数学知识

    【新智元导读】对于很多入坑机器学习的同学来说,数学可能是比较艰辛的部分。本文作者介绍了构建机器学习产品、或进行机器学习研究所需的数学背景,以及来自机器学习工程师...

    新智元
  • Stanford机器学习笔记-9. 聚类(Clustering)

    9. Clustering  Content   9. Clustering     9.1 Supervised Learning and Unsupe...

    llhthinker
  • Python+pandas实现时间序列数据扩展案例一则

    感谢山东科技大学李超老师提供应用背景。 在分析时序数据的有些场合下,可能每个月只能拿到一个数据,然而实际处理时,需要把这个数据扩展到该月的每天,且每天的数据相同...

    Python小屋屋主
  • 原创译文 | 数据科学家告诉你:深度学习和机器学习不同

    导读:上一期介绍了无人驾驶的发展现状,今天我们来了解一下深度学习和机器学习的不同实践和运用(文末更多往期译文推荐) ? GoodData数据科学和机器学习高级总...

    灯塔大数据
  • Spring Cloud Zuul记录接口响应数据

    系统在生产环境出现问题时,排查问题最好的方式就是查看日志了,日志的记录尽量详细,这样你才能快速定位问题。

    猿天地
  • zygote篇

    参考连接:http://gityuan.com/2016/02/13/android-zygote/

    曾大稳
  • Gof23设计模式趣味详解(三分钟上手系列)

    学习设计模式可以提高程序员的思维能力、编程能力和设计能力,从而使你写的代码可重用性更高、可读性更强、可靠性更高、灵活性更好、可维护性更强

    bboy枫亭
  • 容器系列 | Kubernetes 基础知识

    一旦运行了 Kubernetes 集群,就可以在其上部署容器化应用程序。为此,您需要创建 Kubernetes Deployment 配置。Deployment...

    Tinywan

扫码关注云+社区

领取腾讯云代金券