【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课程做的笔记.这里只摘了 ...
随机推荐
- css 中 position属性
position属性详解 文档流 1.html中的布局方式分为三种: 标准流(顺序布局):因为html中的元素大体可以分为两大类(a:块级元素:div .H1-H6. table表格 有序级无序列表 ...
- M1-Flask-Day4
今日内容概要: 1.git使用 2.redis基本操作 3.celery应用 4.在flask中使用celery 5.saltstack的基本使用 基础回顾: 1.关于FLASK -基本使用 路由 视 ...
- mysql执行update报错 Err] 1055 - 'information_schema.PROFILING.SEQ' isn't in GROUP BY
mysql执行update报错 Err] 1055 - 'information_schema.PROFILING.SEQ' isn't in GROUP BY 今天开发的同事发来如下错误信息,最最简 ...
- 简单BootLoader
目录 简单BootLoader 概述 NOR与NAND启动 链接脚本规划 初始化规划 参数设置 title: 简单BootLoader tags: linux date: 2018-09-28 23: ...
- 网络编程基础【day10】:操作系统介绍
一.为什么要有操作系统 现代的计算机系统主要是由一个或者多个处理器,主存,硬盘,键盘,鼠标,显示器,打印机,网络接口及其他输入输出设备组成. 一般而言,现代计算机系统是一个复杂的系统. 其一:如果每位 ...
- Part-Nine
1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
- Shell编程(七)函数
1. 函数开始 #!/bin/bash foo() { echo "Function foo is called"; } echo "-=start=-" fo ...
- mysql语句之约束语句
约束语句: not null 非空 default 默认约束语句 unique 唯一约束语句 primary 主键 = 唯一 + 非空 auto_increment 自动增长 foreign key( ...
- 066、Weave如何与外网通信?(2019-04-09 周二)
参考https://www.cnblogs.com/CloudMan6/p/7500550.html Weave是一个私有的vxlan网络,默认与外部网络隔离.外部网络如何才能访问到weave中的 ...
- git多人协作式开发时分支管理策略
什么是 git-flow? Git Flow是一套使用Git进行源代码管理时的一套行为规范 主分支Master 首先,代码库应该有一个.且仅有一个主分支.所有提供给用户使用的正式版本,都在这个主分支上 ...