• (最优化理论与方法)第二章最优化所需基础知识-第六节1:凸函数前置基础知识


    一:梯度

    梯度:给定函数 f : R n → R f:\R^{n}\rightarrow \R f:RnR,且 f f f在点 x x x的一个领域内有意义,若存在向量 g ∈ R n g\in R^{n} gRn满足

    l i m p → 0 f ( x + p ) − f ( x ) − g T p ∣ ∣ p ∣ ∣ = 0 \mathop{lim} \limits_{p\rightarrow 0}\frac{f(x+p)-f(x)-g^{T}p}{||p||}=0 p0lim∣∣p∣∣f(x+p)f(x)gTp=0

    • ∣ ∣ . ∣ ∣ ||.|| ∣∣.∣∣是任意的向量范数

    就称 f f f x x x可微(Frechet可微)。此时 g g g称为 f f f在点 x x x处的梯度,记作 ∇ f ( x ) \nabla f(x) f(x)。如果对区域 D D D上每一个点 x x x都有 ∇ f ( x ) \nabla f(x) f(x)存在,则称 f f f D D D上可微

    f f f在点 x x x处的梯度存在,在定义式中令 p = ξ e i p=\xi e_{i} p=ξei e i e_{i} ei是第 i i i个分量为1的单位向量,可知 ∇ f ( x ) \nabla f(x) f(x)的第 i i i个分量为 ∂ f ( x ) ∂ x i \frac{\partial f(x)}{\partial x_{i}} xif(x),因此

    ∇ f ( x ) = ( ∂ f ( x ) ∂ x 1 , ∂ f ( x ) ∂ x 2 , . . . , ∂ f ( x ) ∂ x n ) T \nabla f(x)=(\frac{\partial f(x)}{\partial x_{1}}, \frac{\partial f(x)}{\partial x_{2}}, ...,\frac{\partial f(x)}{\partial x_{n}})^{T} f(x)=(x1f(x),x2f(x),...,xnf(x))T

    例如 f ( x , y ) = 1 x 2 + y 2 f(x, y)= \frac{1}{x^{2}+y^{2}} f(x,y)=x2+y21,则 ∇ 1 x 2 + y 2 = − 2 x ( x 2 + y 2 ) 2 i − 2 y ( x 2 + y 2 ) 2 j \nabla \frac{1}{x^{2}+y^{2}}= -\frac{2x}{(x^{2}+y^{2})^{2}}i-\frac{2y}{(x^{2}+y^{2})^{2}}j x2+y21=(x2+y2)22xi(x2+y2)22yj

    二:海瑟矩阵

    海瑟矩阵:如果函数 f ( x ) : R n → R f(x):\R^{n}\rightarrow \R f(x):RnR x x x处的二阶偏导数 ∂ 2 f ( x ) ∂ x i ∂ x j ( i , j = 1 , 2 , . . . , n ) \frac{\partial^{2}f(x)}{\partial x_{i} \partial x_{j}}(i, j=1, 2,...,n) xixj2f(x)(i,j=1,2,...,n)都存在,则 f f f在点 x x x处的海瑟矩阵为

    • ∇ 2 f ( x ) \nabla^{2}f(x) 2f(x)在区域 D D D上的每个点 x x x处都存在时,则称 f f f D D D二阶可微
    • ∇ 2 f ( x ) \nabla^{2}f(x) 2f(x)在区域 D D D上还连续,则称 f f f D D D二阶连续可微,可以证明此时海瑟矩阵为对称矩阵

    在这里插入图片描述

    补充:Python中计算梯度和海瑟矩阵计算

    • 有关梯度、散度、旋度等计算可借助sympy库进行
    import numpy as np
    from sympy import *
    
    # 导数的计算
    x, f1 = symbols('x f1')  # 符号化
    f1 = ln(x) + sin(1/x)
    print('ln(x) + sin(1/x)的导数为:', f1.diff(x))
    print("-"*30)
    
    # 梯度的计算
    x1, x2, x3, f2 = symbols('x1, x2, x3, f2')  # 符号化
    f2 = 3*x1**2 + 2*x1*x2 + 2*x2*x3 + x3**2
    list1 = []
    list1.append(diff(f2, x1))
    list1.append(diff(f2, x2))
    list1.append(diff(f2, x3))
    list1 = np.array(list1)
    print('3*x1**2 + 2*x1*x2 + 2*x2*x3 + x3**2的梯度为:', list1)
    print("-"*30)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19

    在这里插入图片描述

    来一个复杂点的例子,计算 f ( x ) = l n ( e x 1 + e x 2 + e 3 ) f(x)=ln(e^{x1}+e^{x2}+e^{3}) f(x)=ln(ex1+ex2+e3) ∇ f ( x ) \nabla f(x) f(x) ∇ 2 f ( x ) \nabla^{2} f(x) 2f(x)

    # 梯度的计算
    x1, x2, x3, f1 = symbols('x1, x2, x3, f1')  # 符号化
    f1 = ln(exp(x1) + exp(x2) + exp(x3))
    print(f1)
    list1 = []
    list1.append(diff(f1, x1))
    list1.append(diff(f1, x2))
    list1.append(diff(f1, x3))
    list1 = np.array(list1)
    print('ln(exp(x1) + exp(x2) + exp(x3))的梯度为:', list1)
    print("-"*30)
    
    
    # 海瑟矩阵的计算(利用定义计算)
    vars = symbols('x1 x2, x3')
    f2 = sympify(['ln(exp(x1) + exp(x2) + exp(x3))'])
    H = zeros(len(vars), len(vars))
    for i, fi in enumerate(f2):
        for j, r in enumerate(vars):
            for k, s in enumerate(vars):
                H[j, k] = diff(diff(fi, r), s)
    
    H = np.array(H)
    print('ln(exp(x1) + exp(x2) + exp(x3))的海瑟矩阵为:')
    
    
    for i in range(3):
        for j in range(3):
            print(H[i][j])
        print()
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30

    ∇ f ( x ) = [ e x 1 e x 1 + e x 2 + e x 3 , e x 2 e x 1 + e x 2 + e x 3 , e x 3 e x 1 + e x 2 + e x 3 ] \nabla f(x)=[\frac{e^{x1}}{e^{x1}+e^{x2}+e^{x3}},\frac{e^{x2}}{e^{x1}+e^{x2}+e^{x3}},\frac{e^{x3}}{e^{x1}+e^{x2}+e^{x3}}] f(x)=[ex1+ex2+ex3ex1,ex1+ex2+ex3ex2,ex1+ex2+ex3ex3]

    在这里插入图片描述

    ∇ 2 f ( x ) = ( e x 1 e x 1 + e x 2 + e x 3 − e 2 x 1 ( e x 1 + e x 2 + e x 3 ) 2 − e x 1 ∗ e x 2 ( e x 1 + e x 2 + e x 3 ) 2 − e x 1 ∗ e x 3 ( e x 1 + e x 2 + e x 3 ) 2 − e x 1 ∗ e x 2 ( e x 1 + e x 2 + e x 3 ) 2 e x 2 e x 1 + e x 2 + e x 3 − e 2 x 2 ( e x 1 + e x 2 + e x 3 ) 2 − e x 2 ∗ e x 3 ( e x 1 + e x 2 + e x 3 ) 2 − e x 1 ∗ e x 3 ( e x 1 + e x 2 + e x 3 ) 2 − e x 2 ∗ e x 3 ( e x 1 + e x 2 + e x 3 ) 2 e x 3 e x 1 + e x 2 + e x 3 − e 2 x 3 ( e x 1 + e x 2 + e x 3 ) 2 ) \nabla^{2}f(x)=(ex1ex1+ex2+ex3e2x1(ex1+ex2+ex3)2ex1ex2(ex1+ex2+ex3)2ex1ex3(ex1+ex2+ex3)2ex1ex2(ex1+ex2+ex3)2ex2ex1+ex2+ex3e2x2(ex1+ex2+ex3)2ex2ex3(ex1+ex2+ex3)2ex1ex3(ex1+ex2+ex3)2ex2ex3(ex1+ex2+ex3)2ex3ex1+ex2+ex3e2x3(ex1+ex2+ex3)2) 2f(x)= ex1+ex2+ex3ex1(ex1+ex2+ex3)2e2x1(ex1+ex2+ex3)2ex1ex2(ex1+ex2+ex3)2ex1ex3(ex1+ex2+ex3)2ex1ex2ex1+ex2+ex3ex2(ex1+ex2+ex3)2e2x2(ex1+ex2+ex3)2ex2ex3(ex1+ex2+ex3)2ex1ex3(ex1+ex2+ex3)2ex2ex3ex1+ex2+ex3ex3(ex1+ex2+ex3)2e2x3

    在这里插入图片描述

    三:矩阵变量函数的导数

    多元函数梯度的定义可以推广到变量是矩阵的情形。对于以 m × n m×n m×n矩阵 X X X为自变量的函数 f ( X ) f(X) f(X),若存在矩阵 G ∈ R m × n G\in \R^{m×n} GRm×n满足

    l i m V → 0 f ( X + V ) − f ( X ) − < G , V > ∣ ∣ V ∣ ∣ = 0 \mathop{lim} \limits_{V\rightarrow 0}\frac{f(X+V)-f(X)-}{||V||}=0 V0lim∣∣V∣∣f(X+V)f(X)<G,V>=0

    • ∣ ∣ . ∣ ∣ ||.|| ∣∣.∣∣是任意矩阵范数

    就称矩阵变量函数 f f f X X XFrechet可微,称 G G G f f f在Frechet可微意义下的梯度,如果令 ∂ f ∂ x i j \frac{\partial f}{\partial x_{ij}} xijf表示 f f f关于 x i j x_{ij} xij的偏导数,则矩阵变量函数 f ( X ) f(X) f(X)的梯度为

    在这里插入图片描述

    (1)Gateaux可微

    但是在实际应用中,矩阵rechet可微的定义和使用往往比较繁琐为此我们需要介绍另外一种定义——Gateaux可微

    Gateaux可微:设 f ( X ) f(X) f(X)为矩阵变量函数,如果对任意方向 V ∈ R m × n V\in R^{m×n} VRm×n,存在矩阵 G ∈ R m × n G\in R^{m×n} GRm×n满足

    l i m t → 0 f ( X + t V ) − f ( X ) − < G , V > ∣ ∣ t ∣ ∣ = 0 \mathop{lim} \limits_{t\rightarrow 0}\frac{f(X+tV)-f(X)-}{||t||}=0 t0lim∣∣t∣∣f(X+tV)f(X)<G,V>=0

    则称 f f f关于 X X X是Gateaux可微的,满足上式的 G G G称为 f f f在X处在Gateaxu可微意义下的梯度

    • 可以证明,当 f f f是Frechet可微函数时, f f f也是Gateaux可微的,且这两种意义下的梯度相等

    (2)举例

    线性函数 f ( X ) = t r ( A X T B ) f(X)=tr(AX^{T}B) f(X)=tr(AXTB),其中 A ∈ R p × n A\in \R^{p×n} ARp×n B ∈ R m × p B\in \R^{m×p} BRm×p X ∈ R m × n X\in \R^{m×n} XRm×n。对任意方向 V ∈ R m × n V\in R^{m×n} VRm×n以及 t ∈ R t\in \R tR,有

    l i m t → 0 f ( X + t V ) − f ( X ) t = l i m t → 0 t r ( A ( X + t V ) T B ) − t r ( A X T B ) t = t r ( A V T B ) = < B A , V > \mathop{lim} \limits_{t\rightarrow 0}\frac{f(X+tV)-f(X)}{t}=\mathop{lim} \limits_{t\rightarrow 0}\frac{tr(A(X+tV)^{T}B)-tr(AX^{T}B)}{t}=tr(AV^{T}B)= t0limtf(X+tV)f(X)=t0limttr(A(X+tV)TB)tr(AXTB)=tr(AVTB)=<BA,V>

    因此, ∇ f ( X ) = B A \nabla f(X)=BA f(X)=BA

    二次函数 f ( X , Y ) = 1 2 ∣ ∣ X Y − A ∣ ∣ F 2 f(X, Y)=\frac{1}{2}||XY-A||^{2}_{F} f(X,Y)=21∣∣XYAF2,其中 ( X , Y ) ∈ R m × p × R p × n (X,Y)\in \R^{m×p}×\R^{p×n} (X,Y)Rm×p×Rp×n对变量 Y Y Y,取任意方向 V V V以及充分小的 t ∈ R t\in \R tR,有

    f ( X , Y + t V ) − f ( X , Y ) = t < V , X T ( X Y − A ) > + O ( t 2 ) f(X, Y+tV)-f(X, Y)=t+O(t^{2}) f(X,Y+tV)f(X,Y)=t<V,XT(XYA)>+O(t2)

    由定义可知 ∂ f ∂ Y = X T ( X Y − A ) \frac{\partial f}{\partial Y}=X^{T}(XY-A) Yf=XT(XYA),对变量 X X X,同理有 ∂ f ∂ X = ( X Y − A ) Y T \frac{\partial f}{\partial X}=(XY-A)Y^{T} Xf=(XYA)YT

    ln-det函数 f ( X ) = l n ( d e t ( X ) ) f(X)=ln(det(X)) f(X)=ln(det(X)), X ∈ S + + n X\in S^{n}_{++} XS++n,给定 X ⪰ 0 X\succeq 0 X0,对任意方向 V ∈ S n V\in S^{n} VSn以及 t ∈ R t\in \R tR。所以 ∇ f ( X ) = ( X − 1 ) T \nabla f(X)=(X^{-1})^{T} f(X)=(X1)T

    四:广义实值函数和适当函数

    广义实值函数:令 R ˉ = R ∪ { ± ∞ } \bar{\R}=R\cup \{\pm \infty\} Rˉ=R{±}为广义实数空间,则映射 f : R n → R ˉ f:\R^{n}\rightarrow\bar{\R} fRnRˉ称为广义实值函数

    适当函数:给定广义实值函数 f f f和非空集合 χ \chi χ。如果存在 x ∈ χ x\in \chi xχ使得 f ( x ) < + ∞ f(x) <+\infty f(x)<+,并且对任意的 x ∈ χ x\in \chi xχ,都有 f ( x ) > − ∞ f(x)>-\infty f(x)>,那么称函数 f f f关于集合 χ \chi χ是适当的

    • 适当函数 f f f的特点是至少有一处取出不为正无穷处处取值不为负无穷

    五:下水平集、上方图和闭函数

    下水平集:对于广义实值函数 f : R n → R ˉ f:\R^{n}\rightarrow \bar{\R} fRnRˉ,把

    C α = { x ∣ f ( x ) ≤ α } C_{\alpha}=\{x|f(x)\leq \alpha\} Cα={xf(x)α}

    称为 f f f α \alpha α-下水平集

    上方图:对于广义实值函数 f : R n → R ˉ f:\R^{n}\rightarrow \bar{\R} fRnRˉ,把

    e p i f = { ( x , t ) ∈ R n + 1 ∣ f ( x ) ≤ t } epi \quad f=\{(x,t)\in R^{n+1}|f(x)\leq t\} epif={(x,t)Rn+1f(x)t}

    称为 f f f的上方图

    在这里插入图片描述

    闭函数:对于广义实值函数 f : R n → R ˉ f:\R^{n}\rightarrow \bar{\R} fRnRˉ,若 e p i f epi \quad f epif为闭集,则称 f f f为闭函数

    六:闭函数与下半连续函数

    (1)下半连续函数

    下半连续函数:设广义实值函数 f : R n → R ˉ f:\R^{n}\rightarrow \bar{\R} fRnRˉ,若对任意的 x ∈ R n x\in R^{n} xRn,有

    l i m i n f y → x f ( y ) ≥ f ( x ) \mathop{lim\quad inf} \limits_{y\rightarrow x}f(y)\geq f(x) yxliminff(y)f(x)

    f ( x ) f(x) f(x)称为下半连续函数

    在这里插入图片描述

    (2)闭函数与下半连续函数

    闭函数与下半连续函数:虽然表明上看这两种函数的定义方式截然不同,但闭函数与下半连续函数是等价的。设广义实值函数 f : R n → R ˉ f:\R^{n}\rightarrow \bar{\R} fRnRˉ,则以下命题等价

    • f ( x ) f(x) f(x)的任意 α \alpha α-下水平集都是闭集
    • f ( x ) f(x) f(x)是下半连续的
    • f ( x ) f(x) f(x)是闭函数

    闭(下半连续)函数间的简单运算会保持原有性质

    • 加法:若 f f f g g g均为适当的闭(下半连续)函数,并且dom f ∩ f \cap f dom g g g ≠ ∅ \not=\empty =,则 f + g f+g f+g也是闭(下半连续)函数。其中适当函数的条件是为了避免出现未定式 ( − ∞ ) + ( + ∞ ) (-\infty)+(+\infty) ()+(+)的情况
    • 仿射映射的复合:若 f f f为闭(下半连续)函数,则 f ( A x + b ) f(Ax+b) f(Ax+b)也为闭(下半连续)函数
    • 取上确界:若每一个函数 f α f_{\alpha} fα均为闭(下半连续)函数,则 s u p α f α ( x ) sup_{\alpha}f_{\alpha}(x) supαfα(x)也为闭(下半连续)函数
  • 相关阅读:
    python+nodejs+php+springboot+vue 校园安全车辆人员出入安全管理系统
    css溢出属性
    【3D视觉】PointNet解析
    Elasticvue - 用于浏览器的免费开源 Elasticsearch GUI
    【MATLAB】数学建模没有基础怎么办,看过来一篇文章带你入门 matlab
    HT8699R AB类和D类的升压双声道音频功率放大器
    3.tomcat多实例和索引页
    作战仿真试验理论体系研究
    MySQL数据库不会安装?看过来,保姆级安装详细教程来啦(图文结合,含安装包,包教包会)以及开启与关闭MySQL服务
    c++的priority_queue各种使用方法
  • 原文地址:https://blog.csdn.net/qq_39183034/article/details/127428684