数值优化(Numerical Optimization)(2)-信赖域法

数值优化(Numerical Optimization)(2)-信赖域法

数值优化(Numerical Optimization)(2)-信赖域法 养生的控制人 浙江大学 控制科学与工程博士在读

信赖域子问题与 Fidelity

信赖域法的思想很好理解:就是利用一个好解的局部模型 数值优化(Numerical Optimization)(2)-信赖域法 来近似当前迭代点附近 (附近就是一个区域 数值优化(Numerical Optimization)(2)-信赖域法 ) 的函数情况 数值优化(Numerical Optimization)(2)-信赖域法 。

信赖域子问题的定义:假设 数值优化(Numerical Optimization)(2)-信赖域法 且 数值优化(Numerical Optimization)(2)-信赖域法 为目标函数,在区域 数值优化(Numerical Optimization)(2)-信赖域法 内目标函数的近似函数为 数值优化(Numerical Optimization)(2)-信赖域法 ,则置信域子问题的目的是寻找

数值优化(Numerical Optimization)(2)-信赖域法

也就是说信赖域子问题求的是近似函数在信赖域内取最小时对应的自变量取值 数值优化(Numerical Optimization)(2)-信赖域法 。通常近似函数可以用二次函数来表示(注意这是关于 数值优化(Numerical Optimization)(2)-信赖域法 的函数)

数值优化(Numerical Optimization)(2)-信赖域法

其中 数值优化(Numerical Optimization)(2)-信赖域法 为模型 Hessian,这里并没有要求它是正定的。

近似函数 数值优化(Numerical Optimization)(2)-信赖域法 在点 数值优化(Numerical Optimization)(2)-信赖域法 的 Fidelity 定义为:(可以理解为两个函数斜率的比值,用来衡量近似函数的可信程度)

数值优化(Numerical Optimization)(2)-信赖域法

我们需要根据近似函数 数值优化(Numerical Optimization)(2)-信赖域法 对目标函数 数值优化(Numerical Optimization)(2)-信赖域法 的近似程度的好坏来调整信赖域的大小:令 数值优化(Numerical Optimization)(2)-信赖域法

  • 如果 数值优化(Numerical Optimization)(2)-信赖域法 且 数值优化(Numerical Optimization)(2)-信赖域法 是用于函数下降,函数 数值优化(Numerical Optimization)(2)-信赖域法 能够很好地近似 数值优化(Numerical Optimization)(2)-信赖域法 ,此时我们能够增大置信域;(可以理解为 数值优化(Numerical Optimization)(2)-信赖域法 和近似函数的斜率(导数)相近,所以 数值优化(Numerical Optimization)(2)-信赖域法 能够较好近似 数值优化(Numerical Optimization)(2)-信赖域法 )
  • 如果 数值优化(Numerical Optimization)(2)-信赖域法 且 数值优化(Numerical Optimization)(2)-信赖域法 是用于函数下降,函数 数值优化(Numerical Optimization)(2)-信赖域法 不能有效近似 数值优化(Numerical Optimization)(2)-信赖域法 ,此时应该收缩置信域;(可以理解为函数的导数偏差大,近似效果肯定不好了)
  • 其他情况下不需要对信赖域做出调整。

假设 数值优化(Numerical Optimization)(2)-信赖域法 是函数 数值优化(Numerical Optimization)(2)-信赖域法 的下降方向,令 数值优化(Numerical Optimization)(2)-信赖域法

  • 如果 数值优化(Numerical Optimization)(2)-信赖域法 则方向 数值优化(Numerical Optimization)(2)-信赖域法 并不能使得函数 数值优化(Numerical Optimization)(2)-信赖域法 具有一定的下降量, 数值优化(Numerical Optimization)(2)-信赖域法
  • 如果 数值优化(Numerical Optimization)(2)-信赖域法 则方向 数值优化(Numerical Optimization)(2)-信赖域法 能够使得函数 数值优化(Numerical Optimization)(2)-信赖域法 有较大的下降, 数值优化(Numerical Optimization)(2)-信赖域法

Fidelity 算法

信赖域调整算法

输入:阈值 数值优化(Numerical Optimization)(2)-信赖域法 (通常取 数值优化(Numerical Optimization)(2)-信赖域法 ),信赖域 数值优化(Numerical Optimization)(2)-信赖域法

判断:

  • 如果 数值优化(Numerical Optimization)(2)-信赖域法 (可以理解为扩大信赖域,但又不能超过最大信赖域的约束)
  • 如果 数值优化(Numerical Optimization)(2)-信赖域法 则 数值优化(Numerical Optimization)(2)-信赖域法 (可以理解为缩小信赖域)

输出: 数值优化(Numerical Optimization)(2)-信赖域法

解的接受算法

输入:阈值 数值优化(Numerical Optimization)(2)-信赖域法

判断:

  • 如果 数值优化(Numerical Optimization)(2)-信赖域法 则 数值优化(Numerical Optimization)(2)-信赖域法
  • 否则 数值优化(Numerical Optimization)(2)-信赖域法

输出: 数值优化(Numerical Optimization)(2)-信赖域法

子问题的近似解

柯西点

定义:令 数值优化(Numerical Optimization)(2)-信赖域法 为函数 数值优化(Numerical Optimization)(2)-信赖域法 在 数值优化(Numerical Optimization)(2)-信赖域法 的近似函数, 数值优化(Numerical Optimization)(2)-信赖域法 为 数值优化(Numerical Optimization)(2)-信赖域法 处的单位最陡下降方向( 数值优化(Numerical Optimization)(2)-信赖域法 ),求解关于 数值优化(Numerical Optimization)(2)-信赖域法 的优化命题

数值优化(Numerical Optimization)(2)-信赖域法

则 数值优化(Numerical Optimization)(2)-信赖域法 为函数 数值优化(Numerical Optimization)(2)-信赖域法 的柯西点。可以理解为柯西点是函数 数值优化(Numerical Optimization)(2)-信赖域法 在区域 数值优化(Numerical Optimization)(2)-信赖域法 内沿着最陡下降方向进行线搜得到的最小点。

柯西点的计算:令 数值优化(Numerical Optimization)(2)-信赖域法 是函数 数值优化(Numerical Optimization)(2)-信赖域法 在区间 数值优化(Numerical Optimization)(2)-信赖域法 的一个二次近似模型

数值优化(Numerical Optimization)(2)-信赖域法

则柯西点为(其实就是高中的二次函数求最值问题,需要考虑边界条件)

数值优化(Numerical Optimization)(2)-信赖域法

注:使用柯西点的收敛速率并不高。

Dogleg 法

狗腿路径的定义:令 数值优化(Numerical Optimization)(2)-信赖域法 为函数 数值优化(Numerical Optimization)(2)-信赖域法 的二次近似函数且 数值优化(Numerical Optimization)(2)-信赖域法 ,令 数值优化(Numerical Optimization)(2)-信赖域法 为柯西点, 数值优化(Numerical Optimization)(2)-信赖域法 为近似函数的无约束情况下的最小点,狗腿路径 数值优化(Numerical Optimization)(2)-信赖域法 为

数值优化(Numerical Optimization)(2)-信赖域法

狗腿路径可以理解为一种两阶段的方法,先朝最陡方向走,再往近似函数的无约束最小点走(如果碰到信赖域的边界就不走了)。

狗腿法的定义:选择 数值优化(Numerical Optimization)(2)-信赖域法 的迭代点 数值优化(Numerical Optimization)(2)-信赖域法 且 数值优化(Numerical Optimization)(2)-信赖域法 。

狗腿路径的性质:假设 数值优化(Numerical Optimization)(2)-信赖域法 为二次函数 数值优化(Numerical Optimization)(2)-信赖域法 的狗腿路径且半径 数值优化(Numerical Optimization)(2)-信赖域法 ,模型的 Hessian 数值优化(Numerical Optimization)(2)-信赖域法

  • 数值优化(Numerical Optimization)(2)-信赖域法 是下降的
  • 数值优化(Numerical Optimization)(2)-信赖域法 是上升的

柯西点法的全局收敛性

引理1:柯西点 数值优化(Numerical Optimization)(2)-信赖域法 满足

数值优化(Numerical Optimization)(2)-信赖域法

引理2:狗腿步长 数值优化(Numerical Optimization)(2)-信赖域法 满足

数值优化(Numerical Optimization)(2)-信赖域法

引理3:假设一个方法采用的步长 数值优化(Numerical Optimization)(2)-信赖域法 满足 数值优化(Numerical Optimization)(2)-信赖域法 且 数值优化(Numerical Optimization)(2)-信赖域法 ,则 数值优化(Numerical Optimization)(2)-信赖域法 满足

数值优化(Numerical Optimization)(2)-信赖域法

可以证明在一定条件下,柯西点法能够使得: 数值优化(Numerical Optimization)(2)-信赖域法 。

子问题的迭代解

子问题的精确解

最小化二次函数的条件:假设 数值优化(Numerical Optimization)(2)-信赖域法 为二次函数

数值优化(Numerical Optimization)(2)-信赖域法

其中 数值优化(Numerical Optimization)(2)-信赖域法 是对称矩阵

  • 数值优化(Numerical Optimization)(2)-信赖域法 取得最小值当且仅当 数值优化(Numerical Optimization)(2)-信赖域法 且 数值优化(Numerical Optimization)(2)-信赖域法 ,如果 数值优化(Numerical Optimization)(2)-信赖域法 则所有满足 数值优化(Numerical Optimization)(2)-信赖域法 的 数值优化(Numerical Optimization)(2)-信赖域法 均是 数值优化(Numerical Optimization)(2)-信赖域法 的全局最小点
  • 数值优化(Numerical Optimization)(2)-信赖域法 具有唯一最小点当且仅当 数值优化(Numerical Optimization)(2)-信赖域法

精确解满足定理:向量 数值优化(Numerical Optimization)(2)-信赖域法 是信赖域问题的解

数值优化(Numerical Optimization)(2)-信赖域法

当且仅当 数值优化(Numerical Optimization)(2)-信赖域法 是可行的且存在 数值优化(Numerical Optimization)(2)-信赖域法

  • 数值优化(Numerical Optimization)(2)-信赖域法
  • 数值优化(Numerical Optimization)(2)-信赖域法
  • 数值优化(Numerical Optimization)(2)-信赖域法

子问题的迭代解

精确解定理保证了解的存在性,因此我们需要找到满足条件的 数值优化(Numerical Optimization)(2)-信赖域法 ,可以利用牛顿法求根的思想进行迭代求解。

算例及matlab代码

这里采用信赖域法来求解一个无约束问题,信赖域子问题的求解采用柯西点法。优化问题为

数值优化(Numerical Optimization)(2)-信赖域法

这一函数也叫做 Branin 函数,经常被用作测试函数,它有三个全局最优。

算法流程为:

  1. 初始化
  2. 重复以下步骤直到满足收敛条件
  3. 求解局部二次函数的最小值得到 数值优化(Numerical Optimization)(2)-信赖域法
  4. 计算 数值优化(Numerical Optimization)(2)-信赖域法
  5. 解的接受算法
  6. 信赖域调整算法

求解过程:

假设初始点为 数值优化(Numerical Optimization)(2)-信赖域法 , 数值优化(Numerical Optimization)(2)-信赖域法 ,迭代的终止条件为 数值优化(Numerical Optimization)(2)-信赖域法 ,信赖域半径为 数值优化(Numerical Optimization)(2)-信赖域法 , 数值优化(Numerical Optimization)(2)-信赖域法 ,

目标函数的梯度 数值优化(Numerical Optimization)(2)-信赖域法 为

数值优化(Numerical Optimization)(2)-信赖域法

目标函数的严格 Hessian 为

数值优化(Numerical Optimization)(2)-信赖域法

解的接受算法中的阈值 数值优化(Numerical Optimization)(2)-信赖域法 ,信赖域调整算法中的 数值优化(Numerical Optimization)(2)-信赖域法

%% 定义函数、梯度和Hessian
f = @(x1,x2) (x2-0.129*x1^2+1.6*x1-6)^2+6.07*cos(x1)+10;
g = @(x1,x2) [2*(x2-0.129*x1^2+1.6*x1-6)*(-0.258*x1+1.6)-6.07*sin(x1);...
    2*(x2-0.129*x1^2+1.6*x1-6)];
B = @(x1,x2) [2*(-0.258*x1+1.6)^2-0.516*(x2-0.128*x1^2+1.6*x1-6)-6.07*cos(x1),...
    -0.516*x1+3.2;-0.516*x1+3.2,2];

%% 初始参数设置
epsilon = 0.01;
Delta_0 = 2;
Delta_max = 5;
x0 = [6;14];
c1 = 0.25;
c2 = 0.75;
eta = 0.2;

%% 迭代求解
while 1
    if norm(g(x0(1),x0(2)),2) <= 0.01
        break
    end
    g_k = g(x0(1),x0(2));
    B_k = B(x0(1),x0(2));
    if g_k'*B_k*g_k > 0
        p = -g_k/norm(g_k,2)*min(Delta_0,(norm(g_k,2)^3)/(g_k'*B_k*g_k));
    else
        p = -g_k/norm(g_k,2)*Delta_0;
    end
    x_temp = x0 + p;
    rho = (f(x_temp(1),x_temp(2))-f(x0(1),x0(2)))/(g_k'*p+0.5*p'*B_k*p);
    if rho > c2
        Delta_0 = min(2*Delta_0,Delta_max);
    else
        Delta_0 = 0.5*Delta_0;
    end
    if rho >= eta
        x0 = x0 + p;
    end
end

求解的结果:左图为自变量 数值优化(Numerical Optimization)(2)-信赖域法 的优化轨迹,右图为函数值随迭代次数的变化。

数值优化(Numerical Optimization)(2)-信赖域法

下图在等高线图中展示优化路径

数值优化(Numerical Optimization)(2)-信赖域法

 

编辑于 08-29
上一篇:[转载]自动机器学习(AutoML)领域论文合集


下一篇:php-基于用户级别的不同mysql连接查询