深入理解共轭函数及相关性质解析
函数定义\color{orange}\textbf{函数定义}函数定义
共轭函数在凸优化中有着非常重要的作用,是理解对偶的必不可少的元素。在书中,它被定义为
f∗(y)=supx∈domf(yTx−f(x))f^*(y)=\sup_{x\in dom f}(y^Tx-f(x))f∗(y)=x∈domfsup(yTx−f(x))
其中,f:Rn→R,f∗:Rn→Rf:R^n\rightarrow R,f^*:R^n\rightarrow Rf:Rn→R,f∗:Rn→R,f∗f^*f∗称为fff的共轭函数。也就是说,共轭函数是线性函数yTxy^TxyTx与原始函数f(x)f(x)f(x)的最大gap.
物理意义\color{orange}\textbf{物理意义}物理意义
我们使用书中的图作为例子,可以看到,当yyy固定的时候,yTxy^TxyTx就是一个线性函数,这是一个经过空间原点,斜率为yyy的线(二维空间),此时对于每一个xxx,yTxy^TxyTx有一个值,f(x)f(x)f(x)也有一个值,共轭函数希望最大化前者减去后者的差。那么我们对上面的函数求一阶导数,就得到了f′(x)=yf'(x)=yf′(x)=y,即在该点,f(x)f(x)f(x)的斜率等于yyy,也就是说我们将yTxy^TxyTx向下平移到一个不能再平移的位置,该位置所对应的xxx即我们要的变量值。
重要性质\color{orange}\textbf{重要性质}重要性质
共轭函数之所以重要,而且被很多理论广泛使用,是因为他有几条很好的性质
- f(x)f(x)f(x)如果可微,则f∗(y)f^*(y)f∗(y)所对应的xxx必是f′(x)=yf'(x)=yf′(x)=y的一点。
解释:我们对共轭函数的任意一个自变量yyy,都会找到一个或者多个xxx使得共轭函数的取值最大,而上面我们已经求导了,只有在f′(x)=yf'(x)=yf′(x)=y时,该函数的值最大。 - 无论f(x)f(x)f(x)是不是凸函数,他的共轭函数f∗(y)f^*(y)f∗(y)一定都是凸函数。
解释: 这是一个非常神奇而且重要的性质,给定一个任意的函数,我们都可以使用共轭创造一个凸函数。为什么他的共轭函数一定是凸函数呢?我们简单进行分析:对于f∗(y)=supx∈domf(yTx−f(x))f^*(y)=\sup_{x\in dom f}(y^Tx-f(x))f∗(y)=supx∈domf(yTx−f(x)),这是一个关于yyy的线性函数(第一项是线性,第二项无关),线性函数是凸函数唔注意!,那么我们有很多个xxx,每个xxx都对应一个凸函数(yTx−f(x))(y^Tx-f(x))(yTx−f(x)),那么,f∗(y)f^*(y)f∗(y)即一系列凸函数的逐点上确界,这是一个保凸运算,即f∗(y)f^*(y)f∗(y)一定为凸。 - 对于复数而言,复数的共轭的共轭是他自身。但是对于函数而言是不一定的。因为函数的共轭一定是凸函数,那么函数的共轭的共轭一定也是凸函数。如果原函数不是凸函数,那么二者肯定不一样,否则如果原函数是凸的而且是闭函数,那么共轭的共轭确实等于它自身。
SimpleExamples\color{orange}\textbf{Simple Examples}Simple Examples
f(x)=ax+b,domf=R\color{grey}\mathbf{f(x)=ax+b,dom f=R}f(x)=ax+b,domf=R
此时共轭函数为:
f(x)=−logx,domf=R++\color{grey}\mathbf{f(x)=-\log x,dom f=R_{++}}f(x)=−logx,domf=R++
此时,f∗(y)=supx∈domf(yx+logx)f^*(y)=\sup_{x\in dom f}(yx+\log x)f∗(y)=supx∈domf(yx+logx),根据第一条性质f′(x)=yf'(x)=yf′(x)=y得到x=−1/yx=-1/yx=−1/y,因为我们有x>0x>0x>0的约束,将这个结果带回原方程,我们得到:
注意y>0y>0y>0的时候因为x>0x>0x>0,所以yxyxyx我们总能取到无穷,y==0y==0y==0的时候,logx\log xlogx为无穷,所以y≥0y\geq 0y≥0函数值取正无穷。
f(x)=12xTQx,Q∈S++n,domf=Rn\color{grey}\mathbf{f(x)=\frac{1}{2}x^TQx,Q\in S^n_{++},dom f=R^n}f(x)=21xTQx,Q∈S++n,domf=Rn
此时,f∗(y)=supx∈domf(yTx−12xTQx)f^*(y)=\sup_{x\in dom f}(y^Tx-\frac{1}{2}x^TQx)f∗(y)=supx∈domf(yTx−21xTQx),同样我们可以使用第一条性质,他对xxx求偏导得到的结果是y−Qx=0y-Qx=0y−Qx=0(注意不是yTy^TyT)。正定矩阵的奇异值等于特征值全部大于0,因此Q是可逆的,那么x=Q−1yx=Q^{-1}yx=Q−1y,将xxx带会原方程得到:
f∗(y)=yTQ−1y−12yT(Q−1)TyQQ−1y\mathbf\color{red}f^*(y)=y^TQ^{-1}y-\frac{1}{2}y^T(Q^{-1})^TyQQ^{-1}yf∗(y)=yTQ−1y−21yT(Q−1)TyQQ−1y,again,Q是对称的,那么稍微进行化简我们就得到了12yTQ−1y\mathbf\color{red}\frac{1}{2}y^TQ^{-1}y21yTQ−1y。也就是把xxx换成yyy,将QQQ换成了Q−1Q^{-1}Q−1。
参考blog\color{orange}\textbf{参考blog}参考blog
https://blog.csdn.net/shenxiaolu1984/article/details/78194053
https://blog.csdn.net/xiaocj423/article/details/50831001?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1
深入理解共轭函数及相关性质解析相关推荐
- JavaScript面向对象——封装及相关原理解析
<JavaScript设计模式>面向对象编程--封装及相关原理解析 说明:本人编写js习惯不写分号:文章中的源码可根据自己的编程风格修改. 面向对象 面向对象编程就是将你的需求抽象成一个对 ...
- 共轭函数两个性质的证明
学习机器学习的时候有涉及到共轭函数(也叫对偶函数),这边文章总结一下共轭函数的学习 共轭函数的定义:对于函数 其定义如下: 表示函数的定义域,可以这样理解这个函数:首先它是关于的函数,给定一个 值 ...
- 二叉树的相关性质及其前中后层序遍历实现
写在前面: 本文前面部分介绍相关概念,后面部分是程序. 点击下面链接查看更多! 点击此处发现更多 一.二叉树的概念 1.1 相关术语 ①结点:包含一个数据元素及若干指向子树分支的信息 . ②结点的度: ...
- Java压缩技术(五) GZIP相关——浏览器解析
转载自 Java压缩技术(五) GZIP相关--浏览器解析 GZIP本身就是一种网络流压缩算法,而且应用相当广泛.如果网络访问过程中,其数据流较大,势必降低网络访问效率,此时就需要考虑使用压缩!当 ...
- [医疗开发]医疗相关名词解析
医疗相关名词解析 罗朝辉 (http://www.cnblogs.com/kesalin/) 本文遵循"署名-非商业用途-保持一致"创作公用协议 HIS Hospital Info ...
- 【学习】PCF8563芯片资料和相关功能解析
[学习]PCF8563芯片资料和相关功能解析 PCF8563芯片是以I2C通讯方式的实时时钟/日历芯片.它提供一个可编程时钟输出,一个中断输出和掉电检测器,所有的地址和数据通过 I2C 总线接口串行传 ...
- Leetcode中二叉树中的搜索相关题目解析以及java实现
Leetcode中二叉树中的搜索相关题目解析以及java实现 这一类的题目其实稍微有一些杂,基本就是在二叉树中寻找一些或者某个特定值,题目比较多,我们会通过两道三篇来总结,不过总体来说也基本上就是BF ...
- linux中systemctl命令理解以及.service文件参数解析
linux中systemctl命令理解以及.service文件参数解析 一.systemctl介绍 二.利用.service文件管理程序的步骤 三..service配置文件参数详解 1. Unit 2 ...
- python分析数据的相关性质_理解数据的性质_Python数据分析实战应用_数据挖掘与分析视频-51CTO学院...
为什么学Python: 重要:数据分析是职业技能必备,Python是大数据分析** 趋势:Python是目前非常火的编程语言,使用人多 好学:学习简单,容易上手,使用灵活,可扩展强 **:会Pytho ...
最新文章
- Go 学习笔记(74)— Go 标准库之 unsafe
- iOS架构-静态库.framework(引用第三方SDK、开源库、资源包)(9)
- 富交互Web应用中的撤销和前进
- js生日计算年龄_生男生女计算公式超准
- php数组转换编码,PHP数组转换编码类
- python之attrgetter函数对对象排序
- 天梯赛L2-014 列车调度(set和简单贪心)
- Java 蓝桥杯 判断闰年
- android 声卡音频策略小记
- 自动控制原理学习笔记(五)
- 互联网热门词汇搞笑来袭
- wingdings字体符号在哪_Wingdings特殊字符及符號對照表 | 學步園
- 通俗的解释云计算 公有云 私有云 混合云
- 巧用头条号及悟空问答引流
- 【FI】SAP 付款及清账
- 邮箱邮件收发件服务器怎么设置?
- 模拟单片计算机软件,用单片机来模拟ps2电脑键盘的程序
- selenium不能使用phantomjs后,chrome无头浏览器和fixfox无头浏览器示例
- 罗定c语言,罗定学c语言编程,罗定学c语言编程培训,罗定学c语言编程一般怎么收费...
- 树莓派CM4 USB不能使用