精华内容
下载资源
问答
  • 机器学习需要学的数学
    千次阅读
    2019-05-19 22:26:12

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

    最近兴起了许多易于使用的机器学习和深度学习的安装包,如scikit-learn,weka,tensorflow,r-caret等。机器学习理论是横跨统计、概率、计算机科学和算法等相关领域,可以用来构建智能应用程序。虽然机器和深度学习有着无限前景,但就这些技术而言,透彻的数学理解对掌握内部运算和获得较好的效果是非常有必要的。

    为什么要强调数学?

    毫无疑问机器学习中数学是重要的,例如你需要:

    1.选择合适的算法,包括考虑精度、训练时间、模型的复杂性、参数和数量特征;

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

    3.通过了解偏差方差权衡来识别拟合不足与过度拟合;

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

    你需要具备怎样的数学水平?

    到底需要具备多少数学知识才能理解机器学习这个交叉领域的技术呢?这个问题没有统一的答案,通常是因人而异的。机器学习的数学公式和理论研究正在进行中,研究人员也正在研发更多的先进技术,所以回答这个问题是不太容易的。下面我将从以下方面阐述我认为成为机器学习科学家/工程师所需的最低数学水平以及每个数学概念的重要性。

    1.线性代数:我的一个同事SkylerSpeakman说“线性代数是二十一世纪的数学”,我完全同意这个说法。在ML中,线性代数到处都是。主成分分析(PCA)、奇异值分解(SVD)、矩阵的特征分解、LU分解、QR分解/因式分解、对称矩阵,正交化和正交化、矩阵运算、投影、特征值和特征向量、向量空间和规范这些都是理解机器学习及其优化方法所必需的。线性代数令人惊奇的是,有很多在线资源。我一直说传统的课堂正在死亡,因为互联网上有大量的资源。我最喜欢的线性代数课程是MIT(GilbertStrang教授)课程。

    2.概率理论与统计学:机器学习与统计学领域是有很多相似的地方。实际上,有人最近将机器学习定义为“在Mac上统计数据”。机器学习需要基本统计和概率理论的综合知识,如概率规则和公理、贝叶斯定理、随机变量、方差和期望、条件和联合分布、标准分布(伯努利,二项式,多项式,均匀和高斯)、矩生成函数、最大似然估计(MLE)、先验和后验、最大后验估计(MAP)和抽样方法。

    3.多元微积分:主要领域包括微积分、偏导数、向量值函数、梯度方向、Hessian矩阵、雅可比矩阵、拉普拉斯和拉格朗日分布。

    4.算法和复杂度优化:这些在评估计算的效率和可扩展性,或利用稀疏矩阵时,显得非常重要。需要知识包括数据结构(二叉树,散列,堆,堆栈等)、动态规划、随机和线性算法、图形、梯度/随机下降和原对偶方法。

    5.其他:包括上述四个主要领域未涵盖的其他数学主题。它们包括实分析和复分析(集合和序列、拓扑、度量空间、单值和连续函数、限制、柯西内核、傅里叶变换),信息理论(熵,信息增益),函数空间和Manifolds流形。

    这篇文章的主要目的是给出数学在机器学习中的重要性建议以及掌握这些相关内容的有用资源。然而,一些机器学习爱好者是数学新手,可能会发现这个帖子很令人泄气(说实话,这不是我的目的)。对于初学者,你不需要掌握很多数学知识才能开始机器学习。根本的先决条件是我之前一篇博客文章中所描述的数据分析,您可以边学习数学边去掌握更多的算法和技术。

    人工智能、大数据、云计算和物联网的未来发展值得重视,均为前沿产业,多智时代专注于人工智能和大数据的入门和科谱,在此为你推荐几篇优质好文:
    人工智能,机器学习和深度学习之间,主要有什么差异?
    http://www.duozhishidai.com/article-15858-1.html
    从线性模型到神经网络,机器学习的入门算法
    http://www.duozhishidai.com/article-15383-1.html
    机器学习已经被广泛应用,但是入行机器学习主要难在哪里?
    http://www.duozhishidai.com/article-15300-1.html


    多智时代-人工智能大数据学习入门网站|人工智能、大数据、物联网云计算的学习交流网站

    多智时代-人工智能大数据学习入门网站|人工智能、大数据、云计算、物联网的学习服务的好平台
    更多相关内容
  • 事实上,要理解和掌握绝大部分机器学习算法和理论,尤其是对做工程应用的人而言,所需要数学知识大学数学老师已经给你了:微积分线性代数概率论最优化方法先说微积分/高等数学。在机器学习中,微积分主要用到了...
  • 机器学习数学基础,包括高斯分布,贝叶斯公式,最小二乘法,矩阵特征值分解,SVD,手写pdf,为什么摘要要写这么长,我真是服了,有用吗,不如就写十个字就行
  • 机器学习数学基础.zip

    2020-12-30 13:09:28
    内容主要涉及线性代数,拓扑,微积分等机器学习所需的数学理论基础,共计1900多页,由UPenn的教授编写
  • 机器学习数学基础

    千次阅读 2021-09-09 16:29:26
    所以本文就先介绍一下机器学习涉及到的一些最常用的的数学知识。 二、线性代数 2-1、标量 一个标量就是一个单独的数,一般用小写的的变量名称表示。 2-2、向量 一个向量就是一列数,这些数是有序排列的。用...

    一、概述

    我们知道,机器学习的特点就是:以计算机为工具和平台,以数据为研究对象,以学习方法为中心;是概率论、线性代数、数值计算、信息论、最优化理论和计算机科学等多个领域的交叉学科。所以本文就先介绍一下机器学习涉及到的一些最常用的的数学知识。

    二、线性代数

    2-1、标量

    一个标量就是一个单独的数,一般用小写的的变量名称表示。

    2-2、向量

    一个向量就是一列数,这些数是有序排列的。用过次序中的索引,我们可以确定每个单独的数。通常会赋予向量粗体的小写名称。当我们需要明确表示向量中的元素时,我们会将元素排
    列成一个方括号包围的纵柱:

    我们可以把向量看作空间中的点,每个元素是不同的坐标轴上的坐标。

    2-3、矩阵

    矩阵是二维数组,其中的每一个元素被两个索引而非一个所确定。我们通常会赋予矩阵粗体的大写变量名称,比如A。 如果一个实数矩阵高度为m,宽度为n,那么我们说

    矩阵这东西在机器学习中就不要太重要了!实际上,如果我们现在有N个用户的数据,每条数据含有M个特征,那其实它对应的就是一个N*M的矩阵呀;再比如,一张图由16*16的像素点组成,那这就是一个16*16的矩阵了。现在才发现,我们大一学的矩阵原理原来这么的有用!要是当时老师讲课的时候先普及一下,也不至于很多同学学矩阵的时候觉得莫名其妙了。

    2-4、张量

    几何代数中定义的张量是基于向量和矩阵的推广,通俗一点理解的话,我们可以将标量视为零阶张量,矢量视为一阶张量,那么矩阵就是二阶张量。

    例如,可以将任意一张彩色图片表示成一个三阶张量,三个维度分别是图片的高度、宽度和色彩数据。将这张图用张量表示出来,就是最下方的那张表格:

    其中表的横轴表示图片的宽度值,这里只截取0~319;表的纵轴表示图片的高度值,这里只截取0~4;表格中每个方格代表一个像素点,比如第一行第一列的表格数据为[1.0,1.0,1.0],代表的就是RGB三原色在图片的这个位置的取值情况(即R=1.0,G=1.0,B=1.0)。

    当然我们还可以将这一定义继续扩展,即:我们可以用四阶张量表示一个包含多张图片的数据集,这四个维度分别是:图片在数据集中的编号,图片高度、宽度,以及色彩数据。

    张量在深度学习中是一个很重要的概念,因为它是一个深度学习框架中的一个核心组件,后续的所有运算和优化算法几乎都是基于张量进行的。

    2-5、范数

    有时我们需要衡量一个向量的大小。在机器学习中,我们经常使用被称为范数(norm) 的函数衡量矩阵大小。Lp 范数如下:

    所以:

    L1范数:为x向量各个元素绝对值之和;

    L2范数:为x向量各个元素平方和的开方。

    这里先说明一下,在机器学习中,L1范数和L2范数很常见,主要用在损失函数中起到一个限制模型参数复杂度的作用,至于为什么要限制模型的复杂度,这又涉及到机器学习中常见的过拟合问题。具体的概念在后续文章中会有详细的说明和推导,大家先记住:这个东西很重要,实际中经常会涉及到,面试中也常会被问到!!!

    2-6、特征分解

    许多数学对象可以通过将它们分解成多个组成部分。特征分解是使用最广的矩阵分解之一,即将矩阵分解成一组特征向量特征值

    方阵A的特征向量是指与A相乘后相当于对该向量进行缩放的非零向量:

    标量被称为这个特征向量对应的特征值。

    使用特征分解去分析矩阵A时,得到特征向量构成的矩阵V和特征值构成的向量,我们可以重新将A写作:

    2-7、奇异值分解(Singular Value Decomposition,SVD)

    矩阵的特征分解是有前提条件的,那就是只有对可对角化的矩阵才可以进行特征分解。但实际中很多矩阵往往不满足这一条件,甚至很多矩阵都不是方阵,就是说连矩阵行和列的数目都不相等。这时候怎么办呢?人们将矩阵的特征分解进行推广,得到了一种叫作“矩阵的奇异值分解”的方法,简称SVD。通过奇异分解,我们会得到一些类似于特征分解的信息。

    它的具体做法是将一个普通矩阵分解为奇异向量和奇异值。比如将矩阵A分解成三个矩阵的乘积:

    假设A是一个mn矩阵,那么U是一个mm矩阵D是一个mn矩阵V是一个nn矩阵

    这些矩阵每一个都拥有特殊的结构,其中U和V都是正交矩阵,D是对角矩阵(注意,D不一定是方阵)。对角矩阵D对角线上的元素被称为矩阵A的奇异值。矩阵U的列向量被称为左奇异向量,矩阵V 的列向量被称右奇异向量

    SVD最有用的一个性质可能是拓展矩阵求逆到非方矩阵上。另外,SVD可用于推荐系统中。

    2-8、Moore-Penrose伪逆

    对于非方矩阵而言,其逆矩阵没有定义。假设在下面问题中,我们想通过矩阵A的左逆B来求解线性方程:

    等式两边同时左乘左逆B后,得到:

    是否存在唯一的映射将A映射到B取决于问题的形式。

    如果矩阵A的行数大于列数,那么上述方程可能没有解;如果矩阵A的行数小于列数,那么上述方程可能有多个解。

    Moore-Penrose伪逆使我们能够解决这种情况,矩阵A的伪逆定义为:

    但是计算伪逆的实际算法没有基于这个式子,而是使用下面的公式:

    其中,矩阵U,D 和V 是矩阵A奇异值分解后得到的矩阵。对角矩阵D 的伪逆D+ 是其非零元素取倒之后再转置得到的。

    2-9、几种常用的距离

    上面大致说过, 在机器学习里,我们的运算一般都是基于向量的,一条用户具有100个特征,那么他对应的就是一个100维的向量,通过计算两个用户对应向量之间的距离值大小,有时候能反映出这两个用户的相似程度。这在后面的KNN算法和K-means算法中很明显。

    设有两个n维变量和[公式],则一些常用的距离公式定义如下:

    1、曼哈顿距离

    曼哈顿距离也称为城市街区距离,数学定义如下:

    曼哈顿距离的Python实现:

    from numpy import *
    vector1 = mat([1,2,3])
    vector2 = mat([4,5,6])
    print sum(abs(vector1-vector2))

    2、欧氏距离

    欧氏距离其实就是L2范数,数学定义如下:

    欧氏距离的Python实现:

    from numpy import *
    vector1 = mat([1,2,3])
    vector2 = mat([4,5,6])
    print sqrt((vector1-vector2)*(vector1-vector2).T)

    3、闵可夫斯基距离

    从严格意义上讲,闵可夫斯基距离不是一种距离,而是一组距离的定义:

    实际上,当p=1时,就是曼哈顿距离;当p=2时,就是欧式距离。

    4、切比雪夫距离

    切比雪夫距离就是,即无穷范数,数学表达式如下:

    切比雪夫距离额Python实现如下:

    from numpy import *
    vector1 = mat([1,2,3])
    vector2 = mat([4,5,6])
    print sqrt(abs(vector1-vector2).max)

    5、夹角余弦

    夹角余弦的取值范围为[-1,1],可以用来衡量两个向量方向的差异;夹角余弦越大,表示两个向量的夹角越小;当两个向量的方向重合时,夹角余弦取最大值1;当两个向量的方向完全相反时,夹角余弦取最小值-1。

    机器学习中用这一概念来衡量样本向量之间的差异,其数学表达式如下:

    夹角余弦的Python实现:

    from numpy import *
    vector1 = mat([1,2,3])
    vector2 = mat([4,5,6])
    print dot(vector1,vector2)/(linalg.norm(vector1)*linalg.norm(vector2))

    6、汉明距离

    汉明距离定义的是两个字符串中不相同位数的数目。

    例如:字符串‘1111’与‘1001’之间的汉明距离为2。

    信息编码中一般应使得编码间的汉明距离尽可能的小。

    汉明距离的Python实现:

    from numpy import *
    matV = mat([1,1,1,1],[1,0,0,1])
    smstr = nonzero(matV[0]-matV[1])
    print smstr

    7、杰卡德相似系数

    两个集合A和B的交集元素在A和B的并集中所占的比例称为两个集合的杰卡德相似系数,用符号J(A,B)表示,数学表达式为:

    杰卡德相似系数是衡量两个集合的相似度的一种指标。一般可以将其用在衡量样本的相似度上。

    8、杰卡德距离

    与杰卡德相似系数相反的概念是杰卡德距离,其定义式为:

    杰卡德距离的Python实现:

    from numpy import *
    import scipy.spatial.distance as dist
    matV = mat([1,1,1,1],[1,0,0,1])
    print dist.pdist(matV,'jaccard')

    三、概率

    3-1、为什么使用概率?

    概率论是用于表示不确定性陈述的数学框架,即它是对事物不确定性的度量。

    在人工智能领域,我们主要以两种方式来使用概率论。首先,概率法则告诉我们AI系统应该如何推理,所以我们设计一些算法来计算或者近似由概率论导出的表达式。其次,我们可以用概率和统计从理论上分析我们提出的AI系统的行为。

    计算机科学的许多分支处理的对象都是完全确定的实体,但机器学习却大量使用概率论。实际上如果你了解机器学习的工作原理你就会觉得这个很正常。因为机器学习大部分时候处理的都是不确定量或随机量。

    3-2、随机变量

    随机变量可以随机地取不同值的变量。我们通常用小写字母来表示随机变量本身,而用带数字下标的小写字母来表示随机变量能够取到的值。例如, 和[公式] 都是随机变量X可能的取值。

    对于向量值变量,我们会将随机变量写成X,它的一个值为。就其本身而言,一个随机变量只是对可能的状态的描述;它必须伴随着一个概率分布来指定每个状态的可能性。

    随机变量可以是离散的或者连续的。

    3-3、概率分布

    给定某随机变量的取值范围,概率分布就是导致该随机事件出现的可能性。

    从机器学习的角度来看,概率分布就是符合随机变量取值范围的某个对象属于某个类别或服从某种趋势的可能性。

    3-4、条件概率

    很多情况下,我们感兴趣的是某个事件在给定其它事件发生时出现的概率,这种概率叫条件概率。

    我们将给定时[公式]发生的概率记为[公式],这个概率可以通过下面的公式来计算:

    3-5、贝叶斯公式

    先看看什么是“先验概率”和“后验概率”,以一个例子来说明:

    假设某种病在人群中的发病率是0.001,即1000人中大概会有1个人得病,则有: P(患病) = 0.1%;即:在没有做检验之前,我们预计的患病率为P(患病)=0.1%,这个就叫作"先验概率"

    再假设现在有一种该病的检测方法,其检测的准确率为95%;即:如果真的得了这种病,该检测法有95%的概率会检测出阳性,但也有5%的概率检测出阴性;或者反过来说,但如果没有得病,采用该方法有95%的概率检测出阴性,但也有5%的概率检测为阳性。用概率条件概率表示即为:P(显示阳性|患病)=95%

    现在我们想知道的是:在做完检测显示为阳性后,某人的患病率P(患病|显示阳性),这个其实就称为"后验概率"。

    而这个叫贝叶斯的人其实就是为我们提供了一种可以利用先验概率计算后验概率的方法,我们将其称为“贝叶斯公式”。

    这里先了解条件概率公式

    由条件概率可以得到乘法公式

    将条件概率公式和乘法公式结合可以得到:

    再由全概率公式

    代入可以得到贝叶斯公式

    在这个例子里就是:

    贝叶斯公式贯穿了机器学习中随机问题分析的全过程。从文本分类到概率图模型,其基本分类都是贝叶斯公式。

    期望、方差、协方差等主要反映数据的统计特征,机器学习的一个很大应用就是数据挖掘等,因此这些基本的统计概念也是很有必要掌握。另外,像后面的EM算法中,就需要用到期望的相关概念和性质。

    3-6、期望

    在概率论和统计学中,数学期望是试验中每次可能结果的概率乘以其结果的总和。它是最基本的数学特征之一,反映随机变量平均值的大小。

    假设X是一个离散随机变量,其可能的取值有:,各个取值对应的概率取值为:[公式],则其数学期望被定义为:

    假设X是一个连续型随机变量,其概率密度函数为则其数学期望被定义为:

    3-7、方差

    概率中,方差用来衡量随机变量与其数学期望之间的偏离程度;统计中的方差为样本方差,是各个样本数据分别与其平均数之差的平方和的平均数。数学表达式如下:

    3-8、协方差

    在概率论和统计学中,协方差被用于衡量两个随机变量X和Y之间的总体误差。数学定义式为:

    3-9、常见分布函数

    1)0-1分布

    0-1分布是单个二值型离散随机变量的分布,其概率分布函数为:

    [公式]

    2)几何分布

    几何分布是离散型概率分布,其定义为:在n次伯努利试验中,试验k次才得到第一次成功的机率。即:前k-1次皆失败,第k次成功的概率。其概率分布函数为:

    性质:

    [公式]

    3)二项分布

    二项分布即重复n次伯努利试验,各次试验之间都相互独立,并且每次试验中只有两种可能的结果,而且这两种结果发生与否相互对立。如果每次试验时,事件发生的概率为p,不发生的概率为1-p,则n次重复独立试验中发生k次的概率为:

    性质:

    [公式]

    4)高斯分布

    高斯分布又叫正态分布,其曲线呈钟型,两头低,中间高,左右对称因其曲线呈钟形,如下图所示:

    若随机变量X服从一个数学期望为,方差为[公式]的正态分布,则我们将其记为:[公式]。其期望值[公式]决定了正态分布的位置,其标准差[公式](方差的开方)决定了正态分布的幅度。

    5)指数分布

    指数分布是事件的时间间隔的概率,它的一个重要特征是无记忆性。例如:如果某一元件的寿命的寿命为T,已知元件使用了t小时,它总共使用至少t+s小时的条件概率,与从开始使用时算起它使用至少s小时的概率相等。下面这些都属于指数分布:

    • 婴儿出生的时间间隔
    • 网站访问的时间间隔
    • 奶粉销售的时间间隔

    指数分布的公式可以从泊松分布推断出来。如果下一个婴儿要间隔时间t,就等同于t之内没有任何婴儿出生,即:

    则:

    如:接下来15分钟,会有婴儿出生的概率为:

    指数分布的图像如下:

    6)泊松分布

    日常生活中,大量事件是有固定频率的,比如:

    • 某医院平均每小时出生3个婴儿
    • 某网站平均每分钟有2次访问
    • 某超市平均每小时销售4包奶粉

    它们的特点就是,我们可以预估这些事件的总数,但是没法知道具体的发生时间。已知平均每小时出生3个婴儿,请问下一个小时,会出生几个?有可能一下子出生6个,也有可能一个都不出生,这是我们没法知道的。

    泊松分布就是描述某段时间内,事件具体的发生概率。其概率函数为:

    其中:

    P表示概率,N表示某种函数关系,t表示时间,n表示数量,1小时内出生3个婴儿的概率,就表示为 P(N(1) = 3) ;λ 表示事件的频率。

    还是以上面医院平均每小时出生3个婴儿为例,则;

    那么,接下来两个小时,一个婴儿都不出生的概率可以求得为:

    同理,我们可以求接下来一个小时,至少出生两个婴儿的概率:

    【注】上面的指数分布和泊松分布参考了阮一峰大牛的博客:“泊松分布和指数分布:10分钟教程”,在此说明,也对其表示感谢!

    3-10、Lagrange乘子法

    对于一般的求极值问题我们都知道,求导等于0就可以了。但是如果我们不但要求极值,还要求一个满足一定约束条件的极值,那么此时就可以构造Lagrange函数,其实就是把约束项添加到原函数上,然后对构造的新函数求导

    对于一个要求极值的函数,图上的蓝圈就是这个函数的等高图,就是说 [公式]分别代表不同的数值(每个值代表一圈,等高图),我要找到一组[公式],使它的[公式]值越大越好,但是这点必须满足约束条件[公式](在黄线上)。

    也就是说和[公式]相切,或者说它们的梯度▽[公式]和▽[公式]平行,因此它们的梯度(偏导)成倍数关系;那我么就假设为[公式]倍,然后把约束条件加到原函数后再对它求导,其实就等于满足了下图上的式子。

    支持向量机模型(SVM)的推导中一步很关键的就是利用拉格朗日对偶性将原问题转化为对偶问题。

    3-11、最大似然估计

    最大似然也称为最大概似估计,即:在“模型已定,参数θ未知”的情况下,通过观测数据估计未知参数θ 的一种思想或方法。

    其基本思想是给定样本取值后,该样本最有可能来自参数为何值的总体。即:寻找使得观测到样本数据的可能性最大。

    举个例子,假设我们要统计全国人口的身高,首先假设这个身高服从服从正态分布,但是该分布的均值与方差未知。由于没有足够的人力和物力去统计全国每个人的身高,但是可以通过采样(所有的采样要求都是独立同分布的),获取部分人的身高,然后通过最大似然估计来获取上述假设中的正态分布的均值与方差。

    求极大似然函数估计值的一般步骤:

    • 1、写出似然函数;

    • 2、对似然函数取对数;
    • 3、两边同时求导数;
    • 4、令导数为0解出似然方程。

    在机器学习中也会经常见到极大似然的影子。比如后面的逻辑斯特回归模型(LR),其核心就是构造对数损失函数后运用极大似然估计。

    四、信息论

    信息论本来是通信中的概念,但是其核心思想“熵”在机器学习中也得到了广泛的应用。比如决策树模型ID3,C4.5中是利用信息增益来划分特征而生成一颗决策树的,而信息增益就是基于这里所说的。所以它的重要性也是可想而知。

    4-1、熵

    如果一个随机变量X的可能取值为,其概率分布为[公式],则随机变量X的熵定义为H(X)

    4-2、联合熵

    两个随机变量X和Y的联合分布可以形成联合熵,定义为联合自信息的数学期望,它是二维随机变量XY的不确定性的度量,用H(X,Y)表示:

    4-3、条件熵

    在随机变量X发生的前提下,随机变量Y发生新带来的熵,定义为Y的条件熵,用H(Y|X)表示:

    条件熵用来衡量在已知随机变量X的条件下,随机变量Y的不确定性

    实际上,熵、联合熵和条件熵之间存在以下关系:

    推导过程如下:

    其中:

    • 第二行推到第三行的依据是边缘分布P(x)等于联合分布P(x,y)的和;
    • 第三行推到第四行的依据是把公因子logP(x)乘进去,然后把x,y写在一起;
    • 第四行推到第五行的依据是:因为两个sigma都有P(x,y),故提取公因子P(x,y)放到外边,然后把里边的-(log P(x,y) - log P(x))写成- log (P(x,y) / P(x) ) ;
    • 第五行推到第六行的依据是:P(x,y) = P(x) * P(y|x),故P(x,y) / P(x) = P(y|x)。

    4-4、相对熵

    相对熵又称互熵、交叉熵、KL散度、信息增益,是描述两个概率分布P和Q差异的一种方法,记为D(P||Q)。在信息论中,D(P||Q)表示当用概率分布Q来拟合真实分布P时,产生的信息损耗,其中P表示真实分布,Q表示P的拟合分布。

    对于一个离散随机变量的两个概率分布P和Q来说,它们的相对熵定义为:

    注意:D(P||Q) ≠ D(Q||P)

    相对熵又称KL散度( Kullback–Leibler divergence),KL散度也是一个机器学习中常考的概念。

    4-5、互信息

    两个随机变量X,Y的互信息定义为X,Y的联合分布和各自独立分布乘积的相对熵称为互信息,用I(X,Y)表示。互信息是信息论里一种有用的信息度量方式,它可以看成是一个随机变量中包含的关于另一个随机变量的信息量,或者说是一个随机变量由于已知另一个随机变量而减少的不肯定性

    互信息、熵和条件熵之间存在以下关系:

    推导过程如下:

    通过上面的计算过程发现有:H(Y|X) = H(Y) - I(X,Y),又由前面条件熵的定义有:H(Y|X) = H(X,Y) - H(X),于是有I(X,Y)= H(X) + H(Y) - H(X,Y),此结论被多数文献作为互信息的定义

    4-6、最大熵模型

    最大熵原理是概率模型学习的一个准则,它认为:学习概率模型时,在所有可能的概率分布中,熵最大的模型是最好的模型。通常用约束条件来确定模型的集合,所以,最大熵模型原理也可以表述为:在满足约束条件的模型集合中选取熵最大的模型

    前面我们知道,若随机变量X的概率分布是,则其熵定义如下:

    熵满足下列不等式

    式中,|X|是X的取值个数当且仅当X的分布是均匀分布时右边的等号成立也就是说,当X服从均匀分布时,熵最大

    直观地看,最大熵原理认为:要选择概率模型,首先必须满足已有的事实,即约束条件;在没有更多信息的情况下,那些不确定的部分都是“等可能的”。最大熵原理通过熵的最大化来表示等可能性;“等可能”不易操作,而熵则是一个可优化的指标

    五、 数值计算

    5-1、上溢和下溢

    在数字计算机上实现连续数学的基本困难是:我们需要通过有限数量的位模式来表示无限多的实数,这意味着我们在计算机中表示实数时几乎都会引入一些近似误差。在许多情况下,这仅仅是舍入误差。如果在理论上可行的算法没有被设计为最小化舍入误差的累积,可能会在实践中失效,因此舍入误差是有问题的,特别是在某些操作复合时。

    一种特别毁灭性的舍入误差是下溢。当接近零的数被四舍五入为零时发生下溢。许多函数会在其参数为零而不是一个很小的正数时才会表现出质的不同。例如,我们通常要避免被零除

    另一个极具破坏力的数值错误形式是上溢(overflow)。当大量级的数被近似为或[公式]时发生上溢。进一步的运算通常将这些无限值变为非数字。

    必须对上溢和下溢进行数值稳定的一个例子是softmax 函数。softmax 函数经常用于预测与multinoulli分布相关联的概率,定义为:

    softmax 函数在多分类问题中非常常见。这个函数的作用就是使得在负无穷到0的区间趋向于0,在0到正无穷的区间趋向于1。上面表达式其实是多分类问题中计算某个样本 的类别标签 [公式] 属于K个类别的概率,最后判别 [公式] 所属类别时就是将其归为对应概率最大的那一个。

    当式中的都是很小的负数时,[公式]就会发生下溢,这意味着上面函数的分母会变成0,导致结果是未定的;同理,当式中的[公式]是很大的正数时,[公式]就会发生上溢导致结果是未定的。

    5-2、计算复杂性与NP问题

    1、算法复杂性

    现实中大多数问题都是离散的数据集,为了反映统计规律,有时数据量很大,而且多数目标函数都不能简单地求得解析解。这就带来一个问题:算法的复杂性

    算法理论被认为是解决各类现实问题的方法论。衡量算法有两个重要的指标:时间复杂度和空间复杂度,这是对算法执行所需要的两类资源——时间和空间的估算。

    一般,衡量问题是否可解的重要指标是:该问题能否在多项式时间内求解,还是只能在指数时间内求解?在各类算法理论中,通常使用多项式时间算法即可解决的问题看作是易解问题,需要指数时间算法解决的问题看作是难解问题。

    指数时间算法的计算时间随着问题规模的增长而呈指数化上升,这类问题虽然有解,但并不适用于大规模问题。所以当前算法研究的一个重要任务就是将指数时间算法变换为多项式时间算法

    2、确定性和非确定性

    除了问题规模与运算时间的比较,衡量一个算法还需要考虑确定性和非确定性的概念。

    这里先介绍一下“自动机”的概念。自动机实际上是指一种基于状态变化进行迭代的算法。在算法领域常把这类算法看作一个机器,比较知名的有图灵机、玻尔兹曼机、支持向量机等。

    所谓确定性,是指针对各种自动机模型,根据当时的状态和输入,若自动机的状态转移是唯一确定的,则称确定性;若在某一时刻自动机有多个状态可供选择,并尝试执行每个可选择的状态,则称为非确定性

    换个说法就是:确定性是程序每次运行时产生下一步的结果是唯一的,因此返回的结果也是唯一的;非确定性是程序在每个运行时执行的路径是并行且随机的,所有路径都可能返回结果,也可能只有部分返回结果,也可能不返回结果,但是只要有一个路径返回结果,那么算法就结束。

    在求解优化问题时,非确定性算法可能会陷入局部最优

    3、NP问题

    有了时间上的衡量标准和状态转移的确定性与非确定性的概念,我们来定义一下问题的计算复杂度。

    P类问题就是能够以多项式时间确定性算法来对问题进行判定或求解,实现它的算法在每个运行状态都是唯一的,最终一定能够确定一个唯一的结果——最优的结果。

    NP问题是指可以用多项式时间非确定性算法来判定或求解,即这类问题求解的算法大多是非确定性的,但时间复杂度有可能是多项式级别的。

    但是,NP问题还要一个子类称为NP完全问题,它是NP问题中最难的问题,其中任何一个问题至今都没有找到多项式时间的算法

    机器学习中多数算法都是针对NP问题(包括NP完全问题)的

    5-3、数值计算

    上面已经分析了,大部分实际情况中,计算机其实都只能做一些近似的数值计算,而不可能找到一个完全精确的值,这其实有一门专门的学科来研究这个问题,这门学科就是——数值分析(有时也叫作“计算方法”);运用数值分析解决问题的过程为:实际问题→数学模型→数值计算方法→程序设计→上机计算求出结果。

    计算机在做这些数值计算的过程中,经常会涉及到的一个东西就是“迭代运算”,即通过不停的迭代计算,逐渐逼近真实值(当然是要在误差收敛的情况下)。

    六、最优化

    本节介绍机器学习中的一种重要理论——最优化方法。

    6-1、最优化理论

    无论做什么事,人们总希望以最小的代价取得最大的收益。在解决一些工程问题时,人们常会遇到多种因素交织在一起与决策目标相互影响的情况;这就促使人们创造一种新的数学理论来应对这一挑战,也因此,最早的优化方法——线性规划诞生了。

    在李航博士的《统计学习方法》中,其将机器学习总结为如下表达式:

    机器学习 = 模型 + 策略 + 算法

    可以看得出,算法在机器学习中的 重要性。实际上,这里的算法指的就是优化算法。在面试机器学习的岗位时,优化算法也是一个特别高频的问题,大家如果真的想学好机器学习,那还是需要重视起来的。

    6-2、最优化问题的数学描述

    最优化的基本数学模型如下:

    它有三个基本要素,即:

    • 设计变量:x是一个实数域范围内的n维向量,被称为决策变量或问题的解;
    • 目标函数:f(x)为目标函数;
    • 约束条件:称为等式约束,[公式]为不等式约束,[公式]

    6-3、凸集与凸集分离定理

    1、凸集

    实数域R上(或复数C上)的向量空间中,如果集合S中任两点的连线上的点都在S内,则称集合S为凸集,如下图所示:

    数学定义为:

    设集合,若对于任意两点[公式],及实数[公式]都有:

    则称集合D为凸集。

    2、超平面和半空间

    实际上,二维空间的超平面就是一条线(可以使曲线),三维空间的超平面就是一个面(可以是曲面)。其数学表达式如下:

    超平面:

    半空间:

    3、凸集分离定理

    所谓两个凸集分离,直观地看是指两个凸集合没有交叉和重合的部分,因此可以用一张超平面将两者隔在两边,如下图所示:

    4、凸函数

    凸函数就是一个定义域在某个向量空间的凸子集C上的实值函数。

    数学定义为:

    对于函数f(x),如果其定义域C是凸的,且对于∀x,y∈C,,
    有:

    则f(x)是凸函数。

    注:如果一个函数是凸函数,则其局部最优点就是它的全局最优点。这个性质在机器学习算法优化中有很重要的应用,因为机器学习模型最后就是在求某个函数的全局最优点,一旦证明该函数(机器学习里面叫“损失函数”)是凸函数,那相当于我们只用求它的局部最优点了。

    6-4、梯度下降算法

    1、引入

    前面讲数值计算的时候提到过,计算机在运用迭代法做数值计算(比如求解某个方程组的解)时,只要误差能够收敛,计算机最后经过一定次数的迭代后是可以给出一个跟真实解很接近的结果的

    这里进一步提出一个问题,如果我们得到的目标函数是非线性的情况下,按照哪个方向迭代求解误差的收敛速度会最快呢

    答案就是沿梯度方向。这就引入了我们的梯度下降法

    2、梯度下降法

    在多元微分学中,梯度就是函数的导数方向

    梯度法是求解无约束多元函数极值最早的数值方法,很多机器学习的常用算法都是以它作为算法框架,进行改进而导出更为复杂的优化方法。

    在求解目标函数的最小值时,为求得目标函数的一个凸函数,在最优化方法中被表示为:

    根据导数的定义,函数的导函数就是目标函数在[公式]上的变化率。在多元的情况下,目标函数[公式]在某点的梯度[公式]是一个由各个分量的偏导数构成的向量,负梯度方向是[公式]减小最快的方向

    如上图所示,当需要求的最小值时(机器学习中的[公式]一般就是损失函数,而我们的目标就是希望损失函数最小化),我们就可以先任意选取一个函数的初始点[公式](三维情况就是[公式]),让其沿着途中红色箭头(负梯度方向)走,依次到[公式][公式],...,[公式](迭代n次)这样可最快达到极小值点。

    梯度下降法过程如下:

    输入:目标函数,梯度函数[公式],计算精度[公式]

    输出:的极小值点[公式]

    • 1、任取取初始值,置[公式]
    • 2、计算;
    • 3、计算梯度,当[公式]时停止迭代,令[公式]
    • 4、否则令,求[公式]使[公式]
    • 5、置,计算[公式],当[公式][公式]时,停止迭代,令[公式]
    • 6、否则,置,转3。

    6-5、随机梯度下降算法

    上面可以看到,在梯度下降法的迭代中,除了梯度值本身的影响外,还有每一次取的步长也很关键:步长值取得越大,收敛速度就会越快,但是带来的可能后果就是容易越过函数的最优点,导致发散;步长取太小,算法的收敛速度又会明显降低。因此我们希望找到一种比较好的方法能够平衡步长。

    随机梯度下降法并没有新的算法理论,仅仅是引进了随机样本抽取方式,并提供了一种动态步长取值策略。目的就是又要优化精度,又要满足收敛速度。

    也就是说,上面的批量梯度下降法每次迭代时都会计算训练集中所有的数据,而随机梯度下降法每次迭代只是随机取了训练集中的一部分样本数据进行梯度计算,这样做最大的好处是可以避免有时候陷入局部极小值的情况(因为批量梯度下降法每次都使用全部数据,一旦到了某个局部极小值点可能就停止更新了;而随机梯度法由于每次都是随机取部分数据,所以就算局部极小值点,在下一步也还是可以跳出

    两者的关系可以这样理解:随机梯度下降方法以损失很小的一部分精确度和增加一定数量的迭代次数为代价,换取了总体的优化效率的提升。增加的迭代次数远远小于样本的数量。

    6-6、牛顿法

    1、牛顿法介绍

    牛顿法也是求解无约束最优化问题常用的方法,最大的优点是收敛速度快

    从本质上去看,牛顿法是二阶收敛,梯度下降是一阶收敛,所以牛顿法就更快通俗地说,比如你想找一条最短的路径走到一个盆地的最底部,梯度下降法 每次只从你当前所处位置选一个坡度最大的方向走一步,牛顿法在选择方向时,不仅会考虑坡度是否够大,还会考虑你走了一步之后,坡度是否会变得更大。所以, 可以说牛顿法比梯度下降法看得更远一点,能更快地走到最底部

    或者从几何上说,牛顿法就是用一个二次曲面去拟合你当前所处位置的局部曲面,而梯度下降法是用一个平面去拟合当前的局部曲面,通常情况下,二次曲面的拟合会比平面更好,所以牛顿法选择的下降路径会更符合真实的最优下降路径。

    2、牛顿法的推导

    将目标函数 在[公式]处进行二阶泰勒展开,可得:

    因为目标函数有极值的必要条件是在极值点处一阶导数为0,即:[公式]

    所以对上面的展开式两边同时求导(注意才是变量,[公式]是常量[公式]都是常量),并令[公式]可得:

    即:

    于是可以构造如下的迭代公式:

    这样,我们就可以利用该迭代式依次产生的序列才逐渐逼近[公式]的极小值点了。

    牛顿法的迭代示意图如下:

    上面讨论的是2维情况,高维情况的牛顿迭代公式是:

    式中, ▽是[公式]的梯度,即:

    H是Hessen矩阵,即:

    3、牛顿法的过程

    • 1、给定初值和精度阈值[公式],并令[公式]
    • 2、计算和[公式]
    • 3、若则停止迭代;否则确定搜索方向:[公式]
    • 4、计算新的迭代点:;
    • 5、令,转至2。

    6-7、阻尼牛顿法

    1、引入

    注意到,牛顿法的迭代公式中没有步长因子,是定步长迭代。对于非二次型目标函数,有时候会出现的情况,这表明,原始牛顿法不能保证函数值稳定的下降。在严重的情况下甚至会造成序列发散而导致计算失败。

    为消除这一弊病,人们又提出阻尼牛顿法。阻尼牛顿法每次迭代的方向仍然是,但每次迭代会沿此方向做一维搜索,寻求最优的步长因子[公式],即:

    2、算法过程

    • 1、给定初值和精度阈值[公式],并令[公式]
    • 2、计算([公式][公式]处的梯度值)和[公式]
    • 3、若则停止迭代;否则确定搜索方向:[公式]
    • 4、利用得到步长[公式],并令[公式]
    • 5、令,转至2。

    6-8、拟牛顿法

    1、概述

    由于牛顿法每一步都要求解目标函数的Hessen矩阵的逆矩阵计算量比较大(求矩阵的逆运算量比较大),因此提出一种改进方法,即通过正定矩阵近似代替Hessen矩阵的逆矩阵,简化这一计算过程,改进后的方法称为拟牛顿法

    2、拟牛顿法的推导

    先将目标函数在处展开,得到:

    两边同时取梯度,得:

    取上式中的,得:

    即:

    可得:

    上面这个式子称为“拟牛顿条件”,由它来对Hessen矩阵做约束。

    展开全文
  • 那么你需要这样一本帮你解决学习机器学习数学问题的书,首选《机器学习数学》,本书覆盖了人工智能领域中与机器学习相关的数学知识体系,不仅囊括了微积分和线性代数等基本数学原理,还详细讲解了概率论、信息论...

     

    如何解决机器学习领域的数学问题,打下坚实的数学基础?是很多初学者乃至进阶者关心的话题。我们把这个问题拆解成下面几个问题:

    1. 为什么需要数学?

    2. 机器学习中究竟用到了哪些数学知识?

    3. 如何掌握这些数学知识?

     

    那么你需要这样一本帮你解决学习机器学习的数学问题的书,首选《机器学习的数学》,本书覆盖了人工智能领域中与机器学习相关的数学知识体系,不仅囊括了微积分和线性代数等基本数学原理,还详细讲解了概率论、信息论、最优化方法等诸多内容,这些知识是机器学习中的目标函数构造、模型优化以及各种机器学习算法的核心和基础。

    本书希望通过对数学知识的讲解帮助读者深刻理解算法背后的机理,并厘清各种算法之间的内在联系。 本书重视理论与实践相结合,在讲解数学知识的同时也对其在机器学习领域的实际应用进行了举例说明,方便读者更具象化地理解抽象的数学理论,同时对机器学习算法有更深刻的认识。 本书语言精练,条理清晰,内容翔实全面,公式推导严格周密,将理论与工程实践相结合, 展示了机器学习方法背后的数学原理,是集专业性与通俗性为一体的上乘之作。通过本书,初学 者可以奠定扎实的数学基础,从而为后续掌握机器学习的具体技术和应用铺平道路。从业者也可 以利用本书强化巩固基础知识,从技术背后的数学本质出发来解决工程问题。

     

    《机器学习的数学》

    第1章介绍一元函数微积分的核心知识,包括有关基础知识、一元函数微分学、一元函数积分学,以及常微分议程,它们是理解后面各章的基础。

    第2章介绍线性代数与矩阵论的核心知识,包括向量与矩阵、行列式、线性方程组、矩阵的特征值与特征向量、二次型,以及矩阵分解,它们是学习多元函数微积分、最优化方法、概率论,以及图论等知识的基础。

    第3章介绍多元函数微积分、包括多元函数微分、多元函数积分,以及无穷级数。

    第4章介绍最优化方法,侧重于连续化优问题,包括各种数值优化算法、凸优化问题、带约束的约化问题、多目标优化问题、变分法,以及目标函数的构造,它们在机器学习中处于核心地位。

    第5章介绍概率论的核心知识,包括随机事件与概率、随机变量与概率分布、极限定理、参数估计问题、在机器学习中常用的随机算法。以及采样算法。用概率论的观点对机器学习问题进行建模是一类重要的方法。

    第6章介绍信息论的知识,包括熵、交叉熵、KL散度等,它们被广泛用于构造目标函数,对机器学习算法进行理论分析。

    第7章介绍随机过程,包括马尔可夫过程与高斯过程,以及马尔可夫链采样算法。高斯过程回归是贝叶斯优化的基础。

    第8章介绍图论的核心知识,包括基本概念。机器学习中使用的各种典型的图、图的重要算法,以及谱图理论。它们于流于学习、谱聚类、概率图模型、图神经网络等机器学习算法。

    专业评论

    从机器学习的角度讲述数学,从数学的角度讲述机器学习。语言精炼,知识点密集,学习路线清晰,是一本帮助掌握数学知识和理解机器学习算法原理的好书,可以满足不同层次读者的需求。——知名Python讲师,16本Python 系列图书作者 董付国


    数学是很多读者学习机器学习、深度学习、强化学习感到困难的最主要原因之一,只有掌握了所需的数学知识,才能理解机器学习算法的原理。本书清晰地讲述了这些数学知识的原理,精准地覆盖了所需的数学知识。是一本帮助这一领域读者奠定基础的力作。——Yi+AI联合创始人兼CTO,前阿里巴巴和百度IDL深度学习算法专家 刘彬


    掌握数学知识是学好机器学习的前提,如何精确而系统地掌握机器学习所需的数学知识,是很多读者关注的问题。本书为此问题提供了一个很好的解决方案。全书用浅显易懂的语言讲述微积分、线性代数与矩阵论、最优化方法、概率论、信息论、随机过程、图论等核心的数学知识,并介绍了它们在机器学习领域的应用,做到了理论与应用的无缝衔接。推荐机器学习领域和广大数学爱好者阅读。——前优酷首席科学家,谷歌机器学习开发者专家 李卓桓

    目录

    第1 章一元函数微积分1

    1.1 极限与连续 1

    1.1.1 可数集与不可数集 1

    1.1.2 数列的极限 3

    1.1.3 函数的极限 7

    1.1.4 函数的连续性与间断点 9

    1.1.5 上确界与下确界 11

    1.1.6 李普希茨连续性 12

    1.1.7 无穷小量 13

    1.2 导数与微分 14

    1.2.1 一阶导数 14

    1.2.2 机器学习中的常用函数 20

    1.2.3 高阶导数 22

    1.2.4 微分 24

    1.2.5 导数与函数的单调性 25

    1.2.6 极值判别法则 26

    1.2.7 导数与函数的凹凸性 28

    1.3 微分中值定理 29

    1.3.1 罗尔中值定理 29

    1.3.2 拉格朗日中值定理 29

    1.3.3 柯西中值定理 31

    1.4 泰勒公式 31

    1.5 不定积分 33

    1.5.1 不定积分的定义与性质 33

    1.5.2 换元积分法 35

    1.5.3 分部积分法 36

    1.6 定积分 37

    1.6.1 定积分的定义与性质 38

    1.6.2 牛顿-莱布尼茨公式 39

    1.6.3 定积分的计算 40

    1.6.4 变上限积分 41

    1.6.5 定积分的应用 42

    1.6.6 广义积分 44

    1.7 常微分方程 45

    1.7.1 基本概念 45

    1.7.2 一阶线性微分方程 46

    第2 章线性代数与矩阵论49

    2.1 向量及其运算 49

    2.1.1 基本概念 49

    2.1.2 基本运算 51

    2.1.3 向量的范数 53

    2.1.4 解析几何 55

    2.1.5 线性相关性 57

    2.1.6 向量空间 58

    2.1.7 应用——线性回归 61

    2.1.8 应用——线性分类器与支持

    向量机 62

    2.2 矩阵及其运算 65

    2.2.1 基本概念 65

    2.2.2 基本运算 67

    2.2.3 逆矩阵 72

    2.2.4 矩阵的范数 78

    2.2.5 应用——人工神经网络 78

    2.2.6 线性变换 81

    2.3 行列式 82

    2.3.1 行列式的定义与性质 83

    2.3.2 计算方法 91

    2.4 线性方程组 92

    2.4.1 高斯消元法 92

    2.4.2 齐次方程组 93

    2.4.3 非齐次方程组 95

    2.5 特征值与特征向量 97

    2.5.1 特征值与特征向量 97

    2.5.2 相似变换 105

    2.5.3 正交变换 106

    2.5.4 QR 算法 110

    2.5.5 广义特征值 112

    2.5.6 瑞利商 112

    2.5.7 谱范数与特征值的关系 114

    2.5.8 条件数 114

    2.5.9 应用——谱归一化与谱正则化 115

    2.6 二次型 116

    2.6.1 基本概念 116

    2.6.2 正定二次型与正定矩阵 116

    2.6.3 标准型 119

    2.7 矩阵分解 121

    2.7.1 楚列斯基分解 121

    2.7.2 QR 分解 123

    2.7.3 特征值分解 127

    2.7.4 奇异值分解 128

    第3 章多元函数微积分133

    3.1 偏导数 133

    3.1.1 一阶偏导数 133

    3.1.2 高阶偏导数 134

    3.1.3 全微分 136

    3.1.4 链式法则 136

    3.2 梯度与方向导数 138

    3.2.1 梯度 138

    3.2.2 方向导数 139

    3.2.3 应用——边缘检测与HOG

    特征 139

    3.3 黑塞矩阵 140

    3.3.1 黑塞矩阵的定义与性质 141

    3.3.2 凹凸性 141

    3.3.3 极值判别法则 143

    3.3.4 应用——最小二乘法 145

    3.4 雅可比矩阵 146

    3.4.1 雅可比矩阵的定义和性质 146

    3.4.2 链式法则的矩阵形式 148

    3.5 向量与矩阵求导 150

    3.5.1 常用求导公式 150

    3.5.2 应用——反向传播算法 154

    3.6 微分算法 156

    3.6.1 符号微分 156

    3.6.2 数值微分 157

    3.6.3 自动微分 158

    3.7 泰勒公式 159

    3.8 多重积分 161

    3.8.1 二重积分 161

    3.8.2 三重积分 164

    3.8.3 n 重积分 167

    3.9 无穷级数 170

    3.9.1 常数项级数 170

    3.9.2 函数项级数 173

    第4 章最优化方法176

    4.1 基本概念 176

    4.1.1 问题定义 177

    4.1.2 迭代法的基本思想 179

    4.2 一阶优化算法 180

    4.2.1 梯度下降法 180

    4.2.2 最速下降法 183

    4.2.3 梯度下降法的改进 184

    4.2.4 随机梯度下降法 186

    4.2.5 应用——人工神经网络 187

    4.3 二阶优化算法 188

    4.3.1 牛顿法 188

    4.3.2 拟牛顿法 189

    4.4 分治法 193

    4.4.1 坐标下降法 193

    4.4.2 SMO 算法 194

    4.4.3 分阶段优化 195

    4.4.4 应用——logistic 回归 196

    4.5 凸优化问题 198

    4.5.1 数值优化算法面临的问题 198

    4.5.2 凸集 199

    4.5.3 凸优化问题及其性质 200

    4.5.4 机器学习中的凸优化问题 201

    4.6 带约束的优化问题 202

    4.6.1 拉格朗日乘数法 202

    4.6.2 应用——线性判别分析 204

    4.6.3 拉格朗日对偶 205

    4.6.4 KKT 条件 208

    4.6.5 应用——支持向量机 209

    4.7 多目标优化问题 213

    4.7.1 基本概念 213

    4.7.2 求解算法 215

    4.7.3 应用——多目标神经结构搜

    索 215

    4.8 泛函极值与变分法 216

    4.8.1 泛函与变分 217

    4.8.2 欧拉—拉格朗日方程 218

    4.8.3 应用——证明两点之间直线

    最短 220

    4.9 目标函数的构造 221

    4.9.1 有监督学习 221

    4.9.2 无监督学习 224

    4.9.3 强化学习 225

    第5 章概率论228

    5.1 随机事件与概率 229

    5.1.1 随机事件概率 229

    5.1.2 条件概率 233

    5.1.3 全概率公式 234

    5.1.4 贝叶斯公式 235

    5.1.5 条件独立 236

    5.2 随机变量 236

    5.2.1 离散型随机变量 236

    5.2.2 连续型随机变量 237

    5.2.3 数学期望 240

    5.2.4 方差与标准差 242

    5.2.5 Jensen 不等式 243

    5.3 常用概率分布 244

    5.3.1 均匀分布 244

    5.3.2 伯努利分布 246

    5.3.3 二项分布 247

    5.3.4 多项分布 248

    5.3.5 几何分布 249

    5.3.6 正态分布 250

    5.3.7 t 分布 252

    5.3.8 应用——颜色直方图 253

    5.3.9 应用——贝叶斯分类器 254

    5.4 分布变换 254

    5.4.1 随机变量函数 254

    5.4.2 逆变换采样算法 256

    5.5 随机向量 258

    5.5.1 离散型随机向量 258

    5.5.2 连续型随机向量 260

    5.5.3 数学期望 261

    5.5.4 协方差 262

    5.5.5 常用概率分布 265

    5.5.6 分布变换 268

    5.5.7 应用——高斯混合模型 269

    5.6 极限定理 271

    5.6.1 切比雪夫不等式 271

    5.6.2 大数定律 271

    5.6.3 中心极限定理 273

    5.7 参数估计 273

    5.7.1 最大似然估计 274

    5.7.2 最大后验概率估计 276

    5.7.3 贝叶斯估计 278

    5.7.4 核密度估计 278

    5.7.5 应用——logistic 回归 280

    5.7.6 应用——EM 算法 282

    5.7.7 应用——Mean Shift 算法 286

    5.8 随机算法 288

    5.8.1 基本随机数生成算法 288

    5.8.2 遗传算法 290

    5.8.3 蒙特卡洛算法 293

    5.9 采样算法 295

    5.9.1 拒绝采样 296

    5.9.2 重要性采样 297

    第6 章信息论298

    6.1 熵与联合熵 298

    6.1.1 信息量与熵 298

    6.1.2 熵的性质 300

    6.1.3 应用——决策树 302

    6.1.4 联合熵 303

    6.2 交叉熵 305

    6.2.1 交叉熵的定义 306

    6.2.2 交叉熵的性质 306

    6.2.3 应用——softmax 回归 307

    6.3 Kullback-Leibler 散度 309

    6.3.1 KL 散度的定义 309

    6.3.2 KL 散度的性质 311

    6.3.3 与交叉熵的关系 312

    6.3.4 应用——流形降维 312

    6.3.5 应用——变分推断 313

    6.4 Jensen-Shannon 散度 316

    6.4.1 JS 散度的定义 316

    6.4.2 JS 散度的性质 316

    6.4.3 应用——生成对抗网络 317

    6.5 互信息 320

    6.5.1 互信息的定义 320

    6.5.2 互信息的性质 321

    6.5.3 与熵的关系 322

    6.5.4 应用——特征选择 323

    6.6 条件熵 324

    6.6.1 条件熵定义 324

    6.6.2 条件熵的性质 325

    6.6.3 与熵以及互信息的关系 325

    6.7 总结 326

    第7 章随机过程328

    7.1 马尔可夫过程 328

    7.1.1 马尔可夫性 329

    7.1.2 马尔可夫链的基本概念 330

    7.1.3 状态的性质与分类 333

    7.1.4 平稳分布与极限分布 337

    7.1.5 细致平衡条件 342

    7.1.6 应用——隐马尔可夫模型 343

    7.1.7 应用——强化学习 345

    7.2 马尔可夫链采样算法 348

    7.2.1 基本马尔可夫链采样 349

    7.2.2 MCMC 采样算法 349

    7.2.3 Metropolis-Hastings 算法 351

    7.2.4 Gibbs 算法 353

    7.3 高斯过程 355

    7.3.1 高斯过程性质 355

    7.3.2 高斯过程回归 355

    7.3.3 应用——贝叶斯优化 358

    第8 章图论363

    8.1 图的基本概念 363

    8.1.1 基本概念 363

    8.1.2 应用——计算图与自动微分 365

    8.1.3 应用——概率图模型 370

    8.1.4 邻接矩阵与加权度矩阵 371

    8.1.5 应用——样本集的相似度图 372

    8.2 若干特殊的图 373

    8.2.1 联通图 373

    8.2.2 二部图 374

    8.2.3 应用——受限玻尔兹曼机 374

    8.2.4 有向无环图 376

    8.2.5 应用——神经结构搜索 376

    8.3 重要的算法 380

    8.3.1 遍历算法 380

    8.3.2 最短路径算法 381

    8.3.3 拓扑排序算法 382

    8.4 谱图理论 384

    8.4.1 拉普拉斯矩阵 385

    8.4.2 归一化拉普拉斯矩阵 388

    8.4.3 应用——流形降维 390

    机器学习的数学

     

    雷明 著

    本书的目标是帮助读者全面、系统地学习机器学习所必须的数学知识。全书由8章组成,力求精准、最小地覆盖机器学习的数学知识。包括微积分,线性代数与矩阵论,最优化方法,概率论,信息论,随机过程,以及图论。本书从机器学习的角度讲授这些数学知识,对它们在该领域的应用举例说明,使读者对某些抽象的数学知识和理论的实际应用有直观、具体的认识。 本书内容紧凑,结构清晰,深入浅出,讲解详细。可用作计算机、人工智能、电子工程、自动化、数学等相关专业的教材与教学参考书。对人工智能领域的工程技术人员与产品研发人员,本书也有很强的参考价值。对于广大数学与应用的数学爱好者,本书亦为适合自学的读本。

    展开全文
  • 然而,机器学习(包括深度学习与强化学习)对数学有较高的要求。不少数学知识(如最优化方法、矩阵论、信息论、随机过程、图论)超出了理工科本科和研究生的学习范畴。即使对于理工科学生学习过的微积分、线性代数与...

    自2012年以来,随着深度学习与强化学习的兴起,机器学习与人工智能成为科技领域热门的话题。越来越多的在校生与在职人员开始学习这些知识。然而,机器学习(包括深度学习与强化学习)对数学有较高的要求。不少数学知识(如最优化方法、矩阵论、信息论、随机过程、图论)超出了理工科本科和研究生的学习范畴。即使对于理工科学生学习过的微积分、线性代数与概率论,机器学习中所用到的不少知识超出了本科的教学范畴。看到书或论文中的公式和理论而不知其意,是很多读者面临的一大难题。

    如果你想学好机器学习并打下坚实的数学基础,那么这本《机器学习的数学》再适合不过。

    《机器学习的数学》

    想学习机器学习,数学的问题怎么解决?需要具备哪些数学知识?

     

    • 人工智能深度学习领域经典教程,AI程序员的数学参考书
    • 透彻理解机器学习算法,从数学层面搞懂核心算法原理的逻辑
    • python程序讲解,众多专家学者力荐

    全书共由8章组成,用非常小的篇幅精准而系统地覆盖了机器学习、深度学习、强化学习所必需的数学知识,内容基本上涵盖了这3门课所需的绝大部分数学知识。针对理工科本科阶段的“高等数学/微积分”,“线性代数”,“概率论与数理统计”进行了精确地补充。下面介绍每一章的主要内容。

    第1章 一元函数微积分
    这一章的内容包括极限与连续性,一元函数的导数与微分,微分中值定理,泰勒公式,不定积分,定积分及其应用,以及常微分方程。这一章讲述了可数集与不可数集,上确界与下确界,李普希茨连续性这些常规微积分课程所没有讲述的知识。它们对于理解后续章节以及对机器学习算法的理论分析是至关重要的。作为应用,还对机器学习中常用的logistic函数、ReLU函数等函数的特性与用途进行了介绍。

    第2章 线性代数与矩阵论
    这一章的内容向量及其运算,矩阵及其运算,行列式,线性方程组,特征值与特征向量,二次型,矩阵分解。特别地,本章讲述了向量的范数、向量的阿达玛积,矩阵的范数,Houserholder变换、QR算法、广义特征值、瑞利商、条件数等特征值相关的内容,以及矩阵分解。作为机器学习中的应用实例,本章讲述了线性回归,线性分类器与支持向量机,人工神经网络,谱归一化与谱正则化的原理。

    第3章 多元函数微积分
    这一章的内容包括偏导数,方向导数与梯度,Hessian矩阵,雅克比矩阵,向量与矩阵求导,微分算法,多元函数泰勒公式,多重积分,以及无穷级数。其中,Hessian矩阵、雅克比矩阵、多元函数泰勒公式是本科微积分课程通常没有讲述的。它们对于多元函数极值、凹凸性,以及机器学习算法的推导分析是非常重要的,也是理解最优化方法的基础。微分算法在机器学习算法中非常重要,而绝大多数读者在之前的数学课程中并没有接触过。这一章还讲述了最小二乘法、反向传播算法这些应用实例。

    第4章 最优化方法
    最优化方法在机器学习中处于核心地位,几乎所有机器学习算法最终都归结于求解最优化问题,遗憾的是绝大部分读者之前并没有学习这些课程。这一章系统地介绍了机器学习中的最优化方法,包括基本概念,一阶优化算法(包括梯度下降法,最速下降法,梯度下降法的改进,随机梯度下降法),二阶优化算法(包括牛顿法,拟牛顿法),分治法,凸优化问题,带约束的优化算法(包括拉格朗日乘数法,拉格朗日对偶,KKT条件),多目标优化问题,泛函极值与变分法,以及机器学习中的目标函数构造(包括有监督学习,无监督学习,强化学习)。作为应用实例,讲解了人工神经网络的训练算法,支持向量机的SVM算法,求解logistic回归对偶问题的坐标下降法,机器学习中的典型凸优化问题,线性判别分析,支持向量机原问题与对偶问题的推导以及特性,多目标神经结构搜索。下面这张图是本章的知识结构。

    想学习机器学习,数学的问题怎么解决?需要具备哪些数学知识?

     


    下面这张图列出了机器学习中所用到的最优化方法以及其所用的数学知识。这两张图对于理解机器学习中的优化问题是非常有用的。

    想学习机器学习,数学的问题怎么解决?需要具备哪些数学知识?

     

    第5章 概率论
    概率论对于机器学习来说同样至关重要,用概率论的观点对机器学习问题进行建模,是一种常用的手段。这一章讲述了随机事件与概率,随机变量与概率分布,机器学习中的常用概率分布,概率分布变换,随机向量与联合概率分布,极限定理,参数估计问题,随机算法,以及采样算法。下面这张图是本章的知识结构。

    想学习机器学习,数学的问题怎么解决?需要具备哪些数学知识?

     

    需要重点强调的是,机器学习所用的概率论知识,有不少超出了一般本科概率论课程的范围。典型的包括条件独立性,Jensen不等式,多项分布,t分布,概率分布变换,多元正态分布,最大后验概率估计,贝叶斯估计,核密度估计,随机数生成问题,遗传算法,蒙特卡洛算法,以及采样算法。这一章对这些知识进行了系统的补充。另外还讲解了贝叶斯分类器,高斯混合模型,logistic回归,EM算法,Mean Shift算法等机器学习算法。下图总计了机器学习中的概率模型以及所用的概率论知识。

    想学习机器学习,数学的问题怎么解决?需要具备哪些数学知识?

     


    第6章 信息论
    信息论是绝大部分读者在本科、研究生期间没有学过的课程,而交叉熵、KL散度等频繁的出现在机器学习、深度学习的书籍与论文中。这一章从机器学习的角度讲述信息论的知识,内容包括熵与联合熵,交叉熵,KL散度,JS散度,互信息,以及条件熵。下图对这些常用的信息论概念进行了总结。

    想学习机器学习,数学的问题怎么解决?需要具备哪些数学知识?

     

    作为应用,本章还讲述了决策树的训练算法,softmax回归,流形降维(SNE算法),变分推断,生成对抗网络,特征选择等机器算法与技术。

    第7章 随机过程
    随机过程对于绝大部分读者也是陌生的,而高斯过程、马尔可夫过程等知识在机器学习中被广泛应用。这一章系统地介绍了机器学习里常用的随机过程,包括马尔可夫过程与高斯过程。对于在机器学习中的应用,重点讲述了隐马尔可夫模型,强化学习中的马尔可夫决策过程,马尔可夫链采样算法(MCMC),高斯过程回归,以及贝叶斯优化。随机过程较为抽象,本章力求用机器学习的实际应用来直观地解释这些数学概念。

    第8章 图论
    除计算机、软件工程等专业之外,绝大部分读者并没有学习过图论的知识,但图论对于机器学习的作用丝毫不逊色于对整个计算机科学的作用。流形降维,谱聚类,图神经网络中都离不开它的身影。这一章讲述了机器学习中最常用的图论知识,包括基本概念,一些特殊的图,重要的图算法,以及谱图理论。作为应用,讲述了计算图与自动微分,概率图模型,流形降维与谱聚类中所用的样本集的相似度图,受限玻尔兹曼机,神经结构搜索(NAS),以及流形降维(拉普拉斯特征映射)。

    为何要选择《机器学习的数学》这本书?

    1.用尽可能小的篇幅精准地覆盖了机器学习所需的数学知识

    对于机器学习究竟需要哪些数学知识,本书给出了一个非常精确的答案。力求用最小的篇幅覆盖机器学习领域所需的主要数学知识,以减轻读者的学习负担。只需把本书系统地学习一遍,即可满足几乎绝大部分读者在机器学习、深度学习、强化学习以及它们的各个应用方向做学术、产品研发的要求。

    2.从机器学习的角度讲述数学,从数学的角度讲述机器学习

    本书的一大特色是从机器学习的角度讲述数学,从数学的角度讲授机器学习,实现了二者的无缝衔接。读者之前在学数学课的时候通常面临一个问题:这些数学知识有什么用,应该怎么用?本书通过大量的机器学习实例讲解,在数学与机器学习之间架起了桥梁。既有利于理解数学知识本身,又能培养数学建模思维,同时还理解机器学习算法的数学本质,可谓一举多得。

    3.结构合理,脉络清晰

    对于全书的内容安排以及章节结构,作者有细致的考量。得利于扎实的数学功底以及机器学习领域的造诣。作者非常清晰的知道应该讲述哪些数学知识,以及它们之间的顺序、衔接安排。在更细的粒度上,对于数学、机器学习算法之间的联系与演化脉络,作者也进行了大量的总结。下面是对各种梯度下降法演化关系的总结。

    想学习机器学习,数学的问题怎么解决?需要具备哪些数学知识?

     

    4.讲解透彻,深入浅出

    数学本身是抽象难懂的,如何把一些概念、理论清晰的讲述出来,是一个非常有挑战的问题。在这一方面,作者也进行了大量的思考与设计,力求用浅显易懂的语言把晦涩的知识讲述清楚。下面是对Householder变换的讲解。

    想学习机器学习,数学的问题怎么解决?需要具备哪些数学知识?

     

    5.推导、证明详细

    对于绝大部分数学知识和机器学习算法的推导,我们都在篇幅允许的范围内做到尽可能的详细,不给读者留下知识的空白。有不少推导和证明过程,以及解释,是读者进行构思的,市面上不曾有过。

    关于作者

    雷明 资深机器学习、机器视觉专家。2009年毕业于清华大学计算机系,研究方向为机器视觉、机器学习,曾发表论文数篇。《机器学习-原理、算法与应用》(清华大学出版社,2019.09)作者,该书为清华大学出版社2019年度畅销书,销量超过2万册。曾就职于百度,任高级软件工程师、项目经理;zmodo/meShare公司CTO、平台研发中心负责人。2018年创立SIGAI,致力于研发零编程、可视化的机器视觉框架,用标准化的算法赋能各个行业,已于2020年6月完成pre-A轮融资。

    展开全文
  • 机器学习中的数学基础怎么

    万次阅读 多人点赞 2018-07-21 10:35:51
    首先给出小编的态度:机器学习中涉及的数学课程比较多,要想一下子去穷尽所有课程显然也不现实,大可不必打好所有的数学基础再去学机器学习,最好的做法是当你对机器学习本身的理解达到一定瓶颈的时候,你可以补一补...
  • 机器学习需要掌握的数学知识点---详细整理第一篇 线性代数篇第一章 排队!排队!什么是向量第二章 矩阵第三章 距离第二篇 概率偏由暗恋引发的思考机器学习中的概率研究贝叶斯问题第三篇 数学篇函数的基本概念第八章 ...
  • 机器学习——数学建模应用

    千次阅读 2022-02-20 09:43:36
    机器学习分类:监督学习、无监督学习、强化学习 监督学习分类:分类问题和回归问题 分类:输出变量为有限个离散值(判断好坏/判断种类) 回归:输出变量为连续性变量(预测房价/预测产量) MATLAB中(分类学习...
  • 概率论是用于表示不确定性声明的数学框架。它不仅提供了量化不确定性的方法,也提供了用于导岀新的不确定性声明的公理。在人工智能领域,概率论主要有两种用途。首先,概率法则告诉我们AI系统如何推理,据此我们设计...
  • 为什么需要机器学 习 2.机器学 习的发展历程 3.为什么需要深度 习 4.历史为什么选择了神经网络 5.人工智能与神经科学的关系 6.机器学 习的挑战与未来 AI就是让计算机具有类似人脑的智能 是获得图灵奖最多的计算机...
  • 机器学习学习路线

    千次阅读 2022-01-14 17:12:28
    学习路线一、入门ML需要的基本技能1.1 数学(略)1.2 编程语言python二、ML基本理论知识2.1 视频课程2.2 书籍、博客2.3 实战三、深度学习理论知识3.1 框架学习3.2 计算机视觉3.3 自然语言处理3.4 实战3.6 进一步学习...
  • 可以加速学习过程的办法,这个办法是通过随机选择训练输入的少量样本,并只计算这些样本的∇Cx∇Cx的平均值来估算梯度 nablaC。通过计算这些少量样本的平均值,我们可以很快估算出梯度∇C∇C的真实值,从而加速梯度...
  • 机器学习入门要学习什么内容呢?

    千次阅读 热门讨论 2021-07-19 17:00:58
    随着人工智能的发展,从事机器学习、数据挖掘等相关工作,包括推荐算法工程师、数据挖掘工程师、机器学习工程师,填补人工智能领域人才稀缺就业前景非常好,因此学习机器学习的人越来越多。不过这一方面的要求也很高...
  • 机器学习数学基础篇一:高数基础

    千次阅读 2022-03-29 13:56:28
    学习机器学习数学前置知识,如果你找不到好的资源,不妨来看看。
  • 机器学习中的数学——范数

    万次阅读 2021-09-26 21:19:40
    分类目录:《算法设计与分析》总目录 有时我们需要衡量一个向量的大小。在机器学习中,我们经常使用被称为范数的函数衡量向量大小。形式上,LPL^PLP范数定义如下
  • 机器学习中的数学(全集)

    万次阅读 多人点赞 2020-07-15 23:30:01
    其中包含了大量非科班出身或者从其他行业切换赛道转行而来的朋友们,大家在学习的过程中发现学习曲线陡峭、难度较大,普遍的心声就是:机器学习难,首要就是数学知识需要的太多了! 大学数学,为什么还是不会用...
  • 机器学习算法背后的数学原理

    万次阅读 多人点赞 2020-09-06 09:29:04
    在本文中,我们将介绍一些机器学习算法的功能,以及在这些算法中实现的有助于它们学习的一些数学方程。 机器学习算法的类型 机器学习算法大致可以分为以下四类: **监督学习:**用于预测的目标是已知的情况。这些算法...
  • 机器学习中的数学基础

    千次阅读 2017-08-14 14:38:37
    本文将讲述机器学习中所涉及的数学基础。
  • 放假在家想写写机器学习系列的文章,除夕前先来开个头,后面会一直写下去,搞机器学习算法也有... 机器学习中涉及到的数学知识    数学在计算机中的重要性不言而喻,这里也不多说了,先在这里罗列一下机器学习...
  • 机器学习学习中,数学最重要!

    千次阅读 2018-10-10 13:33:40
    机器学习学习中,数学最重要!   https://mp.weixin.qq.com/s/VnTeccReWUiuFA1Z5H6L6A   01.机器学习工程师的边界是什么?   大多数的事物都是有边界的。那机器学习的边界又是什么呢? 对,就是数学。...
  • 遗传算法(Genetic Algorithm)是模拟达尔文生物进化论的自然选择和遗传机理的生物进化过程的计算模型,是一种通过模拟自然进化过程搜索最优解的方法。它最初由美国密歇根大学J.Holland教授于1975年首先提出来的,...
  • 本文原作者RobinShen,本文整理自作者在知乎《机器学习应该准备哪些数学预备知识?》问题下回答。 2012年之后,随着深度学习的浪潮卷来,大家逐渐认可了神经网络/深度学习这个东西,都知道它在很多应用场景下面表现...
  • 来源:https://www.zhihu.com/question/382278216编辑:深度学习与计算机视觉声明:仅做学术分享,侵删作者:图灵的猫https://www.zhihu....
  • Adam是另一种学习率自适应的优化算法: Adam算法 输入:步长ϵ\epsilonϵ(建议默认为0.001);矩估计的指数衰减速率ρ1,ρ2∈[0,1)\rho_1, \rho_2\in[0, 1)ρ1​,ρ2​∈[0,1)(建议默认为:ρ1=0.9,ρ2=0.999\rho...
  • 虽然随机梯度下降仍然是非常受欢迎的优化方法,但其学习过程有时会很慢。Momentum旨在加速学习,特别是处理高曲率、小但一致的梯度,或是带噪声的梯度。动量算法积累了之前梯度指数级衰减的移动平均,并且继续沿该...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 171,721
精华内容 68,688
关键字:

机器学习需要学的数学