函数定义\color{orange}\textbf{函数定义}函数定义
共轭函数在凸优化中有着非常重要的作用,是理解对偶的必不可少的元素。在书中,它被定义为
f∗(y)=sup⁡x∈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{重要性质}重要性质
共轭函数之所以重要,而且被很多理论广泛使用,是因为他有几条很好的性质

  1. 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时,该函数的值最大。
  2. 无论f(x)f(x)f(x)是不是凸函数,他的共轭函数f∗(y)f^*(y)f∗(y)一定都是凸函数。
    解释: 这是一个非常神奇而且重要的性质,给定一个任意的函数,我们都可以使用共轭创造一个凸函数。为什么他的共轭函数一定是凸函数呢?我们简单进行分析:对于f∗(y)=sup⁡x∈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)一定为凸。
  3. 对于复数而言,复数的共轭的共轭是他自身。但是对于函数而言是不一定的。因为函数的共轭一定是凸函数,那么函数的共轭的共轭一定也是凸函数。如果原函数不是凸函数,那么二者肯定不一样,否则如果原函数是凸的而且是闭函数,那么共轭的共轭确实等于它自身。

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)=−log⁡x,domf=R++\color{grey}\mathbf{f(x)=-\log x,dom f=R_{++}}f(x)=−logx,domf=R++​
此时,f∗(y)=sup⁡x∈domf(yx+log⁡x)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的时候,log⁡x\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)=21​xTQx,Q∈S++n​,domf=Rn
此时,f∗(y)=sup⁡x∈domf(yTx−12xTQx)f^*(y)=\sup_{x\in dom f}(y^Tx-\frac{1}{2}x^TQx)f∗(y)=supx∈domf​(yTx−21​xTQx),同样我们可以使用第一条性质,他对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−21​yT(Q−1)TyQQ−1y,again,Q是对称的,那么稍微进行化简我们就得到了12yTQ−1y\mathbf\color{red}\frac{1}{2}y^TQ^{-1}y21​yTQ−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

深入理解共轭函数及相关性质解析相关推荐

  1. JavaScript面向对象——封装及相关原理解析

    <JavaScript设计模式>面向对象编程--封装及相关原理解析 说明:本人编写js习惯不写分号:文章中的源码可根据自己的编程风格修改. 面向对象 面向对象编程就是将你的需求抽象成一个对 ...

  2. 共轭函数两个性质的证明

    学习机器学习的时候有涉及到共轭函数(也叫对偶函数),这边文章总结一下共轭函数的学习 共轭函数的定义:对于函数   其定义如下: 表示函数的定义域,可以这样理解这个函数:首先它是关于的函数,给定一个 值 ...

  3. 二叉树的相关性质及其前中后层序遍历实现

    写在前面: 本文前面部分介绍相关概念,后面部分是程序. 点击下面链接查看更多! 点击此处发现更多 一.二叉树的概念 1.1 相关术语 ①结点:包含一个数据元素及若干指向子树分支的信息 . ②结点的度: ...

  4. Java压缩技术(五) GZIP相关——浏览器解析

    转载自   Java压缩技术(五) GZIP相关--浏览器解析 GZIP本身就是一种网络流压缩算法,而且应用相当广泛.如果网络访问过程中,其数据流较大,势必降低网络访问效率,此时就需要考虑使用压缩!当 ...

  5. [医疗开发]医疗相关名词解析

    医疗相关名词解析 罗朝辉 (http://www.cnblogs.com/kesalin/) 本文遵循"署名-非商业用途-保持一致"创作公用协议 HIS Hospital Info ...

  6. 【学习】PCF8563芯片资料和相关功能解析

    [学习]PCF8563芯片资料和相关功能解析 PCF8563芯片是以I2C通讯方式的实时时钟/日历芯片.它提供一个可编程时钟输出,一个中断输出和掉电检测器,所有的地址和数据通过 I2C 总线接口串行传 ...

  7. Leetcode中二叉树中的搜索相关题目解析以及java实现

    Leetcode中二叉树中的搜索相关题目解析以及java实现 这一类的题目其实稍微有一些杂,基本就是在二叉树中寻找一些或者某个特定值,题目比较多,我们会通过两道三篇来总结,不过总体来说也基本上就是BF ...

  8. linux中systemctl命令理解以及.service文件参数解析

    linux中systemctl命令理解以及.service文件参数解析 一.systemctl介绍 二.利用.service文件管理程序的步骤 三..service配置文件参数详解 1. Unit 2 ...

  9. python分析数据的相关性质_理解数据的性质_Python数据分析实战应用_数据挖掘与分析视频-51CTO学院...

    为什么学Python: 重要:数据分析是职业技能必备,Python是大数据分析** 趋势:Python是目前非常火的编程语言,使用人多 好学:学习简单,容易上手,使用灵活,可扩展强 **:会Pytho ...

最新文章

  1. Go 学习笔记(74)— Go 标准库之 unsafe
  2. iOS架构-静态库.framework(引用第三方SDK、开源库、资源包)(9)
  3. 富交互Web应用中的撤销和前进
  4. js生日计算年龄_生男生女计算公式超准
  5. php数组转换编码,PHP数组转换编码类
  6. python之attrgetter函数对对象排序
  7. 天梯赛L2-014 列车调度(set和简单贪心)
  8. Java 蓝桥杯 判断闰年
  9. android 声卡音频策略小记
  10. 自动控制原理学习笔记(五)
  11. 互联网热门词汇搞笑来袭
  12. wingdings字体符号在哪_Wingdings特殊字符及符號對照表 | 學步園
  13. 通俗的解释云计算 公有云 私有云 混合云
  14. 巧用头条号及悟空问答引流
  15. 【FI】SAP 付款及清账
  16. 邮箱邮件收发件服务器怎么设置?
  17. 模拟单片计算机软件,用单片机来模拟ps2电脑键盘的程序
  18. selenium不能使用phantomjs后,chrome无头浏览器和fixfox无头浏览器示例
  19. 罗定c语言,罗定学c语言编程,罗定学c语言编程培训,罗定学c语言编程一般怎么收费...
  20. 树莓派CM4 USB不能使用

热门文章

  1. 如何锻炼深入思考能力
  2. java实现excel导出功能
  3. 硬路由、软路由、主路由、旁路由对比分析
  4. java清空购物车方法_Javaweb网上商城项目实战(21)删除和清空购物车
  5. 全球芯片短缺可能很快变成供过于求的危机
  6. switch 求分段函数
  7. 初始化失败_Destroying singletons
  8. 多线程在单核cpu与多核cpu下如何工作
  9. Java后端开发需要掌握什么
  10. 阿里云账号登录名修改方法(图文详解)