写点什么

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

2017 年 3 月 13 日

要点

  • 机器学习中数学的重要性:良好的数理基础会让机器学习事半功倍,算法和模型的选择和理解都需要一定的数学基础。
  • 机器学习中哪些数学知识是必备的:线性代数、概率论和统计学、多元微积分、算法和优化理论、复变函数和信息论中的相关知识和概念都是必需的。
  • 初学者如何进行机器学习:现在一些简单易用的工具包比如 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:006120

评论

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

太傻了!下次二面再回答不好“秒杀系统“设计原理,我就捶死自己

Crud的程序员

Java 程序员 架构

PM必备自我管理工具整理

做人没有梦想和咸鱼有什么区别

项目管理 PM

以终为始:28天打卡输出复盘

熊斌

个人成长 写作平台 28天写作

源中瑞智慧社区解决方案---助推平安小区建设

135深圳3055源中瑞8032

区块链知识产权保护解决方案,区块链存证解决方案

135深圳3055源中瑞8032

您的《操作系统线程模型总结》请查收。

后台技术汇

28天写作 2月春节不断更

基于SpringBoot的微服务架构与K8S容器部署实践

云流

Java 架构 微服务

28天总结

张老蔫

28天写作

互助系统软件开发,互助app开发

luluhulian

图扑物联助力打造现代化智能港口

一只数据鲸鱼

物联网 工业4.0 组态软件 智慧港口

阿里大佬手码的SpringCloud+Alibaba笔记开源了,堪称保姆式教学

Crud的程序员

spring 程序员 架构

原来这就是大厂的MySQL主从复制、读写分离及高可用方案!

云流

MySQL 数据库 架构

LeetCode题解:529. 扫雷游戏,DFS,JavaScript,详细注释

Lee Chen

算法 LeetCode 前端进阶训练营

GrowingIO SaaS 产品 CI/CD 实践 (一)

GrowingIO技术专栏

ci SaaS CD

面试加分项!零基础如何成为高级Android开发,先收藏了

欢喜学安卓

android 程序员 面试 移动开发

开放下载!解锁 Serverless 从入门到实战大“橙”就

阿里巴巴云原生

云计算 Linux Serverless 开发者 云原生

淘宝的商品中心和类目体系是怎么设计的

邴越

阿里 模型 电商 架构· 业务

【春节不远行,云上过大年】来华为云社区,接任务领新年红包啦···

华为云开发者社区

华为云

徒手撸一个Spring Boot中的starter

田维常

springboot

2021全新iOS学习方向

ios 逆向

腾讯云TcaplusDB获新加坡MTCS最高等级安全认证

TcaplusDB

数据库 nosql 数据安全 数据管理 tencentdb

《iOS面试简历技巧解析》

ios 面试

面试加分项!我在美团Android研发岗工作的那5年,系列篇

欢喜学安卓

android 程序员 面试 移动开发

🌏 超详细 DNS 协议解析

飞天小牛肉

Java 程序员 面试 计算机网络 2月春节不断更

一寸宕机一寸血,十万容器十万兵|Win10/Mac系统下基于Kubernetes(k8s)搭建Gunicorn+Flask高可用Web集群

刘悦的技术博客

flask k8s kubectl Docker Desktop gunicorn

OpenYurt:延伸原生 Kubernetes 到边缘场景下的落地实践

阿里巴巴云原生

人工智能 容器 运维 云原生 k8s

一周信创舆情观察(1.25~1.31)

统小信uos

今年我读了四个开源项目的源码,来分享下心得

yes的练级攻略

源码 面试 后端

16张图带你吃透Redis架构演进

Kaito

redis 架构 高性能

2021年 区块链最火的app爱打卡

v16629866266

“新内容 新交互” 阿里云全球视频云创新挑战赛正式开启!

阿里云视频云

阿里云 音视频 应用 音视频算法

4月17日 HarmonyOS 开发者日·上海站

4月17日 HarmonyOS 开发者日·上海站

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