秩1修正公式

在秩1修正公式中,修正项为αkz(k)z(k)T,αk∈R,z(k)∈Rn\alpha_k\boldsymbol{z}^{(k)}\boldsymbol{z}^{(k)T}, \alpha_k \in \mathbb{R}, \boldsymbol{z}^{(k)} \in \mathbb{R}^n,是一个对称矩阵,近似矩阵的更新方程为:

Hk+1=Hk+αkz(k)z(k)T

\boldsymbol{H}_{k+1} = \boldsymbol{H}_{k} + \alpha_k\boldsymbol{z}^{(k)}\boldsymbol{z}^{(k)T}
注意:

rankz(k)z(k)T=rank(⎡⎣⎢⎢⎢⎢⎢⎢z(k)1z(k)2⋮z(k)n⎤⎦⎥⎥⎥⎥⎥⎥[z(k)1,z(k)2,…,z(k)n])=1

rank\quad \boldsymbol{z}^{(k)}\boldsymbol{z}^{(k)T} = rank\quad \Bigg( \left[ \begin{array}{c} {z}_1^{(k)} \\ {z}_2^{(k)} \\ \vdots\\ {z}_n^{(k)} \end{array} \right] [{z}_1^{(k)},{z}_2^{(k)},\dots,{z}_n^{(k)}] \Bigg) =1
所以称为秩1修正算法。如果 Hk\boldsymbol{H}_{k}是对称的,则 Hk+1\boldsymbol{H}_{k+1}也是对称的。
    接下来的问题是在给定的 Hk,Δg(k),Δx(k)\boldsymbol{H}_{k},\Delta\boldsymbol{g}^{(k)}, \Delta\boldsymbol{x}^{(k)}的前提下,确定合适的 αk,z(k)\alpha_k, \boldsymbol{z}^{(k)}, 保证:

Hk+1Δg(k)=(Hk+αkz(k)z(k)T)Δg(k)=Δx(k)

\boldsymbol{H}_{k+1}\Delta\boldsymbol{g}^{(k)} = (\boldsymbol{H}_{k}+\alpha_k\boldsymbol{z}^{(k)}\boldsymbol{z}^{(k)T})\Delta\boldsymbol{g}^{(k)} = \Delta\boldsymbol{x}^{(k)}
注意, z(k)TΔg(k)\boldsymbol{z}^{(k)T}\Delta\boldsymbol{g}^{(k)}是一个标量,因此:

Δx(k)−HkΔg(k)=(αkz(k)TΔg(k))z(k)(1)

\Delta\boldsymbol{x}^{(k)} - \boldsymbol{H}_{k}\Delta\boldsymbol{g}^{(k)} = (\alpha_k\boldsymbol{z}^{(k)T}\Delta\boldsymbol{g}^{(k)})\boldsymbol{z}^{(k)} \quad (1)
有:

z(k)=Δx(k)−HkΔg(k)αk(z(k)TΔg(k))

\boldsymbol{z}^{(k)} = \frac{\Delta\boldsymbol{x}^{(k)} - \boldsymbol{H}_{k}\Delta\boldsymbol{g}^{(k)}}{\alpha_k(\boldsymbol{z}^{(k)T}\Delta\boldsymbol{g}^{(k)})}
可得:

αkz(k)z(k)T=(Δx(k)−HkΔg(k))(Δx(k)−HkΔg(k))Tαk(z(k)TΔg(k))2

\alpha_k\boldsymbol{z}^{(k)}\boldsymbol{z}^{(k)T} = \frac{(\Delta\boldsymbol{x}^{(k)} - \boldsymbol{H}_{k}\Delta\boldsymbol{g}^{(k)})(\Delta\boldsymbol{x}^{(k)} - \boldsymbol{H}_{k}\Delta\boldsymbol{g}^{(k)})^T}{\alpha_k(\boldsymbol{z}^{(k)T}\Delta\boldsymbol{g}^{(k)})^2}
那么近似矩阵的中间更新方程为:

Hk+1=Hk+(Δx(k)−HkΔg(k))(Δx(k)−HkΔg(k))Tαk(z(k)TΔg(k))2(2)

\boldsymbol{H}_{k+1} = \boldsymbol{H}_{k} + \frac{(\Delta\boldsymbol{x}^{(k)} - \boldsymbol{H}_{k}\Delta\boldsymbol{g}^{(k)})(\Delta\boldsymbol{x}^{(k)} - \boldsymbol{H}_{k}\Delta\boldsymbol{g}^{(k)})^T}{\alpha_k(\boldsymbol{z}^{(k)T}\Delta\boldsymbol{g}^{(k)})^2} \quad (2)
在(1)式两端同乘以 Δg(k)T\Delta\boldsymbol{g}^{(k)T}:

Δg(k)TΔx(k)−Δg(k)THkΔg(k)=Δg(k)T(αkz(k)TΔg(k))z(k)

\Delta\boldsymbol{g}^{(k)T}\Delta\boldsymbol{x}^{(k)} - \Delta\boldsymbol{g}^{(k)T}\boldsymbol{H}_{k}\Delta\boldsymbol{g}^{(k)} = \Delta\boldsymbol{g}^{(k)T}(\alpha_k\boldsymbol{z}^{(k)T}\Delta\boldsymbol{g}^{(k)})\boldsymbol{z}^{(k)}
因为 αk,z(k)TΔg(k)=Δg(k)Tz(k)\alpha_k, \boldsymbol{z}^{(k)T}\Delta\boldsymbol{g}^{(k)} = \Delta\boldsymbol{g}^{(k)T}\boldsymbol{z}^{(k)}是标量,所以:

Δg(k)TΔx(k)−Δg(k)THkΔg(k)=αk(z(k)TΔg(k))2

\Delta\boldsymbol{g}^{(k)T}\Delta\boldsymbol{x}^{(k)} - \Delta\boldsymbol{g}^{(k)T}\boldsymbol{H}_{k}\Delta\boldsymbol{g}^{(k)} = \alpha_k(\boldsymbol{z}^{(k)T}\Delta\boldsymbol{g}^{(k)} )^2
将上式代入2式可得:

Hk+1=Hk+(Δx(k)−HkΔg(k))(Δx(k)−HkΔg(k))TΔg(k)T(Δx(k)−HkΔg(k))

\boldsymbol{H}_{k+1} = \boldsymbol{H}_{k} + \frac{(\Delta\boldsymbol{x}^{(k)} - \boldsymbol{H}_{k}\Delta\boldsymbol{g}^{(k)})(\Delta\boldsymbol{x}^{(k)} - \boldsymbol{H}_{k}\Delta\boldsymbol{g}^{(k)})^T}{\Delta\boldsymbol{g}^{(k)T}(\Delta\boldsymbol{x}^{(k)} - \boldsymbol{H}_{k}\Delta\boldsymbol{g}^{(k)})}
    根据以上讨论,可得秩1算法的步骤:
1. 令 k=0k=0,选择初始点 x(0)\boldsymbol{x}^{(0)},任选一个对称正定实矩阵 H0H_0。
2. 如果 g(k)=0\boldsymbol{g}^{(k)} = \boldsymbol{0},停止迭代,否则,令 d(k)=−Hkg(k)\boldsymbol{d}^{(k)} = -\boldsymbol{H}_k\boldsymbol{g}^{(k)}
3. 计算

αk=argminα≥0f(x(k)+αd(k))x(k+1)=x(k)+αd(k))

\alpha_k = \arg \min_{\alpha \ge 0}f(\boldsymbol{x}^{(k)} + \alpha \boldsymbol{d}^{(k)}) \\\boldsymbol{x}^{(k+1)} = \boldsymbol{x}^{(k)} + \alpha \boldsymbol{d}^{(k)})
4.计算

Δx(k)=αd(k)Δg(k)=g(k+1)−g(k)Hk+1=Hk+(Δx(k)−HkΔg(k))(Δx(k)−HkΔg(k))TΔg(k)T(Δx(k)−HkΔg(k))

\Delta\boldsymbol{x}^{(k)} = \alpha \boldsymbol{d}^{(k)} \\\Delta\boldsymbol{g}^{(k)} = \boldsymbol{g}^{(k+1)}-\boldsymbol{g}^{(k)} \\\boldsymbol{H}_{k+1} = \boldsymbol{H}_{k} + \frac{(\Delta\boldsymbol{x}^{(k)} - \boldsymbol{H}_{k}\Delta\boldsymbol{g}^{(k)})(\Delta\boldsymbol{x}^{(k)} - \boldsymbol{H}_{k}\Delta\boldsymbol{g}^{(k)})^T}{\Delta\boldsymbol{g}^{(k)T}(\Delta\boldsymbol{x}^{(k)} - \boldsymbol{H}_{k}\Delta\boldsymbol{g}^{(k)})}
5. 令 k=k+1k = k+1, 回到第二步。

需要秩1并不完全令人满意。首先,该算法产生的矩阵Hk+1\boldsymbol{H}_{k+1}并不一定是正定的,这将导致d(k+1)\boldsymbol{d}^{(k+1)}可能不是下降方向,其次,如果Δg(k)T(Δx(k)−HkΔg(k))\Delta\boldsymbol{g}^{(k)T}(\Delta\boldsymbol{x}^{(k)} - \boldsymbol{H}_{k}\Delta\boldsymbol{g}^{(k)})接近0,Hk+1\boldsymbol{H}_{k+1}可能面临计算困难。

最优化学习笔记(十七)——拟牛顿法(3)相关推荐

  1. 最优化学习笔记(五)——牛顿法(多维数据)

    在最优化学习系列中,第一次就说的是牛顿法,但是那是在一维搜索上的,它其实就是将函数ff在xx处利用泰勒公式展开,得到它的近似函数,进而求解最小值.本节内容主要说明牛顿法在多维数据上的迭代公式.最优化学 ...

  2. windows内核开发学习笔记十七:IRP 和 IO_STACK_LOCATION 的交互

    windows内核开发学习笔记十七:IRP 和 IO_STACK_LOCATION 的交互 前面两篇学习笔记分别介绍了IRP和IO_STACK_LOCATION,整个设备栈来处理这个IRP,但是每个设 ...

  3. Polyworks脚本开发学习笔记(十七)-制作宏脚本自定义工具条

    Polyworks脚本开发学习笔记(十七)-制作宏脚本自定义工具条 做好的宏脚本程序,每次打开脚本加载程序太多麻烦,为了方便的调用脚本做各种操作,可以使用系统的自定义工具条功能将脚本加载到工具条上. ...

  4. OpenCV学习笔记(十七)——K均值聚类

    当我们要预测的是一个离散值时,做的工作就是"分类".机器学习模型还可以将训练集中的数据划分为若干个组,每个组被称为一个"簇(cluster)".它的重要特点是在 ...

  5. 最优化学习笔记(三)——梯度下降法

    本来这周计划写下逻辑回归的学习笔记,但是其中用到了最优化对数似然函数,因此决定先复习下梯度方法和拟牛顿法.本节先从纯数学的角度总结下梯度下降法. 一.柯西-施瓦茨不等式 对于 Rn\mathbb {R ...

  6. kvm虚拟化学习笔记(十七)之KVM到KVM之v2v迁移

    1.源KVM虚拟主机node1 (1).查看源KVM虚拟主机上的虚拟机列表,本文计划将CentOS6.5-01虚拟机迁移到其它KVM虚拟主机中. [root@node1 ~]# virsh list ...

  7. 【theano-windows】学习笔记十七——梯度中的consider_constant

    前言 主要是在写玻尔兹曼机相关的theano时, 在计算梯度grad的时候发现一个参数名字叫做consider_constant,来看看这个到底做了什么事情 参考博客: using consider_ ...

  8. Mr.J-- jQuery学习笔记(十七)--动画淡入淡出弹窗广告

    之前写过动画的隐藏与显示:Mr.J-- jQuery学习笔记(十四)--动画显示隐藏 动画隐藏与显示的一个小demo--对联广告:Mr.J-- jQuery学习笔记(十五)--实现页面的对联广告 展开 ...

  9. Java学习笔记十七——集合类详细总结各自对比

    Java编程基础倒数第三篇,感谢没有放弃的自己. 学习笔记参考书籍<Java编程基础>主编 张焕生.本书内容比较适合没有什么基础的入门小白,学完一章还有习题,比较适合初学者. 自律.积极. ...

最新文章

  1. Github上删除fork的仓库
  2. 清理mysql的sleep链接_Mysql Sleep 链接过多导致 CPU 占用过高的问题
  3. MapReduce Java API实例-统计出现过的单词
  4. 当前只读状态:是_Raft 只读(read-only)优化
  5. Kubernetes集群安全概述
  6. 智慧城市同城V4小程序独立版v1.6.5+前端
  7. 如何下载使用MSDN原版系统镜像
  8. JavaScript-幸运转盘-抽奖
  9. 学习游戏服务器编程基础篇
  10. 已经出狱的李一男和即将出狱的王欣,还能赶上这个时代吗?
  11. JS-Global对象
  12. 红色彼岸花计算机谱子,ceecceec
  13. DirectX修复工具使用
  14. 去除页眉横线快准狠的3个方法,就喜欢这么简单粗暴的操作!
  15. [人工智能-深度学习-39]:环境搭建 - 训练主机硬件选择全指南(CPU/GPU/内存/硬盘/电源)
  16. 图片无缝滚动BootStrap 轻松实现
  17. 三星a7108android 7.0,三星A7108解锁教程 三星A7108解锁Bootloader
  18. VUE 前端PDF分页预览、下载
  19. 1082: 敲7(多实例测试)-python
  20. 工作之外如何实现自我提升

热门文章

  1. 使用一个环境的或者半径异样消除器来进行异样消除
  2. python prt_Python中的self
  3. vue @click 多个事件_VUE学习记录3
  4. 事物日志恢复 mysql_浅谈SQL Server中的事务日志(五)----日志在高可用和灾难恢复中的作用...
  5. 学习opencv3_如何高效学习计算机视觉?
  6. python eval简介
  7. c语言中文刷屏,c语言二维数组刷屏练习.doc
  8. Python一行代码给儿子制作九九乘法表
  9. 【数据库】Mysql删除重复记录只保留一条
  10. AWS EC2实例Ubuntu系统设置root用户密码并使用root/ubuntu用户登录