机器学习中关于判断函数凸或凹以及最优化的问题

原创 2015年08月10日 16:26:50

在很多机器学习算法中,都会遇到最优化问题。因为我们机器学习算法,就是要在模型空间中找到这样一个模型,使得这个模型在一定范围内具有最优的性能表现。因此,机器学习离不开最优化。然而,对于很多问题,我们并不总能够找到这个最优,很多时候我们都是尽力去找到近似最优,这就是解析解和近似解的范畴。

很多最优化问题都是在目标函数是凸函数或者凹函数的基础上进行的。原因很简单,凸函数的局部极小值就是其全局最小值,凹函数的局部极大值就是其全局最大值。因此,只要我们依据一个策略,一步步地逼近这个极值,最终肯定能够到达全局最值附近。

那么,如何判断目标函数凸或者凹呢?

判断目标函数凸或者凹的方法

1 暴力计算法

这个方法是我自己起的名字,哈哈,但是方法不是我发明的。。所谓暴力计算法,就是直接对目标函数进行计算,然后判断其是否凸。具体地,就是计算目标函数的一阶导数和二阶导数。然后作出判断。

凸函数的一阶充要条件

这里写图片描述

等号右边是对函数在x点的一阶近似。这个条件的意义是,对于函数在定义域的任意取值,函数的值都大于或者等于对函数在这点的一阶近似。用图来说明就是:

这里写图片描述

通过图可以很清楚地理解这个充要条件,但是,具体在应用中,我们不可能对每一个点都去计算函数的一阶导数吧,因此下面这个充要条件更加实用。

凸函数的二阶充要条件

这里写图片描述

很简单,如果一个函数的二阶导数大于等于零,那么这个函数就是凸函数。图就不上了,很好理解,函数的一阶导数具有递增性,那么函数本身就是凸函数。

通过暴力计算法,可以很快地判断函数是不是凸函数。凹函数同理。

2 结构分析法

重要的内容都在后面,哈哈。有时候我们不必通过暴力计算,可以通过分析目标函数的结构,就能在一些情况下判断函数是否是凸函数。下面给出一些结论:

  1. 指数函数是凸函数;
  2. 对数函数是凹函数,然后负对数函数就是凸函数;
  3. 对于一个凸函数进行仿射变换,可以理解为线性变换,结果还是凸函数;
  4. 二次函数是凸函数(二次项系数为正);
  5. 高斯分布函数是凹函数;
  6. 多个凸函数的线性加权,如果权值是大于等于零的,那么整个加权结果函数是凸函数。

下面出一道题目:如何判断最大似然函数一定有最大值?

思路:最大似然函数是求最大值,那么函数必须是凹函数。就拿我们常用的对数似然函数,是多个对数函数的线性加权而且权值为1,而对数函数是凹函数,然后每个对数内部有没有嵌套其他函数再分析一下,最后就能判断整个对数似然函数是凹函数,因此一定有最大值。

机器学习中的最优化问题

很多机器学习算法都设计最优化问题,判断目标函数是凸是凹是第一步,这只是可以最优化的前提,那么,有哪些最优化的问题呢?

  • 线性规划
  • 二次规划
  • 二次约束的二次规划
  • 半正定规划

有哪些最优化的手段呢?常见的有:

  • 梯度上升(下降)法
  • 牛顿法 / 拟牛顿法
  • 坐标下降法

关于这部分的知识下次详谈,先给出几篇相关的资料:

凸优化和机器学习
关于凸优化的一些简单概念
斯坦福凸优化综述

版权声明:本文为博主原创文章,欢迎转载,但请注明出处~

机器学习第四课:SVM前置知识点(凸优化问题)

内容主要来源于 从凸优化到KKT
  • dajiabudongdao
  • dajiabudongdao
  • 2016年09月07日 20:36
  • 1311

机器学习笔记_数学基础_7-凸优化理论

优化问题minf0(x)min f_0(x) subjecttofi(x)≤bi,i=1,⋯,msubject to f_i(x) \leq b_i, \quad i=1,\cdots,m x=(x...
  • mijian1207mijian
  • mijian1207mijian
  • 2015年11月20日 10:50
  • 2157

机器学习之&&Dual(带约束条件的最优化问题)

关于dual的相关知识,这套理论不仅适用于SVM的优化问题,而是对于所有带约束的优化问题都适用,是优化理论中的一个重要部分。(也许你觉得一个IT人优化问题不重要,其实你仔细想想,现实中的很多问题,都是...
  • sp_programmer
  • sp_programmer
  • 2014年12月12日 17:39
  • 7115

机器学习 必备数学知识 总结(包括:线性代数、概率论、数值计算、最优化)135页

  • 2017年12月13日 10:35
  • 6.76MB
  • 下载

机器学习中常见的最优化算法

我们每个人都会在我们的生活或者工作中遇到各种各样的最优化问题,比如每个企业和个人都要考虑的一个问题“在一定成本下,如何使利润最大化”等。最优化方法是一种数学方法,它是研究在给定约束之下如何寻求某些因素...
  • wtq1993
  • wtq1993
  • 2016年06月07日 22:08
  • 9285

python 机器学习——从感知机算法到各种最优化方法的应用(python)

- 为什么说通过感知机算法的推导和实践便迈进了机器学习的大门? - 感知机算法的学习策略是怎样的? - 不同感知机算法之间的真正区别是什么? - 关于感知机算法都有哪些损失函数和权重更新的形式? - ...
  • lanchunhui
  • lanchunhui
  • 2015年10月25日 07:59
  • 4610

机器学习之导数最优化方法

作者:daniel-D 出处:http://www.cnblogs.com/daniel-D/  1. 前言 熟悉机器学习的童鞋都知道,优化方法是其中一个非常重要的话题,最常见的情形就是利用目标...
  • dahuacai
  • dahuacai
  • 2016年01月10日 12:07
  • 797

程序员的机器学习入门笔记(八):最优化与计算复杂度概述

最优化定义无论做何事,人们总希望用最小的代价来取得最大的收益,为此人们发明了各种各样的数据工具(导数,微积分),并尝试使用这些知识来最优化解决实际问题。但是在解决实际问题最优化解的时候,经常是伴随着两...
  • sun7545526
  • sun7545526
  • 2017年01月22日 17:55
  • 980

机器学习中导数最优化方法(基础篇)

1. 前言 熟悉机器学习的童鞋都知道,优化方法是其中一个非常重要的话题,最常见的情形就是利用目标函数的导数通过多次迭代来求解无约束最优化问题。实现简单,coding 方便,是训练模型的必备利器之一。这...
  • GarfieldEr007
  • GarfieldEr007
  • 2016年03月30日 12:37
  • 496

【转】机器学习中导数最优化方法(基础篇)

原帖地址:http://www.cnblogs.com/daniel-D/p/3377840.html 1. 前言 熟悉机器学习的童鞋都知道,优化方法是其中一个非常重要的话题,最常见的情形...
  • xueyinhualuo
  • xueyinhualuo
  • 2015年07月17日 19:59
  • 860
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:机器学习中关于判断函数凸或凹以及最优化的问题
举报原因:
原因补充:

(最多只允许输入30个字)