文档章节

干货 | 机器学习需要哪些数学基础?

tantexian
 tantexian
发布于 2017/07/22 23:53
字数 1614
阅读 132
收藏 2
点赞 0
评论 0

过去的几个月中,有几人联系我,诉说他们对尝试进入数据科学的世界,以及用机器学习的技术去探索统计规律并构建无可挑剔的数据驱动型产品的热忱。然而,我发现一些人实际上缺乏必要的数学直觉和知识框架去得到有用的结果。这便是我决定写这篇博文的主要原因。最近涌现出了很多易于使用的机器学习和深度学习的软件包,例如 scikit-learn, Weka, Tensorflow 等等。机器学习理论是统计学、概率学、计算机科学以及算法的交叉领域,是通过从数据中的迭代学习去发现能够被用来构建智能应用的隐藏知识。尽管机器学习和深度学习有着无限可能,然而为了更好地掌握算法的内部工作机理和得到较好的结果,对大多数这些技术有一个透彻的数学理解是必要的。

逻辑回归和神经网络的代价函数的计算方法

为什么要重视数学?

机器学习中的数学是重要的,有很多原因,下面我将强调其中的一些:

1. 选择正确的算法,包括考虑到精度、训练时间、模型复杂度、参数的数量和特征数量。

2. 选择参数的设置和验证策略。

3. 通过理解偏差和方差之间的 tradeoff 来识别欠拟合与过拟合。

4. 估计正确的置信区间和不确定度。

你需要什么水平的数学?

当你尝试着去理解一个像机器学习(ML)一样的交叉学科的时候,主要问题是理解这些技术所需要的数学知识的量以及必要的水平。这个问题的答案是多维的,也会因个人的水平和兴趣而不同。关于机器学习的数学公式和理论进步正在研究之中,而且一些研究者正在研究更加先进的技术。下面我会说明我所认为的要成为一个机器学习科学家/工程师所需要的最低的数学水平以及每个数学概念的重要性。

1. 线性代数:我的一个同事 Skyler Speakman 最近说过,「线性代数是 21 世纪的数学」,我完全赞同他的说法。在机器学习领域,线性代数无处不在。主成分分析(PCA)、奇异值分解(SVD)、矩阵的特征分解、LU 分解、QR 分解、对称矩阵、正交化和正交归一化、矩阵运算、投影、特征值和特征向量、向量空间和范数(Norms),这些都是理解机器学习中所使用的优化方法所需要的。令人惊奇的是现在有很多关于线性代数的在线资源。我一直说,由于大量的资源在互联网是可以获取的,因而传统的教室正在消失。我最喜欢的线性代数课程是由 MIT Courseware 提供的(Gilbert Strang 教授的讲授的课程):http://ocw.mit.edu/courses/mathematics/18-06-linear-algebra-spring-2010/

2. 概率论和统计学:机器学习和统计学并不是迥然不同的领域。事实上,最近就有人将机器学习定义为「在机器上做统计」。机器学习需要的一些概率和统计理论分别是:组合、概率规则和公理、贝叶斯定理、随机变量、方差和期望、条件和联合分布、标准分布(伯努利、二项式、多项式、均匀和高斯)、时刻生成函数(Moment Generating Functions)、最大似然估计(MLE)、先验和后验、最大后验估计(MAP)和抽样方法。

3. 多元微积分:一些必要的主题包括微分和积分、偏微分、向量值函数、方向梯度、海森、雅可比、拉普拉斯、拉格朗日分布。

4. 算法和复杂优化:这对理解我们的机器学习算法的计算效率和可扩展性以及利用我们的数据集中稀疏性很重要。需要的知识有数据结构(二叉树、散列、堆、栈等)、动态规划、随机和子线性算法、图论、梯度/随机下降和原始对偶方法。

5. 其他:这包括以上四个主要领域没有涵盖的数学主题。它们是实数和复数分析(集合和序列、拓扑学、度量空间、单值连续函数、极限)、信息论(熵和信息增益)、函数空间和流形学习。

一些用于学习机器学习所需的数学主题的 MOOC 和材料是(链接经过压缩):

  • 可汗学院的线性代数(http://suo.im/fgMNX)、概率与统计(http://suo.im/CqwY9)、多元微积分(http://suo.im/xh6Zn)和优化(http://suo.im/1o2Axs)

  • 布朗大学 Philip Klein 的「编程矩阵:计算机科学应用中的线性代数(Coding the Matrix: Linear Algebra through Computer Science Applications)」:http://codingthematrix.com

  • 得克萨斯大学的 Robert van de Geijn 在 edX 上的 Linear Algebra – Foundations to Frontiers:http://suo.im/hKRnW

  • 戴维森学院 Tim Chartier 的新课程 Applications of Linear Algebra;第一部分:http://suo.im/48Vary,第二部分:http://suo.im/3Xm3Lh

  • Joseph Blitzstein 的 Harvard Stat 110 lectures:http://suo.im/2vhVmb

  • Larry Wasserman 的书《All of statistics: A Concise Course in Statistical Inference》,下载:http://suo.im/v9u7k

  • 斯坦福大学的 Boyd 和 Vandenberghe 的关于凸优化的课程:http://suo.im/2wdQnf

  • Udacity 的 Introduction to Statistics 课程:http://suo.im/1enl1c

  • 吴恩达授课的 Coursera/斯坦福大学的机器学习课程:http://suo.im/1eCvp9

这篇博文的主要目的是给出一些善意的关于数学在机器学中的重要性的建议,一些一些必需的数学主题以及掌握这些主题的一些有用的资源。然而,一些机器学习的痴迷者是数学新手,可能会发现这篇博客令人伤心(认真地说,我不是故意的)。对于初学者而言,你并不需要很多的数学知识就能够开始机器学习的研究。基本的吸纳觉条件是这篇博文所描述的数据分析,你可以在掌握更多的技术和算法的过程中学习数学。

©本文为机器之心编译,转载请联系本公众号获得授权

© 著作权归作者所有

共有 人打赏支持
tantexian
粉丝 194
博文 470
码字总数 718362
作品 0
成都
架构师
进入大学学习AI之前,高中生应掌握哪些基础知识?

将人工智能引入高中课程能弥补技能差距吗?专家们认为,这一举措将有助于建立可持续化发展的劳动力队伍,能够利用变革性技术,确保社会的发展和包容性的增长,符合政府的发展理念。 从这一点说...

智能观
07/09
0
0
入行机器学习,对数学的要求高吗?

在过去的几个月里,我一直和一些人交流,他们已经开始切入数据科学领域并积极使用机器学习(ML)技术来探索统计规律、或构建完善的数据驱动产品。然而,我发现很多情况下统计分析结果不尽人意...

duozhishidai
04/22
0
0
干货丨一份机器学习的初学者指南

机器学习: 引言 听过人们谈论过机器学习,但对它的概念却是一知半解? 想要从零开始机器学习,却被网络上的海量资源冲昏头脑? 不用担心,我们给你们提供了机器学习从0到1系列,这个系列可以让...

r1unw1w
04/11
0
0
大数据、人工智能、机器学习、深度学习,这些到底在说什么?

1,大数据、人工智能、机器学习、深度学习的关系。 大数据,或者说大数据分析平台,更具体一点就是大数据分析PaaS平台,其实是一种针对需要处理海量数据统计分析的PaaS云平台。 大数据学习可...

卢家大少
06/06
0
0
学习大数据必备的5大核心技术,你知道几个?需要掌握哪些知识?

大数据已经成为时代发展的趋势,很多人纷纷选择学习大数据,想要进入大数据行业。大数据技术体系庞大,包括的知识较多,系统的学习大数据可以让你全面掌握大数据技能。学习大数据需要掌握哪些...

董黎明
前天
0
0
机器学习难在哪?

我爱机器学习(http://52ml.net)编者按:机器学习难,并不是因为数学难,而是因为选择什么工具及Debug难。快速有效Debug是现代机器学习中的必备技能,但机器学习的Debug相比普通程序要难很多:...

我爱机器学习
2016/11/15
0
0
从入门到高阶,读懂机器学习需要哪些数学知识

本篇文章想要说明的是数学并非认识世界的唯一途径,即使数学水平不高的你同样也可以开展机器学习方面的工作和研究。但是不可否认数学是自然科学领域探究真理的有效工具,有了强大的数学背景知...

u011808673
05/13
0
0
入行 AI,选个脚踏实地的岗位

算法工程师年薪百万耶,我也要当!以前没学会?没关系啊,我现在开始学,这就把工作辞了脱产学机器学习、深度学习、用 Python 调库、给 TensorFlow 调参去,学会了我也年薪百万了! 随便是个...

valada
04/12
0
0
干货 | 20多门AI网络课程资源(附链接)

现如今,在火爆的人工智能领域,面临的最窘迫的问题是越来越庞大的产业规模和国家每年约500万的相关人才需求的矛盾。广阔的发展前景、巨大的人才缺口和令人心动的行业薪资,让越来越多的年轻...

技术小能手
04/17
0
0
报名 | 恰到好处的机器学习入门课,一站搞定基础+算法+实战

     每天能留给学习的时间不多,当入门一个新技术的时候,多么希望学到的每一个字都能立马派上用场,所以我们会偏向选择那些可以“速成”但学完依旧没有什么卵用的技能,对于可以提升整...

机器之心
07/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Android 复制和粘贴功能

做了一回搬运工,原文地址:https://blog.csdn.net/kennethyo/article/details/76602765 Android 复制和粘贴功能,需要调用系统服务ClipboardManager来实现。 ClipboardManager mClipboardM...

她叫我小渝
24分钟前
0
0
拦截SQLSERVER的SSL加密通道替换传输过程中的用户名密码实现运维审计(一)

工作准备 •一台SQLSERVER 2005/SQLSERVER 2008服务 •SQLSERVER jdbc驱动程序 •Java开发环境eclipse + jdk1.8 •java反编译工具JD-Core 反编译JDBC分析SQLSERVER客户端与服务器通信原理 SQ...

紅顏為君笑
41分钟前
4
0
jQuery零基础入门——(六)修改DOM结构

《jQuery零基础入门》系列博文是在廖雪峰老师的博文基础上,可能补充了个人的理解和日常遇到的点,用我的理解表述出来,主干出处来自廖雪峰老师的技术分享。 在《零基础入门JavaScript》的时...

JandenMa
58分钟前
0
0
linux mint 1.9 qq 安装

转: https://www.jianshu.com/p/cdc3d03c144d 1. 下载 qq 轻聊版,可在百度搜索后下载 QQ7.9Light.exe 2. 去wine的官网(https://wiki.winehq.org/Ubuntu) 安装 wine . 提醒网页可以切换成中...

Canaan_
今天
0
0
PHP后台运行命令并管理运行程序

php后台运行命令并管理后台运行程序 class ProcessModel{ private $pid; private $command; private $resultToFile = ''; public function __construct($cl=false){......

colin_86
今天
1
0
数据结构与算法4

在此程序中,HighArray类中的find()方法用数据项的值作为参数传递,它的返回值决定是否找到此数据项。 insert()方法向数组下一个空位置放置一个新的数据项。一个名为nElems的字段跟踪记录着...

沉迷于编程的小菜菜
今天
1
1
fiddler安装和基本使用以及代理设置

项目需求 由于开发过程中客户端和服务器数据交互非常频繁,有时候服务端需要知道客户端调用接口传了哪些参数过来,这个时候就需要一个工具可以监听这些接口请求参数,已经接口的响应的数据,这种...

银装素裹
今天
0
0
Python分析《我不是药神》豆瓣评论

读取 Mongo 中的短评数据,进行中文分词 对分词结果取 Top50 生成词云 生成词云效果 看来网上关于 我不是药神 vs 达拉斯 的争论很热啊。关于词频统计就这些,代码中也会完成一些其它的分析任...

猫咪编程
今天
0
0
虚拟机怎么安装vmware tools

https://blog.csdn.net/tjcwt2011/article/details/72638977

AndyZhouX
昨天
1
0
There is no session with id[xxx]

参考网页 https://blog.csdn.net/caimengyuan/article/details/52526765 报错 2018-07-19 23:04:35,330 [http-nio-1008-exec-8] DEBUG [org.apache.shiro.web.servlet.SimpleCookie] - Found......

karma123
昨天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部