讲授机器学习相关的高等数学、线性代数、概率论知识

大纲:

最优化中的基本概念
梯度下降法
牛顿法
坐标下降法
数值优化算法面临的问题
拉格朗日乘数法
凸优化问题
凸集
凸函数
凸优化
拉格朗日对偶
KKT条件

最优化中的基本概念:

最优化问题就是求一个函数的极大值或极大值问题,一般f(x)是一个多元函数,x∈Rn,一般把最优化问题表述为求极小值问题。

x称为优化变量,f(x)称为目标函数。

可能对x还有约束条件,一个或多个,等式约束或不等式约束,可能有的既有等式约束又有不等式约束,这样就比较复杂了。

满足约束条件且在f(x)定义域内的x组成的集合叫做可行域D。

局部极小值,全局最小值,极值点的导数或梯度等于零,机器学习中的函数一般都是可导的。

直接求一阶导数为零不就可以解出极值点了吗?但实际上不太可行,方程不好求解,会出现超越方程。如下:

这时要用到迭代法,不断迭代更新未知量的值去找导数为零的点。

 梯度下降法:

第一种数值优化(求近似解而非理论上的精确解)算法,叫梯度下降法。

推导梯度下降法的迭代公式:

如果x在x0的δ邻域的话,泰勒展开式中的高阶无穷小项就可以舍去,等式近似成立。

f(x)=f(x0)+▽Tf(x0)(x-x0)+O(x-x0),当x在x0的δ邻域时f(x)≈f(x0)+▽Tf(x0)(x-x0),即f(x)-f(x0)≈▽Tf(x0)(x-x0),于是,怎么让f(x)比f(x0)小逐渐靠近极小值点呢?就让▽Tf(x0)(x-x0)小于零就可以了。怎么做到让它小于零呢?要让▽Tf(x0)(x-x0)小于零,那么▽Tf(x0)、(x-x0)向量的夹角要大于90度,当取(x-x0)为负梯度方向时,f(x)下降速度最快,即xk+1=xk-r▽f(xk),这里▽f(xk)前加一个系数步长r,为了保持xk+1和xk离的充分近即xk+1在xk的邻域内,才能忽略泰勒展开中一次以上的项,即r要足够小。

实现细节问题:

初始值的设定,x从哪一点开始,尽量选一个开始就接近极值点的点。

步长的选择,r选多少合适,一般是经验值,充分接近于0的正数就可以,有时随着迭代过程动态调整。

迭代终止的判定规则,||▽f(xk)||≤ε,梯度足够小接近于零的时候退出循环;或者设定迭代次数。

牛顿法:

也是一种数值优化算法,牛顿是物理学家和数学家,牛顿和莱布尼兹一起发明了微积分,是数学历史上的一次飞跃。

目标:找梯度为零的点,即▽f(x)=0,直接解很麻烦,采用某种迭代法向着极值点靠近。

泰勒展开到二次项,f(x)=f(x0)+▽Tf(x0)(x-x0)+1/2*(x-x0)TH(x-x0)+O((x-x0)2),其中H是Hession矩阵,理解为当x在x0的邻域内时,可以忽略后边的高阶无穷小,在x0附近可以用一个二次函数来近似代替f(x)函数,离x0越远函数值误差会越大越近误差越小。

对上式对x求梯度:

▽f(x)≈▽f(x)+H(x-x0),令▽f(x)为g,则g+H(x-x0)=0,就可以把极值点求出来了,x=x- H-1g(前提是H可逆,H和g都是在x0这一点取得的),于是得到迭代公式:xk+1=xk-H-1kgk,同样的以上等式是在x0的邻域内才能成立的,所以加上一个系数保证x在x0的δ邻域内,即xk+1=x- rH-1kgk

实现细节问题:

初始值的设定,x0的选择。

步长的选择,比梯度下降法要复杂,因为梯度下降法会保证每次迭代函数值都在降,而牛顿法不能保证每次函数值都下降,所以r的选择比较讲究,选择不好的话可能会不收敛,一般用直线搜索技术确定r(xk+1=x- rH-1kgk,如10-3、10-4、...,每次迭代的时候比较r取哪个值时函数值下降的最快就给r取哪个值)。

迭代终止的判定规则,||▽f(xk)||≤ε。

牛顿法和梯度下降法相比,x迭代式中多了一个H-1(实际求解时一般不直接求解H-1,而是求解Ax=b,可以用共轭梯度法),梯度下降法只是依赖于一阶导数信息,而牛顿法它既用了一阶导数信息也用了二阶导数信息,梯度下降法用线性函数近似的代替目标函数,牛顿法用二次函数代替目标函数,所以说牛顿法的收敛速度是更快的,但是牛顿法也有他的局限,H矩阵不一定可逆,不可逆时该方法无效,当变量很多的时候解H矩阵(解Ax=b)是非常耗时间的,由此就产生了一种改进的算法:拟牛顿法。

坐标下降法:

一种数值优化算法,是一种分治法的思想。

假设要优化一个多元的目标函数,自变量x是一个向量,有n个分量。

min f(x),x=(x1,x2,...,xn),原理:先固定住很多分量不动,只优化一个分量minxi f(x),就把多元函数的极值问题转化为一元函数的极值问题,这样问题求解的难度就小非常多,优化完一个分量之后,再同理优化别的分量,走完一轮后下次迭代同理。一元函数的极值问题可以用牛顿法也可以用公式解,看问题具体的形式了。

数值优化算法面临的问题:

前边的梯度下降法(也有改进型,如adam、anadata)和牛顿法它们求解极值问题的依据都是▽f(x0)=0,而函数在某点导数等于零,它只是函数取得极值的必要非充分条件,所以他们会面临局部极值问题鞍点问题,对于极值问题,梯度下降法和牛顿法要把所有的局部极值点都要找出来是非常麻烦的(要设置不同的初始迭代点然后让它收敛到不同的局部极小值点处再比较,这是一个NPC问题),鞍点问题是驻点但非极值点(H矩阵在此点是不定的,既不正定也不负定)。
拉格朗日乘数法:

拉格朗日乘数法是求极值的不是求最值,如果要求最值,要把极值点的函数值和不可导点的函数值还有端点函数值进行比较,求出来的是可能的极值点,因为可能是驻点非极值点。

用于求解带有一组等式约束的极值问题:

min f(x),hi(x)=0,i=1,...,p,其中x是优化变量,f(x)是目标函数。构造一个拉格朗日乘子函数,把这样一个带等式约束的问题转化为对x不带约束的优化问题。

拉格朗日乘子函数:,λi叫乘子变量,L(x,λ)对x和λ求偏导:

凸优化问题:

数值优化会面临局部最小值问题和鞍点问题,能不能避免这两个问题呢?答案是OK的,只要对优化问题进行限定,就可以避免这两种情况的发生。怎么限定呢?凸优化问题。

凸优化是一种很特殊的优化,有两个约束:

1.问题的可行域D是一个凸集

2.目标函数是一个凸函数

同时满足以上两条的优化问题叫凸优化问题。

凸集:

凸集的定义,对于点的集合C,有点x、y∈C,那么它们连线上的任何一点也是属于集合C的,即θx+(1-θ)y∈C。

典型的凸集:

Rn

仿射子空间{x∈Rn:Ax=b},就是一组等式组成的约束,他是凸集,一般是线性约束

多面体{x∈Rn:Ax≤b},即一组线性不等式构成的约束是凸集

凸集的交集还是凸集,多个凸集的并集不是凸集

凸函数:

凸函数的定义:f(θx+(1-θ)y)<θf(x)+(1-θ)f(y)

凸函数的判定:

①可根据定义判定

②一阶判别法:一元函数f(y)≥f(x)+f'(x)(y-x),多元函数f(y)≥f(x)+▽f(x)(y-x)

③二阶判别法:如果是一元函数,f''(x)≥0可以判断为是凸函数;对于多元函数,它的Hession矩阵半正定可以判断为是凸函数,如果是正定就是一个严格的凸函数(没有平的地方)。

对于凸函数的非负线性组合也是凸函数:

,wi≥0,对于求解的目标函数如果可以写成几部分之和,如果每个部分都是凸函数,那么加起来还是凸函数。

凸优化:

凸优化的定义是目标函数是一个凸函数且可行域是一个凸集。

如果是凸函数和凸集,那么局部最优解一定是全局最优解。

凸优化一般写成以下形式:

,无约束条件

,有约束条件

机器学习算法凸优化问题:SVM、logistic回归、线性回归。证明的思路是,证明可行域是凸集、目标函数是凸函数即可。

凸优化有效规避局部极小值问题和鞍点问题(因为Hession矩阵是半正定的,也就是非不定的,所以不存在不定的点,规避了鞍点问题),证明了一个问题是凸优化问题,也就说明这个问题基本上就得到解决了,无论是用牛顿法、梯度下降法或其他方法,最终都可以得到它的全局最小值点,只是早晚的问题(迭代多少次收敛的问题),收敛是有保证的,所以说凸优化问题在优化问题中占有非常重要的地位。

拉格朗日对偶:

对偶是最优化问题里边非常重要的一块理论和方法。拉格朗日对偶法把原来难以求解的问题转换成另外一个问题来求解,两个问题是等价的,但是另外一个问题更容易求解,这就是它的核心的想法。

原始优化问题:

首先构造一个广义的拉格朗日函数(和拉格朗日乘数法一样的,只是这里是广义的即多了一组不等式约束,不等式约束乘子变量要大于等于零即λi≥0):

原问题

,即先让x不动,求对于v、λ函数的极大值求出v、λ,再求对于x的极小值。

原问题等价于我们要求解的问题,因为,而让x不动求L极大值时,是等式约束值为0,而f(x)视为常数,此时即求的极大值,因为gi(x)≤0且λi≥0,所以的极大值为0,所以求L对v、λ的极大值为f(x),然后求L的极小值,此时就是求f(x)的极小值,即等价于原始问题的优化。

对于x不属于可行域C,即破坏了约束条件如至少有一个hi(x)≠0,就让vi取正无穷或负无穷,使得通过控制vi使得趋向于正无穷,使得无论x取什么值,L都是趋向于正无穷。即在可行域之内,原始问题和原问题是等价,有相同的最优解;超出可行域之外L都是正无穷,不管怎么操作x都不可能取到原始问题的极小值。

对偶问题:

就是对操作乘子变量和操作x顺序调换一下,

显然弱对偶成立,,d*是弱对偶问题的最优解,p*是原问题的最优解。

对偶间隙:p* - d* ,如果间隙等于0的话,说明原问题和对偶问题是等价的他们有相同的最优解,怎么保证间隙为零?

对偶间隙为0时称为强对偶,Slater条件是强对偶成立的其中一个条件。假设有一个最优化问题是凸优化问题,且至少存在一个可行解(不一定是最优解),使得不等式约束严格满足(取小于号),那么此时原问题和对偶问题是等价的,即强对偶是成立的。Slater是强对偶成立的充分条件而非必要条件。对于所有的优化问题,弱对偶都是成立的,而强对偶成立是有条件的,其中一个条件就是Slater条件。

KKT条件

KKT条件是拉格朗日乘数法的一个推广,拉格朗日乘数法是一个求解带等式约束的极值问题。

这里求解的问题既带有等式约素也带有不等式约束:

构造拉格朗日乘子函数:

,除了对等式约束构造拉格朗日乘子以外也对不等式约束构造了一组拉格朗日乘子。

KKT条件在极值点处要满足以下条件:

本集总结:

SIGAI机器学习第三集 数学知识-2的更多相关文章

  1. SIGAI机器学习第二十三集 高斯混合模型与EM算法

    讲授高斯混合模型的基本概念,训练算法面临的问题,EM算法的核心思想,算法的实现,实际应用. 大纲: 高斯混合模型简介实际例子训练算法面临的困难EM算法应用-视频背景建模总结 高斯混合模型简写GMM,期 ...

  2. SIGAI机器学习第二十集 AdaBoost算法1

    讲授Boosting算法的原理,AdaBoost算法的基本概念,训练算法,与随机森林的比较,训练误差分析,广义加法模型,指数损失函数,训练算法的推导,弱分类器的选择,样本权重削减,实际应用 AdaBo ...

  3. SIGAI机器学习第四集 基本概念

    大纲: 算法分类有监督学习与无监督学习分类问题与回归问题生成模型与判别模型强化学习评价指标准确率与回归误差ROC曲线交叉验证模型选择过拟合与欠拟合偏差与方差正则化 半监督学习归类到有监督学习中去. 有 ...

  4. SIGAI机器学习第七集 k近邻算法

    讲授K近邻思想,kNN的预测算法,距离函数,距离度量学习,kNN算法的实际应用. KNN是有监督机器学习算法,K-means是一个聚类算法,都依赖于距离函数.没有训练过程,只有预测过程. 大纲: k近 ...

  5. SIGAI机器学习第六集 决策树

    讲授决策树的基本概念,分类与回归树的原理,决策树的表示能力,决策树的训练算法,寻找最佳分裂的原理,叶子节点值的标记,属性缺失与替 代分裂,决策树的剪枝算法,决策树应用. 非常直观和易于理解的机器学习算 ...

  6. SIGAI机器学习第二十一集 AdaBoost算法2

    讲授Boosting算法的原理,AdaBoost算法的基本概念,训练算法,与随机森林的比较,训练误差分析,广义加法模型,指数损失函数,训练算法的推导,弱分类器的选择,样本权重削减,实际应用. 大纲: ...

  7. SIGAI机器学习第十七集 线性模型1

    讲授logistic回归的基本思想,预测算法,训练算法,softmax回归,线性支持向量机,实际应用 大纲: 再论线性模型logistic回归的基本思想预测函数训练目标函数梯度下降法求解另一种版本的对 ...

  8. SIGAI机器学习第十集 线性判别分析

    讲授LDA基本思想,寻找最佳投影矩阵,PCA与LDA的比较,LDA的实际应用 前边讲的数据降维算法PCA.流行学习都是无监督学习,计算过程中没有利用样本的标签值.对于分类问题,我们要达到的目标是提取或 ...

  9. SIGAI机器学习第八集 数据降维1

    讲授数据降维原理,PCA的核心思想,计算投影矩阵,投影算法的完整流程,非线性降维技术,流行学习的概念,局部线性嵌入,拉普拉斯特征映射,局部保持投影,等距映射,实际应用 大纲: 数据降维问题PCA的思想 ...

随机推荐

  1. Tomcat报错:No result type specified for result named 'success'

    今天学Struts, tomcat报出了异常信息 Exception starting filter [struts2] Unable to load configuration.还有 No resu ...

  2. laravel框架视图中常用的逻辑结构forlese,foreach,ifelse等

    if 和else @if($name === 1) 这个数字是1 @else 这个数字非1 @endif switch @switch($name) @case(1) 变量name == 1 @bre ...

  3. python使用ORM之如何调用多对多关系

    在models.py中,我创建了两张表,他们分别是作者表和书籍表,且之间的关系是多对多. # 书 class Book(models.Model): id = models.AutoField(pri ...

  4. Model 的使用

    1.   设计数据结构 问题表Question:作用存放问题 id 主键 自增 question_text 题目 varchar120 created 创建时间 datetime 选项表Choice: ...

  5. Django出错Xadmin后台报list index out of range

    input_html = [ht for ht in super(AdminSplitDateTime, self).render(name, value, attrs).split('/>&l ...

  6. MQ与logstash实现ES与数据库同步区别

    Logstash 实现ES 与数据库同步: 使用定时器(使用sql 定时的去查询数据进行同步).实现方式比较简单. MQ 实现 ES 与数据库同步: 实时性,消息放到MQ中,消费者会自动的消费,复杂性 ...

  7. hdu 2555

    Problem Description 杭州师范大学第29届田径运动会圆满的闭幕了,本届运动会是我校规模最大,参赛人数最多的一次运动会.在两天半时间里,由学生.教工组成的61支代表队共2664名运动员 ...

  8. 这些方面做好了才能叫运营-App运营日常

    现在APP的开发推广是时代的潮流,同时也是不少企业的难题.现在我们就来谈谈APP运营的一些问题. 1. 基础运营正常维护产品最日常.最普通的工作,如APP应用包在各大应用市场提交上传等,如安卓渠道,包 ...

  9. 【转载】Response对象的作用以及常用方法属性

    Response对象是Asp.Net应用程序中非常重要的一个内置对象,其作用为负责将服务器执行好的信息输出给客户端,即作用主要为响应客户端请求并将服务器的响应返回给用户,在页面的临时跳转中,也可使用R ...

  10. The version of SOS does not match the version of CLR you are debugging

    分析dump文件时,由于客户生产环境与分析dump文件的环境不一致,常常会出现下面的错误 The version of SOS does not match the version of CLR yo ...