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\)的子集。但是在没有特定说明的前提下讨论谁是谁的子集是不准确的。

另外需要知道的是仿射集其实也是凸集,但是凸集不一定是仿射集。(这里面有概念之间的嵌套,需要好好理解定义)

另外子集的问题,其实准确的说是在讨论仿射包和凸包之间的关系,由上面的例子可以知道包含所有仿射集的集合是包含所有凸集的集合的子集,因为一个仿射集是一个凸集。

MARSGGBO♥原创







2018-12-25

【Convex Optimization (by Boyd) 学习笔记】Chapter 2 - Convex sets(1) 仿射集&凸集的更多相关文章

  1. 【Convex Optimization (by Boyd) 学习笔记】Chapter 1 - Mathematical Optimization

    以下笔记参考自Boyd老师的教材[Convex Optimization]. I. Mathematical Optimization 1.1 定义 数学优化问题(Mathematical Optim ...

  2. 神经网络与深度学习笔记 Chapter 1.

    转载请注明出处:http://www.cnblogs.com/zhangcaiwang/p/6875533.html sigmoid neuron 微小的输入变化导致微小的输出变化,这种特性将会使得学 ...

  3. 神经网络与深度学习笔记 Chapter 6之卷积神经网络

    深度学习 Introducing convolutional networks:卷积神经网络介绍 卷积神经网络中有三个基本的概念:局部感受野(local receptive fields), 共享权重 ...

  4. 神经网络与深度学习笔记 Chapter 3.

    交叉熵 交叉熵是用于解决使用二次代价函数时当单个神经元接近饱和的时候对权重和bias权重学习的影响.这个公式可以看出,当神经元饱和的时候,sigma的偏导接近于0,w的学习也会变小.但是应用交叉熵作为 ...

  5. 神经网络与深度学习笔记 Chapter 2.

    转载请注明出处http://www.cnblogs.com/zhangcaiwang/p/6886037.html 以前都没有正儿八经地看过英文类文档,神经网络方面又没啥基础,结果第一章就花费了我将近 ...

  6. Python学习笔记–Chapter 2

    1.字符串中添加制表符,可使用字符组合\t 2.字符串中添加换行符,可使用字符组合\n 3.字符串\n\t可以换到下一行,并且在开头添加一个制表符. 4.删除末尾空白,使用方法rstrip() 5.删 ...

  7. Python学习笔记 chapter 2基础

    程序输入 >>> print('%s is number %d'%('Python', 1))Python is number 1 输出重定向有问题(待定) 文本输入>> ...

  8. 蟒蛇书学习笔记——Chapter 09 Section 01 创建和使用类

    9.1 创建和使用类 9.1.1 创建Dog类   根据Dog类创建的每个实例都将存储名字和年龄,我们赋予了每条小狗蹲下(sit( ))和打滚(roll_over( ))的能力: class Dog: ...

  9. CMU Convex Optimization(凸优化)笔记1--凸集和凸函数

    CMU凸优化笔记--凸集和凸函数 结束了一段时间的学习任务,于是打算做个总结.主要内容都是基于CMU的Ryan Tibshirani开设的Convex Optimization课程做的笔记.这里只摘了 ...

随机推荐

  1. Going Home POJ - 2195 (最小费用最大流)

    On a grid map there are n little men and n houses. In each unit time, every little man can move one ...

  2. (BFS 二叉树) leetcode 515. Find Largest Value in Each Tree Row

    You need to find the largest value in each row of a binary tree. Example: Input: 1 / \ 3 2 / \ \ 5 3 ...

  3. Vue.js 条件与循环

    条件判断: v-if: 条件判断使用 v-if 指令: v-else-if:(其实和Java,c,js的语法差不多) v-show:

  4. bzoj4326 树链剖分 + 线段树 // 二分 lca + 树上差分

    https://www.lydsy.com/JudgeOnline/problem.php?id=4326 题意:N个点的树上给M条树链,问去掉一条边的权值之后所有树链长度和的最大值最小是多少. 首先 ...

  5. maven-compiler-plugin报错

    [INFO] Scanning for projects... [INFO] [INFO] --------------------------< cn.x:credittest >--- ...

  6. maven依赖包下载地址

    http://maven.org http://mvnrepository.com/

  7. ipv4转化为ipv6

    十進制轉換成十六進位 IPV6為十六進位,所以十進制轉換成十六進位192=c0 168=a8192.168.1.1 轉成 16 進制為 c0.a8.01.01可以使用 Windows 工程版或是程式設 ...

  8. CrawlSpiders模块的使用

    创建文件模板 scrapy genspider -t crawl tencent tencent.com CrawlSpiders就是为爬取整站孕育而生的,我们以前是分页下一页,然后再yied.这样太 ...

  9. springMVC的参数检验

    先说应用场景,比如说前台传来一个参数,我们肯定得在后台判断一下,比如id不能为空了,电话号码不能少于11位了等等.如果在service层一个一个判断岂不是要累死个人.代码也不简洁,这时候我们肯定会想到 ...

  10. Linux记录-shell获取hdfs used使用

    #!/bin/bash export JAVA_HOME=/app/jdk/jdk1.8.0_92 export HADOOP_HOME=/app/hadoop export HADOOP_CONF_ ...