对偶与Proximal

定理.conjugate subgradient theorem

Iudv60.png

这个定理比较重要的一点在于指导如何求解对偶梯度,例如对于y存在xf(y),则x需要满足

x,yf(x)=f(y)=maxsupx~(x~,yf(x~))

那么这时候我们只需要找到x~即可求得对偶函数的梯度。

无约束条件下的算法

BB Algorithm

(1)xk+1=xkαkf(xk)(2)αk=skTskskTyk

where

(3)sk=xkxk1(4)yk=f(xk)f(xk1)

Proximal Point Method

(5)xk+1=argminx{f(x)+12αkxxk}(6)=proxαkf(xk)

x进行求梯度

xk+1=xkαkf(xk+1)

Proximal Gradient Method

minf(x)+g(x)

其中f凸光滑,g凸不光滑。对f函数进行展开逼近

(7)xk+1=argminxf(xk)+f(xk),xxk+12αkxxk+g(x)(8)=proxαkg(xkαkf(xk))

对偶视角

考虑一个线性凸约束问题

(9)minxf(x)(10)s.t.Ax=b

构建Lagrange函数

L(x,y)=f(x)+y,Axb

d(y)=minxL(x,y),则对偶问题为

minyd(y)

对偶梯度上升

利用梯度的方法得到

yk+1=ykαkd(yk)

其中

(11)d(y)=minxL(x,y)(12)=minxf(x)+yTAxyTb(13)=[minx(yTAxf(x)]+yTb(14)=f(ATy)+yTb

(15)d(y)=Af(ATy)+b

利用共轭函数的定理需求共轭函数的梯度,则此时的x~需要满足

(16)x~=argmaxx~{ATy,x~f(x~)}(17)=argminx~{ATy,x~+f(x~)yTb}(18)=argminxL(x,y)

此时的更新方式为,也称对偶梯度上升

Dual Proximal point method

此时y的更新方式为

yk+1=ykαkd(yk+1)

15可知

(19)d(yk+1)=Af(ATyk+1)+b(20)=AargminxL(x,yk+1)+b

xk+1

(21)xk+1=argminxL(x,yk+1)(22)=argminxf(x)+yk+1,ATxb(23)=argminxf(x)+yk+αk(ATxb),ATxb(24)=argminxf(x)+yk,(ATxb)+α2ATxb2

xk+1为增广拉格朗日,更新方式为

Dual Proximal Gradient Method

考虑问题

(25)minxf(x)+g(z)(26)s.t.Ax+Bz=b

同样f凸光滑,g凸非光滑。Lagrange函数为

L(x,z)=f(x)+yTAxL1(x,y)+g(z)+yTBzyTbL2(z,y)

d1(y)=minxL1(x,y)d2(y)=minzL2(z,y)。对于对偶问题

minyd1(y)+d2(y)

利用Proximal Gradient Method更新y得到

yk+1=proxαkd2(ykαkd1(yk))

{(27)yk+1/2=ykαkd1(yk)(28)yk+1=proxαkd2(yk+1/2)

yk+1/2进行梯度下降,第二步进行proximal操作。其中

d1(yk)=Axk+1

xk+1=argminxL1(x,y)。第二步yk+1更新为

(29)yk+1=proxαkd2(yk+1/2)(30)=yk+1/2αkd2(yk+1)

d2(yk+1)=Bzk+1+b,而zk+1=argminzL2(z,yk+1/2)。最终的更新为

{(31)xk+1=argminxL1(x,yk)(32)yk+1/2=yk+αkAxk+1(33)zk+1=argminzL2(z,yk+1/2)(34)yk+1=yk+1/2+αk(Bzk+1b)

总结

我们只需要记住proximal操作是

xk+1=xkαf(xk+1)

而对于有约束的问题我们需要求解对偶变量及其梯度。当求对偶变量梯度的时候使用共轭次梯度定理,满足定理条件的primal variable就是其当前次梯度。

x=argmaxx{yTxf(x)}

参考资料

posted @   Neo_DH  阅读(146)  评论(0编辑  收藏  举报
编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示