目录

  • 凸集的基本概念
  • 凸函数的基本概念
  • 凸优化的一般提法

凸集基本概念

思考两个不能式

两个正数的算术平均数大于等于几何平均数

给定可逆对称阵Q,对于任意向量x,y,有:

思考凸集和凸函数

在机器学习中,我们把形如

这样的图形的都称为凸函数。

  • \(y=x^2\)是凸函数,函数图像上位于\(y=x^2\)的区域构成凸集。

    • 凸函数图像的上方区域,一定是凸集;
    • 一个函数图像的上方区域为凸集,则该函数是凸函数。

直线的向量表达

已知二维平面上的两定点A(5,1),B(2,3)尝试给出经过带你AB的直线方程:

写成向量形式:

其中:

几何体的向量表达

已知二维平面上的两个定点,则:

推广到高维:

仿射集(Affine set)

定义:通过集合C中任意两个不同点的直线仍然在集合C内,则称集合C为仿射集。

仿射集的例子:直线、平面、超平面

超平面:\(Ax=b\)

f(x)=0表示定义域在\(R^n\)的超曲面:令\(f(x)=Ax-b\),则\(f(x)=0\)表示截距为b的超平面。

n维空间的n-1维仿射集为n-1维超平面

凸集

集合C内任意两点间的线段均在集合C内,则称集合C维凸集。

注意和仿射集区分

仿射集是凸集的一种特殊形式,仿射集一定是凸集。

k个点的版本:


凸包

集合C的所有点的凸组合所形成的集合,叫做集合C的凸包:

集合C的凸包是能够包含C的最小凸集。

超平面和半空间

超平面:hyperplane

\[\{x|a^Tx=b\}
\]

半空间:halfspace

\[\{x|a^Tx\le b\}$$ $$\{x|a^Tx\ge b\}
\]

欧式球和椭球

欧式球

椭球

范数球和范数锥(欧式空间推广)

\(R^3\)空间中的二阶锥

多面体

有限个半空间和超平面的交集。

仿射集(如超平面、直线)、射线、线段、半空间都是多面体

多面体是凸集

此外,有界的多面体有时称作多胞体(Polytope)

保持凸性运算

  • 集合交运算
  • 仿射变换
  • 透视变换
  • 投射变换(线性分式变换)

集合交运算:半空间的交

仿射变换

透视变换

投射函数(线性分式函数)

分割超平面

设C和D为两不相交的凸集,则存在超平面P,P可以将C和D分离。


分割超平面的构造:

支撑超平面

设集合C,x0是C边界上的点,若存在\(a\not=0\)。满足对任意\(x\in C\),都有成立,则称超平面为集合C在点x0处的支撑超平面。

凸集边界上任意一点,均存在支撑超平面。

反之,若一个闭的非中空集合,在边界上任意一点存在支撑超平面,则该集合为凸集。

凸函数

若函数f的定义域domf为凸集,且满足:

一阶可微

若f一阶可微,则函数f为凸函数,当且仅当f的定义域domf为凸集,且:

分析

对于凸函数,其一阶Taylor近似本质上是该函数的全局下估计。

反之如果一个函数的一阶Taylor近似总是其全局下估计,则该函数是凸函数

该不等式说明从一个函数的局部信息,可以得到一定车程度的全局信息。

二阶可微

若函数f二阶可微,则函数f为凸函数当且进档dom为凸集,且:

若f为一元函数,上式表示二阶导大于等于0

若f是多元函数,上式表示二阶导Hessian矩阵半正定。

凸函数举例:

上镜图

函数f的图像定义为:

函数f的上镜图(epigraph)定义为

Jensen不等式:若f是凸函数

基本Jensen不等式

若:

则:

若:

则:

Jensen不等式是几乎所有不等式的基础

保持函数凸性的算子

凸函数的逐点最大值

若\(f_1,f_2\)均为凸函数,定义函数\(f\):

则函数\(f\)为凸函数。

证明:

第二个不等号的表达:

第二个不等好的形式化表达:

共轭函数

原函数,共轭函数定义:

显然,定义式的右端是关于y的仿射函数,他们逐点求上确界,得到的函数f*(y)一定是凸函数。

理解:

例:

求共轭函数

Fenchel不等式

根据共轭函数定义:

易得:

应用:

凸优化

凸优化问题的基本形式:

  • 优化变量:\(x \in R^n\)

  • 不等式约束:\(f_i(x)\le0\)

  • 等式约束:\(h_j(x)=0\)

  • 无约束优化:\(m=p=0\)

  • 优化问题的域:

  • 可行点(解)(feasible)

  • 可行域(可解集)

    所有可行点的集合。

  • 最优化值

  • 最优化解

对于

其中

\(f_i(x)\)为凸函数,\(h_j(x)\)为仿射函数

凸优化问题的重要性质:

  • 凸优化问题的可行域为凸集
  • 凸优化问题的局部最优解就是全局最优解

对偶问题

一般优化问题的Lagrange乘子法

Lagrange函数:

对于固定的x,Lagrange函数\(L(x,\lambda,v)\)是关于\(\lambda\)和v的仿射函数。

Lagrange对偶函数

Langrange对偶函数:

若没有下确界,定义:

根据定义,显然有:对,若原优化问题有最优值P*,则:

进一步:Lagrange函数对偶函数为凹函数。

鞍点解释


鞍点:最优点

强对偶条件

若要对偶函数的最大值即为原问题的最小值,需要满足的条件:

Karush-Kuhn-Tucker(KKT)条件

(邹博ML)凸优化的更多相关文章

  1. (邹博ML)数学分析与概率论

    机器学习入门 深度学习和机器学习? 深度学习在某种意义上可以认为是机器学习的一个分支,只是这个分支非常全面且重要,以至于可以单独作为一门学科来进行研究. 回忆知识 求解S. 对数函数的上升速度 我们使 ...

  2. (邹博ML)矩阵和线性代数

    主要内容 矩阵 特征值和特征向量 矩阵求导 矩阵 SVD的提法 奇异值分解(Singular Value Decomposition)是一种重要的矩阵分解方法,可以看做对称方阵在任意矩阵上的推广. 假 ...

  3. zz姚班天才少年鬲融凭非凸优化研究成果获得斯隆研究奖

    姚班天才少年鬲融凭非凸优化研究成果获得斯隆研究奖 近日,美国艾尔弗·斯隆基金会(The Alfred P. Sloan Foundation)公布了2019年斯隆研究奖(Sloan Research ...

  4. 【Codeforces 321E / BZOJ 5311】【DP凸优化】【单调队列】贞鱼

    目录 题意: 输入格式 输出格式 思路: DP凸优化的部分 单调队列转移的部分 坑点 代码 题意: 有n条超级大佬贞鱼站成一行,现在你需要使用恰好k辆车把它们全都运走.要求每辆车上的贞鱼在序列中都是连 ...

  5. 【BZOJ2654】Tree(凸优化,最小生成树)

    [BZOJ2654]Tree(凸优化,最小生成树) 题面 BZOJ 洛谷 题解 这道题目是之前\(Apio\)的时候写的,忽然发现自己忘记发博客了... 这个万一就是一个凸优化, 给所有白边二分一个额 ...

  6. 凸优化(Convex Optimization)浅析

    本博客已经迁往http://www.kemaswill.com/, 博客园这边也会继续更新, 欢迎关注~ 在机器学习中, 很多情况下我们都需要求得一个 问题的全局最优值(global optimum) ...

  7. 「学习笔记」wqs二分/dp凸优化

    [学习笔记]wqs二分/DP凸优化 从一个经典问题谈起: 有一个长度为 \(n\) 的序列 \(a\),要求找出恰好 \(k\) 个不相交的连续子序列,使得这 \(k\) 个序列的和最大 \(1 \l ...

  8. 支持向量机(SVM)必备概念(凸集和凸函数,凸优化问题,软间隔,核函数,拉格朗日乘子法,对偶问题,slater条件、KKT条件)

    SVM目前被认为是最好的现成的分类器,SVM整个原理的推导过程也很是复杂啊,其中涉及到很多概念,如:凸集和凸函数,凸优化问题,软间隔,核函数,拉格朗日乘子法,对偶问题,slater条件.KKT条件还有 ...

  9. CF739E Gosha is hunting(费用流/凸优化dp)

    纪念合格考爆炸. 其实这个题之前就写过博客了,qwq但是不小心弄丢了,所以今天来补一下. 首先,一看到球的个数的限制,不难相当用网络流的流量来限制每个球使用的数量. 由于涉及到最大化期望,所以要使用最 ...

随机推荐

  1. 使用zap接收gin框架默认的日志并配置日志归档

    目录 使用zap接收gin框架默认的日志并配置日志归档 gin默认的中间件 基于zap的中间件 在gin项目中使用zap 使用zap接收gin框架默认的日志并配置日志归档 本文介绍了在基于gin框架开 ...

  2. 痞子衡嵌入式:盘点国内MCU级RISC-V内核IP厂商

    大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是国内MCU级RISC-V内核IP厂商. 自RISC-V指令集2010年诞生以来,业界普遍认为,RISC-V将会改变现有的由Arm和Int ...

  3. P1739_表达式括号匹配(JAVA语言)

    思路:刚开始想用stack,遇到'('就push,遇到')'就pop,后来发现其实我们只需要用到栈里'('的个数,所以我们用一个变量统计'('的个数就好啦~ 题目描述 假设一个表达式有英文字母(小写) ...

  4. 归并排序(JAVA语言)

    public class merge { public static void main(String[] args) { // TODO Auto-generated method stub int ...

  5. PTA 统计二叉树叶子结点个数

    6-2 统计二叉树叶子结点个数 (10 分)   本题要求实现一个函数,可统计二叉树的叶子结点个数. 函数接口定义: int LeafCount ( BiTree T); T是二叉树树根指针,函数Le ...

  6. 关于HashMap的一些思考

    一.HashMap的负载因子的作用 当 HashMap 中的元素个数(包含链表.红黑树上的元素)达到数组长度的0.75倍的时候,开始扩容.   二.HashMap的负载因子为什么是0.75 主要是为了 ...

  7. 将Java编译为本地代码

    将Java编译为本地代码 通常Java程序的执行流程为:将Java代码编译为Byte Code(字节码),然后JVM执行引擎执行编译好的Byte Code.这是一种中间语言的特性,它的好处就是可以做到 ...

  8. 神奇的魔方阵--(MagicSquare)(1)

    本篇文章只对奇数阶以及偶数阶中阶数n = 4K的魔方阵进行讨论.下面就让我们进入正题: 1 :魔方阵的相关信息:(百度百科) https://baike.baidu.com/item/%E9%AD%9 ...

  9. 并发编程(ReentrantLock&&同步模式之顺序控制)

    4.13 ReentrantLock 相对于 synchronized 它具备如下特点 可中断 可以设置超时时间 可以设置为公平锁 支持多个条件变量,即对与不满足条件的线程可以放到不同的集合中等待 与 ...

  10. 字体图标库 iconfont、iconmoon 的维护管理与使用探索

    字体图标库的使用 这是之前留下的博客,由于一堆博客没写完,本周周末做了个补充,可能内容上会有点不太斜街,请见谅... 本文大部分内容是自己结合过往经验探索总结的字体图标维护方式 iconfont-阿里 ...