共轭函数两个性质的证明

学习机器学习的时候有涉及到共轭函数(也叫对偶函数),这边文章总结一下共轭函数的学习

共轭函数的定义:对于函数 f(x)  其定义如下:

f^{*}(t)=\max_{x\in dom(f)}\{xt-f(x)\} \rightline{\text(1)}

dom(f)表示函数f(x)的定义域,可以这样理解这个函数:首先它是关于t的函数,给定一个t 值时,关于x的函数xt-f(x) 在定义域上的最大值,即f^{*}(t) 对应的值

共轭函数在支持向量机的数学理论证明有涉及过,在最近火的不行的Gan生成对抗神经网络进阶版本的数学推理中也发挥着神奇的作用(听说待学习)

因为它有两个非常好的性质:

1. 无论f(x)是否是凸函数,其共轭函数都是凸函数

2. 凸函数的共轭函数的共轭函数是它自己

首先解释一下凸函数,机器学习里面的的凸函数和以前高中数学学到的凸函数有点不一样,在机器学习里面 y=x^{2}是凸函数,y=-x^{2}是凹函数,简单来说,机器学习里面的凸函数有下面的性质(也是凸函数的定义之一):

f(\theta x_{1}+(1-\theta)x_{2})\leq \theta f(x_{1})+(1-\theta))f(x_{2}))(\1\geq \theta\geq 0) \rightline{\text(2)}

可以简单的从下图理解:(f(x)=x^2, x_{1}=-5 ,x_{2}=8, \theta=8/13

共轭函数两个性质的证明_第1张图片

 

 

现在来证明共轭函数第一条性质,即:

1. 无论f(x)是否是凸函数,其共轭函数都是凸函数

等价要证明:

f^{*}(\theta t_{1}+(1-\theta) t_{2})\leq \theta f^{*}(t_{1})+(1-\theta)f^{*}(t_{2}) \rightline{\text(3)}

代入共轭函数的定义,上述不等式等价于:

\max_{x \in dom(f)}\{(\theta t_{1}+(1-\theta) t_{2})x-f(x)\} \leq \\ \theta\max_{x \in dom(f)}\{t_{1}x-f(x)\}+(1-\theta)\max_{x \in dom(f)}\{t_{2}x-f(x)\} \rightline{\text(4)} 

上述不等式左边等价于:

\max_{x \in dom(f)}\{\theta (t_{1}x-f(x))+(1-\theta)( t_{2}x-f(x))\} \rightline{\text(5)}

假设在x_{0}出取到最大值,上式等于:

\theta (t_{1}x_{0}-f(x_{0}))+(1-\theta)( t_{2}x_{0}-f(x_{0})) \rightline{\text(6)}\theta (t_{1}x_{0}-f(x_{0})) \leq \max_{x \in dom(f)}\{\theta(t_{1}x-f(x))\} \rightline{\text(7)}(1-\theta)(t_{2}x_{0}-f(x_{0})) \leq \max_{x \in dom(f)}\{(1-\theta)(t_{2}x-f(x))\} \rightline{\text(8)}

\text(7)\text(8)相加,右边把\theta1-\thetamax里面提取出来,即等于公式\text(4)的右边,由此可证公式\text(3)

 

证明共轭函数的第二条性质,即:

2. 凸函数的共轭函数的共轭函数是它自己

函数 f(x)的共轭函数如下:

f^{*}(t)=\max_{x\in dom(f)}\{xt-f(x)\} \rightline{\text(10)}

由于f(x)是凸函数,给定t,关于x的函数xt-f(x)最大值在导数等于0的时候取得,(可以想象一下f(x)=x^{2}    t=1

即:

(xt-f(x))^{'}=0 \rightline{\text(11)}

t=f^{'}_{x}(x) \rightline{\text(12)}

即对于给定t, f^{'}_{x}(x)=t对于的 x 是 xt-f(x)的最大值,所以f^{*}(t)又可以写成:

f^{*}(t)=xt-f(x)| f^{'}_{x}(x)=t \rightline{\text(13)}

f^{*}(t)的共轭函数如下:

f^{**}(s)=\max_{t\in dom(f^{*})}\{ts-f^{*}(t)\} \rightline{\text(14)}

同理,对于给定的s(ts-f^{*}(t))^{'}_{t}=0 时,取最大值

(ts-f^{*}(t))^{'}_{t}=s-(f^{*}(t))^{'}_{t}=0 \rightline{\text(15)}

结合公式\text(13)(由于公式\text(12),x可以看成关于t的函数,根据复合函数求导和乘积求导法则,可以得到下面的等式):

s=(f^{*}(t))^{'}_{t}=x+tx^{'}_{t}-f^{'}_{x}(x)x^{'}_{t} \rightline{\text(16)}

代入公式\text(12),上述等式等价于:

s=(f^{*}(t))^{'}_{t}=x+tx^{'}_{t}-tx^{'}_{t}=x \rightline{\text(17)}

即对于给定的sx=s 时,ts-f^{*}(t) 取最大值,即:

f^{**}(s)=tx-f^{*}(t) \rightline{\text(18)}

代入 \text{(13)}

f^{**}(s)=tx-f^{*}(t)=tx-(xt-f(x))=f(x)=f(s) \rightline{\text(19)}

即f(x)的共轭函数的共轭函数是它自己

你可能感兴趣的:(机器学习)