目录

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

凸集基本概念

思考两个不能式

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

给定可逆对称阵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. SpringMVC-05 Json交互处理

    SpringMVC-05 Json交互处理 Json 1.什么是JSON? JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式,目前使用特别 ...

  2. 使用wireshark 抓取 http https tcp ip 协议进行学习

    使用wireshark 抓取 http https tcp ip 协议进行学习 前言 本节使用wireshark工具抓包学习tcp ip http 协议 1. tcp 1.1 tcp三次握手在wire ...

  3. 不用任何框架,Java 就能实现定时任务的 3 种方法!

    是的,不用任何框架,用我们朴素的 Java 编程语言就能实现定时任务. 今天,栈长就介绍 3 种实现方法,教你如何使用 JDK 实现定时任务! 1. sleep 这也是我们最常用的 sleep 休眠大 ...

  4. 如何优雅的移植JavaScript组件到Blazor

    Blazor作为一个新兴的交互式 Web UI 的框架,有其自身的优缺点,如果现有的 JavaScript 组件能移植到 Blazor,无疑让 Blazor 如虎添翼,本文就介绍一下自己在开发 Bul ...

  5. WPF 基础 - 图片之界面截图

    1. 功能 系统截图. 2. 实现 2.1 思路 控件继承自 System.Windows.Media.Visual, 通过 System.Windows.Media.Imaging.RenderVi ...

  6. vue 仿zTree折叠树

    需求: vue实现仿zTree折叠树,此文章仅作为记录文档. 实现: <template> <div class="line-tree"> <div ...

  7. gtk编译之makefile的写法(之一)

    在学习c语言GUI编程时想必大家都会遇见这样一个问题买就是每次编译都要敲`pkg-config --cflags --libs gtk+-2.0`这个烦恼吧 这是我们可以编写一个makefile文件这 ...

  8. Java程序员都要懂得知识点:反射

    摘要:Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为java语 ...

  9. 问题笔记-vueCli3.0打包路径出错

    需求:vueCli3.0打包路径出错.解决办法:vueCli3.0打包,新版本更新脚手架做出精简,webpack配置文件需要手动配置.在文件根目录创建一个vue.config.js配置文件.基本版: ...

  10. [.net] 关于Exception的几点思考和在项目中的使用(三)

    本文链接: https://www.cnblogs.com/hubaijia/p/about-exceptions-3.html 系列文章: 关于Exception的几点思考和在项目中的使用(一) 关 ...