最优化学习笔记(十二)——基本共轭方向算法(续)
目标函数为nn维二次型函数时,共轭方向法能够在nn步迭代之后得到极小点。接下来会发现,共轭方向法的中间迭代步骤具有一种很有意义的性质。选定x(0)\boldsymbol{x}^{(0)}作为迭代初始点, d(0)\boldsymbol{d}^{(0)}为初始搜索方向, 有:
\boldsymbol{x}^{(1)} = \boldsymbol{x}^{(0)} - \biggl( \frac{\boldsymbol{g}^{(0)T}\boldsymbol{d}^{(0)}}{\boldsymbol{d}^{(0)T}Q\boldsymbol{d}^{(0)}}\biggr)\boldsymbol{d}^{(0)}
可以证明:
\boldsymbol{g}^{(1)T}\boldsymbol{d}^{(0)}=0
推导过程:
\boldsymbol{g}^{(1)T}\boldsymbol{d}^{(0)} = (Q\boldsymbol{x}^{(1)}-\boldsymbol{b})^T\boldsymbol{d}^{(0)} \\=\boldsymbol{x}^{(0)T}Q\boldsymbol{d}^{(0)} - \biggl( \frac{\boldsymbol{g}^{(0)T}\boldsymbol{d}^{(0)}}{\boldsymbol{d}^{(0)T}Q\boldsymbol{d}^{(0)}}\biggr)\boldsymbol{d}^{(0)T}Q\boldsymbol{d}^{(0)}-\boldsymbol{b}^{T}\boldsymbol{d}^{(0)}\\ =\boldsymbol{g}^{(0)T}\boldsymbol{d}^{(0)}-\boldsymbol{g}^{(0)T}\boldsymbol{d}^{(0)}=0
方程 g(1)Td(0)=0\boldsymbol{g}^{(1)T}\boldsymbol{d}^{(0)}=0表示步长为 α0=argminϕ0(α)\alpha_0=\arg min \phi_0(\alpha),其中, ϕ0(α)=f(x(0)+αd(0))\phi_0(\alpha)=f(\boldsymbol{x}^{(0)}+\alpha\boldsymbol{d}^{(0)}).推导过程如下:
由链式法则可得:
\frac{d\phi_0}{d\alpha}(\alpha)=\nabla f(\boldsymbol{x}^{(0)}+\alpha\boldsymbol{d}^{(0)})^T\boldsymbol{d}^{(0)}
将 α=α0\alpha = \alpha_0带入得:
\frac{d\phi_0}{d\alpha}(\alpha_0) = \boldsymbol{g}^{(1)T}\boldsymbol{d}^{(0)} = 0
由于 ϕ0\phi_0是关于 α\alpha的平方函数,其中 α2\alpha^2的系数为 d(0)TQd(0)>0\boldsymbol{d}^{(0)T}Q\boldsymbol{d}^{(0)} >0, 说明 ϕ0\phi_0存在唯一的极小点,因此, α0=argminϕ0(α)\alpha_0=\arg min \phi_0(\alpha)。
以此类推,可以证明,对于所有 kk,都有:
\boldsymbol{g}^{(k+1)T}\boldsymbol{d}^{(k)} = 0
即
\alpha_0=\arg min f(\boldsymbol{x}^{(k)}+\alpha\boldsymbol{d}^{(k)})
实际上,还有更一般的结论,如下引理所示:
* 引理 *在共轭方向算法中, 对于所有的 k,0≤k≤n−1,0≤i≤kk, 0 \le k \le n-1, 0 \le i \le k 都有 :
\boldsymbol{g}^{(k+1)T}\boldsymbol{d}^{(i)} = 0
最优化学习笔记(十二)——基本共轭方向算法(续)相关推荐
- 吴恩达《机器学习》学习笔记十二——机器学习系统
吴恩达<机器学习>学习笔记十二--机器学习系统 一.设计机器学习系统的思想 1.快速实现+绘制学习曲线--寻找重点优化的方向 2.误差分析 3.数值估计 二.偏斜类问题(类别不均衡) 三. ...
- Python语言入门这一篇就够了-学习笔记(十二万字)
Python语言入门这一篇就够了-学习笔记(十二万字) 友情提示:先关注收藏,再查看,12万字保姆级 Python语言从入门到精通教程. 文章目录 Python语言入门这一篇就够了-学习笔记(十二万字 ...
- OpenCV学习笔记(十二)——图像分割与提取
在图像处理的过程中,经常需要从图像中将前景对象作为目标图像分割或者提取出来.例如,在视频监控中,观测到的是固定背景下的视频内容,而我们对背景本身并无兴趣,感兴趣的是背景中出现的车辆.行人或者其他对象. ...
- ROS学习笔记十二:使用roswtf
ROS学习笔记十二:使用roswtf 在使用ROS过程中,roswtf工具可以为我们提供ROS系统是否正常工作的检查作用. 注意:在进行下列操作之前,请确保roscore没有运行. 检查ROS是否安装 ...
- Polyworks脚本开发学习笔记(十二)-输出和读取文本文件
Polyworks脚本开发学习笔记(十二)-输出和读取文本文件 Polyworks作为一个测量工具,将测量的数据方便的导出到文本文件则是一项必须的功能.在DATA_FILE这个命令下提供了很多子命令用 ...
- 【现代机器人学】学习笔记十二:轮式移动机器人
目录 轮式机器人类型 全向轮式机器人 建模 单个全向轮是怎么运动的 多个全向轮是如何带动底盘运动的 运动规划和反馈控制 非完整约束轮式移动机器人 建模 独轮车 差速驱动机器人 车型机器人 非完整移动机 ...
- 【theano-windows】学习笔记十二——卷积神经网络
前言 按照进度, 学习theano中的卷积操作 国际惯例, 来一波参考网址 Convolutional Neural Networks (LeNet) 卷积神经网络如何应用在彩色图像上? 卷积小知识 ...
- (C/C++学习笔记) 十二. 指针
十二. 指针 ● 基本概念 变量的地址就是指针,存放指针的变量就是指针变量(因而又叫作地址变量 address variable); 这个地址编号本身就是一个无符号的整数,在32位系统下为4字节(8位 ...
- Vue.js 学习笔记 十二 Vue发起Ajax请求
首先需要导入vue-resource.js,可以自己下载引入,也可以通过Nuget下载,它依赖于Vue.js. 全局使用方式: Vue.http.get(url,[options]).then(suc ...
- 最优化学习笔记(十九)——拟牛顿法(5)BFGS算法
一.BFGS算法的更新公式 为了推导BFGS算法,需要用到对偶或者互补的概念,前边已经讨论过hessian矩阵逆矩阵的近似矩阵需要满足以下条件: Hk+1Δg(i)=Δx(i)0≤i≤k \bolds ...
最新文章
- C++里如何使用功能键(F1、F2·····)进行操纵?
- 工程师如何解决穿衣搭配烦恼?——滴搭平台与算法
- 【数据结构与算法】之深入解析“整数转罗马数字”的求解思路与算法示例
- vsCode ext install 不工作
- 使用keil建立标准STM32工程模版(图文详细版!)
- chrome java插件_Java程序员喜欢的10款软件里有你在用的吗?
- OC基础1:一些基本概念
- code的bootstrap如何有提示 vs_如何用DataFocus对Excel表中数据进行分析?
- encoder decoder模型_3分钟|聊一聊 Decoder 模块
- 渲染百万网页,终于找到影响性能的原因了
- UWP TextBox私人定制
- 从时间中提取年月(MySQL中extract函数用法)
- MSDN帮助文档中文
- MYSQL安装+Mysql-front 注册码
- 计算机键盘怎样做除法,电脑键盘除法是哪个键?
- 3D 音效 Matlab实现
- 火车头采集html5游戏,火车头采集工具Wed发布配置方法
- tokenize java,Java split string - Java tokenize string examples - 入门小站-rumenz.com
- 我在Blue Nile(蓝色尼罗河)上通过python爬取一百万颗钻石,最终选出心仪的一颗
- 18650圆柱锂电池comsol5.6模型 参数已配置,电化学生热研究,三种放电倍率,
热门文章
- 第一个鸿蒙程序“hello world“
- java sql server 2016_SQL server 2016 安装步骤
- mysql5.0.19_CentOS下升级MySQL5.0.19到5.5
- 数据结构排序2-希尔,快速,归并排序
- django与grpc融合的过程
- java 对list增删_List 中正确的增删操作
- 【Python】pyCryptodome模块实现AES加密、解密
- Spring中@Async
- 【二分法】- leetcode
- shell执行的特殊变数