机器学习笔记之优化算法(十九)经典牛顿法的收敛性分析

机器学习笔记之优化算法——经典牛顿法的收敛性分析

  • 引言
    • 回顾:算法的收敛性分析
    • 经典牛顿法的收敛性分析
      • 收敛性定理介绍
      • 证明过程
      • 关于隐含条件的说明

引言

上一节整体介绍了经典牛顿法,并讨论了其更新方向 P k \mathcal P_k Pk是否为下降方向。本节将对经典牛顿法在迭代过程中的收敛性进行分析。

回顾:算法的收敛性分析

在这些迭代算法中,我们关注的重点在于算法在迭代过程中是否收敛,以及它的收敛速度

Wolfe \text{Wolfe} Wolfe准则的收敛性分析

简单认识 Wolfe Condition \text{Wolfe Condition} Wolfe Condition收敛性证明一节中,对于线搜索方法使用非精确搜索在迭代过程中使用 Wolfe \text{Wolfe} Wolfe准则选取优质步长,并证明该方法能够使目标函数结果 { f ( x k ) } k = 0 ∞ \{f(x_k)\}_{k=0}^{\infty} {f(xk)}k=0收敛到最优解 f ∗ f^* f。对应条件、结论表示如下:

条件:

  • 关于函数 f ( ⋅ ) f(\cdot) f(),需要满足向下有界,并且在其定义域内连续可微
  • 关于梯度函数 ∇ f ( ⋅ ) \nabla f(\cdot) f(),需要在定义域内满足 L \mathcal L L-利普希兹连续
  • 关于更新方向 P k ( k = 1 , 2 , ⋯ ) \mathcal P_k(k=1,2,\cdots) Pk(k=1,2,)至少是下降方向 ( Descent Direction ) (\text{Descent Direction}) (Descent Direction)
  • 迭代过程中选择的优质步长 α k ( k = 1 , 2 , ⋯ ) \alpha_k(k=1,2,\cdots) αk(k=1,2,)满足 Wolfe \text{Wolfe} Wolfe准则
    { f ( x k + 1 ) < f ( x k ) + C 1 ⋅ [ ∇ f ( x k ) ] T P k ⋅ α k [ ∇ f ( x k + 1 ) ] T P k ≥ C 2 ⋅ [ ∇ f ( x k ) ] T P k C 1 ∈ ( 0 , 1 ) C 2 ∈ ( C 1 , 1 ) \begin{cases} f(x_{k+1}) < f(x_ k) + \mathcal C_1 \cdot [\nabla f(x_k)]^T \mathcal P_k \cdot \alpha_k \\ [\nabla f(x_{k+1})]^T \mathcal P_k \geq \mathcal C_2 \cdot [\nabla f(x_k)]^T \mathcal P_k \\ \mathcal C_1 \in (0,1) \\ \mathcal C_2 \in (\mathcal C_1,1) \end{cases} f(xk+1)<f(xk)+C1[f(xk)]TPkαk[f(xk+1)]TPkC2[f(xk)]TPkC1(0,1)C2(C1,1)

结论:关于 { f ( x k ) } k = 0 ∞ \{f(x_k)\}_{k=0}^{\infty} {f(xk)}k=0收敛到最优解 f ∗ f^* f延展性结果
∑ k = 0 + ∞ [ cos ⁡ θ k ] 2 ⋅ ∣ ∣ ∇ f ( x k ) ∣ ∣ 2 < + ∞ \sum_{k=0}^{+\infty} [\cos \theta_k]^2 \cdot ||\nabla f(x_k)||^2 < +\infty k=0+[cosθk]2∣∣∇f(xk)2<+

关于证明过程不再赘述,详见链接,后续同理。观察 Wolfe \text{Wolfe} Wolfe准则的收敛性定理,可以发现:

  • 该方法对于函数 f ( ⋅ ) f(\cdot) f()更新方向的约束是较宽松的 f ( ⋅ ) f(\cdot) f()有下界、可微、 ∇ f ( ⋅ ) \nabla f(\cdot) f()利普希兹连续;而且证明过程中使用的是较泛化的线搜索方法
  • 但对最终的收敛性仅仅证明了其可以收敛,但并没有描述具体的收敛速度

梯度下降法在凸函数的收敛性分析

在梯度下降法——凸函数上的收敛性一节中,使用梯度下降法更新方向 P k \mathcal P_k Pk确定为最速下降方向(负梯度方向)的条件下,对于凸函数 f ( ⋅ ) f(\cdot) f()选取优质步长,证明了目标函数结果 { f ( x k ) } k = 0 ∞ \{f(x_k)\}_{k=0}^{\infty} {f(xk)}k=0收敛至目标函数最优解 f ∗ f^* f,并以次线性收敛级别的收敛速度进行收敛。对应条件、结论表示如下:

条件:

  • 关于函数 f ( ⋅ ) f(\cdot) f()向下有界,在定义域内可微,并且 f ( ⋅ ) f(\cdot) f()凸函数
  • 关于梯度函数 ∇ f ( ⋅ ) \nabla f(\cdot) f()满足 L \mathcal L L-利普希兹连续
  • 在迭代过程中,关于步长 α k ( k = 1 , 2 , ⋯ ) \alpha_k(k=1,2,\cdots) αk(k=1,2,)存在明确的约束范围 α k ∈ ( 0 , 1 L ] \begin{aligned}\alpha_k \in \left(0,\frac{1}{\mathcal L}\right]\end{aligned} αk(0,L1]

结论:目标函数结果 { f ( x k ) } k = 0 ∞ \{f(x_k)\}_{k=0}^{\infty} {f(xk)}k=0 G ( k ) = C ⋅ 1 k \begin{aligned}\mathcal G(k) = \mathcal C \cdot \frac{1}{k}\end{aligned} G(k)=Ck1收敛类型 O ( 1 k ) \begin{aligned}\mathcal O \left(\frac{1}{k}\right)\end{aligned} O(k1)次线性收敛级别的收敛速度。
关于收敛速度的类型与级别,详见收敛速度的简单认识。

观察梯度下降法关于凸函数的收敛性定理,可以发现:

  • 相比于 Wolfe \text{Wolfe} Wolfe准则中线搜索方法对于更新方向 P k \mathcal P_k Pk下降方向的要求,梯度下降法关于更新方向的要求更加严格最速下降方向
  • 关于目标函数 f ( ⋅ ) f(\cdot) f()的要求也更加严格 f ( ⋅ ) f(\cdot) f()必须是凸函数
  • 相比于 Wolfe \text{Wolfe} Wolfe准则关于 α k \alpha_k αk的约束条件:
    关于 Wolfe \text{Wolfe} Wolfe准则关于步长的约束,这里使用图像进行示例表示。其中上界是 f ( x k + 1 ) < f ( x k ) + C 1 ⋅ [ ∇ f ( x k ) ] T P k ⋅ α k f(x_{k+1}) < f(x_ k) + \mathcal C_1 \cdot [\nabla f(x_k)]^T \mathcal P_k \cdot \alpha_k f(xk+1)<f(xk)+C1[f(xk)]TPkαk(函数 L ( α ) \mathcal L(\alpha) L(α)所在斜线以下);下界是 [ ∇ f ( x k + 1 ) ] T P k ≥ C 2 ⋅ [ ∇ f ( x k ) ] T P k [\nabla f(x_{k+1})]^T \mathcal P_k \geq \mathcal C_2 \cdot [\nabla f(x_k)]^T \mathcal P_k [f(xk+1)]TPkC2[f(xk)]TPk(斜率大于绿色点的横坐标范围)
    Wolfe准则关于步长的约束范围
    由于 f ( ⋅ ) f(\cdot) f()凸函数,因而步长 α k \alpha_k αk的选择范围被限制在 ( 0 , 1 L ] \begin{aligned}\left(0,\frac{1}{\mathcal L}\right]\end{aligned} (0,L1]
    详见二次上界引理。
  • 从结论的角度,相比于 Wolfe \text{Wolfe} Wolfe准则,它有了明显的关于收敛速度的描述。

梯度下降法在强凸函数的收敛性分析

在梯度下降法——强凸函数的收敛性证明中,在 f ( ⋅ ) f(\cdot) f() m m m-强凸函数的基础上,选取优质步长 α k \alpha_k αk,证明了数值解序列 { x k } k = 0 ∞ \{x_k\}_{k=0}^{\infty} {xk}k=0收敛至最优数值解 x ∗ x^* x,并以 Q \mathcal Q Q-线性收敛级别的收敛速度进行收敛。对应条件、结论表示如下:

条件:

  • 关于函数 f ( ⋅ ) f(\cdot) f()向下有界,在其定义域内可微,并且 f ( ⋅ ) f(\cdot) f() m m m-强凸函数
  • 关于梯度函数 ∇ f ( ⋅ ) \nabla f(\cdot) f()满足 L \mathcal L L-利普希兹连续
  • 在迭代过程中,步长 α k ( k = 1 , 2 , 3 , ⋯ ) \alpha_k(k=1,2,3,\cdots) αk(k=1,2,3,)存在明确的约束范围 ( 0 , 2 L + m ) \begin{aligned}\left(0,\frac{2}{\mathcal L + m}\right)\end{aligned} (0,L+m2)

结论:数值解序列 { x k } k = 0 ∞ \{x_k\}_{k=0}^{\infty} {xk}k=0 Q \mathcal Q Q-线性收敛的收敛速度收敛于最优数值解 x ∗ x^* x

观察梯度下降法关于强凸函数的收敛性定理,可以发现:

  • 相比于凸函数的收敛性定理,关于目标函数 f ( ⋅ ) f(\cdot) f()的要求更加严格 m m m-强凸函数
  • 关于 α k \alpha_k αk的约束条件更加严格: ( 0 , 1 L ) ⇒ ( 0 , 2 L + m ) , 2 L + m ≤ 1 L \begin{aligned} \left(0,\frac{1}{\mathcal L}\right) \Rightarrow \left(0,\frac{2}{\mathcal L + m}\right),\frac{2}{\mathcal L + m} \leq \frac{1}{\mathcal L}\end{aligned} (0,L1)(0,L+m2),L+m2L1
  • 结论的角度,其收敛速度级别高于相应凸函数的收敛速度级别

经典牛顿法的收敛性分析

收敛性定理介绍

经典牛顿法收敛性定理的描述表示如下:

条件:

  • 关于函数 f ( ⋅ ) f(\cdot) f()在其定义域内二阶连续可微
    • 这意味着 Hessian Matrix ⇒ ∇ 2 f ( ⋅ ) \text{Hessian Matrix} \Rightarrow \nabla^2 f(\cdot) Hessian Matrix2f()不仅存在,并且函数 ∇ 2 f ( ⋅ ) \nabla^2 f(\cdot) 2f()在定义域内同样连续。
    • 个人关于 ∇ 2 f ( ⋅ ) \nabla^2 f(\cdot) 2f()的误区更正: ∇ 2 f ( ⋅ ) \nabla^2 f(\cdot) 2f()自身是一个函数,关于某向量 x ∈ R n x \in \mathbb R^n xRn的结果 [ ∇ 2 f ( x ) ] n × n [\nabla^2 f(x)]_{n \times n} [2f(x)]n×n是一个 Hessian Matrix \text{Hessian Matrix} Hessian Matrix矩阵。
  • 关于二阶梯度函数 ∇ 2 f ( ⋅ ) \nabla^2 f(\cdot) 2f()最优值 x ∗ x^* x N σ ( x ∗ ) \mathcal N_{\sigma}(x^*) Nσ(x)内满足 L \mathcal L L-利普希兹连续
    • 其中 N σ ( x ∗ ) \mathcal N_{\sigma}(x^*) Nσ(x)表示在最优值 x ∗ x^* x为中心的 σ \sigma σ邻域。如果 x ∗ x^* x是一维的,那么它的邻域可表示为 ( x − σ , x + σ ) (x-\sigma,x+\sigma) (xσ,x+σ)
    • 相比于条件 1 1 1,条件 2 2 2使 ∇ 2 f ( ⋅ ) \nabla^2 f(\cdot) 2f()在其定义域内连续的基础上,进一步增强了约束:使最优值的邻域满足 L \mathcal L L-利普希兹连续。关于连续、一致连续、 L \mathcal L L-利普希兹连续的强度差异,详见传送门
  • 关于梯度函数 x ∗ x^* x处的结果 ∇ f ( x ∗ ) = 0 \nabla f(x^*) = 0 f(x)=0,并且对应二阶梯度 x ∗ x^* x的结果 ∇ 2 f ( ⋅ ) ≻ 0 \nabla^2 f(\cdot) \succ 0 2f()0
    • 该条件是条件 x ∗ x^* x是函数 f ( ⋅ ) f(\cdot) f()极小值点的充分不必要条件。
    • 个人理解 -> 单看这一个条件,我们需要警惕的是:这里并没有说 f ( ⋅ ) f(\cdot) f()是一个凸函数/ m m m-强凸函数,它可能仅是一个普通的复杂函数。因而该条件仅能确定 x ∗ x^* x f ( ⋅ ) f(\cdot) f()极小值点中的某一个。

结论:
x 0 x_0 x0 x ∗ x^* x足够近,那么数值解序列 { x k } k = 0 ∞ \{x_k\}_{k=0}^{\infty} {xk}k=0 Q \mathcal Q Q-二次收敛的收敛速度收敛于最优数值解 x ∗ x^* x

  • 这里本质上说的是 x 0 x_0 x0,但实际上该结论要求数值解序列 { x k } k = 0 ∞ \{x_k\}_{k=0}^{\infty} {xk}k=0中的所有点都要离 x ∗ x^* x足够近。因为 x 0 x_0 x0是随机初始化的结果,如果 x 0 x_0 x0 x ∗ x^* x足够近,那么其他迭代点 x 1 , x 2 , ⋯ x_1,x_2,\cdots x1,x2,必然只会离 x ∗ x^* x足够近。
  • 根据 Q \mathcal Q Q-二次收敛的定义,需要满足:
    ∣ ∣ x k + 1 − x ∗ ∣ ∣ ∣ ∣ x k − x ∗ ∣ ∣ 2 ≤ C ∈ ( 0 , + ∞ ) \begin{aligned} \frac{||x_{k+1} - x^*||}{||x_k - x^*||^2} \leq \mathcal C \in (0, + \infty) \end{aligned} ∣∣xkx2∣∣xk+1x∣∣C(0,+)

证明过程

首先观察分子 ∣ ∣ x k + 1 − x ∗ ∣ ∣ ||x_{k+1} - x^*|| ∣∣xk+1x∣∣,关于 x k + 1 x_{k+1} xk+1,在经典牛顿法中,它的步长 α k = 1 \alpha_k = 1 αk=1;假设在 x k x_k xk点处的 Hessian Matrix ⇒ ∇ 2 f ( x k ) \text{Hessian Matrix} \Rightarrow \nabla^2 f(x_k) Hessian Matrix2f(xk)正定的,根据牛顿方程,当前迭代步骤的最优方向 P k \mathcal P_k Pk表示为:
实际上,整个迭代过程,每个步骤产生的 x k x_k xk对应的 ∇ 2 f ( x k ) \nabla^2 f(x_k) 2f(xk)都被认为是正定的。
{ x k + 1 = x k + 1 ⋅ P k P k = − [ ∇ 2 f ( x k ) ] − 1 ∇ f ( x k ) \begin{cases} x_{k+1} = x_k + 1 \cdot \mathcal P_k \\ \mathcal P_k = -[\nabla^2 f(x_k)]^{-1} \nabla f(x_k) \end{cases} {xk+1=xk+1PkPk=[2f(xk)]1f(xk)
那么最终分子部分可表示为:

  • [ ∇ 2 f ( x k ) ] [\nabla^2 f(x_k)] [2f(xk)]提出来,由于 x k + 1 , x ∗ x_{k+1},x^* xk+1,x的系数都是单位矩阵 I \mathcal I I,因此根据 I = [ ∇ 2 f ( x k ) ] − 1 [ ∇ 2 f ( x k ) ] \mathcal I = [\nabla^2 f(x_k)]^{-1} [\nabla^2 f(x_k)] I=[2f(xk)]1[2f(xk)],从而提出公因式 [ ∇ 2 f ( x k ) ] − 1 [\nabla^2 f(x_k)]^{-1} [2f(xk)]1
  • 为了与 ( x k − x ∗ ) (x_k - x^*) (xkx)的格式匹配,并且根据条件: ∇ f ( x ∗ ) = 0 \nabla f(x^*) = 0 f(x)=0,因此在末尾添加一个 ∇ f ( x ∗ ) \nabla f(x^*) f(x)并不影响等号的变化。
    ∥ x k + 1 − x ∗ ∥ = ∥ x k − [ ∇ 2 f ( x k ) ] − 1 ∇ f ( x k ) − x ∗ ∥ = ∥ [ ∇ 2 f ( x k ) ] − 1 [ ∇ 2 f ( x k ) ] x k ⏟ x k − [ ∇ 2 f ( x k ) ] − 1 ∇ f ( x k ) − [ ∇ 2 f ( x k ) ] − 1 [ ∇ 2 f ( x k ) ] x ∗ ⏟ x ∗ ∥ = ∥ [ ∇ 2 f ( x k ) ] − 1 [ ∇ 2 f ( x k ) ⋅ ( x k − x ∗ ) − ∇ f ( x k ) ] ∥ = ∥ [ ∇ 2 f ( x k ) ] − 1 [ ∇ 2 f ( x k ) ⋅ ( x k − x ∗ ) − ( ∇ f ( x k ) − ∇ f ( x ∗ ) ⏟ ∇ f ( x k ) ; ∇ f ( x ∗ ) = 0 ) ] ∥ \begin{aligned} \|x_{k+1} - x^*\| & = \left\|x_k - [\nabla^2 f(x_k)]^{-1} \nabla f(x_k) - x^* \right\| \\ & = \left\Vert\underbrace{[\nabla^2 f(x_k)]^{-1} [\nabla^2 f(x_k)] x_k}_{x_k} - [\nabla^2 f(x_k)]^{-1} \nabla f(x_k) - \underbrace{[\nabla^2 f(x_k)]^{-1} [\nabla^2 f(x_k)] x^*}_{x^*}\right\Vert \\ & = \left\|[\nabla^2 f(x_k)]^{-1} \left[\nabla^2 f(x_k) \cdot (x_k - x^*) - \nabla f(x_k)\right]\right\| \\ & = \left\|[\nabla^2 f(x_k)]^{-1} \left[\nabla^2 f(x_k) \cdot (x_k - x^*) - (\underbrace{\nabla f(x_k) - \nabla f(x^*)}_{\nabla f(x_k);\nabla f(x^*) = 0})\right]\right\| \end{aligned} xk+1x= xk[2f(xk)]1f(xk)x = xk [2f(xk)]1[2f(xk)]xk[2f(xk)]1f(xk)x [2f(xk)]1[2f(xk)]x = [2f(xk)]1[2f(xk)(xkx)f(xk)] = [2f(xk)]1 2f(xk)(xkx)(f(xk);f(x)=0 f(xk)f(x))

观察项: ∇ f ( x k ) − ∇ f ( x ∗ ) \nabla f(x_k) - \nabla f(x^*) f(xk)f(x),它本质上是:函数一阶梯度 ∇ f ( ⋅ ) \nabla f(\cdot) f() x k , x ∗ x_k,x^* xk,x两点处的差值。而条件大多在二阶梯度上存在约束性。因此,这里通过技巧 ∇ f ( x k ) − ∇ f ( x ∗ ) \nabla f(x_k) - \nabla f(x^*) f(xk)f(x)进行转化

  • 对于 ∀ x , y ∈ R n \forall x,y \in \mathbb R^n x,yRn,可以令 λ ∈ [ 0 , 1 ] \lambda \in [0,1] λ[0,1],将 ∇ f ( y ) − ∇ f ( x ) \nabla f(y) - \nabla f(x) f(y)f(x)转化成如下形式:
    • λ = 0 \lambda=0 λ=0时, x + λ ⋅ ( y − x ) = x ; x + \lambda \cdot (y - x) = x; x+λ(yx)=x;同理,当 λ = 1 \lambda=1 λ=1时, x + λ ⋅ ( y − x ) = y x + \lambda \cdot (y - x) = y x+λ(yx)=y
    • 将最终结果表示成二阶梯度的定积分形式。
      ∇ f ( y ) − ∇ f ( x ) = ∇ f [ x + λ ⋅ ( y − x ) ] ∣ λ = 0 1 = ∫ 0 1 ∇ 2 f [ x + λ ⋅ ( y − x ) ] ⋅ ( y − x ) d λ \begin{aligned} \nabla f(y) - \nabla f(x) & = \nabla f[x + \lambda \cdot (y - x)] \vert_{\lambda = 0}^1 \\ & = \int_{0}^1 \nabla^2 f[x + \lambda \cdot (y - x)] \cdot (y - x) d \lambda \end{aligned} f(y)f(x)=f[x+λ(yx)]λ=01=012f[x+λ(yx)](yx)dλ
  • 令上例中 y = x ∗ , x = x k y = x^*,x = x_k y=x,x=xk,从而有:
    ∇ f ( x k ) − ∇ f ( x ∗ ) = ∫ 0 1 ∇ 2 f [ x k + λ ⋅ ( x ∗ − x k ) ] ⋅ ( x k − x ∗ ) d λ \nabla f(x_k) - \nabla f(x^*) = \int_{0}^1 \nabla^2 f[x_k + \lambda \cdot (x^* -x_k)] \cdot(x_k - x^*) d\lambda f(xk)f(x)=012f[xk+λ(xxk)](xkx)dλ

基于此,上述分子部分 ∥ x k + 1 − x ∗ ∥ \|x_{k+1} - x^*\| xk+1x可继续整理为:

  • 由于项 ∇ 2 f ( x k ) ⋅ ( x k − x ∗ ) \nabla^2 f(x_k) \cdot (x_k - x^*) 2f(xk)(xkx)中不含 λ \lambda λ,可以将这一项继续改写成积分形式,从而进行合并。
  • 在合并过程中,提出 x k − x ∗ x_k - x^* xkx
    ∥ x k + 1 − x ∗ ∥ = ∥ [ ∇ 2 f ( x k ) ] − 1 ⋅ [ ∇ 2 f ( x k ) ⋅ ( x k − x ∗ ) − ∫ 0 1 ∇ 2 f [ x k + λ ⋅ ( x ∗ − x k ) ] ( x k − x ∗ ) d λ ] ∥ = ∥ [ ∇ 2 f ( x k ) ] − 1 ⋅ [ ∫ 0 1 ∇ 2 f ( x k ) ⋅ ( x k − x ∗ ) d λ ⏟ ∇ 2 f ( x k ) ⋅ ( x k − x ∗ ) − ∫ 0 1 ∇ 2 f [ x k + λ ⋅ ( x ∗ − x k ) ] ( x k − x ∗ ) d λ ] ∥ = ∥ [ ∇ 2 f ( x k ) ] − 1 ⋅ [ ∫ 0 1 ( x k − x ∗ ) ⋅ [ ∇ 2 f ( x k ) − ∇ 2 f [ x k + λ ⋅ ( x ∗ − x k ) ] ] d λ ] ∥ \begin{aligned} \|x_{k+1} - x^*\| & = \left\| [\nabla^2 f(x_k)]^{-1} \cdot \left[ \nabla^2 f(x_k) \cdot (x_k - x^*) - \int_{0}^1 \nabla^2 f[x_k + \lambda \cdot (x^* - x_k)](x_k - x^*) d\lambda \right] \right\| \\ & = \left\| [\nabla^2 f(x_k)]^{-1} \cdot \left[\underbrace{\int_0^1\nabla^2 f(x_k) \cdot (x_k - x^*) d \lambda}_{\nabla^2 f(x_k) \cdot (x_k - x^*)} - \int_{0}^1 \nabla^2 f[x_k + \lambda \cdot (x^* - x_k)](x_k - x^*) d\lambda \right] \right\| \\ & = \left\|[\nabla^2 f(x_k)]^{-1} \cdot \left[\int_0^1 (x_k - x^*) \cdot \left[\nabla^2 f(x_k) - \nabla^2 f[x_k + \lambda \cdot (x^* - x_k)] \right] d \lambda \right] \right\| \end{aligned} xk+1x= [2f(xk)]1[2f(xk)(xkx)012f[xk+λ(xxk)](xkx)dλ] = [2f(xk)]1 2f(xk)(xkx) 012f(xk)(xkx)dλ012f[xk+λ(xxk)](xkx)dλ = [2f(xk)]1[01(xkx)[2f(xk)2f[xk+λ(xxk)]]dλ]

接下来,根据柯西施瓦茨不等式积分的范数小于等于范数的积分两种方式对上式进行放缩
关于积分的范数小于范数的积分的证明过程,这里推荐一篇文章,链接见文章末尾。
∥ x k + 1 − x ∗ ∥ = ∥ [ ∇ 2 f ( x k ) ] − 1 ⋅ [ ∫ 0 1 ( x k − x ∗ ) ⋅ [ ∇ 2 f ( x k ) − ∇ 2 f [ x k + λ ⋅ ( x ∗ − x k ) ] ] d λ ] ∥ ≤ ∥ ∇ 2 f ( x k ) ] − 1 ∥ ⋅ ∥ ∫ 0 1 ( x k − x ∗ ) ⋅ [ ∇ 2 f ( x k ) − ∇ 2 f [ x k + λ ⋅ ( x ∗ − x k ) ] ] d λ ∥ ≤ ∥ ∇ 2 f ( x k ) ] − 1 ∥ ⋅ ∫ 0 1 ∥ ( x k − x ∗ ) ⋅ [ ∇ 2 f ( x k ) − ∇ 2 f [ x k + λ ⋅ ( x ∗ − x k ) ] ] ∥ d λ ≤ ∥ ∇ 2 f ( x k ) ] − 1 ∥ ⋅ ∫ 0 1 ∥ x k − x ∗ ∥ ⋅ ∥ ∇ 2 f ( x k ) − ∇ 2 f [ x k + λ ⋅ ( x ∗ − x k ) ] ∥ d λ \begin{aligned} \|x_{k+1} - x^*\| & = \left\|[\nabla^2 f(x_k)]^{-1} \cdot \left[\int_0^1 (x_k - x^*) \cdot \left[\nabla^2 f(x_k) - \nabla^2 f[x_k + \lambda \cdot (x^* - x_k)] \right] d \lambda \right] \right\| \\ & \leq \left\|\nabla^2 f(x_k)]^{-1} \right\| \cdot \left\| \int_0^1 (x_k - x^*) \cdot \left[\nabla^2 f(x_k) - \nabla^2 f[x_k + \lambda \cdot (x^* - x_k)] \right] d \lambda\right\| \\ & \leq \left\|\nabla^2 f(x_k)]^{-1} \right\| \cdot \int_0^1 \left\|(x_k - x^*) \cdot \left[\nabla^2 f(x_k) - \nabla^2 f[x_k + \lambda \cdot (x^* - x_k)] \right] \right\| d\lambda \\ & \leq \left\|\nabla^2 f(x_k)]^{-1} \right\| \cdot \int_0^1 \left\|x_k - x^*\right\| \cdot \left\| \nabla^2 f(x_k) - \nabla^2 f[x_k + \lambda \cdot (x^* - x_k)] \right\| d\lambda \end{aligned} xk+1x= [2f(xk)]1[01(xkx)[2f(xk)2f[xk+λ(xxk)]]dλ] 2f(xk)]1 01(xkx)[2f(xk)2f[xk+λ(xxk)]]dλ 2f(xk)]1 01 (xkx)[2f(xk)2f[xk+λ(xxk)]] dλ 2f(xk)]1 01xkx 2f(xk)2f[xk+λ(xxk)] dλ
观察上式中积分号第二项 ∥ ∇ 2 f ( x k ) − ∇ 2 f [ x k + λ ⋅ ( x ∗ − x k ) ] ∥ \left\| \nabla^2 f(x_k) - \nabla^2 f[x_k + \lambda \cdot (x^* - x_k)] \right\| 2f(xk)2f[xk+λ(xxk)] 它明显是一个二阶梯度减法的范数形式。根据条件: ∇ 2 f ( ⋅ ) \nabla^2 f(\cdot) 2f() x ∗ x^* x σ \sigma σ邻域 N σ ( x ∗ ) \mathcal N_{\sigma}(x^*) Nσ(x)内满足 L \mathcal L L-利普希兹连续,将该项继续进行放缩

  • 它实际上描述的是点 x k x_k xk x k , x ∗ x_k,x^* xk,x之间某一点两者的二阶梯度减法的范数,根据结论中描述的:如果 x 0 x_0 x0 x ∗ x^* x足够接近,那么 x k x_k xk必然与 x ∗ x^* x足够接近,从而 x k + λ ⋅ ( x ∗ − x k ) x_k + \lambda \cdot (x^* - x_k) xk+λ(xxk)同样距离 x ∗ x^* x足够接近。那么利普希兹连续的条件自然就满足了。
  • 在本步骤中所描述的接近自然是指: ∣ ∣ x k − x ∗ ∣ ∣ ≤ σ ||x_k - x^*|| \leq \sigma ∣∣xkx∣∣σ
  • 关于 ∥ x k − x ∗ ∥ = ∥ x ∗ − x k ∥ \left\|x_k - x^*\right\| = \left\|x^* - x_k\right\| xkx=xxk,掉换一下位置并不影响范数的结果。并且 λ ∈ ( 0 , 1 ) \lambda \in (0,1) λ(0,1),将其提到范数外面。
    { ∥ ∇ 2 f ( x k ) − ∇ 2 f [ x k + λ ⋅ ( x ∗ − x k ) ] ∥ ≤ L ∥ [ x k + λ ( x ∗ − x k ) ] − x k ∥ = L ∣ ∣ λ ⋅ ( x ∗ − x k ) ∣ ∣ = L ⋅ λ ∥ x k − x ∗ ∥ ∥ x k + 1 − x ∗ ∥ ≤ ∥ ∇ 2 f ( x k ) ] − 1 ∥ ⋅ ∫ 0 1 ∥ x k − x ∗ ∥ ⋅ L ⋅ λ ∥ x k − x ∗ ∥ d λ = ∥ ∇ 2 f ( x k ) ] − 1 ∥ ⋅ ∥ x k − x ∗ ∥ 2 ⋅ L ∫ 0 1 λ d λ = ∥ ∇ 2 f ( x k ) ] − 1 ∥ ⋅ ∥ x k − x ∗ ∥ 2 ⋅ L 2 \begin{cases} \begin{aligned} \left\| \nabla^2 f(x_k) - \nabla^2 f[x_k + \lambda \cdot (x^* - x_k)] \right\| & \leq \mathcal L \left\|[x_k + \lambda (x^* - x_k)] - x_k\right\| \\ & = \mathcal L ||\lambda \cdot (x^* - x_k)|| \\ & = \mathcal L \cdot \lambda \left\|x_k - x^*\right\| \\ \|x_{k+1} - x^*\| & \leq \left\|\nabla^2 f(x_k)]^{-1} \right\| \cdot \int_0^1 \left\|x_k - x^*\right\| \cdot \mathcal L \cdot \lambda \left\|x_k - x^*\right\| d\lambda \\ & = \left\|\nabla^2 f(x_k)]^{-1} \right\| \cdot \left\|x_k - x^*\right\|^2 \cdot \mathcal L \int_0^1 \lambda d\lambda \\ & = \left\|\nabla^2 f(x_k)]^{-1} \right\| \cdot \left\|x_k - x^*\right\|^2 \cdot \frac{\mathcal L}{2} \end{aligned} \end{cases} 2f(xk)2f[xk+λ(xxk)] xk+1xL[xk+λ(xxk)]xk=L∣∣λ(xxk)∣∣=Lλxkx 2f(xk)]1 01xkxLλxkxdλ= 2f(xk)]1 xkx2L01λdλ= 2f(xk)]1 xkx22L

至此,我们已经归纳出 ∥ x k + 1 − x ∗ ∥ \|x_{k+1} - x^*\| xk+1x ∥ x k − x ∗ ∥ 2 \left\|x_k - x^*\right\|^2 xkx2之间的关系。只需要证明:它们的比值 ≤ C ∈ ( 0 , + ∞ ) \leq \mathcal C \in (0,+\infty) C(0,+)即可。但项中 ∥ [ ∇ 2 f ( x k ) ] − 1 ∥ \left\|[\nabla^2 f(x_k)]^{-1}\right\| [2f(xk)]1 是与 x k x_k xk相关的量,它并不是常数。因此需要借助条件,将其放缩到某常数。

由于函数 f ( ⋅ ) f(\cdot) f()在其定义域二阶连续可微,那么二阶梯度函数 ∇ 2 f ( ⋅ ) \nabla^2 f(\cdot) 2f()在该定义域上连续。根据连续的定义,有: ∀ ϵ > 0 , ∃ γ > 0 \forall \epsilon > 0,\exist \gamma > 0 ϵ>0,γ>0,当 ∥ x k − x ∗ ∥ ≤ γ \left\|x_k - x^*\right\| \leq \gamma xkxγ时, ∣ ∥ ∇ 2 f ( x k ) ∥ − ∥ ∇ 2 f ( x ∗ ) ∥ ∣ ≤ ϵ \left\vert \|\nabla^2 f(x_k)\| - \|\nabla^2 f(x^*)\| \right\vert \leq \epsilon 2f(xk)2f(x) ϵ

去掉绝对值符号,关于范数 ∥ ∇ 2 f ( x k ) ∥ \|\nabla^2 f(x_k)\| 2f(xk)的范围可表示为:
∥ ∇ 2 f ( x ∗ ) ∥ − ϵ ≤ ∥ ∇ 2 f ( x k ) ∥ ≤ ∥ ∇ 2 f ( x ∗ ) ∥ + ϵ \|\nabla^2 f(x^*)\| - \epsilon \leq\|\nabla^2 f(x_k)\| \leq \|\nabla^2 f(x^*)\| + \epsilon 2f(x)ϵ2f(xk)2f(x)+ϵ

由于 ϵ \epsilon ϵ可以在 ( 0 , + ∞ ) (0,+\infty) (0,+)任意取值,因而不妨令 ϵ = 1 2 ∣ ∣ ∇ 2 f ( x ∗ ) ∣ ∣ \begin{aligned}\epsilon = \frac{1}{2}||\nabla^2 f(x^*)||\end{aligned} ϵ=21∣∣2f(x)∣∣,从而有:
这里之所以设置系数 1 2 \begin{aligned}\frac{1}{2}\end{aligned} 21,目的是消除原式中 L 2 \begin{aligned}\frac{\mathcal L}{2}\end{aligned} 2L内的 1 2 \begin{aligned}\frac{1}{2}\end{aligned} 21
∣ ∣ ∇ 2 f ( x k ) ∣ ∣ ≥ 1 2 ∣ ∣ ∇ 2 f ( x ∗ ) ∣ ∣ ||\nabla^2 f(x_k)|| \geq \frac{1}{2}||\nabla^2 f(x^*)|| ∣∣2f(xk)∣∣21∣∣2f(x)∣∣
由于 x ∗ x^* x是目标函数的最优解,它是一个不发生变化的常量,因此 1 2 ∣ ∣ ∇ 2 f ( x ∗ ) ∣ ∣ \begin{aligned}\frac{1}{2}||\nabla^2 f(x^*)||\end{aligned} 21∣∣2f(x)∣∣也同样是一个常量。因此,有:
∥ [ ∇ 2 f ( x k ) ] − 1 ∥ = 1 ∥ [ ∇ 2 f ( x k ) ] ∥ ≤ 2 ⋅ 1 ∣ ∣ ∇ 2 f ( x ∗ ) ∣ ∣ \left\|[\nabla^2 f(x_k)]^{-1}\right\| = \frac{1}{\left\|[\nabla^2 f(x_k)]\right\|} \leq 2 \cdot \frac{1}{||\nabla^2 f(x^*)||} [2f(xk)]1 =[2f(xk)]12∣∣2f(x)∣∣1
回归原式,有:
∥ x k + 1 − x ∗ ∥ ≤ ∥ ∇ 2 f ( x k ) ] − 1 ∥ ⋅ ∥ x k − x ∗ ∥ 2 ⋅ L 2 ≤ 2 ⋅ 1 ∣ ∣ ∇ 2 f ( x ∗ ) ∣ ∣ ⋅ ∣ ∣ x k − x ∗ ∣ ∣ 2 ⋅ L 2 = ∣ ∣ x k − x ∗ ∣ ∣ 2 ⋅ L ⋅ 1 ∣ ∣ ∇ 2 f ( x ∗ ) ∣ ∣ \begin{aligned}\|x_{k+1} - x^*\| & \leq \left\|\nabla^2 f(x_k)]^{-1} \right\| \cdot \left\|x_k - x^*\right\|^2 \cdot \frac{\mathcal L}{2} \\ & \leq 2 \cdot \frac{1}{||\nabla^2 f(x^*)||} \cdot ||x_k - x^*||^2 \cdot \frac{\mathcal L}{2} \\ & = ||x_k - x^*||^2 \cdot \mathcal L \cdot \frac{1}{||\nabla^2 f(x^*)||} \end{aligned} xk+1x 2f(xk)]1 xkx22L2∣∣2f(x)∣∣1∣∣xkx22L=∣∣xkx2L∣∣2f(x)∣∣1
最终,有:
∣ ∣ x k + 1 − x ∗ ∣ ∣ ∣ ∣ x k − x ∗ ∣ ∣ 2 ≤ L ∣ ∣ ∇ 2 f ( x ∗ ) ∣ ∣ ∈ ( 0 , + ∞ ) \frac{||x_{k+1} - x^*||}{||x_k - x^*||^2} \leq \frac{\mathcal L}{||\nabla^2 f(x^*)||} \in (0,+\infty) ∣∣xkx2∣∣xk+1x∣∣∣∣2f(x)∣∣L(0,+)
得证。

关于隐含条件的说明

在上述证明过程中,我们令 ϵ = 1 2 ∣ ∣ ∇ 2 f ( x ∗ ) ∣ ∣ \begin{aligned}\epsilon = \frac{1}{2}||\nabla^2 f(x^*)||\end{aligned} ϵ=21∣∣2f(x)∣∣,但真的可以这样取吗 ? ? ?换句话说:之所以可以这样取,是因为条件中存在隐含的嵌套条件,支持我们这样去取值

观察条件 1 1 1函数 f ( ⋅ ) f(\cdot) f()在定义域内二阶连续可微,可以知道 ∇ 2 f ( ⋅ ) \nabla^2 f(\cdot) 2f()在定义域内连续;
但又因为条件 2 2 2,使得: ∇ 2 f ( ⋅ ) \nabla^2 f(\cdot) 2f() x ∗ x^* x的邻域 N σ ( x ∗ ) \mathcal N_{\sigma}(x^*) Nσ(x)内不仅连续,而且还是更强的 L \mathcal L L-利普希兹连续
根据 L \mathcal L L-利普希兹连续向量模的减法公式,可以得到如下的大小关系:
∣ ∥ ∇ 2 f ( x k ) ∥ − ∥ ∇ 2 f ( x ∗ ) ∥ ∣ ≤ ∥ ∇ 2 f ( x k ) − ∇ 2 f ( x ∗ ) ∥ ≤ L ⋅ ∥ x k − x ∗ ∥ \left\vert \|\nabla^2 f(x_k)\| - \|\nabla^2 f(x^*)\| \right\vert \leq \|\nabla^2 f(x_k) - \nabla^2 f(x^*)\| \leq \mathcal L \cdot \|x_k - x^*\| 2f(xk)2f(x) 2f(xk)2f(x)Lxkx

因此,我们选择的用于约束 ∣ ∥ ∇ 2 f ( x k ) ∥ − ∥ ∇ 2 f ( x ∗ ) ∥ ∣ ≤ ϵ \left\vert \|\nabla^2 f(x_k)\| - \|\nabla^2 f(x^*)\| \right\vert \leq \epsilon 2f(xk)2f(x) ϵ ϵ \epsilon ϵ结果绝对不能比 L ⋅ ∥ x k − x ∗ ∥ \mathcal L \cdot \|x_k - x^*\| Lxkx
如果出现 ϵ < L ⋅ ∥ x k − x ∗ ∥ \epsilon < \mathcal L \cdot \|x_k - x^*\| ϵ<Lxkx,那么意味着邻域范围内并不都是 L \mathcal L L-利普希兹连续,从而条件 2 2 2不成立。

因此, ϵ \epsilon ϵ的选择应当满足:
L ⋅ ∥ x k − x ∗ ∥ ≤ ϵ = 1 2 ∥ ∇ 2 f ( x ∗ ) ∥ \mathcal L \cdot \|x_k - x^*\| \leq \epsilon = \frac{1}{2}\|\nabla^2 f(x^*)\| Lxkxϵ=212f(x)
即:
∥ x k − x ∗ ∥ ≤ ∥ ∇ 2 f ( x ∗ ) ∥ 2 L \|x_k - x^*\| \leq \frac{\|\nabla^2 f(x^*)\|}{2\mathcal L} xkx2L2f(x)
因此,在迭代过程中,只有同时满足条件以及隐藏条件
∥ x k − x ∗ ∥ = min ⁡ { σ , γ , ∣ ∣ ∇ 2 f ( x ∗ ) ∣ ∣ 2 L } \|x_k - x^*\| = \min \left\{\sigma,\gamma,\frac{||\nabla^2 f(x^*)||}{2\mathcal L} \right\} xkx=min{σ,γ,2L∣∣2f(x)∣∣}
才能够证明数值解序列 { x k } k = 0 ∞ Q \{x_k\}_{k=0}^{\infty} \mathcal Q {xk}k=0Q-二次收敛于最优数值解 x ∗ x^* x

相关参考:
【优化算法】经典牛顿法-收敛性分析
复变函数中为什么积分的模小于等于模的积分?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/101962.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

浅谈Spark的RDD、部署模式

一、RDD Spark RDD&#xff08;弹性分布式数据集&#xff09;&#xff0c;弹性是指Spark可以通过重新计算来自动重建丢失的分区。 从本质上讲&#xff0c;RDD 是数据元素的不可变分布式集合&#xff0c;跨集群中的节点进行分区&#xff0c;可以与提供转换和操作的低级 API 并行…

RPC和HTTP协议

RPC 全称&#xff08;Remote Procedure Call&#xff09;&#xff0c;它是一种针对跨进程或者跨网络节点的应用之间的远程过程调用协议。 它的核心目标是&#xff0c;让开发人员在进行远程方法调用的时候&#xff0c;就像调用本地方法一样&#xff0c;不需要额外为了完成这个交…

docker 报错

问题说明&#xff1a;我是服务器上面的docker拉到本地30卡想用的&#xff0c;但是失败&#xff0c;报错如下&#xff1a; 服务器上面显存驱动是450&#xff0c;本地30卡驱动是470 nvidia-docker run -it --name 20230821_3 --shm-size 16g -p 10029:22 --privileged 20230821_i…

QT通过ODBC连接GBase 8s数据库(Windows)示例

示例环境&#xff1a; 操作系统&#xff1a;Windows 10 64位数据库及CSDK版本&#xff1a;GBase 8s V8.8_3.0.0_1 64位QT&#xff1a;5.12.0 64位 1&#xff0c;CSDK安装及ODBC配置 1.1&#xff0c;免安装版CSDK 下载免安装版的CSDK驱动&#xff0c;地址&#xff1a;https:…

HTTP协议(JavaEE初阶系列15)

目录 前言&#xff1a; 1.HTTP协议 1.1HTTP协议是什么 1.2HTTP协议的报文格式 1.2.1抓包工具的使用 1.2.2HTTP请求 1.2.3HTTP响应 2.HTTP请求 2.1首行的组成 2.2.1URL的组成 2.2认识“方法”&#xff08;method&#xff09; 2.2.1GET方法 2.2.2POST方法 2.2.3GET…

jvm-运行时数据区概述及线程

1.运行时数据区内部结构 不同的jvm对于内存的划分方式和管理机制存在着部分差异 java虚拟机定义了若干种程序运行期间会使用到的运行时数据区&#xff0c;其中有一些会随着虚拟机的启动而创建&#xff0c;随着虚拟机的退出而销毁&#xff0c;另外一些则是与线程一一对应的&…

【算法刷题之链表篇(1)】

目录 1.leetcode-82. 删除排序链表中的重复元素 II&#xff08;1&#xff09;题目描述&#xff08;2&#xff09;方法及思路&#xff08;一次遍历&#xff09;&#xff08;3&#xff09;代码实现 2.leetcode-19. 删除链表的倒数第 N 个结点&#xff08;1&#xff09;题目描述&a…

测试平台metersphere

metersphere可以做接口测试、UI测试、性能测试。 metersphere接口测试底层是jmeter&#xff0c;可以做API管理&#xff0c;快捷调试&#xff0c;接口用例管理&#xff0c;接口自动化场景执行一键选取用例范围&#xff0c;生成测试报告。 会用jmeter&#xff0c;metersphere会…

小程序数据可视化:使用图表和可视化工具展示数据

在当今信息爆炸的时代&#xff0c;数据无疑是最珍贵的资源之一。然而&#xff0c;海量的数据如果不加以整理和展示&#xff0c;很难从中获取有价值的信息。这时候&#xff0c;数据可视化就发挥了重要作用&#xff0c;它能够通过图表和可视化工具将复杂的数据转化为直观的视觉形…

《Java极简设计模式》第04章:建造者模式(Builder)

作者&#xff1a;冰河 星球&#xff1a;http://m6z.cn/6aeFbs 博客&#xff1a;https://binghe.gitcode.host 文章汇总&#xff1a;https://binghe.gitcode.host/md/all/all.html 源码地址&#xff1a;https://github.com/binghe001/java-simple-design-patterns/tree/master/j…

ssm+Vue.js在线购物系统源码和论文

ssmVue.js在线购物系统源码和论文049 开发工具&#xff1a;idea 数据库mysql5.7 数据库链接工具&#xff1a;navcat,小海豚等 技术&#xff1a;ssm 摘 要 随着科学技术的飞速发展&#xff0c;各行各业都在努力与现代先进技术接轨&#xff0c;通过科技手段提高自身的优势…

手机直播源码开发,协议讨论篇(三):RTMP实时消息传输协议

实时消息传输协议RTMP简介 RTMP又称实时消息传输协议&#xff0c;是一种实时通信协议。在当今数字化时代&#xff0c;手机直播源码平台为全球用户进行服务&#xff0c;如何才能增加用户&#xff0c;提升用户黏性&#xff1f;就需要让一对一直播平台能够为用户提供优质的体验。…

“石头剪刀布”游戏:while、函数自调用实现循环游戏

if…else实现“石头剪刀布”游戏&#xff0c;while、函数自调用实现循环游戏。 (本笔记适合学过if…else的coder翻阅) 【学习的细节是欢悦的历程】 Python 官网&#xff1a;https://www.python.org/ Free&#xff1a;大咖免费“圣经”教程《 python 完全自学教程》&#xff0c…

〔016〕Stable Diffusion 之 模型工具箱和图片背景移除 篇

✨ 目录 &#x1f388; 下载插件&#x1f388; 基础使用界面&#x1f388; 高级使用界面&#x1f388; 下载背景移除插件&#x1f388; 移除插件使用 &#x1f388; 下载插件 由于模型很多&#xff0c;而且底模也非常大&#xff0c;对于空间占用比较大&#xff0c;如果想缩小模…

Nexus2迁移升级到Nexus3

与 Nexus 2.x 相比&#xff0c;Nexus 3.x 为我们提供了更多实用的新特性。SonaType 官方建议我们&#xff0c;使用最新版本 Nexus 2.x 升级到最新版本 Nexus 3.x&#xff0c;并在 Nexus 升级兼容性 一文中为我们提供了各个版本 Nexus 升级到最新版本 Nexus 3.x 的流程&#xff…

《金字塔原理》(表达的逻辑)

前言&#xff1a;在思考和表达上&#xff0c;很多时候显得很混乱&#xff0c;源于不了解结构化思想、表达&#xff0c;如何让话讲得更有逻辑&#xff1f;事做得更有条理&#xff1f;接触到了一本书&#xff1a;《金字塔原理》&#xff0c;通过这本书的学习&#xff0c;希望可以…

把握潮流:服装定制小程序的发展与趋势

随着互联网的快速发展&#xff0c;小程序成为了人们生活中不可或缺的一部分。尤其在服装行业&#xff0c;定制化已经成为了一种趋势。为了满足消费者个性化的需求&#xff0c;服装定制小程序应运而生。 为了方便开发者的设计和制作&#xff0c;我们可以使用第三方的制作平台来创…

Redis数据结构之List

Redis 中列表&#xff08;List&#xff09;类型是用来存储多个有序的字符串&#xff0c;列表中的每个字符串成为元素 Eelement&#xff09;&#xff0c;一个列表最多可以存储 2^32-1 个元素。 在 Redis 中&#xff0c;可以对列表两端插入&#xff08;push&#xff09;和弹出&am…

【Spring框架】Spring事务的介绍与使用方法

⚠️ 再提醒一次&#xff1a;Spring 本身并不实现事务&#xff0c;Spring事务 的本质还是底层数据库对事务的支持。你的程序是否支持事务首先取决于数据库 &#xff0c;比如使用 MySQL 的话&#xff0c;如果你选择的是 innodb 引擎&#xff0c;那么恭喜你&#xff0c;是可以支持…

QT中的按钮控件Buttons介绍

目录 Buttons 按钮控件 1、常用属性介绍 2、按钮介绍 2.1QPushButton 普通按钮 2.2QtoolButton 工具按钮 2.3Radio Button单选按钮 2.4CheckButton复选按钮 2.5Commam Link Button命令链接按钮 2.6Dialog Button Box命令链接按钮 Buttons 按钮控件 在Qt里&#xff0c;…