• 矩阵分析与应用-5.3-共轭梯度与无约束最优化


    前言

    本文学习过程来源是《矩阵分析与应用-张贤达》一书. 可以通过 z-lib 下载.

    更加详细的内容可以跳转网址 https://zlearning.netlify.app/math/matrix/matrix-gradient.html

    一、标量函数的共轭梯度公式

    1. f ( x ) = c f(x) = c f(x)=c 为常数, 则共轭梯度 ∂ c ∂ x ∗ = 0 \frac{\partial c}{\partial x^*} = 0 xc=0

    2. 线性法则: 若 f ( x ) f(x) f(x) g ( x ) g(x) g(x) 分别是向量 x x x 的实值函数, c 1 c_1 c1 c 2 c_2 c2 为复常数, 则

    ∂ [ c 1 f ( x ) + c 2 g ( x ) ] ∂ x ∗ = c 1 ∂ f ( x ) ∂ x ∗ + c 2 ∂ g ( x ) ∂ x ∗ (1) \frac{\partial [c_1f(x) + c_2g(x)]}{\partial x^*} = c_1 \frac{\partial f(x)}{\partial x^*} + c_2 \frac{\partial g(x)}{\partial x^*} \tag{1} x[c1f(x)+c2g(x)]=c1xf(x)+c2xg(x)(1)

    1. 乘积法则

      • f ( x ) f(x) f(x) g ( x ) g(x) g(x) 都是向量 x x x 的实值函数, 则

      ∂ f ( x ) g ( x ) ∂ x ∗ = g ( x ) ∂ f ( x ) ∂ x ∗ + f ( x ) ∂ g ( x ) ∂ x ∗ (2) \frac{\partial f(x)g(x)}{\partial x^*} = g(x) \frac{\partial f(x)}{\partial x^*} + f(x) \frac{\partial g(x)}{\partial x^*} \tag{2} xf(x)g(x)=g(x)xf(x)+f(x)xg(x)(2)

      • f ( x ) f(x) f(x) , g ( x ) g(x) g(x) h ( x ) h(x) h(x) 都是向量 x x x 的实值函数, 则

      ∂ f ( x ) g ( x ) h ( x ) ∂ x ∗ = g ( x ) h ( x ) ∂ f ( x ) ∂ x ∗ + f ( x ) h ( x ) ∂ g ( x ) ∂ x ∗ + f ( x ) g ( x ) ∂ h ( x ) ∂ x ∗ (3) \frac{\partial f(x)g(x)h(x)}{\partial x^*} = g(x)h(x) \frac{\partial f(x)}{\partial x^*} + f(x)h(x) \frac{\partial g(x)}{\partial x^*} +f(x)g(x) \frac{\partial h(x)}{\partial x^*} \tag{3} xf(x)g(x)h(x)=g(x)h(x)xf(x)+f(x)h(x)xg(x)+f(x)g(x)xh(x)(3)

    2. 商法则: 若 g ( x ) ≠ 0 g(x) \neq 0 g(x)=0, 则

    ∂ f ( x ) / g ( x ) ∂ x ∗ = 1 g 2 ( x ) [ g ( x ) ∂ f ( x ) ∂ x ∗ − f ( x ) ∂ g ( x ) ∂ x ∗ ] (4) \frac{\partial f(x)/g(x)}{\partial x^*} = \frac{1}{{g^2}(x)}\Bigg [ g(x) \frac{\partial f(x)}{\partial x^*} - f(x) \frac{\partial g(x)}{\partial x^*}\Bigg ] \tag{4} xf(x)/g(x)=g2(x)1[g(x)xf(x)f(x)xg(x)](4)

    1. 链式法则: 若 y ( x ) y(x) y(x) x x x 的复向量值函数, 则

      ∂ f ( y ( x ) ) ∂ x ∗ = ∂ [ y ( x ) ] T ∂ x ∗ ∂ f ( y ) ∂ y (5) \frac{\partial f(y(x))}{\partial x^*} = \frac{\partial [y(x)]^{\mathrm{T}}}{\partial x^*} \frac{\partial f(y)}{\partial y} \tag{5} xf(y(x))=x[y(x)]Tyf(y)(5)

      式子中, ∂ [ y ( x ) ] T ∂ x ∗ \frac{\partial [y(x)]^{\mathrm{T}}}{\partial x^*} x[y(x)]T n × n n \times n n×n 矩阵.

    2. n × 1 n \times 1 n×1 向量为 a a a x x x 无关的常数向量, 则

    ∂ a H x ∂ x ∗ = a , ∂ x H a ∂ x ∗ = a (6) \frac{\partial a^{\mathrm{H}}x}{\partial x^*} = a, \quad \frac{\partial x^{\mathrm{H}}a}{\partial x^*} = a \tag{6} xaHx=a,xxHa=a(6)

    ( 此处的第一个式子存疑, 应该是 a a a 而不是书上所写的 0 )

    1. A A A 是一个与向量 x x x 无关的矩阵, 则

    ∂ x H A x ∂ x = A H x ∗ , ∂ x H A x ∂ x ∗ = A x ∂ x H A y ∂ A = x ∗ y T , ∂ x H A x ∂ A = x ∗ x T (7)

    xHAxx=AHx,xHAxx=AxxHAyA=xyT,xHAxA=xxT
    \tag{7} xxHAx=AHx,xxHAx=AxAxHAy=xyT,AxHAx=xxT(7)

    二、例题解析

    常见的迹函数的共轭梯度的常用公式

    ∂ t r ( y x H ) ∂ x ∗ = ∂ t r ( x H y ) ∂ x ∗ = y ∂ t r ( B A H ) ∂ A ∗ = ∂ t r ( A H B ) ∂ A ∗ = B ∂ t r ( A H ) ∂ A ∗ = I , ∂ t r ( A ) ∂ A ∗ = O ∂ t r ( A H W A ) ∂ A ∗ = W A , ∂ t r ( A W A H ) ∂ A ∗ = A W (8)

    tr(yxH)x=tr(xHy)x=ytr(BAH)A=tr(AHB)A=Btr(AH)A=I,tr(A)A=Otr(AHWA)A=WA,tr(AWAH)A=AW
    \tag{8} xtr(yxH)Atr(BAH)Atr(AH)Atr(AHWA)=xtr(xHy)=y=Atr(AHB)=B=I,Atr(A)=O=WA,Atr(AWAH)=AW(8)

    C D M A \mathrm{CDMA} CDMA 系统中, 仍然共有 K K K 个用户在通信, 但每个用户的扩频波形向量变成复向量 s k ( t ) s_k(t) sk(t), 接受信号向量 y y y 也为复向量. 此外, 设计多用户检测器 M M M 的目标函数变为

    J ( M ) = E { ∥ b − M y ∥ 2 2 } = t r ( c o v ( b − M y ) ) = t r ( I ) + t r ( M ( R A 2 R + σ 2 R ) M H ) − t r ( A R M H ) − t r ( M R A )

    J(M)=E{bMy22}=tr(cov(bMy))=tr(I)+tr(M(RA2R+σ2R)MH)tr(ARMH)tr(MRA)
    J(M)=E{bMy22}=tr(cov(bMy))=tr(I)+tr(M(RA2R+σ2R)MH)tr(ARMH)tr(MRA)

    利用迹函数的共轭梯度常用公式可得

    ∂ J ( M ) ∂ M ∗ = M ( R A 2 R + σ 2 R ) − A R \frac{\partial J(M)}{\partial M^*} = M(RA^2R + \sigma^2R) - AR MJ(M)=M(RA2R+σ2R)AR

    令其等于零, 并假定 R R R 非奇异, 就有

    M = A ( R A 2 + σ 2 I ) − 1 M = A(RA^2 + \sigma^2I)^{-1} M=A(RA2+σ2I)1

    三、总结

    我不知道为什么这本书上在表达共轭梯度公式的时候要在分母的地方用向量或者矩阵右上角添加一个星号来表示. 刚开始我就觉得这个是伴随矩阵, 但是实际运算的时候和伴随矩阵一点关系都没有. 之后恍然大悟, 原来是复共轭的符号.

    在符号表示这方面其实还是存在着很多坑.

  • 相关阅读:
    ClickHouse(05)ClickHouse数据类型详解
    供应链寒冬,看qlik如何为空客Airbus数智破局
    辅助驾驶功能开发-功能算法篇(1)-AEB-自车轨迹预测
    【无标题】加固替换Application学习笔记
    ConcurrentDictionary<T,V> 的这两个操作不是原子性的
    [数据结构] - 顺序表与链表详解
    Python提取ABAQUS结果数据
    .NET开源功能强大的串口调试工具
    【微信小程序入门到精通】— swiper 超详细的属性值讲解!确定不来看看?
    【WSN】无线传感器网络 X-Y 坐标到图形视图和位字符串前缀嵌入方法研究(Matlab代码实现)
  • 原文地址:https://blog.csdn.net/qq_44309220/article/details/125507268