Linux 之父出席、干货分享、圆桌讨论,精彩尽在 OpenCloudOS 社区开放日,报名戳 了解详情
写点什么

数学菜鸟如何学习机器学习

  • 2017 年 3 月 13 日
  • 本文字数:1811 字

    阅读完需:约 6 分钟

要点

  • 机器学习中数学的重要性:良好的数理基础会让机器学习事半功倍,算法和模型的选择和理解都需要一定的数学基础。
  • 机器学习中哪些数学知识是必备的:线性代数、概率论和统计学、多元微积分、算法和优化理论、复变函数和信息论中的相关知识和概念都是必需的。
  • 初学者如何进行机器学习:现在一些简单易用的工具包比如 scikit-learn、Tensorflow 都可以帮助你搭建自己的模型,只要你具备了一定的数学基础,那么最好的学习方法就是实践。

机器学习是一个涉及到统计学、概率论、计算机科学和算法等方面的交叉领域,从数据中反复学习,并找出其中可用于构建智能应用的潜在关系。尽管机器学习和深度学习具有巨大的可能性,但是如果要很好地掌握算法的工作原理并得到好的结果,对这些技术的全面的数学理解还是很必要的。

机器学习中数学的重要性

Facebook 人工智能实验室主任 Yann LeCun 在 2014 年的一篇采访(中文版详见 InfoQ )中就建议“打算进入这个领域的人本科的时候就应该多学数学、统计学还有物理学”,良好的数理基础会让机器学习事半功倍。

物理学博士 Wale Akinfaderin 在一篇文章中总结了机器学习中的数学为什么会那么重要:

  1. 机器学习需要选择正确的算法,需要考虑准确度、训练时间、模型复杂度、模型参数数量和特征数量。
  2. 机器学习需要选择参数设置和验证方法。
  3. 机器学习需要通过理解偏差 - 方差来判断欠拟合和过拟合。
  4. 机器学习需要估计置信区间和不确定度。

机器学习中哪些数学知识是必备的

那么学习机器学习应该具备哪些数学知识呢?这取决于你的兴趣以及你想做什么。Wale 为我们整理了一下机器学习科学家 / 工程师至少应具备的数学知识和概念:

  1. 线性代数:在机器学习中,线性代数随处可见。主成分分析(PCA)、奇异值分解(SVD)、矩阵的特征分解、LU 分解、QR 分解、对称矩阵、正交化和正交归一化、矩阵的运算、分解、向量空间和范数等,这些都是理解机器学习中所使用的优化方法所必须的。
  2. 概率论和统计学:机器学习和统计学并不是很不同的领域。实际上,有人最近将机器学习定义为“在 Mac 上做统计”。机器学习所需的一些基本统计和概率理论主要有:组合学、概率规则和公理、贝叶斯定理、随机变量、方差和期望、条件和联合分布、标准分布(伯努利分布、二项式分布、多项式分布、均匀分布和高斯分布等)、动差生成函数(Moment Generating Functions)、最大似然估计(MLE)、先验和后验、最大后验估计(MAP)和抽样方法。
  3. 多元微积分:一些必要的内容包括微积分、偏导数、向量值函数、方向梯度、Hessian、 Jacobian、Laplacian 和 Lagragian 分布。
  4. 算法和优化理论:这对我们理解机器学习算法的计算效率和可拓展性以及怎么利用数据中的稀疏性很重要。需要的知识主要包括:数据结构(二叉树、散列、堆、堆栈等)、动态规划、随机和次线性算法、图论、梯度 / 随机下降和原始 - 对偶方法。
  5. 其他还包括:复变函数(集合和序列、拓扑结构、度量空间、单值和连续函数、极限等)、信息论(熵、信息增益)、函数空间和流形。

初学者如何进行机器学习

当然, 以上只是强调了机器学习中数学的重要性以及一些必要的数学内容。作为初学者,你没有必要等到具有很强的数学功底之后才开始机器学习,现在一些简单易用的机器学习和深度学习工具包比如 scikit-learn Tensorflow 就可以帮助你搭建自己的模型。

正如 Daniel Jeffries 在其系列文章《 Learning AI if You Suck at Math 》中所说,数学可以帮你更加清楚的理解机器学习的深层含义,但是只要你具备了一些数学基础,那么你马上就可以开始。现在的一些主流的工具包和框架都有比较详细的安装和使用教程,他的学习方法就是实践:

  • 选择一个项目
  • 克服自我否定
  • 大胆尝试,不怕失败
  • 不断练习

当然,文中他还推荐了基本数学与机器学习参考书,比如《Mathematics: A Very Short Introduction》(中文译本:《牛津通识读本:数学》)、《Algebra Unplugged》、《Make Your Own Neural Network》以及 Ian Goodfellow 的《Deep Learning》,但是其中大多数都是英文的,如果你想深入学习的话,可以参考 github 上整理的机器学习学习路线。同时,还有一些经典中文教材很值得学习,比如李航老师的《统计学习方法》和南京大学周志华老师的《机器学习》,里面的一些机器学习算法都有详细的数学推导和介绍。


感谢冬雨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017 年 3 月 13 日 19:006488

评论

发布
暂无评论
发现更多内容

校友名片小程序设计方案

CC同学

小程序云开发 校友小程序

上线仅仅三小时,豆瓣评分均9.0的“四本程序员必刷书籍”火了

Java 编程 面试 IT 计算机

Alibaba内部首发“面试百宝书+超全算法面试手册”PDF版下载

Java~~~

Java 架构 面试 微服务 JVM

netty系列之:使用UDP协议

程序那些事

Java Netty nio udp 程序那些事

Alibaba22届校招启动!连夜整理一份七大专题Java架构速成笔记

Java~~~

Java 架构 面试 阿里 校招

秒杀系统设计-超卖问题

泽睿

秒杀 秒杀系统

一夜标星过百万,轻松霸榜GitHub的手绘图解HTTP笔记,竟来源阿里

Java~~~

Java 架构 面试 网络 HTTP

FastApi-14-文件上传-2

Python研究所

FastApi 8月日更

爆款阿里P5到P7晋升之路,九大源码文档助我超神果然努力幸运并存

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

猎杀时刻!阿里高工总结698页Spring学习笔记,疯狂狩猎大厂offer

Java~~~

Java spring 架构 面试 微服务

这份阿里P8级别内部疯传的“Linux私房菜”让你一次吃个饱

Java 编程 程序员 IT 计算机

DAPP钱包开发模式详细介绍

Geek_23f0c3

dapp 钱包系统开发 DAPP智能合约交易系统开发

【LeetCode】股票的最大利润Java题解

HQ数字卡

算法 LeetCode 8月日更

“硬钢字节”阿里大牛分享内部数据结构与算法(诛仙版)源码笔记

Java~~~

Java 架构 面试 算法 数据结构与算法

网络安全证书合集系列

网络安全学海

网络安全 证书 信息安全 渗透测试 安全漏洞

前方高能!Alibaba最新出版的JDK源码剖析手册(究极奥义版)开源

Java~~~

Java 架构 jdk 面试 架构师

MySQL 系列教程之(二)Windows 安装 MySQL5.7.17

若尘

MySQL 8月日更

MySQL 系列教程之(三) MySQL 基本概念和操作

若尘

MySQL 8月日更

网络攻防学习笔记 Day105

穿过生命散发芬芳

态势感知 网络攻防 8月日更

解除限制!Alibaba不在低调,P8大神纯手撸300页Java高并发手册

Java~~~

Java 架构 面试 高并发 架构师

Alibaba12年技术老兵整理的“MySQL 学习笔记”带你轻松拿捏MySQL

Java~~~

Java MySQL 数据库 架构 面试

大专的我狂刷29天“阿里内部面试笔记”最终直接斩获十七个Offer

Java 程序员 架构 面试 IT

一切努力似乎都徒劳?|靠谱点评

无量靠谱

被boss直聘转发过多而“封杀”的2021年全套java高级面试题有多牛

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

震惊!300多页美团百亿级系统架构设计实录首公开

Java 编程 架构 面试 架构师

细说JavaScript正则表达式(RegExp)

devpoint

正则表达式 regex JavaScrip 8月日更

终于拿到了阿里2021年度九大Java技术文档——面试题+文档+白皮书

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

缓存知识总结

十二万伏特皮卡丘

马士兵老师亲自总结3000+道Java面试题,刷完吊打架构师面试官

Java 程序员 架构 面试 计算机

腾讯跟阿里两位王者之间的对比

Linux服务器开发

腾讯 阿里 C/C++ Linux服务器开发 Linux后台开发

GPU容器虚拟化:用户态和内核态的技术和实践详解

GPU容器虚拟化:用户态和内核态的技术和实践详解

数学菜鸟如何学习机器学习_语言 & 开发_尚剑_InfoQ精选文章