# 什么是凸函数?

f(x)f(x)满足下面的关系就是凸的:

f(x1+x22)f(x1)+f(x2)2f\left(\frac{x_{1}+x_{2}}{2}\right) \leq \frac{f\left(x_{1}\right)+f\left(x_{2}\right)}{2}

参考

# 什么是上确界?

sup是supremum单词的缩写,意思是最小上界。inf是单词infimum的简写,意思是最大下界。 数学中,经常出现的表示方式是 lim sup 或者 lim inf,即找上界或者下界的极限。

sup{S}就是S的上确界,即S的所有上界组成的集合的最小元。

举例:

集合S=[0,1], sup{S} = 1, max{S} = 1;
集合S=[0,1), sup{S} = 1, max{S} 不存在。

参考1 参考2

# 什么是对偶空间?

揭示点线对偶的实际就是直线方程:

ax+by=Cax + by = C

可以写成(ff是一个线性函数):

f(x,y)=Cf(x,y) = C

为了更广泛地表示不同维度的情况,把x,yx,y写作 v\vec v:

f(v)=Cf(\vec v) = C

之前提到的“点动成线”实际上就是 v\vec v 在变化:

线动成点”则是ff在变化:

我们可以认为:

V=v1,v2,v3,V=\vec{v_{1}}, \vec{v_{2}},\vec{v_{3}}, \cdots

代表点, 而

V=f1,f2,f3,V^{*}=f_{1}, f_{2}, f_{3}, \cdots

代表线。 认为VV^{*}VV的对偶空间。

参考

# 什么是Dom f?

f:NNf: \mathbb{N} \rightarrow \mathbb{N}

表示: 函数ff的定义域是N\mathbb{N},(自然数), 而陪域也是N\mathbb{N}

f:xx2f: x \mapsto x^{2}

或者

f(x)=x2f(x) = x^2

表示: 函数ff的输入是xx,而返回值是x2x^2

Dom(f)Dom(f) 或者 DomfDom f的意思是: 函数ff的定义域;
Ran(f)Ran(f) 或者 RanfRan f的意思是: 函数ff的值域。

参考

# 什么是凸共轭?

凸共轭也叫作Fenchel Conjugate, 不过名字什么的都不是那么重要啦。我们说每个凸函数ff都有一个伙伴ff^*。它是这样定义的:

f(t)=maxxdom(f){xtf(x)}f^*(t) = \max _{x \in dom(f)}\{x t-f(x)\}

先不要放弃,再坚持一会儿。 举个例子,我们想要算f(t1)f^*(t_1)的值是多少, 我们是这样做的:

算个t时的凸共轭

  1. 带入t1t_1xtf(x)x t-f(x)得到xt1f(x)x t_1-f(x)
  2. 穷举所有的xx,得到下面一组数:
    • x1t1f(x1)x_1 t_1-f(x_1)
    • x2t1f(x2)x_2 t_1-f(x_2)
    • ...
    • xnt1f(xn)x_n t_1-f(x_n)
  3. 比较哪一组数最大(假设第一组数最大)
  4. 得到f(t1)=x1t1f(x1)f^*(t_1) = x_1 t_1-f(x_1)

对于tt取其他的值,重复上面的过程, 取完所有的tt就得到了函数f(t)f^*(t);

用上的方式找到f(t)f^*(t)貌似有些复杂,我们可以有更简单的方式找到f(t)f^*(t)

一种求凸共轭函数更好的方法

  1. 穷举所有的xx, 做xtf(x)x t-f(x)的函数图, 如图中黑线
  2. 给定一个tt,作t=t1t=t_1,交点最大值即为f(t1)f^*(t_1)
  3. tt从左到右移动,重复2步骤,交点就形成了红色的线。
  4. 红色的线就是f(t)f^*(t)

参考0: 李宏毅老师在GAN课程里面对凸共轭的解释
参考1
参考2

疑问

  • 凸函数才有凸共轭吗?
  • 应该是这样