【Convex Optimization (by Boyd) 学习笔记】Chapter 2 - Convex sets(1) 仿射集&凸集
I. 仿射凸集(Affine and convex sets)
1. 线与线段
假设\(R^n\)空间内两点\(x_1,x_2\, (x_1≠x_2)\),那么\(y=\theta x_1+(1-\theta)x_2, \theta∈R\)表示从x1到x2的线。而当\(0≤\theta≤1\)时,表示x1到x2的线段。

2.仿射集
仿射集(Affine sets) 定义:
假设有一个集合\(C∈R^N\),如果通过集合C中任意两个不同点之间的直线 (上的任何点) 仍在集合C中,那么称集合C是仿射的;
也就是说\(\forall x_1,x_2∈R,\theta∈R\),有\(\theta x_1+(1-\theta)x_2∈C\)
推论:
如果\(C\)是一个仿射集,且\(x_1,...,x_n∈C,\theta_1+...+\theta_k=1\),那么点\(\theta_1x_1+...+\theta_kx_k\)也属于\(C\)。
- 仿射包(Affine Hull)
仿射集\(C\)中各个点之间的组合的集合称为\(C\)的affine hull,用\(aff \, \, C\)表示且有:
\[aff \,\, C=\{\theta_1x_1+...+\theta_kx_k|x_1,...,x_k∈C,\theta_1+...=\theta_k=1\}\]
仿射包是包含仿射集\(C\)的最小仿射集,也就是说对于任何满足\(C\subseteq{S}\)的仿射集S,都有\(aff \,\,C\subseteq S\)。
3. 仿射维度(Affine Dimension)&相对内部(Relative Interior)
仿射维度
将仿射包的维度定义为仿射集\(C\)的维度。
相对内部
用\(relint \,\,C\)表示,简单理解就是闭仿射包(closure C, 用\(cl\,\,C\)表示) 的内部即为相对内部。即需要满足如下:
\[relint\,\,C=\{x∈C|B(x,r)\bigcap aff \,\,C\subseteq{C} \,\,\,\,for \,\,some\,\,r>0\}\]
上面等式中的\(B(x,r)=\{y| \|y-x\|≤r\}\)表示相对边界(relative boundry),用\(cl\,\,C /\ relint\,\,C\)表示,x可以理解为球的中心点,r表示半径

4. 凸集(Convex sets)
凸集定义:
如果集合\(C\)中的任意两点之间的线段(上的所有点)在\(C\)上,也就是说如果\(\forall{x_1,x_2∈C},0≤\theta≤1\),都有\(\theta x_1+(1-\theta)x_2∈C\),那么集合\(C\)为凸集。
注意要区分凸集和仿射集定义,前者是线段,后者是直线。
和affine hull类似,凸集也有convex hull (conv C) 凸包,其定义如下:
\[conv\,\,C=\{\theta_1x_1+...+\theta_kx_k|x_i∈C,\theta_i≥0,i=1,...,k,\theta_1+...=\theta_k=1\}\]

5. 圆锥(Cones)&凸锥(Convex cones)
Cone的定义
一个集合\(C\)中任意元素\(x\),如果满足\(\theta x∈C,\theta≥0\),则称\(C\)为cone或者nonnegative homogeneous(非负齐次)
Convex Cone定义
如果一个集合\(C\)是凸的,而且是一个cone,也就是说如果\(\forall{x_1,x_2∈C},\theta_1,\theta_2≥0\),都有\[\theta_1 x_1+\theta_2 x_2∈C \tag{5.1}\],那么我们称\(C\)为凸锥(convex cone)
由上面公式(5.1)可知该形式的点在一个以0为顶点,经过\(x_1,x_2\)的扇形区域。如下图示

conic hull(锥包) 定义
集合\(C\)的conic hull是指所有点的conic combination的集合,即
\[\{\theta_1x_1+...+\theta_kx_k|x_i∈C,\theta_i≥0,i=1,...,k\}\]
6. 小结
在开始下一届之前有必要对本节内容做一下总结,以便有更清晰的理解。总结参考仿射集、凸集、仿射包、凸包。
- 仿射集(affine set)、凸集(convex set)
这两个概念是对集合本身性质的描述,先看他们的定义:
集合S是仿射的\(\Leftrightarrow\) 对任意\(x,y\in S, \theta \in R\),有\(\theta x+(1-\theta )y\in S\)
集合S是凸的\(\Leftrightarrow\) 对任意\(x,y\in S, 0\leq \theta \leq 1\),有\(\theta x+(1-\theta )y\in S\) - 仿射包(affine hull)、凸包(convex hull)
这两个概念是对已有集合生成新的集合的方法,同样看定义:
集合S的仿射包\(aff\,\,S = \left\{ \sum_{i}^{n}{\theta_{i} x_{i} } | x_{i}\in S, \sum_{i}^{n}{\theta_{i}}=1 \right\}\)
集合S的凸包\(conv\,\,S = \left\{ \sum_{i}^{n}{\theta_{i} x_{i} } | x_{i}\in S, \theta _{i}\geq 0 , \sum_{i}^{n}{\theta_{i}}=1 \right\}\)
根据上面的总结可以知道相对于凸集的定义,仿射集要求更严苛,因为凸集只需要是线段即可(因为\(0\leq \theta \leq 1\)),而仿射集需要是直线。注意这里只是说仿射集要求更加严苛,但是条件更严苛并不等同于仿射集就是凸集的子集。
为了更好地理解他们之间的关系下面举一个例子,以一维空间为例:
假设这条直线用\(L:y=0\)表示。我们可以知道\(L\)即为仿射集,因为该直线上任意两点组成的直线依旧在\(L\)上。
那么凸集呢?我们可以看到下图中\(L_1,L_2,L\)都是凸集。

此时你还会讨论仿射集和凸集哪一个是是子集的问题吗?因为谁也不是谁的子集,但是以上面的例子为例,如果你只取其中的一个凸集\(L_2\),那么很显然凸集\(L_2\)是仿射集\(L\)的子集。但是在没有特定说明的前提下讨论谁是谁的子集是不准确的。
另外需要知道的是仿射集其实也是凸集,但是凸集不一定是仿射集。(这里面有概念之间的嵌套,需要好好理解定义)
另外子集的问题,其实准确的说是在讨论仿射包和凸包之间的关系,由上面的例子可以知道包含所有仿射集的集合是包含所有凸集的集合的子集,因为一个仿射集是一个凸集。
【Convex Optimization (by Boyd) 学习笔记】Chapter 2 - Convex sets(1) 仿射集&凸集的更多相关文章
- 【Convex Optimization (by Boyd) 学习笔记】Chapter 1 - Mathematical Optimization
以下笔记参考自Boyd老师的教材[Convex Optimization]. I. Mathematical Optimization 1.1 定义 数学优化问题(Mathematical Optim ...
- 神经网络与深度学习笔记 Chapter 1.
转载请注明出处:http://www.cnblogs.com/zhangcaiwang/p/6875533.html sigmoid neuron 微小的输入变化导致微小的输出变化,这种特性将会使得学 ...
- 神经网络与深度学习笔记 Chapter 6之卷积神经网络
深度学习 Introducing convolutional networks:卷积神经网络介绍 卷积神经网络中有三个基本的概念:局部感受野(local receptive fields), 共享权重 ...
- 神经网络与深度学习笔记 Chapter 3.
交叉熵 交叉熵是用于解决使用二次代价函数时当单个神经元接近饱和的时候对权重和bias权重学习的影响.这个公式可以看出,当神经元饱和的时候,sigma的偏导接近于0,w的学习也会变小.但是应用交叉熵作为 ...
- 神经网络与深度学习笔记 Chapter 2.
转载请注明出处http://www.cnblogs.com/zhangcaiwang/p/6886037.html 以前都没有正儿八经地看过英文类文档,神经网络方面又没啥基础,结果第一章就花费了我将近 ...
- Python学习笔记–Chapter 2
1.字符串中添加制表符,可使用字符组合\t 2.字符串中添加换行符,可使用字符组合\n 3.字符串\n\t可以换到下一行,并且在开头添加一个制表符. 4.删除末尾空白,使用方法rstrip() 5.删 ...
- Python学习笔记 chapter 2基础
程序输入 >>> print('%s is number %d'%('Python', 1))Python is number 1 输出重定向有问题(待定) 文本输入>> ...
- 蟒蛇书学习笔记——Chapter 09 Section 01 创建和使用类
9.1 创建和使用类 9.1.1 创建Dog类 根据Dog类创建的每个实例都将存储名字和年龄,我们赋予了每条小狗蹲下(sit( ))和打滚(roll_over( ))的能力: class Dog: ...
- CMU Convex Optimization(凸优化)笔记1--凸集和凸函数
CMU凸优化笔记--凸集和凸函数 结束了一段时间的学习任务,于是打算做个总结.主要内容都是基于CMU的Ryan Tibshirani开设的Convex Optimization课程做的笔记.这里只摘了 ...
随机推荐
- Spring Cloud Netflix Eureka: 多网卡环境下Eureka服务注册IP选择问题
https://blog.csdn.net/neosmith/article/details/53126924 通过源码可以看出,该工具类会获取所有网卡,依次进行遍历,取ip地址合理.索引值最小且不在 ...
- (BFS/DFS) leetcode 200. Number of Islands
Given a 2d grid map of '1's (land) and '0's (water), count the number of islands. An island is surro ...
- java中一维数组的定义和遍历
public class ArrayDemo1{ public static void main(String[] args){ //1 定义数组 并同时赋值 int[] arr = new int[ ...
- Linux中rpm的使用
1.安装 rpm -i 需要安装的包文件名 举例如下: rpm -i example.rpm 安装 example.rpm 包: rpm -iv example.rpm 安装 example.rpm ...
- python如何直接控制鼠标键盘
一.简介 我们知道在windows下输入:win + r,会弹出下面的窗口,而在下面的窗口出现后我们接着按下esc键,下面的窗口会消失 现在设想我们想在python代码里控制键盘,想通过运行代码-&g ...
- JavaSE_坚持读源码_HashMap对象_put_Java1.7
当你往HashMap里面put时,你其实在干什么? /** * Associates the specified value with the specified key in this map. * ...
- C# enum、int、string三种类型互相转换
enum.int.string三种类型之间的互转 #代码: public enum Sex { Man=, Woman= } public static void enumConvert() { in ...
- Mac下显示网页全屏快捷键
control+command+F mac下谷歌浏览器全屏时隐藏头部:(隐藏标签页和地址栏) command+shift+B
- 【1】【leetcode-77】 组合
(典型,做过似曾相识但不熟悉,基本知道怎么做但调试了一个多小时各种错) 给定两个整数 n 和 k,返回 1 ... n 中所有可能的 k 个数的组合. 示例: 输入: n = 4, k = 2 输出: ...
- Java8中String.join方法
List names=new ArrayList<String>(); names.add("1"); names.add("2"); names. ...