有限差分法在最优化问题中的应用
这个主题包含两篇文章
- 有限差分法在最优化问题中的应用 (本文)
- 有限差分法在图像配准最优化中的应用
前言
通常情况下,图像处理或者计算机视觉中涉及到的最优化问题都有一个共同的特点:目标函数(objective)没有解析形式(analytical form)。也就是说,目标函数没有一个明确的函数表达式,我们不能直接解析地获得目标函数的导数或者偏导数。在这个情况下,我们一般使用有限差分(finite difference)来估计目标函数的导数。
本文首先通过一个简单的例子来解释如何利用有限差分法估计函数的导数,然后在第二篇文章中给出在图像配准中的实际应用。
例: 用最速下降法解问题
m i n min min f ( x ) = 2 x 1 2 + x 2 2 f(\textbf x) = 2x_1^2+x_2^2 f(x)=2x12+x22
初点 x ( 1 ) = ( 1 , 1 ) T , e = 0.1 \textbf x^{(1)}=(1,1)^T, e = 0.1 x(1)=(1,1)T,e=0.1(终止误差)
1. 利用解析形式计算 f ( x ) f(\textbf x) f(x)在点 x \textbf x x处的梯度
∇ f ( x ) = [ ∂ f ( x ) ∂ x 1 , ∂ f ( x ) ∂ x 2 ] T \nabla f(\textbf x)=[\frac{\partial f(\textbf x)}{\partial x_1}, \frac{\partial f(\textbf x)}{\partial x_2}]^T ∇f(x)=[∂x1∂f(x),∂x2∂f(x)]T
目标函数 f ( x ) f(\textbf x) f(x)在点 x \textbf x x处的梯度 ∇ f ( x ) = [ 4 x 1 2 x 2 ] \nabla f(\textbf x)= \begin{bmatrix}4x_1 \\ 2x_2 \\ \end{bmatrix} ∇f(x)=[4x12x2].
令搜索方向 d ( 1 ) = − ∇ f ( x ( 1 ) ) = [ − 4 − 2 ] \textbf d^{(1)}=-\nabla f(\textbf x^{(1)})=\begin{bmatrix} -4 \\ -2 \\ \end{bmatrix} d(1)=−∇f(x(1))=[−4−2].
2. 利用有限差分估计 f ( x ) f(\textbf x) f(x)在点 x \textbf x x处的梯度
前向有限差分法
∂ f ( x ) ∂ x 1 = f ( x 1 + δ ) − f ( x 1 ) δ \frac{\partial f(\textbf x)}{\partial x_1}=\frac{f(x_1+\delta)-f(x_1)}{\delta} ∂x1∂f(x)=δf(x1+δ)−f(x1)
∂ f ( x ) ∂ x 2 = f ( x 2 + δ ) − f ( x 2 ) δ \frac{\partial f(\textbf x)}{\partial x_2}=\frac{f(x_2+\delta)-f(x_2)}{\delta} ∂x2∂f(x)=δf(x2+δ)−f(x2)
令 δ = 0.01 \delta=0.01 δ=0.01,得到
∂ f ( x ) ∂ x 1 = f ( 1.01 , 1 ) − f ( 1 , 1 ) 0.01 = 4.02 \frac{\partial f(\textbf x)}{\partial x_1}=\frac{f(1.01,1)-f(1,1)}{0.01}=4.02 ∂x1∂f(x)=0.01f(1.01,1)−f(1,1)=4.02
∂ f ( x ) ∂ x 2 = f ( 1 , 1.01 ) − f ( 1 , 1 ) 0.01 = 2.01 \frac{\partial f(\textbf x)}{\partial x_2}=\frac{f(1,1.01)-f(1,1)}{0.01}=2.01 ∂x2∂f(x)=0.01f(1,1.01)−f(1,1)=2.01
搜索方向 d ( 1 ) = − ∇ f ( x ( 1 ) ) = [ − 4.02 − 2.01 ] \textbf d^{(1)}=-\nabla f(\textbf x^{(1)})=\begin{bmatrix} -4.02 \\ -2.01 \\ \end{bmatrix} d(1)=−∇f(x(1))=[−4.02−2.01].
有限差分法在最优化问题中的应用相关推荐
- matlab 函数优化问题,matlab求解最优化问题 Matlab在最优化问题中的应用举例.doc
matlab求解最优化问题 Matlab在最优化问题中的应用举例 导读:就爱阅读网友为您分享以下"Matlab在最优化问题中的应用举例"的资讯,希望对您有所帮助,感谢您对92的支持 ...
- python实现牛顿法和梯度下降法求解对率回归_最优化问题中,牛顿法为什么比梯度下降法求解需要的迭代次数更少?...
多图预警 本文讲你肯定能懂的机器学习多维极值求解,主要讲梯度下降和牛顿法的区别应该能够完美的回答题主的问题 事先说明 本文面向学习过高等数学统计学和线性代数基础知识的本科生,并假设读者拥有基本的矩阵运 ...
- 机器学习中的常见问题—损失函数
机器学习中的常见问题--损失函数 一.分类算法中的损失函数 在分类算法中,损失函数通常可以表示成损失项和正则项的和,即有如下的形式: J(w)=∑iL(mi(w))+λR(w)J(w)=∑iL(mi( ...
- 计算机科学中最重要的32个算法zz
计算机科学中最重要的32个算法zz http://www.infoq.com/cn/news/2012/08/32-most-important-algorithms 奥地利符号计算研究所 ...
- 计算机科学中最重要的32个算法(转)
奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutschan博士在自己的页面上发布了一篇文章,提 ...
- (转载)计算机科学中最重要的32个算法
奥地利符号计算研究所(Research Institute for Symbolic Computation,简称RISC)的Christoph Koutschan博士在自己的页面上发布了 一篇文章, ...
- 数模笔记_多变量最优化的拉格朗日乘子方法中的灵敏性分析和影子价格
Date: 2_21 Name: Guo Yehao Theme: Sensitivity Analysis and Shadow Price in Optimality with multiple ...
- 常用机器学习算法汇总(中)
机器学习入门系列(2)–如何构建一个完整的机器学习项目,第八篇! 该系列的前七篇文章: 机器学习入门系列(2)–如何构建一个完整的机器学习项目(一) 机器学习数据集的获取和测试集的构建方法 特征工程之 ...
- 启发式算法在最优化问题求解中的应用与实践
最优化问题广泛的存在于社会生产活动当中,我们一直努力寻求更高效.更准确的解决方式来应对这类问题.通常,最优化问题可以表述为一种数学规划的形式,对于变量在可行域中的不同组合进行搜索,以得到目标函数的最优 ...
最新文章
- LazyProphet:使用 LightGBM 进行时间序列预测
- 华为配置SSH登陆详细步骤
- Sublime Text3 自定义快速生成代码
- Android RecyclerView
- 数据备份基础之备份类型
- Android Broadcast编写的音乐播放器
- NIO详解(三):IO多路复用模型之select、poll、epoll
- mybatis 知识1
- 用友BQ商业智能平台——图表功能
- Python下载、安装及其配置
- 被江苏网警点名后 咪蒙发道歉信:公众号停更2个月 微博永久关停
- curl: (56) Recv failure: Connection reset by peer
- 鲍威尔共轭方向法c语言程序,鲍威尔共轭方向法VB源程序
- python如何设置开头注释_小疯谈python:(二)python语言的基本语法元素
- Jetpack ViewBinding
- eact Native开发IDE安装及配置
- md文档html显示+toc,使用md-toc.js来生成文章目录
- 前端面试题《CSS》
- 将xlsx内容转成json
- lte 中crs_LTE的CRS和DRS区别(转载自无线俱乐部公众号)
热门文章
- 太美医疗科技CTMS临床试验项目管理系统的全新升级
- 什么是HSS?HSS有什么主要功能?HSS与HLR的区别是什么?
- 二级c语言常用,二级C语言常用库函数.doc
- axios 之 post请求参数格式不正确得问题
- 逻辑赋值(Logical Assignment)
- Stimulsoft Dashboards.WEB 23.1.8 完美Patch
- 算法设计与分析之最大流问题
- 2017年深度学习必读31篇论文(附论文下载地址)
- arm+linux+usb驱动开发,Linux+ARM下的USB驱动开发
- hive:条件:where and or