学习人工智能需要哪些必备的数学基础
当下,人工智能成了新时代的必修课,其重要性已无需赘述,但作为一个跨学科产物,它包含的内容浩如烟海,各种复杂的模型和算法更是让人望而生畏。对于大多数的新手来说,如何入手人工智能其实都是一头雾水,比如到底需要哪些数学基础、是否要有工程经验、对于深度学习框架应该关注什么等等。
那么,学习人工智能该从哪里开始呢?人工智能的学习路径又是怎样的?
数学基础知识蕴含着处理智能问题的基本思想与方法,也是理解复杂算法的必备要素。今天的种种人工智能技术归根到底都建立在数学模型之上,要了解人工智能,首先要掌握必备的数学基础知识,具体来说包括:
线性代数:如何将研究对象形式化?概率论:如何描述统计规律?数理统计:如何以小见大?最优化理论:如何找到最优解?信息论:如何定量度量不确定性?形式逻辑:如何实现抽象推理?线性代数:如何将研究对象形式化?
事实上,线性代数不仅仅是人工智能的基础,更是现代数学和以现代数学作为主要分析方法的众多学科的基础。从量子力学到图像处理都离不开向量和矩阵的使用。而在向量和矩阵背后,线性代数的核心意义在于提供了⼀种看待世界的抽象视角:万事万物都可以被抽象成某些特征的组合,并在由预置规则定义的框架之下以静态和动态的方式加以观察。
着重于抽象概念的解释而非具体的数学公式来看,线性代数要点如下:线性代数的本质在于将具体事物抽象为数学对象,并描述其静态和动态的特性;向量的实质是n维线性空间中的静止点;线性变换描述了向量或者作为参考系的坐标系的变化,可以用矩阵表示;矩阵的特征值和特征向量描述了变化的速度与方向。
总之,线性代数之于人工智能如同加法之于高等数学,是一个基础的工具集。
概率论:如何描述统计规律?
除了线性代数之外,概率论也是人工智能研究中必备的数学基础。随着连接主义学派的兴起,概率统计已经取代了数理逻辑,成为人工智能研究的主流工具。在数据爆炸式增长和计算力指数化增强的今天,概率论已经在机器学习中扮演了核心角色。
同线性代数一样,概率论也代表了一种看待世界的方式,其关注的焦点是无处不在的可能性。频率学派认为先验分布是固定的,模型参数要靠最大似然估计计算;贝叶斯学派认为先验分布是随机的,模型参数要靠后验概率最大化计算;正态分布是最重要的一种随机变量的分布。
数理统计:如何以小见大?
在人工智能的研究中,数理统计同样不可或缺。基础的统计理论有助于对机器学习的算法和数据挖掘的结果做出解释,只有做出合理的解读,数据的价值才能够体现。数理统计根据观察或实验得到的数据来研究随机现象,并对研究对象的客观规律做出合理的估计和判断。
虽然数理统计以概率论为理论基础,但两者之间存在方法上的本质区别。概率论作用的前提是随机变量的分布已知,根据已知的分布来分析随机变量的特征与规律;数理统计的研究对象则是未知分布的随机变量,研究方法是对随机变量进行独立重复的观察,根据得到的观察结果对原始分布做出推断。
用一句不严谨但直观的话讲:数理统计可以看成是逆向的概率论。数理统计的任务是根据可观察的样本反过来推断总体的性质;推断的工具是统计量,统计量是样本的函数,是个随机变量;参数估计通过随机抽取的样本来估计总体分布的未知参数,包括点估计和区间估计;假设检验通过随机抽取的样本来接受或拒绝关于总体的某个判断,常用于估计机器学习模型的泛化错误率。
最优化理论:如何找到最优解?
本质上讲,人工智能的目标就是最优化:在复杂环境与多体交互中做出最优决策。几乎所有的人工智能问题最后都会归结为一个优化问题的求解,因而最优化理论同样是人工智能必备的基础知识。最优化理论研究的问题是判定给定目标函数的最大值(最小值)是否存在,并找到令目标函数取到最大值(最小值)的数值。如果把给定的目标函数看成一座山脉,最优化的过程就是判断顶峰的位置并找到到达顶峰路径的过程。
通常情况下,最优化问题是在无约束情况下求解给定目标函数的最小值;在线性搜索中,确定寻找最小值时的搜索方向需要使用目标函数的一阶导数和二阶导数;置信域算法的思想是先确定搜索步长,再确定搜索方向;以人工神经网络为代表的启发式算法是另外一类重要的优化方法。
信息论:如何定量度量不确定性?
近年来的科学研究不断证实,不确定性就是客观世界的本质属性。换句话说,上帝还真就掷骰子。不确定性的世界只能使用概率模型来描述,这促成了信息论的诞生。
信息论使用“信息熵”的概念,对单个信源的信息量和通信中传递信息的数量与效率等问题做出了解释,并在世界的不确定性和信息的可测量性之间搭建起一座桥梁。
总之,信息论处理的是客观世界中的不确定性;条件熵和信息增益是分类问题中的重要参数;KL散度用于描述两个不同概率分布之间的差异;最大熵原理是分类问题汇总的常用准则。
形式逻辑:如何实现抽象推理?
1956年召开的达特茅斯会议宣告了人工智能的诞生。在人工智能的襁褓期,各位奠基者们,包括约翰·麦卡锡、赫伯特·西蒙、马文·闵斯基等未来的图灵奖得主,他们的愿景是让“具备抽象思考能力的程序解释合成的物质如何能够拥有人类的心智。”通俗地说,理想的人工智能应该具有抽象意义上的学习、推理与归纳能力,其通用性将远远强于解决国际象棋或是围棋等具体问题的算法。
如果将认知过程定义为对符号的逻辑运算,人工智能的基础就是形式逻辑;谓词逻辑是知识表示的主要方法;基于谓词逻辑系统可以实现具有自动推理能力的人工智能;不完备性定理向“认知的本质是计算”这一人工智能的基本理念提出挑战。
《人工智能基础课》全年目录
围绕机器学习与神经网络等核心概念展开,并结合当下火热的深度学习技术,勾勒出人工智能发展的基本轮廓与主要路径。
人工智能的数学基础
人工智能的基础是数学,这一点已经是确定无疑的共识了。
但“数学”二字所包含的内涵与外延太广,到底其中的哪些内容和当前的人工智能技术直接相关呢?
今天我们就来看看入门人工智能所需要的数学知识。
人工智能必备高等数学知识点清单AI技术岗所要求的高等数学知识,大致可以分为四个方面:微积分、概率统计、线性代数,和最优化理论。
每个分领域都至少是一本书(也可以是一摞书)。我们在这里暂且抽取和机器学习、深度学习相关的最基础部分,给大家做一下聚焦:
【微积分】基础概念(极限、可微与可导、全导数与偏导数):只要学微积分,就必须要明白的概念,否则后面什么都无法继续学习。
函数求导:求导是梯度的基础,而梯度是AI算法的基础,因此求导非常重要!必须要搞清楚概念,并学会常见函数的导函数求法。
链式法则:符合函数求导法则,反向传播算法的理论基础。
泰勒公式和费马引理:这两者也是梯度下降法的基础组成,重要程度与求导相同。
微分方程及其求解:很重要,是部分机器学习模型求解的必备知识。
拉格朗日乘子法和对偶学习:理解SVM/SVR的理论基础。SVM/SVR作为机器学习模型的常用“中坚力量”,其重要程度不言而喻。
【概率统计】简单统计量(个数、最大值、最小值、中位数、均值、方差)及其物理意义:概率统计的概念基础。
随机和抽样:随机——概率统计成立的基础;抽样——统计的方法。
频率和概率,以及概率的基本概念:搞清什么是概率,它和频率的区别与联系。
几种常见的概率分布及公式(平均分布、二项分布、正态分布……)
参数估计:只知道大致的分布,不知道具体的参数怎么办?没关系,我们可以根据估计一下。其中最重要的是极大似然估计。
中心极限定理:如果不知道某事物的概率分布该怎么办?没关系,就当它符合正态分布好了。可是为什么能这样近似呢?因为我们有中心极限定理呀。
假设验证:到底假设得对不对呢?我们根据样本来验证一下。
贝叶斯公式:太重要啦!是它使得我们可以根据先验概率来预测后验概率。而朴素贝叶斯公式自己就是朴素贝叶斯模型本身啊。
回归分析:想想那么多名字里有“回归”的模型吧!
状态转移网络:概率链、隐马尔可夫模型和条件随机场。
【线性代数】向量与标量:用向量和标量表示事物特征的差别是什么?
向量空间,向量性质及向量的几何意义:所谓高维低维指的是什么?同一个向量能否存在于不同的向量空间里?向量的移动、转向和拉伸是如何做到的?
线性函数:什么是线性函数,它具备怎样的性质?
矩阵和矩阵运算:矩阵出现的目的是什么?掌握矩阵的基础运算(与常数/向量/矩阵的加法和乘法)。
特殊矩阵(方阵、实对称矩阵、(半)正定/负定矩阵等)及其性质:根据不同的性质,我们可以划分出哪些特殊矩阵,它们都有哪些特殊性质?
特征值和特征向量:定义、性质,以及特征值求解。
用矩阵求解微分方程。
正交:什么是正交?函数的正交,向量的正交,和超平面的正交分别是如何形式化表达的,又具备怎样的物理意义。
【最优化方法】凸函数与极值:搞清楚什么是凸函数,凸函数与极值的关系,极值和最值的关系等。
注意:国内不同教科书对于“凸”的定义存在不一致的情况,有些书上把其他书上说的“凸函数”叫做“凹函数”。
直观而言,我们一向说的“凸函数”是那类一维自变量情况下看起来像个“U”,二维自变量下像个碗的那种函数。
最优化:什么是最优化问题?什么是最优化方法?无限制条件和有限制条件下的最优化方法基本原理分别是什么?
梯度下降法:最基础最常用的最优化方法,以及其他若干最优化方法的基础,务必全面掌握。
其他最优化算法:了解其他一些常用最优化方法,例如,牛顿法、共轭梯度法、线性搜索算法、模拟退火算法、遗传算法等。
人工智能背后的数学大神们
上述知识点,看起来好像有点吓人哦,不像是“我能记得住”的样子。
有没有办法能够轻松愉快不累且高效地掌握人工智能(机器学习/深度学习)领域要用到的数学知识呢?
这里推荐一种笔者在探索中逐步发现的,简单直接又有些趣味的方法:以数学家为主线学习高等数学知识——也就是,“以人为轴”学AI数学。
我们先来看看下面这些画像吧:
你能认出几个?
他们分别是(从左到右从上到下依次):牛顿、高斯、贝叶斯、费马、泰勒、拉格朗日、拉普拉斯、傅立叶,和伯努利。
说实话,现在全球数以千万计的AI技术人员真应该把这些大佬供起来,说咱们的饭碗都是他们赏的也不为过。
牛顿大神发明了微积分;
辅之以费马引理、泰勒公式,奠定了如今一切AI最优化算法工程实现的理论基础。
拉格朗日乘子法为限定条件下多元函数的最优化问题提供了解法。
数学王子高斯在概率论和线性代数领域的非凡贡献不胜枚举,仅仅高斯分布一项就堪称概率论之抗鼎模型。
贝叶斯让我们可以用既往经验预测未来。
伯努利家族不仅在概率论领域贡献颇丰,就连他家二弟卖给洛必达的“洛必达法则”亦是求解具有不定型的极限的不二法门。
拉普拉斯算子于微积分和线性代数而言都是非常重要的基石。
傅立叶变换在时域信号和频域信号之间的桥梁作用成就了整个语音领域。
当然,还有下面这位:
莱布尼茨与牛顿分别独立发明了微积分,他提出的符号系统一直沿用至今。他同样是西方二进制算数体系的提出者和线性代数的重要奠基人。
当然,无论微积分、概率统计还是线性代数,都不是在一日之内形成的学科,都经历了数百年乃至上千年大量人类顶级头脑的思考和探索,对其做出贡献的数学家灿若繁星。
对照我们亟待掌握的知识点,以这些理论的提出者为基点,沿着数学史学习之,并同步了解数学发展的进程。顺便还可以以大神们之间的交往和恩怨等八卦作为润滑剂。
如此一路学来,既多了许多趣味,又能追本溯源,了解到这些理论提出的现实背景(例如:物理学的发展及其对数学工具的需求)。
在学理论的同时了解这一理论最初的作用域和当时解决的实际问题,对于我们理解其中各类概念的物理意义有着极大的帮助。
“众智汇”愿景
尽职尽才,允公允能 —— 本社群不定期举行线上分享,组织群友分享知识、经验、资源,以达到让我们每个人的职业生涯得到最大程度的发展的目的。
欢迎扫面下列二维码关注“悦思悦读”公众微信号
人工智能要学习哪些数学知识?
近些年,随着人工智能的又一次崛起,越来越多的人选择加入人工智能的学习行列。在学习人工智能的时候,我们首先需要学习和掌握一定的数学知识。可能会有人问了,人工智能要学习哪些数学知识呢?大致来讲就是三大核心知识,即高等数学基础、线性代数以及概率与统计。下面我们一起来看看具体的学习内容~
人工智能要学习哪些数学知识?
核心知识一:高等数学基础
这一部分需要掌握的数学知识点有函数、极限、无穷、导数、梯度。此外微积分也是学习的一大重点,包括微积分基本想法、解释、定积分等等,总之,如果你想理解神经网络的训练过程,离不开多元微分和优化方法。同时,泰勒公式与拉格朗日也是需要重点学习的内容之一。在探寻数据空间极值的过程中,如果没有微分理论和计算方法作为支撑,任何漂亮的模型都无法落地。因此,夯实多元微分的基本概念,掌握最优化的实现方法,是通向最终解决方案的必经之路。
核心知识二:线性代数
这一部分的主要知识点包括了矩阵、矩阵变换/分解、特征值、随机变量、特征向量、线性核函数、多项式核函数、高斯核函数、熵、激活函数等等。只有学会了灵活地对数据进行各种变换,才能直观清晰地挖掘出数据的主要特征和不同维度的信息。
核心知识三:概率与统计
想通过一个数据样本集推测出这类对象的总体特征,统计学中的估计理论和大数定理的思想必须建立。因此概率与统计这部分要学的数学知识包括随机变量、正太/二项式/泊松/均匀/卡方/beta分布、核函数、回归分析、假设检验、相关分析、方差分析、聚类分析、叶贝斯分析等等。我们可以通过概率与统计分析发现规律、推测未知,而这正是人工智能的核心技术机器学习的目标。学完了这部分的数学知识,你会发现机器学习中的思想方法和核心算法大多都构筑在统计思维方法之上。
因此,如果你有意向学习人工智能,必要的数学基础是少不了的。而想要掌握以上的数学知识,其实不需要死记每一个公式,只要从理解为出发点学习,零基础学员也可轻松学习高等数学、线性代数、概率论、统计学等核心数学知识。
免费分享一些我整理的《人工智能学习资料》给大家,包括一些AI常用框架实战视频、图像识别、OpenCV、NLQ、机器学习、pytorch、计算机视觉、深度学习与神经网络等视频、课件源码、国内外知名精华资源、AI热门论文、行业报告等。
为了更好的系统学习AI,推荐大家收藏一份。
下面展示部分截图,点击此处免费下载文中资料。一、人工智能课程及项目
二、国内外知名精华资源
三、人工智能论文合集
四、人工智能行业报告
学好人工智能,要多看书,多动手,多实践,要想提高自己的水平,一定要学会沉下心来慢慢的系统学习,最终才能有所收获。
有需要的小伙伴,点击此处免费下载文中资料。AI人工智能需要哪些数学知识你知道吗
人工智能的由来“人工智能”这一术语自1956年被提出,到电子计算机作为一种可以模拟人类思维的工具出现,使人工智能这一技术有了一个展现的平台,开始了探索与发展。1997年,IBM公司的“深蓝Ⅱ”超级计算机,击败了国际象棋卫冕冠军Gary·Kasparov,这一现象,标志了人工智能技术的一个完美表现,再到近些年的AlphaGo,人工智能的发展似乎已经到了一个比较高端的程度。
人工智能的意义人工智能引爆了不仅仅是产业的变革,还是时代的变革,回顾18世纪至今,以蒸汽机、电气技术、计算机信息技术为代表的三次工业革命使人类的生活水平、工作方式、社会结构、经济发展进入了一个崭新的周期。而如果说在21世纪,还有哪一种技术可以和历次工业革命中的先导科技相提并论的话,那答案一定是正在步入成熟增长期的人工智能技术。
什么是人工智能?人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的学科,主要包括计算机实现智能的原理、制造类似于人脑智能的计算机,使计算机能实现更高层次的应用。
人工智能将涉及到计算机科学、心理学、哲学和语言学等学科。可以说几乎是自然科学和社会科学的所有学科,其范围已远远超出了计算机科学的范畴,人工智能与思维科学的关系是实践和理论的关系,人工智能是处于思维科学的技术应用层次,是它的一个应用分支。从思维观点看,人工智能不仅限于逻辑思维,要考虑形象思维、灵感思维才能促进人工智能的突破性的发展,数学常被认为是多种学科的基础科学,数学也进入语言、思维领域,人工智能学科也必须借用数学工具,数学不仅在标准逻辑、模糊数学等范围发挥作用,数学进入人工智能学科,它们将互相促进而更快地发展。
那么,学习人工智能,需要哪些数学知识呢?新春来临之际,尚学堂为大家准备了一份详细的学习规划,希望对爱好人工智能的朋友们有所帮助。
微积分
线性代数
概率论
最优化
关于书籍,特别说明一下,除非你是数学知识遗忘的特别厉害了,或者是本科的时候没有学过相关数学知识,否则不建议大家抱着书去学习,会浪费大家大量的精力和时间
微积分导数与求导公式
一阶导数与函数的单调性
一元函数极值判定法则
高阶导数
二阶导数与函数的凹凸性
一元导数泰勒展开
先说微积分/高等数学。在机器学习中,微积分主要用到了微分部分,作用是求函数的极值,就是很多机器学习库中的求解器(solver)所实现的功能。在机器学习里会用到微积分中的以下知识点:
导数和偏导数的定义与计算方法
梯度向量的定义
极值定理,可导函数在极值点处导数或梯度必须为0
雅克比矩阵,这是向量到向量映射函数的偏导数构成的矩阵,在求导推导中会用到
Hessian矩阵,这是2阶导数对多元函数的推广,与函数的极值有密切的联系
凸函数的定义与判断方法
泰勒展开公式
拉格朗日乘数法,用于求解带等式约束的极值问题
其中最核心的是记住多元函数的泰勒展开公式,根据它我们可以推导出机器学习中常用的梯度下降法,牛顿法,拟牛顿法等一系列最优化方法,泰勒公式。
微积分和线性代数,微积分中会用到大量线性代数的知识,线性代数中也会用到微积分的知识
线性代数向量及其运算
矩阵及其运算
张量
行列式
二次型
特征值与特征向量
相比之下,线性代数用的更多。在机器学习的几乎所有地方都有使用,具体用到的知识点有:
向量和它的各种运算,包括加法,减法,数乘,转置,内积
向量和矩阵的范数,L1范数和L2范数
矩阵和它的各种运算,包括加法,减法,乘法,数乘
逆矩阵的定义与性质
行列式的定义与计算方法
二次型的定义
矩阵的正定性
矩阵的特征值与特征向量
矩阵的奇异值分解
线性方程组的数值解法,尤其是共轭梯度法
机器学习算法处理的数据一般都是向量、矩阵或者张量。经典的机器学习算法输入的数据都是特征向量,深度学习算法在处理图像时输入的2维的矩阵或者3维的张量。掌握这些知识会使你游刃有余:
多元函数微分学
高阶偏导数
雅克比矩阵
Hessian矩阵
多元函数泰勒展开
多元函数极值判定法则
回到线性代数
奇异值分解SVD
常用的矩阵和向量求导公式
概率论随机事件与概率
条件概率和贝叶斯公式
随机变量
随机变量的期望和方差
常用概率分布(正太分布、均匀分布、伯努利二项分布)
随机向量(联合概率密度函数等)
协方差与协方差矩阵
最大似然估计
如果把机器学习所处理的样本数据看作随机变量/向量,我们就可以用概率论的观点对问题进行建模,这代表了机器学习中很大一类方法。在机器学习里用到的概率论知识点有:
随机事件的概念,概率的定义与计算方法
随机变量与概率分布,尤其是连续型随机变量的概率密度函数和分布函数
条件概率与贝叶斯公式
常用的概率分布,包括正态分布,伯努利二项分布,均匀分布
随机变量的均值与方差,协方差
随机变量的独立性
最大似然估计
最优化最后要说的是最优化,因为几乎所有机器学习算法归根到底都是在求解最优化问题。
求解最优化问题的指导思想是在极值点出函数的导数/梯度必须为0。因此你必须理解梯度下降法,牛顿法这两种常用的算法,它们的迭代公式都可以从泰勒展开公式中得到。如果能知道坐标下降法、拟牛顿法就更好了。
凸优化是机器学习中经常会提及的一个概念,这是一类特殊的优化问题,它的优化变量的可行域是凸集,目标函数是凸函数。凸优化最好的性质是它的所有局部最优解就是全局最优解,因此求解时不会陷入局部最优解。如果一个问题被证明为是凸优化问题,基本上已经宣告此问题得到了解决。在机器学习中,线性回归、岭回归、支持向量机、logistic回归等很多算法求解的都是凸优化问题。
拉格朗日对偶为带等式和不等式约束条件的优化问题构造拉格朗日函数,将其变为原问题,这两个问题是等价的。通过这一步变换,将带约束条件的问题转换成不带约束条件的问题。通过变换原始优化变量和拉格朗日乘子的优化次序,进一步将原问题转换为对偶问题,如果满足某种条件,原问题和对偶问题是等价的。这种方法的意义在于可以将一个不易于求解的问题转换成更容易求解的问题。在支持向量机中有拉格朗日对偶的应用。
KKT条件是拉格朗日乘数法对带不等式约束问题的推广,它给出了带等式和不等式约束的优化问题在极值点处所必须满足的条件。在支持向量机中也有它的应用。
如果你没有学过最优化方法这门课也不用担心,这些方法根据微积分和线性代数的基础知识可以很容易推导出来。如果需要系统的学习这方面的知识,可以阅读《凸优化》,《非线性规划》两本经典教材。
出现频率最高的是优化方法,拉格朗日乘数法,梯度下降法,牛顿法,凸优化
第二类概率论知识,随机变量,贝叶斯公式,随机变量独立性,正太分布,最大似然估计
第三类线性代数知识,几乎所有都会涉及到向量、矩阵、张量的计算,包括特征值和特征向量,很多算法都会最终变成求解特征值和特征向量问题。
微积分的知识比如链式法则。
除了主体这些数学知识,会用到微分几何中的流行、测地线、测地距离的概念。
支持向量机会用到Mercer条件、核函数,涉及到泛函分析和识别函数的范畴。
再比如说人工神经网络的证明,万能逼近定理会用到泛函分析和识别函数的内容,用来证明这样一个函数可以来逼近任何形式的函数。
离散数学的知识比如图论、树在机器学习里面也会用到,但是用的都是比较简单的。
所以说我们只有掌握好微积分、线性代数、概率论还有一些优化的算法,我们就能看懂所有的机器学习算法了。像刚才说的一些相对高深的微分几何、泛函分析和识别函数,它们主要用在一些基础理论证明上面,说白了就是证明一些算法的合理性,你即使看不懂这些证明,它也不影响你理解这些算法的推导、思想和使用。
学好机器学习需要哪些数学知识
编辑推荐:本文来源于csdn,介绍了微积分,线性代数,概率论,最优化方法,算法和理论用到的数学知识等。
很多同学谈数学色变,但数学是机器学习绕不开的基础知识。今天我们来谈谈这个话题:学好机器学习究竟需要哪些数学知识?
先看知乎上的回答:
大部分读者看到这样的答案之后内心是凄凉的。实变函数,拓扑学,泛函分析,除了数学系之外,很少有其他专业会学这些课程。
真的需要学习这些令人不寒而栗的课程吗?事实上,要理解和掌握绝大部分机器学习算法和理论,尤其是对做工程应用的人而
言,所需要的数学知识大学数学老师已经给你了:
微积分
线性代数
概率论
最优化方法
关键知识点
微积分
先说微积分/高等数学。在机器学习中,微积分主要用到了微分部分,作用是求函数的极值,就是很多机器学习库中的求解器(solver)所实现的功能。在机器学习里会用到微积分中的以下知识点:
导数和偏导数的定义与计算方法
梯度向量的定义
极值定理,可导函数在极值点处导数或梯度必须为0
雅克比矩阵,这是向量到向量映射函数的偏导数构成的矩阵,在求导推导中会用到
Hessian矩阵,这是2阶导数对多元函数的推广,与函数的极值有密切的联系
凸函数的定义与判断方法
泰勒展开公式
拉格朗日乘数法,用于求解带等式约束的极值问题
其中最核心的是记住多元函数的泰勒展开公式,根据它我们可以推导出机器学习中常用的梯度下降法,牛顿法,拟牛顿法等一系列最优化方法:
线性代数
相比之下,线性代数用的更多。在机器学习的几乎所有地方都有使用,具体用到的知识点有:
向量和它的各种运算,包括加法,减法,数乘,转置,内积
向量和矩阵的范数,L1范数和L2范数
矩阵和它的各种运算,包括加法,减法,乘法,数乘
逆矩阵的定义与性质
行列式的定义与计算方法
二次型的定义
矩阵的正定性
矩阵的特征值与特征向量
矩阵的奇异值分解
线性方程组的数值解法,尤其是共轭梯度法
机器学习算法处理的数据一般都是向量、矩阵或者张量。经典的机器学习算法输入的数据都是特征向量,深度学习算法在处理图像时输入的2维的矩阵或者3维的张量。掌握这些知识会使你游刃有余。
概率论
如果把机器学习所处理的样本数据看作随机变量/向量,我们就可以用概率论的观点对问题进行建模,这代表了机器学习中很大一类方法。在机器学习里用到的概率论知识点有:
随机事件的概念,概率的定义与计算方法
随机变量与概率分布,尤其是连续型随机变量的概率密度函数和分布函数
条件概率与贝叶斯公式
常用的概率分布,包括正态分布,伯努利二项分布,均匀分布
随机变量的均值与方差,协方差
随机变量的独立性
最大似然估计
这些知识不超出普通理工科概率论教材的范围。
最优化方法
最后要说的是最优化,因为几乎所有机器学习算法归根到底都是在求解最优化问题。求解最优化问题的指导思想是在极值点出函数的导数/梯度必须为0。因此你必须理解梯度下降法,牛顿法这两种常用的算法,它们的迭代公式都可以从泰勒展开公式中得到。如果能知道坐标下降法、拟牛顿法就更好了。
凸优化是机器学习中经常会提及的一个概念,这是一类特殊的优化问题,它的优化变量的可行域是凸集,目标函数是凸函数。凸优化最好的性质是它的所有局部最优解就是全局最优解,因此求解时不会陷入局部最优解。如果一个问题被证明为是凸优化问题,基本上已经宣告此问题得到了解决。在机器学习中,线性回归、岭回归、支持向量机、logistic回归等很多算法求解的都是凸优化问题。
拉格朗日对偶为带等式和不等式约束条件的优化问题构造拉格朗日函数,将其变为原问题,这两个问题是等价的。通过这一步变换,将带约束条件的问题转换成不带约束条件的问题。通过变换原始优化变量和拉格朗日乘子的优化次序,进一步将原问题转换为对偶问题,如果满足某种条件,原问题和对偶问题是等价的。这种方法的意义在于可以将一个不易于求解的问题转换成更容易求解的问题。在支持向量机中有拉格朗日对偶的应用。
KKT条件是拉格朗日乘数法对带不等式约束问题的推广,它给出了带等式和不等式约束的优化问题在极值点处所必须满足的条件。在支持向量机中也有它的应用。
如果你没有学过最优化方法这门课也不用担心,这些方法根据微积分和线性代数的基础知识可以很容易推导出来。如果需要系统的学习这方面的知识,可以阅读《凸优化》,《非线性规划》两本经典教材。
各种算法和理论用到的数学知识
下面我们来看典型算法和理论结论所用到的数学知识:
除流形学习需要简单的微分几何概念之外,深层次的数学知识如实变函数,泛函分析等主要用在一些基础理论结果的证明上,即使不能看懂证明过程,也不影响我们使用具体的机器学习算法。概率图模型、流形学习中基于图的模型会用到图论的一些基本知识,如果学习过离散数学或者数据结构,这些概念很容易理解。