首页 > 其他分享 >Line search and Step length线搜索与步长

Line search and Step length线搜索与步长

时间:2023-01-18 10:33:04浏览次数:66  
标签:search Step Curvature Armijo 步长 搜索 精确 conditions


​Welcome To My Blog​​​
在最优化(optimization)问题中,线搜索(line search)和置信域(trust region)方法是寻找局部最小值(local minimum)基本迭代方法(iterative approach),主要说说线搜索方法(置信域方法过于专业)

线搜索(Line search)

以f(x)为例,线搜索会先找一个使f(x)下降的方向,接着计算一个步长,步长决定了x改变的大小.

下降方向:可以通过梯度下降,牛顿法,拟牛顿法等计算

步长:有精确(exact)和非精确(inexact)两种,精确方法就是找出导数为零的极值点,例如共轭梯度法conjugate gradient method;非精确方法没有找出导数为零的点,而是使f(x)有一个充分的下降(sufficient descent),例如backtracking,wolfe conditions,goldstein conditions

线搜索流程:

Line search and Step length线搜索与步长_拟牛顿法

非精确线搜索步长

精确线搜索的步长计算往往非常耗时,所以一般采用非精确线搜索

Wolfe conditions

Wolfe conditions 由 Armijo conditions和Curvature conditions构成,先分别介绍Armijo conditions和Curvature conditions

Armijo conditions

Armijo条件:

Line search and Step length线搜索与步长_最优化_02


不等式两侧都可看成α的线性函数,所以不等式要求相当于,左侧的直线在右侧直线下方.实际应用中将c1取得很小,以使得不等式右侧的直线不是太倾斜(太倾斜会使得下降太多,可能取不到最优点)

Curvature condition

在满足Armijo条件的情况下我们希望步长尽量大一些,这样收敛快,所以引入curvature条件:

Line search and Step length线搜索与步长_数学_03


将等式两侧都写成α的函数形式,则有:

Line search and Step length线搜索与步长_ci_04


这要求:θ(α)’大于等于θ(0)’的c2倍

经验取值:

在拟牛顿法中,c2=0.9

在非线性共轭梯度方法中,c2=0.1

Wolfe conditions

Wolfe conditions:将Armijo conditions和Curvature conditions结合在一起

Line search and Step length线搜索与步长_数学_05

直观点,如下图:(忽略丑陋的字…)

Line search and Step length线搜索与步长_ci_06


由Armijo:函数值位于橘黄色的直线下面

由Curvature:斜率要大于等于θ(0)’的c2倍

所以最后满足条件的区域为(α1,α2)和(α3,α4)

可以看到,最小值在(α3,α4)中

Goldstein conditions

一般用于牛顿法,但不适合拟牛顿法,因为拟合的Hessian矩阵不能保持正定

第二个不等号和sufficient descent的形式完全一样

Line search and Step length线搜索与步长_搜索_07


类似Wolfe conditions,写成θ(α)的形式

Line search and Step length线搜索与步长_最优化_08


Goldstein conditions就是要求θ(α)要在两条直线之间,但可能避开最优解

像下面这样:

Line search and Step length线搜索与步长_搜索_09


满足条件的区域为(α1,α2)和(α3,α4)

最小值并不在这里面

Backtracking method

在实际应用中,为提高效率,放弃Wolfe conditions中的Curvature conditions,只使用sufficient descent条件,这就是Backtracking method


标签:search,Step,Curvature,Armijo,步长,搜索,精确,conditions
From: https://blog.51cto.com/u_2420922/6019041

相关文章

  • 技术实践|浅谈Elasticsearch跨集群搜索
    前言Elasticsearch(简称ES)是基于Lucene库的分布式架构搜索引擎。它支持水平横向扩展,但是集群节点不能无限增加。因为当集群的meta信息(节点、索引、集群状态)过多时,会使集群更......
  • ElasticSearch进阶:一文全览各种ES查询在Java中的实现
    1词条查询1.1等值查询-term1.2多值查询-terms1.3范围查询-range1.4前缀查询-prefix1.5通配符查询-wildcard2复合查询2.1布尔查询2.2Filter查询3聚......
  • ElasticSearch7.10配置Search-Guard之配置用户
    ElasticSearch7.10配置Search-Guard之配置用户配置sg_internal_user.yml密码是:elasticjode:hash:$2y$12$nUzkcjdnufzvI1HlmN7xSuND3skGhmwV5le5IINejz.asMFpLYNRy......
  • ElasticSearch必知必会-进阶篇
    京东物流:康睿姚再毅李振刘斌王北永说明:以下全部均基于elasticsearch 8.1版本一.跨集群检索-ccr官网文档地址:​​​https://www.elastic.co/guide/en/elasticsearch/......
  • ElasticSearch必知必会-进阶篇
    京东物流:康睿姚再毅李振刘斌王北永说明:以下全部均基于elasticsearch8.1版本一.跨集群检索-ccr官网文档地址:https://www.elastic.co/guide/en/elasticsearch/re......
  • Elasticsearch 基础入门详文
    Elasticsearch(简称:ES)功能强大,其背后有很多默认值,或者默认操作。这些操作优劣并存,优势在于我们可以迅速上手使用ES,劣势在于,其实这些默认值的背后涉及到很多底层原理,怎么......
  • GO语言操作Elasticsearch
    Elasticsearch简介Elasticsearch是一个开源的搜索引擎,建立在一个全文搜索引擎库ApacheLucene™基础之上。Lucene可以说是当下最先进、高性能、全功能的搜索引擎库–......
  • elasticsearch 安装与配置
    一、JAVA与elasticsearch的版本对应个人实测能够对应起来的版本:elasticsearch-rtf-2.2.1需要JDK7或更低的版本,推荐使用7elasticsearch-rtf-2.3.3个人测试可以使......
  • Curve 文件存储在 Elasticsearch 冷热数据存储中的应用实践
    Elasticsearch在生产环境中有广泛的应用,本文介绍一种方法,基于网易数帆开源的Curve文件存储,实现Elasticsearch存储成本、性能、容量和运维方面的显著提升。ES使用CurveF......
  • Curve 文件存储在 Elasticsearch 冷热数据存储中的应用实践
    Elasticsearch在生产环境中有广泛的应用,本文介绍一种方法,基于网易数帆开源的Curve文件存储,实现Elasticsearch存储成本、性能、容量和运维方面的显著提升。ES使用Curve......