机器学习笔记之优化算法(一)无约束优化概述

news2024/9/24 7:15:22

机器学习笔记之优化算法——无约束优化概述

  • 引言
    • 回顾:关于支持向量机的凸二次优化问题
    • 无约束优化问题概述
      • 解析解与数值解
      • 数值解的单调性
      • 关于优化问题的策略
        • 线搜索方法
        • 信赖域方法

引言

从本节开始,将介绍优化算法 ( Optimization Algorithm ) (\text{Optimization Algorithm}) (Optimization Algorithm)

回顾:关于支持向量机的凸二次优化问题

基于支持向量机 ( Support Vector Machine,SVM ) (\text{Support Vector Machine,SVM}) (Support Vector Machine,SVM)最大间隔分类器的朴素思想:从能够将所有样本点正确分类的直线中找到满足条件的一条直线:数据集 D \mathcal D D内的 N N N个样本点到直线对应的 N N N个距离中找出长度最小的距离,而从所有直线中找出最小距离长度最大的那条直线即为所求

也就是说,在样本点分类正确的条件下,任意一条直线与 D \mathcal D D中的样本点之间均会存在一个最小距离,而‘最小距离’这个值最大意味着该直线是 D \mathcal D D划分正确的最优模型结果,无论是正类还是负类,该直线均与其保持一定距离。

  • 关于数据集 D \mathcal D D的描述表示如下:
    D = { ( x ( i ) , y ( i ) ) } i = 1 N x ( i ) ∈ R p ; y ( i ) ∈ { − 1 , + 1 } \mathcal D = \left\{(x^{(i)},y^{(i)})\right\}_{i=1}^N \quad x^{(i)} \in \mathbb R^{p};y^{(i)} \in \{-1,+1\} D={(x(i),y(i))}i=1Nx(i)Rp;y(i){1,+1}
  • 关于模型的描述表示如下:
    y = W T x + b y = \mathcal W^T x + b y=WTx+b
    这意味着:若将 D \mathcal D D中所有样本点均分类正确 ⇔ \Leftrightarrow 每个样本的预测结果 W T x ( i ) + b \mathcal W^T x^{(i)} + b WTx(i)+b与对应标签同号。即:
    y ( i ) ( W T x ( i ) + b ) > 0 ∀ ( x ( i ) , y ( i ) ) ∈ D y^{(i)} \left(\mathcal W^T x^{(i)} + b\right) > 0 \quad \forall (x^{(i)},y^{(i)}) \in \mathcal D y(i)(WTx(i)+b)>0(x(i),y(i))D
    经过函数间隔 ( Functional Margin ) (\text{Functional Margin}) (Functional Margin)的约束,对应最大间隔分类器的化简结果表示如下:
    { max ⁡ W , b 1 ∣ ∣ W ∣ ∣ min ⁡ ( x ( i ) , y ( i ) ) ∈ D y ( i ) ( W T x ( i ) + b ) s . t . y ( i ) ( W T x ( i ) + b ) > 0 ⇒ { min ⁡ W , b 1 2 W T W s . t . y ( i ) ( W T x ( i ) + b ) > 0 \begin{aligned} & \begin{cases} \begin{aligned} & \mathop{\max}\limits_{\mathcal W,b} \frac{1}{||\mathcal W||} \mathop{\min}\limits_{(x^{(i)},y^{(i)}) \in \mathcal D} y^{(i)} (\mathcal W^T x^{(i)} + b) \\ & s.t. y^{(i)} (\mathcal W^T x^{(i)} + b) > 0 \end{aligned} \end{cases} \\ \Rightarrow & \begin{cases} \begin{aligned} & \mathop{\min}\limits_{\mathcal W,b} \frac{1}{2} \mathcal W^T \mathcal W \\ & s.t. \quad y^{(i)} (\mathcal W^T x^{(i)} + b) > 0 \end{aligned} \end{cases} \end{aligned} W,bmax∣∣W∣∣1(x(i),y(i))Dminy(i)(WTx(i)+b)s.t.y(i)(WTx(i)+b)>0 W,bmin21WTWs.t.y(i)(WTx(i)+b)>0

观察上式。很明显,它是一个包含 N N N个不等式约束的凸二次优化问题

  • 其中,目标函数 1 2 W T W \begin{aligned}\frac{1}{2} \mathcal W^T\mathcal W\end{aligned} 21WTW是一个二次型函数
    f ( W ) = 1 2 W T W = 1 2 ( w 1 2 + w 2 2 + ⋯ + w p 2 ) \begin{aligned} f(\mathcal W) & = \frac{1}{2} \mathcal W^T\mathcal W \\ & = \frac{1}{2} (w_1^2 + w_2^2 + \cdots + w_p^2) \end{aligned} f(W)=21WTW=21(w12+w22++wp2)
  • N N N个约束是由仿射函数 ( Affine Function ) (\text{Affine Function}) (Affine Function)构成的不等式约束
    g ( W , b ) = 1 − y ( i ) ( W T x ( i ) + b ) = 1 − y ( i ) ( w 1 ⋅ x 1 ( i ) + ⋯ + w p ⋯ x p ( i ) + b ) i ∈ { 1 , 2 , ⋯   , N } \begin{aligned} g(\mathcal W,b) & = 1 - y^{(i)}(\mathcal W^T x^{(i)} + b) \\ & = 1 - y^{(i)} \left(w_1 \cdot x_1^{(i)} + \cdots + w_p \cdots x_p^{(i)} + b\right) \quad i \in \{1,2,\cdots,N\} \end{aligned} g(W,b)=1y(i)(WTx(i)+b)=1y(i)(w1x1(i)++wpxp(i)+b)i{1,2,,N}
    凸二次优化问题必然有解,因而可以对最优参数 W ∗ , b ∗ \mathcal W^*,b^* W,b进行求解。首先,通过 KKT \text{KKT} KKT条件求解 W ∗ \mathcal W^* W解析解,并找出支持向量;将支持向量带入,对 b ∗ b^* b进行求解。
    求解思路见传送门

无约束优化问题概述

工程设计中的优化问题,其一般提法是要选择一组参数(变量),在满足一系列的条件(约束)下,使设计指标(目标)达到最优值。

是否存在约束条件的角度可将优化问题分为约束优化无约束优化;从另一个角度也可以对优化问题进行划分:凸优化 ( Convex Optimization ) (\text{Convex Optimization}) (Convex Optimization)非凸优化

解析解与数值解

无约束条件的凸优化开始,系统地介绍优化问题。
关于凸优化问题的目标函数 ( Objective Function ) (\text{Objective Function}) (Objective Function)表示如下:
这里对自变量 X \mathcal X X不进行过多约束,它仅是 n n n维实数空间中的点。
min ⁡ X ∈ R n f ( X ) \mathop{\min}\limits_{\mathcal X \in \mathbb R^n} f(\mathcal X) XRnminf(X)

  • 如果函数 f ( X ) f(\mathcal X) f(X)是一个凸函数,并且它足够简单:例如 X \mathcal X X是一个一维随机变量;而 f ( X ) f(\mathcal X) f(X)是一个一元的、二次的凸函数,并且 X \mathcal X X定义域中连续、可微。这种情况下,我们完全不需要去求解数值解,直接通过求其解析解的方式来求得使 f ( X ) f(\mathcal X) f(X)取得最值的最优解

  • 但实际上,更多的优化问题我们没有办法通过求解解析解的方式获得。更多的,我们会使用数值解通过迭代的方式来逼近近似解。

数值解的基本思路:给定一个初始值 x 0 x_0 x0,通过某种具体策略 x 0 x_0 x0进行迭代 x 1 , x 2 , x 3 , ⋯ x_1,x_2,x_3,\cdots x1,x2,x3,。而数值解自身就是迭代过程中产生的数列结果:

  • 这里的 ∞ \infty 仅仅是一种数学表达,从算法的角度,我们不可能让迭代无限地执行下去,在算法过程中,我们可能会设置一系列条件,当迭代结果 x k x_k xk达到条件时,我们则认为近似解 x k x_k xk已经足够精确,从而停止迭代过程。
  • 迭代停止后,这个近似解 x k x_k xk有可能就是最优解 x ∗ x^* x自身;也有可能是一个满足条件的一个效果不错的极小值。
    { x k } k = 1 ∞ \{x_k\}_{k=1}^{\infty} {xk}k=1

数值解的单调性

单调性是指:随着迭代步骤的增加,数值解对应的函数结果尽量满足目标函数的优化方向。以上述目标函数 min ⁡ X ∈ R n f ( X ) \begin{aligned}\mathop{\min}\limits_{\mathcal X \in \mathbb R^n} f(\mathcal X)\end{aligned} XRnminf(X)为例,理想状态下图像描述表示如下:
这仅仅是一个抽象的图像描述。
优化过程理想状态图像
从上图可以明显观察到:随着数值解迭代次数的增加,对应函数结果向目标函数的优化方向(最小值)靠近,但不否认的是:靠近的幅度也在逐渐减小,说明迭代的数值解正在逐步逼近最优解 f ∗ f^* f。可以看出,该单调性是一个严格的单调性,即:
f ( x k + 1 ) < f ( x k ) f ( x k ) , f ( x k + 1 ) ∈ { f ( x k ) } k = 0 ∞ f(x_{k+1}) < f(x_k) \quad f(x_k),f(x_{k+1}) \in \{f(x_k)\}_{k=0}^{\infty} f(xk+1)<f(xk)f(xk),f(xk+1){f(xk)}k=0

  • 一些算法具备这种单调性的性质。如梯度下降法 ( Gradient Descent,GD ) (\text{Gradient Descent,GD}) (Gradient Descent,GD)
    W ( t + 1 ) ⇐ W ( t ) − η ⋅ ∇ W J ( W ) \mathcal W^{(t+1)} \Leftarrow \mathcal W^{(t)} - \eta \cdot \nabla_{\mathcal W}\mathcal J(\mathcal W) W(t+1)W(t)ηWJ(W)
    这种方法必然会使迭代产生的数值解 W ( 1 ) , W ( 2 ) , ⋯   , W ( k ) , W ( k + 1 ) , ⋯ \mathcal W^{(1)},\mathcal W^{(2)},\cdots,\mathcal W^{(k)},\mathcal W^{(k+1)},\cdots W(1),W(2),,W(k),W(k+1),满足:

J ( W ( k + 1 ) ) < J ( W ( k ) ) \mathcal J(\mathcal W^{(k+1)}) < \mathcal J(\mathcal W^{(k)}) J(W(k+1))<J(W(k))

但实际上,并不是所有算法都会严格按照上述单调性执行迭代。或者说,如果目标函数是复杂的(坑坑洼洼的,- -),如果使用梯度下降法,它可能更容易地陷入到局部极小值,也就是说,在复杂的函数环境下,这种严格的单调性可能是不可取的。

如何降低单调性的严格程度 ? ? ?换句话说,我们是否可以增加一些关于单调性的容错率从原始的严格单调性变为允许出现局部错误的单调性。也就是说:在迭代过程中,允许局部出现非单调性的情况,但整体趋势保持单调性。使用数学符号描述这一思想:依然以上述目标函数 min ⁡ X ∈ R n f ( X ) \begin{aligned}\mathop{\min}\limits_{\mathcal X \in \mathbb R^n} f(\mathcal X)\end{aligned} XRnminf(X)为例,在迭代过程产生的一系列数值解 x 1 , x 2 , ⋯   , x k , x k + 1 , ⋯ x_1,x_2,\cdots,x_{k},x_{k+1},\cdots x1,x2,,xk,xk+1,会满足:
f ( x k + 1 ) < f ( x k − m ) f ( x k + 1 ) , f ( x k − m ) ∈ { f ( x k ) } k = 0 ∞ ; m ∈ [ 0 , k ] f(x_{k+1}) < f(x_{k-m}) \quad f(x_{k+1}),f(x_{k-m}) \in \left\{f(x_k)\right\}_{k=0}^{\infty}; m \in [0,k] f(xk+1)<f(xkm)f(xk+1),f(xkm){f(xk)}k=0;m[0,k]
上式中的 m m m可以看作是调节单调性严格程度的一个参数

  • m = 0 m= 0 m=0时,迭代过程遵循严格的单调性
  • 随着 m m m的增加,从而削弱单调性的严格程度。例如: m = 3 m=3 m=3,仅需满足 f ( x k + 1 ) < f ( x k − 3 ) f(x_{k+1}) < f(x_{k-3}) f(xk+1)<f(xk3)即可,而 f ( x k + 1 ) f(x_{k+1}) f(xk+1) f ( x k ) , f ( x k − 1 ) , f ( x k − 2 ) f(x_{k}),f(x_{k-1}),f(x_{k-2}) f(xk),f(xk1),f(xk2)之间的大小关系并不是关注的重点

关于优化问题的策略

需要区分的是:这里提到的策略并不是损失函数,而是数值解的迭代方法。也就是说:如何在迭代过程中,通过已知数值解 x k x_k xk得到新的数值解 x k + 1 x_{k+1} xk+1。数学符号描述如下:
x k ⟹ ? x k + 1 \begin{aligned}x_{k} \overset{\text{?}}{\Longrightarrow} x_{k+1}\end{aligned} xk?xk+1
这里介绍两种常见迭代策略:

线搜索方法

  • 线搜索方法 ( Line Search Method ) (\text{Line Search Method}) (Line Search Method)。该方法的特点是:数值解的方向步长分开执行:先定方向,再定步长。对应数学符号表达如下:
    ~~我并没有看到方向与步长的先后顺序,仅观察到了它们的分开执行。
    x k + 1 = x k + α k ⋅ P k x_{k+1} = x_{k} + \alpha_k \cdot \mathcal P_k xk+1=xk+αkPk
    其中 α k > 0 \alpha_k > 0 αk>0表示步长(机器学习中的学习率,实数) P k \mathcal P_k Pk表示方向。针对线搜索方法步长的重要程度高于方向。也就是说,步长相较于方向对数值解结果的影响更大。

    原因在于:一旦策略被确定,方向的可操作空间是有限的。例如我们执行一个回归任务,我们使用的目标函数是均方误差 ( Mean Squared Error ) (\text{Mean Squared Error}) (Mean Squared Error),并使用梯度下降法作为优化策略。那么此时方向就是被确定的——目标函数最小值对应的方向(负梯度方向)

    相反,我们对于步长的要求更加严格。原因在于:

    • 如果步长被设置的较大,可能会导致在数值解的迭代过程中错过最优值;甚至产生的新数值解不满足梯度下降法对应的严格的单调性
      这在实际过程中会表现出:损失函数结果反弹,或者是震荡现象。
    • 如果步长被设置的较小,这会产生很高的时间代价。而这个代价在数值解的迭代过程中,可能是没有必要的。

因而线搜索方法也被称作一维搜索方法。因为该搜索方法作用的对象并不是变量 X \mathcal X X自身,而是对应的步长 α \alpha α。由于 α \alpha α人为设置的标量,是 1 1 1维特征,这也是一维搜索方法名称的由来。

信赖域方法

线搜索方法中步长与方向分开执行不同的是,信赖域方法 ( Trust-Region Method ) (\text{Trust-Region Method}) (Trust-Region Method)对方向与步长进行综合考量
假设在变量 X \mathcal X X的空间中,目标函数 f ( X ) f(\mathcal X) f(X)对应函数的等高线表示如下:

  • 需要注意的点:这里的变量 X \mathcal X X指的是模型的权重信息,而不是样本特征。因为样本是数据集给定的。
  • 因而这个二维空间指的是权重空间,对应登高线是损失函数在权重空间中的解区域;而红色部分是最优解区域,也就是说,位于红色区域的权重可以使 f ( X ) f(\mathcal X) f(X)接近最优值,而红色区域的中心点对应的 X ∗ \mathcal X^* X,有 f ( X ∗ ) = min ⁡ X ∈ R 2 f ( X ) \begin{aligned}f(\mathcal X^*) = \mathop{\min}\limits_{\mathcal X \in \mathbb R^2} f(\mathcal X)\end{aligned} f(X)=XR2minf(X)
    权重空间与等高线

x k x_k xk为圆心, Δ k \Delta_k Δk为半径做圆,圆内的所有描述权重的点可看做关于 x k x_k xk邻域,而这个邻域也被称作信赖域;定义 n n n向量 P \mathcal P P x k x_k xk为起始点, x k x_k xk邻域内某一点为终止点的一个向量。那么该向量 P \mathcal P P自然存在约束。即:该向量的大小(二范式)不超过半径 Δ k \Delta_k Δk的大小。数学符号表达为:
∣ ∣ P ∣ ∣ ≤ Δ k ||\mathcal P|| \leq \Delta_k ∣∣P∣∣Δk
而我们要求解的目标是: x k x_k xk邻域中找到一个合适的点,该点与 x k x_k xk相连得到向量 P k \mathcal P_k Pk。而这个向量 P k \mathcal P_k Pk自身就是 x k x_k xk移动的方向与步长
x k + 1 = x k + P k x_{k+1} = x_k+ \mathcal P_k xk+1=xk+Pk
对应图像描述表示如下:
其中长蓝色实线表示 x k x_k xk;短蓝色实线表示 P k \mathcal P_k Pk;长蓝色虚线表示 x k + P k x_k + \mathcal P_k xk+Pk.
信赖域方法优化过程

也就是说:这个 P k \mathcal P_k Pk必须满足:在半径 Δ k \Delta_k Δk邻域范围内, x k x_k xk P k \mathcal P_k Pk组成的新向量 x k + P k x_k + \mathcal P_k xk+Pk,与整个邻域内的所有变量的目标函数结果相比最小。数学符号表达如下:
首先,邻域内的任意一点,都可以表示为 x k + P x_k + \mathcal P xk+P的形式。
f ( x k + P k ) = min ⁡ P ; Δ k f ( x k + P ) f(x_k + \mathcal P_k) = \mathop{\min}\limits_{\mathcal P;\Delta_k} f(x_k + \mathcal P) f(xk+Pk)=P;Δkminf(xk+P)
由于 x k x_k xk是上一时刻迭代产生的结果,是已知项,因此将上述表达转化为如下形式:
P k = arg ⁡ min ⁡ P ; Δ k f ( x k + P ) \mathcal P_k = \mathop{\arg\min}\limits_{\mathcal P;\Delta_k} f(x_k + \mathcal P) Pk=P;Δkargminf(xk+P)
真实情况是:即便是仅在 x k x_k xk为圆心, Δ k \Delta_k Δk为半径的邻域内,目标函数 f ( ⋅ ) f(\cdot) f()可能依然是复杂的(坑坑洼洼的~)。因此,我们使用泰勒展开式 f ( x k + P ) f(x_k + \mathcal P) f(xk+P)进行化简:

  • 由于泰勒展开式可以无限展开,这里仅展开到二次项,使用 ≈ \approx 表达。
  • 其中 [ ∇ 2 f ( x k ) ] \left[\nabla^2 f(x_k)\right] [2f(xk)]正则化——权重衰减角度中介绍过,被称作 Hession Matrix \text{Hession Matrix} Hession Matrix,这里使用 H k \mathcal H_k Hk对其进行表示。
    f ( x k + P ) ≈ f ( x k ) + 1 1 ! [ ∇ f ( x k ) ] T P + 1 2 ! P T [ ∇ 2 f ( x k ) ] P ≈ f ( x k ) + [ ∇ f ( x k ) ] T P + 1 2 P T H k P \begin{aligned} f(x_k + \mathcal P) & \approx f(x_k) + \frac{1}{1!} \left[\nabla f(x_k)\right]^T \mathcal P + \frac{1}{2!} \mathcal P^T \left[\nabla^2 f(x_k)\right] \mathcal P \\ & \approx f(x_k) + \left[\nabla f(x_k)\right]^T \mathcal P + \frac{1}{2} \mathcal P^T \mathcal H_k \mathcal P \end{aligned} f(xk+P)f(xk)+1!1[f(xk)]TP+2!1PT[2f(xk)]Pf(xk)+[f(xk)]TP+21PTHkP

观察上式,它是关于 P \mathcal P P的一个二次函数。至此,我们记 M k ( P ) \mathcal M_k(\mathcal P) Mk(P)是一个仅关于 P \mathcal P P的函数:
如果目标函数 f ( X ) f(\mathcal X) f(X) X \mathcal X X空间内连续可导,那么 H k \mathcal H_k Hk就是一个实对称矩阵。这也意味着:如果变量(权重)的维度 n n n如果过高,那么 H k \mathcal H_k Hk的计算代价也是极高的。
M k ( P ) = f ( x k ) + [ ∇ f ( x k ) ] T P + 1 2 P T H k P \mathcal M_k(\mathcal P) = f(x_k) + \left[\nabla f(x_k)\right]^T \mathcal P + \frac{1}{2} \mathcal P^T \mathcal H_k \mathcal P Mk(P)=f(xk)+[f(xk)]TP+21PTHkP
至此,将上述优化问题化简为如下形式:
不要忘记 P \mathcal P P自身的约束条件,将 arg ⁡ min ⁡ P ; Δ k f ( x k + P ) \mathop{\arg\min}\limits_{\mathcal P;\Delta_k} f(x_k + \mathcal P) P;Δkargminf(xk+P)中的 Δ k \Delta_k Δk转化为约束条件。
{ P k = arg ⁡ min ⁡ P M k ( P ) ∣ ∣ P ∣ ∣ ≤ Δ k \begin{cases} \mathcal P_k = \mathop{\arg\min}\limits_{\mathcal P} \mathcal M_k(\mathcal P) \\ ||\mathcal P|| \leq \Delta_k \end{cases} Pk=PargminMk(P)∣∣P∣∣Δk
很明显,这又是一个约束优化问题。我们假设这个 P k \mathcal P_k Pk是可求的,并且我们也求解出了 P k \mathcal P_k Pk。但回顾上述过程,由于我们仅将 f ( x k + P ) f(x_k + \mathcal P) f(xk+P)化简为二阶泰勒展开,因而我们不否认求解出的 P k \mathcal P_k Pk依然是一个近似值。因此,我们需要验证:这个近似求解出的 P k \mathcal P_k Pk是否有效

如何判定 P k \mathcal P_k Pk是否有效 ? ? ?一个朴素的想法是:将求解出的 P k \mathcal P_k Pk代入到 x k + 1 = x k + P k x_{k+1} = x_k + \mathcal P_k xk+1=xk+Pk中,观察新数值解 x k + 1 x_{k+1} xk+1是否比 x k x_k xk更优秀即可

我们构建这样一个评价函数 ρ k \rho_k ρk
ρ k = f ( x k ) − f ( x k + P k ) M k ( 0 ) − M k ( P k ) \rho_k = \frac{f(x_k) - f(x_k + \mathcal P_k)}{\mathcal M_k(0) - \mathcal M_{k}(\mathcal P_k)} ρk=Mk(0)Mk(Pk)f(xk)f(xk+Pk)
观察:

  • 其中分子均是目标函数 f ( ⋅ ) f(\cdot) f()分母是由 f ( x k + P ) f(x_k + \mathcal P) f(xk+P)转化得到的 M k ( ⋅ ) \mathcal M_k(\cdot) Mk()函数。

  • M k ( 0 ) \mathcal M_k(0) Mk(0)意味着 P = 0 \mathcal P=0 P=0时的 M k ( P ) \mathcal M_k(\mathcal P) Mk(P)结果,我们可以 M k ( 0 ) \mathcal M_k(0) Mk(0)视作 f ( x k ) f(x_k) f(xk)简化版——因为确实仅展开到二阶,高次项我们并没有展开

  • 关于分子: f ( x k ) − f ( x k + P k ) f(x_k) - f(x_k + \mathcal P_k) f(xk)f(xk+Pk),它记录的是求解出的 P k \mathcal P_k Pk真实目标函数 f ( ⋅ ) f(\cdot) f()中的差异性结果
    如果差值较大,意味着 f ( x k + 1 ) f(x_{k+1}) f(xk+1)不仅小于 f ( x k ) f(x_k) f(xk),并且还相差很多。着反而说明我们求解的 P k \mathcal P_k Pk很优秀;相反,如果差值很小,反正验证了求解的 P k \mathcal P_k Pk并没有有效地进行优化。

  • 关于分母,它和分子的思想基本相同,只不过使用的并不是真正的目标函数,而是一个对目标函数简化后的函数信息

由于 P k \mathcal P_k Pk是通过约束优化 { arg ⁡ min ⁡ P M k ( P ) s . t . ∣ ∣ P ∣ ∣ ≤ Δ k \begin{aligned} \begin{cases} \mathop{\arg\min}\limits_{\mathcal P} \mathcal M_k(\mathcal P) \\ s.t. \quad ||\mathcal P|| \leq \Delta_k \end{cases} \end{aligned} PargminMk(P)s.t.∣∣P∣∣Δk产生的结果,那么关于 M k ( 0 ) − M k ( P k ) > 0 \mathcal M_k(0) - \mathcal M_k(\mathcal P_k) > 0 Mk(0)Mk(Pk)>0恒成立。继续观察两者的比值 ρ k \rho_k ρk,观察它具体意义:

  • 如果 ρ k \rho_k ρk是一个负值,这意味着 f ( x k ) − f ( x k + P k ) f(x_k) - f(x_k + \mathcal P_k) f(xk)f(xk+Pk) M k ( 0 ) − M k ( P k ) \mathcal M_k(0) - \mathcal M_k(\mathcal P_k) Mk(0)Mk(Pk)之间异号。但 M k ( 0 ) − M k ( P k ) > 0 \mathcal M_k(0) - \mathcal M_k(\mathcal P_k) > 0 Mk(0)Mk(Pk)>0恒成立,那么会出现如下逻辑:简化版本函数 M k ( ⋅ ) \mathcal M_k(\cdot) Mk()中选择出的最优 P k \mathcal P_k Pk真实目标函数中反而没有起到优化作用,这意味着其他的 P k \mathcal P_k Pk结果必然也不会起到优化作用。这意味着两个问题:

    • P k \mathcal P_k Pk是无效结果,本次迭代不执行,即 x k + 1 = x k x_{k+1} = x_k xk+1=xk
    • 为什么会出现这种情况:这说明真实目标函数 f ( ⋅ ) f(\cdot) f()与简化后的函数 M k ( ⋅ ) \mathcal M_k(\cdot) Mk()之间差距极大。也就是说:简化函数 M k ( ⋅ ) \mathcal M_k(\cdot) Mk()无法有效地对 f ( ⋅ ) f(\cdot) f()进行近似。这说明:被 Δ k \Delta_k Δk所包含的邻域内,其真实目标函数 f ( ⋅ ) f(\cdot) f()在该邻域内依然是非常复杂的,复杂到其简化函数 M k ( ⋅ ) \mathcal M_k(\cdot) Mk()无法对其进行近似。具体做法是:缩小 Δ k \Delta_k Δk的数值,从而减小邻域范围,目的是使邻域内的真实目标函数 f ( ⋅ ) f(\cdot) f()的复杂度降低,从而更容易地被简化函数 M k ( ⋅ ) \mathcal M_k(\cdot) Mk()近似
  • 如果 ρ k \rho_k ρk是一个很小的正值,这意味着 f ( x k ) − f ( x k + P k ) f(x_k) - f(x_k + \mathcal P_k) f(xk)f(xk+Pk) M k ( 0 ) − M k ( P k ) \mathcal M_k(0) - \mathcal M_k(\mathcal P_k) Mk(0)Mk(Pk)之间虽然是同号,但 M k ( 0 ) − M k ( P k ) \mathcal M_k(0) - \mathcal M_k(\mathcal P_k) Mk(0)Mk(Pk)远大于 f ( x k ) − f ( x k + P k ) f(x_k) - f(x_k + \mathcal P_k) f(xk)f(xk+Pk)

    这种情况是第一种情况的缓和版。唯一的区别在于第一种情况是 P k \mathcal P_k Pk纯粹的无效;这种情况是 P k \mathcal P_k Pk起到的优化效果极小,几乎可以视作无效。处理方法与第一种情况相同;

  • ρ k \rho_k ρk是一个不小的正值,这说明从 M k ( ⋅ ) \mathcal M_k(\cdot) Mk()中选择的 P k \mathcal P_k Pk对真实目标函数 f ( ⋅ ) f(\cdot) f()的优化同样有效。此时直接执行下一次迭代即可;

  • ρ k \rho_k ρk是一个很大的正值,这正好和第一种情况相反 Δ k \Delta_k Δk邻域范围内 f ( ⋅ ) f(\cdot) f()反而小于简化版 M k ( ⋅ ) \mathcal M_k(\cdot) Mk()的复杂度,那么我们需要扩大邻域范围来增加 f ( ⋅ ) f(\cdot) f()的复杂度。具体做法是:执行下一次迭代,并且 Δ k + 1 > Δ k \Delta_{k+1} > \Delta_k Δk+1>Δk
    这种情况会使 P k \mathcal P_k Pk点落在 Δ k \Delta_k Δk邻域范围的边缘部分,实际上,它本可以落在更远的位置,只是 Δ k \Delta_k Δk所在邻域限制住了它。

虽然看起来逻辑还是很明确的,但信赖域方法的难点在于如何证明上述流程是否能够收敛。

相关参考:
优化问题——百度百科
【优化算法】无约束优化-概述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

短视频去水印小程序,一键部署你的小程序,可开流量主,实现睡后收入

插件地址 短视频去水印小程序&#xff0c;一键部署你的小程序&#xff0c;可开流量主&#xff0c;实现睡后收入 插件说明 本插件包含以下两部分&#xff1a; 短视频去水印插件&#xff0c;仅为一个接口&#xff0c;可以集成到自己的任意程序中。短视频去水印插件配套小程序…

WGCLOUD - v3.4.7开始访问地址不用加/wgcloud了

WGCLOUD在v3.4.7版本更新中说明&#xff0c;从v3.4.7版本开始&#xff0c;访问server页面&#xff0c;不用在URL加/wgcloud了 只需要IP和端口就可以了&#xff0c;如&#xff1a;http://localhost:9999

自媒体必备的8个素材网站,视频、音效、图片全部免费下载

自媒体必备的视频、音效、图片素材&#xff0c;这8个网站帮你解决。赶紧马住&#xff01; 菜鸟图库 https://www.sucai999.com/video.html?vNTYwNDUx 菜鸟图库虽然是一个设计网站&#xff0c;但它还有非常丰富的视频和音频素材&#xff0c;视频素材全部都是高清无水印&#…

尚硅谷8:开发平台接口,SpringCloud,上传排班

目录 内容介绍 开发平台接口-查询医院 开发平台接口-上传科室接口 开发平台接口-查询科室接口 开发平台接口-删除科室接口 上传排班和查询排班接口 医院列表功能&#xff08;接口&#xff09; 内容介绍 1、开发平台接口-查询医院 2、开发平台接口-上传科室接口 3、开发…

leetcode-707.设计链表

leetcode-707.设计链表 文章目录 leetcode-707.设计链表一.题目描述二.代码随想录三.易错点 一.题目描述 二.代码随想录 代码 class MyLinkedList {public:// 定义链表节点结构体struct ListNode {int val;ListNode *next;ListNode(int val) : val(val), next(nullptr) {}};//…

Apipost变量高亮展示,变量操作更流畅

之前Apipost配置的各种环境变量只能在右上角环境管理中查看&#xff0c;很多小伙伴希望能有一种更好的解决方案用以快速复制变量值&#xff0c;快速查看变量的当前值和初始值&#xff0c;于是在Apipost 7.1.7中我们推出环境变量高亮展示功能来满足用户的使用需求。 功能描述&a…

机器学习之Boosting和AdaBoost

1 Boosting和AdaBoost介绍 1.1 集成学习 集成学习 (Ensemble Learning) 算法的基本思想就是将多个分类器组合&#xff0c;从而实现一个预测效果更好的集成分类器。 集成学习通过建立几个模型来解决单一预测问题。它的工作原理是生成多个分类器/模型&#xff0c;各自独立地学…

PDA开发:MAUI调用Jar包,so文件

PDA系统&#xff1a;android 6.0 PDA功能&#xff1a;扫码打印一体机&#xff0c;扫物料标签&#xff0c;调用金蝶云星空ERP实现收发料&#xff0c;PDA打印功能主要是同一个料号物品只贴一个标签&#xff0c;打印功能是为了复制物料标签&#xff0c;下次再发料使用 打印SDK只…

中国农业大学计算机考研分析

关注我们的微信公众号 姚哥计算机考研 更多详情欢迎咨询 中国农业大学&#xff08;B-&#xff09;考研难度&#xff08;☆☆☆&#xff09; 中国农业大学计算机考研招生学院是信息与电气工程学院。目前均已出拟录取名单。 中国农业大学信息与电气工程学院&#xff0c;起源于…

ST官方基于米尔STM32MP135开发板培训课程(一)

本文将以Myirtech的MYD-YF13X以及STM32MP135F-DK为例&#xff0c;讲解如何使用STM32CubeMX结合Developer package实现最小系统启动。 1.开发准备 1.1 Developer package准备 a.Developer package下载&#xff1a; ‍https://www.st.com/en/embedded-software/stm32mp1dev.ht…

手把手移植 simpleFOC (三):编码器篇

文章目录 前言 一、延时函数 二、修改encoder外中断接口 1.中断调用接口 2.嫁接回调函数 3、新增digitalRead函数 三、添加编译项 四、编译&#xff0c;调试 总结 前言 今天移植的主要内容是simpleFoc的encoder&#xff0c;目标是转到电机&#xff0c;读出对应的角度及角度率。…

Labview串口通信VISA实现串口收发

文章目录 前言一、什么是 VISA二、VISA 驱动下载及安装1、下载2、安装 三、VISA 实现串口收发1、打开虚拟串口2、前面板运行效果3、程序框图 前言 前面使用过调用 MSComm 控件的方式&#xff08;Labview串口通信MSComm实现串口收发&#xff09;&#xff0c;即利用 Windows 提供…

尚医通07:MongoDB+医院需求介绍

内容介绍 1、客户端工具 2、MongoDB常用操作 3、springboot集成MongoDB&#xff08;mongoTemplate&#xff09; 4、springboot集成MongoDB&#xff08;MongoRepository&#xff09; 5、医院需求介绍 6、部署医院模拟系统 7、开发平台接口-上传医院接口 客户端工具 1、…

【用IDEA基于Scala2.12.18开发Spark 3.4.1 项目】

目录 使用IDEA创建Spark项目设置sbt依赖创建Spark 项目结构新建Scala代码 使用IDEA创建Spark项目 打开IDEA后选址新建项目 选址sbt选项 配置JDK debug 解决方案 相关的依赖下载出问题多的话&#xff0c;可以关闭idea&#xff0c;重启再等等即可。 设置sbt依赖 将sbt…

Linux6.2 ansible 自动化运维工具(机器管理工具)

文章目录 计算机系统5G云计算第一章 LINUX ansible 自动化运维工具&#xff08;机器管理工具&#xff09;一、概述二、ansible 环境安装部署三、ansible 命令行模块1.command 模块2.shell 模块3.cron 模块4.user 模块5.group 模块6.copy 模块7.file 模块8.hostname 模块9.ping …

【Python入门系列】第十九篇:Python基于协同过滤推荐系统的实现

文章目录 前言一、协同过滤算法简介二、计算相似度三、Python实现简单的协同过滤推荐系统总结 前言 推荐系统是现代互联网平台中的重要组成部分&#xff0c;它可以根据用户的兴趣和行为&#xff0c;向其推荐个性化的内容。协同过滤是推荐系统中常用的一种方法&#xff0c;它基…

POI信息点的diPointX、diPointY转化成经纬度

需求&#xff1a;接口返回某个地点的数据&#xff08;diPointX、diPointY&#xff09;&#xff0c;前端需把该地点转化成经纬度形式在地图上进行Marker标记。 实现&#xff1a;&#xff08;查找百度地图开发文档&#xff09; 代码验证&#xff1a; console.log(new BMap.Merca…

性能测试问题之慢sql分析

我们在做性能测试的时候&#xff0c;慢sql也可以说是很常见问题&#xff0c;我的性能测试生涯几乎经常遇到慢sql&#xff0c;那么我们怎么来判断有没有慢sql呢&#xff0c;有慢sql后怎么来分析优化呢?如图&#xff1a; 通过上图看可以看到当存在慢sql的时候&#xff0c;这里会…

火爆全网,接口自动化测试-DDT数据驱动实战总结,一篇贯通...

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 DDT&#xff08;D…

信息安全:网络安全体系 与 网络安全模型.

信息安全&#xff1a;网络安全体系 与 网络安全模型. 网络安全保障是一项复杂的系统工程&#xff0c;是安全策略、多种技术、管理方法和人员安全素质的综合。一般而言&#xff0c;网络安全体系是网络安全保障系统的最高层概念抽象&#xff0c;是由各种网络安全单元按照一定的规…