CMU凸优化笔记--凸集和凸函数

结束了一段时间的学习任务,于是打算做个总结。主要内容都是基于CMU的Ryan Tibshirani开设的Convex Optimization课程做的笔记。这里只摘了部分内容做了笔记,很感谢Ryan Tibshirani在官网中所作的课程内容开源。也很感谢韩龙飞在CMU凸优化课程中的中文笔记,我在其基础上做了大量的内容参考。才疏学浅,忘不吝赐教。

1、凸集合

1.1 基本概念

定义:给定一个集合$C \subseteq \mathbb{R}^n $,满足下列条件则称为凸集

$x,y \in C  \Rightarrow tx+(1-t)y \in C $ 对于任意的 $ 0 \leq t \leq 1$

直观上看,可以利用下图帮助理解,假定我们的变量在二维空间中,$x,y$为二维空间变量,黑体线代表的向量为$tx+(1-t)y$,$t$取值范围为$[0,1]$,那么无论t怎么变化,向量$tx+(1-t)y$总会落在$x$和$y$张成的集合空间中。

那么从定义出发,我们也能知道非凸集的情况,下图左侧为凸集,右图为非凸集

一句话来概括凸集就是集合内任意两点间连线依旧在集合内。

1.2  凸集简单例子

  • 凸包(convex hull):给定集合内的任意$k$个元素$x_1,...,x_k \in \mathbb{R}^n$,任意的线性组合形式:

$\theta_1 x_1+...+\theta_k x_k,\theta_i \leq,i=1,...,k$ 并且$ \sum_{i=1}^{k}\theta_i=1$。称之为集合的convex hull,表示为$conv(C)$。convex hull总是凸的。可以直观认为凸包就是最外围的元素所围成的集合外壳,下图是两个凸包的例子:

  • 空集、点、线都是凸集合
  • 范数球(Norm ball): 半径为$r$的范数球为:$\left \{x:||x|| \leq r \right \}$
  • 超平面(Hyperplane): 给定任意$a,b$ ,$\left \{x:a^Tx=b \right \}$
  • 半空间(Half space): $\left \{x:a^Tx \leq b \right \}$
  • 仿射空间(Affine space):$\left \{x:Ax = b \right \}$
  • 多面体(Polyhedron):$\left \{x:Ax \leq b \right \}$,下图为多面体

Note:集合$\left \{x:Ax \leq b,Cx=d \right\}$也是一个Polyhedron吗?

Answer:是的。因为对于任意的$Cx=d$,都可写成$Cx \leq d$ 与$-Cx \leq -d$,这样就和$Ax \leq b $形式一致。

1.3  锥(Cone):

定义:给定$C \in \mathbb{R}^n $,满足$x \in C \Rightarrow tx\in C$ 对于任意$ t\geq 0$称之为锥。

凸锥(convex cone):$x_1,x_2 \in C \Rightarrow t_1 x_1+t_2 x_2 \in C $,对于任意$ t_1,t_2 \geq 0$都成立,那么称集合$C$为凸锥。显然凸锥是锥的一种。

例子:

范数锥(Norm cone):$\left \{(x,t):||x|| \leq t \right \}$,对于一范数和二范数成立。下图取定不同的$t$做出了三维情况下的图:

正规锥(Normal cone):给定任意集合$C$,集合内任意一点$x \in C$,定义:

$\mathbb{N}_c(x)=\left \{g:g^Tx \geq g^Ty ,for \quad any \quad y \in C \right \}$

其含义是指Normal cone中的点与集合$C$内的点的内积永远大于集合内任意点与Normal cone内点的内积。如下图所示:

1.4  凸集的一些特性

  • 可分离超平面理论(Separating hyperplane theorem):两个不相交的凸集总存在一个超平面能将两者分离,如果$C \bigcap D =  \varnothing $,那么总存在着$a,b$使得有:

$C \subseteq \left \{x:a^Tx \leq b \right \}$ ,$D \subseteq \left \{x:x^T \geq b \right \}$。如下图所示:

  • 支撑超平面理论(Supporting hyperplane theorem):凸集边界上的一点必然存在一个支撑超平面穿过该点,即如果$C$都是非空凸集,$ x_0 \in $ bd$(C) $,那么必然存在一个超平面$a$,使得, $C \subseteq \left \{x:a^Tx \leq a^T x_0 \right \}$。如下图:

1.5  保凸操作

  • 集合交(Intersection):任何凸集之交产生的集合依旧是凸集。
  • 缩放和平移(Scaling and translation):假设$C$为凸集,那么$aC+b=\left \{ax+b:x \in C \right \}$对于任意$a,b$也是凸的。
  • 仿射映射与预映射(Affine images and preimages):如果$f(x)=Ax+b$是凸集,那么$f(C)=\left \{f(c):x \in C \right\}$也是凸集,如果$D$为凸集,那么$f^(-1)(D)=\left \{x:f(x) \in D \right \}$也是凸的。

1.6  凸集与保凸操作相关例子

条件概率集合(conditional probability set):$U,V$分别为$\left \{1,...,n\right \}$与$\left \{1,...,m\right \}$上的两个随机变量集合。$ C \subseteq \mathbb{R}^{nm} $为$U,V$的联合分布集合。对于每个$p \in C$,定义联合概率分布 $p_{ij} = \mathbb{P}(U=i,V=j)$。D为对应的条件概率分布,对于每个$q \in D$定义 $q_{ij}=\mathbb{P}(U=i|V=j)$。假定$C$为凸集,那么D一定为凸集。简单证明可用保凸操作中的Affine images and preimages,$D=\{q\in\mathbb{R}^{nm}:q_{ij}={\textstyle\frac{p_{ij}}{\textstyle\overset n{\underset{k=1}{\sum p_{kj}}}}}\}$

2 、凸函数

2.1 基本概念

定义:给定映射$f:\mathbb{R}^n \rightarrow \mathbb{R}$ 并且 dom$(f) \subseteq \mathbb{R}^n$为凸集,那么

$f(tx+(1-t)y) \leq tf(x)+(1-t)f(y)$ 对于任意 $0 \leq t \leq 1$,且 任意$x,y \in dom(f)$。如下图:

从上图可以看出,$f$的函数值总是位于连接$f(x)$和$f(y)$之间的直线下方。

Note:

  • 严格凸(Strictly convex):对于任意$x \neq y$,且$0<t<1$,有$f(tx+(1-t)y)<tf(x)+(1-t)f(y)$。简而言之,就是$f$比线性函数要更弯曲
  • 强凸(Strongly convex):对于参数$m>0$:$f-\frac{m}{2}||x||^2_2$依旧是一个凸函数。简而言之就是$f$要比一般的二次函数要弯曲。
  • 强凸 $\Rightarrow$ 严格凸 $\Rightarrow$ 凸

2.2 凸函数例子

  • 单变量函数:

例如指数函数$e^{ax} $对于任意a都是凸的,幂函数$x^a$在$a\geq 1 或 a \leq 0$的时候为凸,当$0 \leq a \leq 1$的时候非凸,对数函数$log x$是非凸函数

  • 仿射函数(Affine function):

$a^Tx+b$既是凸函数又是非凸函数

  • 二次函数(Quadratic function):

$\frac{1}{2}x^TQx+b^Tx+c$当$Q \succeq 0$(半正定)的时候为凸

  • 最小平方损失函数(Least squares loss):

$||y-Ax||_2^2$总是凸的,因为展开后的$A^TA$总是半正定的

  • 范数(Norm):

$||x||$的任何范数总是凸的,$\ell_p$范数定义为:$\parallel x\parallel_p=(\overset n{\underset{i=1}{\sum x_i^p}})^{1/p}$,对于任意$p\geq1$,$\parallel x\parallel _{\infty} =max|x_i|$。

谱(spectral)范数:$\parallel X \parallel _{op}=\sigma_1(X)$,

核范数(nuclear):$||X||_{tr}=\sum_{i=1}^{r}\sigma_r(X)$。其中$\sigma_1(X)\geq...\geq\sigma(X)\geq0$为矩阵$X$的从大到小排序的奇异值。

  • 指示函数(Indicator function):

如果$C$为凸,那么其指示函数为:$I_C(x)=\left\{\begin{array}{lc}0&x\in C\\\infty&x\not\in C\end{array}\right.$为凸函数。

  • 最大值函数(Max function):

$f(x)=max\left\{x_1,...,x_n\right\}$为凸函数

2.3 凸函数的一些特性

  • 上镜特性(Epigraph characterization):函数$f$为凸函数当且仅当其上镜图$epi(f)=\left \{(x,t)\in dom(f)\times \mathbb{R}:f(x)\leq t\right\}$为凸集,如下图:

  • 一阶特性(First-order characterization):假设$f$处处可微,那么$f$为凸函数当且仅当$dom(f)$为凸,并且有:$f(y)\geq f(x)+\nabla f(x)^T(y-x)$对于所有$x,y\in dom(f)$。

Note:如何证明凸函数的一阶特性?

Answer:从凸函数定义出发,$f(ty+(1-t)x) \leq tf(y)+(1-t)f(x) \quad \Rightarrow \quad \\ f(t(y-x)+x)+f(x))\leq t(f(y)-f(x))+f(x) \quad \Rightarrow \quad \\ \frac{f(t(y-x)+x)-f(x)}{t(y-x)}\leq frac{f(y)-f(x)}{y-x} \quad \Rightarrow \quad \\ \lim_{t\rightarrow0} \frac{f(t(y-x)+x)-f(x)}{t(y-x)}=\nabla f(x) \quad \Rightarrow \quad  \\ \nabla f(x)(y-x) \leq f(y)-f(x) \quad \Rightarrow \quad \\ f(y) \geq f(x)+\nabla f(x)(y-x)$

  • 二阶特性:如果函数二阶可微分,则$f$为凸函数当且仅当$dom(f)$为凸,且对于所有$x \in dom(f)$ 都有$\nabla^2f(x)\succeq0$
  • Jensen不等式:假若$f$为凸,并且$X$由$dom(f)$所支持的随机变量,则有$f(\mathbb{E}[x])\leq\mathbb{E}[f(x)]$

2.4保凸操作

  • 非负线性组合

$f_1,...,f_m$均为凸函数,那么对任意$a_1,...a_m\geq0$均有$a_1f_1+...+a_mf_m$为凸。

  • 逐点最大化

如果$f_s$对于任意$s\in S$均为凸,那么$f(x)=max_{s\in S}f_s(x)$是凸函数。

  • 部分最小化

如果$g(x,y)$在任意$x,y$处为凸函数,并且$C$是凸的,那么$f(x)=min_{y\in C}g(x,y)$为凸函数。

2.5 证明凸函数例子

对数求和函数(Log-sum-exp function):“soft max”函数:对于给定$a_i,b_i,i=1,...,k$,$g(x)=log(\sum_{i=1}^{k}e^{a_i^Tx+b_i})$。其光滑近似为$max_{i=1,...,k}(a_i^Tx+b_i)$。

那么为了证明凸函数,首先我们知道仿射函数均是凸函数,并且对于求和函数可以看成是$f(x)=log(\sum_{i=1}^{n}e^{x_i})$与$h(x)=a_i^Tx+b_i$的复合函数。因此只需要证明$f(x)$为凸函数即可。

$\nabla _i f(x)=\frac{e^{x_i}}{\sum_{l=1}{n}e^{x_l}}\\$

$\nabla_{ij}^{2}f(x)=\frac{e^{x_i}}{\sum_{l=1}{n}}1\{i=j\}-\frac{e^{x_i}e^{x_j}}{(\sum_{l=1}^{n}e^{x_l})^2}\\$

将上式重写为$\nabla^2f(x)=diag(z)-zz^T$,其中$z_i=e^{x_i}/(\sum_{l=1}^{n}e^{x_l})$。这是一个对角占优矩阵,因此是半正定矩阵,因此满足二阶性质。原式为凸函数得证。

CMU Convex Optimization(凸优化)笔记1--凸集和凸函数的更多相关文章

  1. Convex optimization 凸优化

    zh.wikipedia.org/wiki/凸優化 以下问题都是凸优化问题,或可以通过改变变量而转化为凸优化问题:[5] 最小二乘 线性规划 线性约束的二次规划 半正定规划 Convex functi ...

  2. murongxixi的凸优化笔记

    http://www.cnblogs.com/murongxixi/p/3598645.html 在前两节里已经涉及到集合的相对内部与闭包的概念,这一节我们深入研究它们的性质和计算,之后介绍凸函数的连 ...

  3. convex optimization

    ##凸优化总结所有这些想法基本是来自于书籍[convex optimization](http://book.douban.com/subject/1888111/),主要包括凸优化的基本理论,主要的 ...

  4. 凸优化(Convex Optimization)浅析

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

  5. 在线学习和在线凸优化(online learning and online convex optimization)—凸化方法4

    一些在线预测问题可以转化到在线凸优化框架中.下面介绍两种凸化技术: 一些在线预测问题似乎不适合在线凸优化框架.例如,在线分类问题中,预测域(predictions domain)或损失函数不是凸的.我 ...

  6. 凸优化 Convex Optimization PDF 扫描文字识别版

    凸优化理论 Convex Optimization 清华大学出版社 王书宁许窒黄晓霖译 Stephen Boyd Lieven Vandenbergt原著 2013 年l 月第1 版 下载链接 链接: ...

  7. 凸优化简介 Convex Optimization Overview

    最近的看的一些内容好多涉及到凸优化,没时间系统看了,简单的了解一下,凸优化的两个基本元素分别是凸函数与凸包 凸集 凸集定义如下: 也就是说在凸集内任取两点,其连线上的所有点仍在凸集之内. 凸函数 凸函 ...

  8. 在线学习和在线凸优化(online learning and online convex optimization)—FTL算法5

    最自然的学习规则是使用任何在过去回合中损失最小的向量. 这与Consistent算法的精神相同,它在在线凸优化中通常被称为Follow-The-Leader,最小化累积损失. 对于任何t: 我们谈到了 ...

  9. 在线学习和在线凸优化(online learning and online convex optimization)—在线凸优化框架3

    近年来,许多有效的在线学习算法的设计受到凸优化工具的影响. 此外,据观察,大多数先前提出的有效算法可以基于以下优雅模型联合分析: 凸集的定义: 一个向量 的Regret定义为: 如前所述,算法相对于竞 ...

随机推荐

  1. P5470-[NOI2019]序列【模拟费用流】

    正题 题目链接:https://www.luogu.com.cn/problem/P5470 题目大意 两个长度为\(n\)的序列\(a,b\),求出它们两个长度为\(K\)的子序列,且这两个子序列至 ...

  2. P4249-[WC2007]剪刀石头布【费用流】

    正题 题目链接:https://www.luogu.com.cn/problem/P4249 题目大意 \(n\)个点的竞赛图有的边已经确定了方向,要求给剩下的边确定一个方向使得图的三元环最多. \( ...

  3. Python如何连接Mysql及基本操作

    什么要做python连接mysql,一般是解决什么问题的 做自动化测试时候,注册了一个新用户,产生了多余的数据,下次同一个账号就无法注册了,这种情况怎么办呢?自动化测试都有数据准备和数据清理的操作,如 ...

  4. 深入浅出WPF-10.Resource(资源)

    资源 对象级资源:每个WPF的界面元素都有一个名为Resources的属性,这个属性继承自FrameworkElement类,其类型为ResourceDictionary,采用键值对的形式存储资源,当 ...

  5. Phalcon多模块如何实现连接不同数据库 《Phalcon入坑指南系列 五》

    本系列目录 一.Phalcon在Windows上安装 <Phalcon入坑指南系列 一> 二.Phalcon入坑必须知道的功能<Phalcon入坑指南系列 二> 三.Phalc ...

  6. javascriptRemke之深入迭代

    javascriptRemke之深入迭代 前言:"迭代"意为按照顺序反复多次执行一段程序,ECMAscript6中新增了两个高级特性:迭代器与生成器,使用这两个特性能更高效地实现迭 ...

  7. CF1082E Increasing Frequency (multiset+乱搞+贪心)

    题目大意: \(给你n个数a_i,给定一个m,你可以选择一个区间[l,r],让他们区间加一个任意数,然后询问一次操作完之后,最多能得到多少个m\) QWQ 考场上真的** 想了好久都不会,直到考试快结 ...

  8. Tomcat 源码环境搭建

    Tomcat 源码搭建 下载源码 下载地址 :https://tomcat.apache.org/download-80.cgi#8.5.35 下载之后解压缩 导入Idea 添加pom.xml文件 & ...

  9. Java(14)面向对象之封装

    作者:季沐测试笔记 原文地址:https://www.cnblogs.com/testero/p/15201610.html 博客主页:https://www.cnblogs.com/testero ...

  10. Go语言核心36讲(Go语言进阶技术五)--学习笔记

    11 | 通道的高级玩法 我们已经讨论过了通道的基本操作以及背后的规则.今天,我再来讲讲通道的高级玩法. 首先来说说单向通道.我们在说"通道"的时候指的都是双向通道,即:既可以发也 ...