凸优化学习
今天依然是保持函数凸性的操作。
学习笔记
一、透视函数 Perspective function
凸集经过透视函数变换仍然是凸集。
形如:
p
(
z
,
t
)
=
z
t
dom
f
=
R
n
×
R
+
+
z
∈
R
n
t
∈
R
+
+
p(z,t)=\frac{z}{t}\ \ \ \ \text{dom}f=R^n×R_{++}\ \ z \in R^n\ \ t\in R_{++}
p(z,t)=tz domf=Rn×R++ z∈Rn t∈R++
其中,
t
t
t是
n
n
n维向量中的最后一个元素。
透视函数可以这么理解,它实际上就是将所有分量除以最后一个分量,然后再去掉最后一个分量,以达到降维的目的。形象点理解,有点像从高维空间透过这个函数降下在低维空间的投影。
例1:
考虑一个二维函数,有透视函数 p ( x 1 , x 2 ) p(x_1,x_2) p(x1,x2)对于 ( x 1 , x 2 ) → \overrightarrow{(x_1,x_2)} (x1,x2)这个二维向量,在 x 2 = − 1 x_2=-1 x2=−1上的透视为 ( − x 1 x 2 , − 1 ) (-\frac{x_1}{x_2},-1) (−x2x1,−1),失去了 x 2 x_2 x2这一维。
例2:
考虑
R
n
+
1
R^{n+1}
Rn+1有向线段
θ
x
+
(
1
−
θ
)
y
\theta x+(1-\theta)y
θx+(1−θ)y其中
0
≤
θ
≤
1
x
=
(
x
~
,
x
n
+
1
)
x
~
∈
R
n
x
n
+
1
∈
R
+
+
y
=
(
y
~
,
y
n
+
1
)
y
~
∈
R
n
y
n
+
1
∈
R
+
+
0\le\theta \le 1\\ x=(\widetilde{x},x_{n+1}) \ \ \widetilde{x}\in R^n \ \ x_{n+1}\in R_{++}\\ y=(\widetilde{y},y_{n+1}) \ \ \widetilde{y}\in R^n \ \ y_{n+1}\in R_{++}
0≤θ≤1x=(x
,xn+1) x
∈Rn xn+1∈R++y=(y
,yn+1) y
∈Rn yn+1∈R++
结论:
任意线段的透视仍然是线段。
例3:
任意凸集的反透视函数映射仍是凸集。
反透视函数,形如:
p
−
1
(
c
)
=
{
(
x
,
t
)
∈
R
n
+
1
∣
x
t
∈
c
,
t
>
0
}
p^{-1}(c)=\lbrace (x,t) \in R^{n+1}\mid \frac{x}{t}\in c,t>0\rbrace
p−1(c)={(x,t)∈Rn+1∣tx∈c,t>0}
二、线性分数函数变化后也是凸。
可以理解为先仿射,再透视,不改变凸性。
线性分数函数,形如:
g
(
x
)
=
[
A
C
T
]
x
+
[
b
d
]
A
∈
R
m
×
n
b
∈
R
m
c
∈
R
n
d
∈
R
g(x)=\begin{bmatrix} A\\ C^T \end{bmatrix}x+ \begin{bmatrix} b\\ d \end{bmatrix}\\ A\in R^{m×n} \ \ b\in R^m \ \ c\in R^n \ \ d\in R
g(x)=[ACT]x+[bd]A∈Rm×n b∈Rm c∈Rn d∈R
其中:
g
=
R
n
→
R
n
+
1
g=R^n \rightarrow R^{n+1}
g=Rn→Rn+1
为仿射映射。
个人思考
这两天所学多是凸集保持凸性的操作,实质上是很重要的,因为凸问题本身要求可行解集是凸集。我们在进行可行解集处理的时候一定要注意不要改变本身的凸性。