首页 > 其他分享 >坐标下降法&块坐标下降法(CD&BCD)

坐标下降法&块坐标下降法(CD&BCD)

时间:2022-08-21 11:13:15浏览次数:90  
标签:right mathbf 函数 BCD 下降 CD 坐标 left

前言

本文简要介绍两种非梯度优化方法:坐标下降法和块坐标下降法。二者用于求解无约束优化问题,属于直接法。

我一直没太搞清楚坐标下降和坐标轮换的区别,但感觉应该是一个东西?都是循环沿单一维度进行线性搜索直至函数收敛,只是看很多坐标轮换法的介绍文章,提到该方法无需知道目标函数的解析式,但其实二者本质应该是一样的吧。另外,坐标下降和坐标上升是一对,前者用于求解最小化问题,后者用于求解最大化问题。

一、坐标下降法(Coordinate Descent)

  • 基本思想:每次迭代只沿单一维度搜索,得到当前维度的极小值之后再循环沿其它维度搜索,最终收敛得到目标函数的极小值。也就是每次迭代只对一个变量进行优化,而固定其它变量的值。

  • 算法原理:

    对于目标函数 \(f(\mathbf{x})\) ,\(\mathbf{x}=\{x_1,x_2,\cdots,x_n\}\) ,利用 CD 法求解该函数的最小值过程可以表示为:

    repeat

    \[\begin{aligned} &x_{1}^{(k)}=\underset{x_{1}}{\arg \min } f\left(x_{1}, x_{2}^{(k-1)}, x_{3}^{(k-1)}, \ldots x_{n}^{(k-1)}\right) \\ &x_{2}^{(k)}=\underset{x_{2}}{\arg \min } f\left(x_{1}^{(k)}, x_{2}, x_{3}^{(k-1)}, \ldots ,x_{n}^{(k-1)}\right) \\ &\ldots \\ &x_{n}^{(k)}=\underset{x_{n}}{\arg \min } f\left(x_{1}^{(k)},x_{2}^{(k)}, x_{3}^{(k)}, \ldots ,x_{n}\right) \end{aligned} \]

    until convergence

    其中,\(k\) 代表第 \(k\) 次迭代,每次对单变量求最小值时,若该函数可微,则可以令 \(\partial f(\mathbf{x})/\partial x_i=0\) 求解;若不可微,则可以利用黄金分割法、进退法等一维搜索方法求解。

  • 算法特点:

    1. 无需计算梯度,逻辑简单,但计算效率低,适用于低维优化问题;

    2. 搜索方向的顺序是任意的,可选择 \(\{1,2,\cdots,n\}\) 的任意排列;

    3. 收敛程度很大程度上取决于目标函数等值线的形状;

      • 等值线为椭圆族,其长短轴与坐标轴平行时,收敛很快,即 \(\mathbf{x}\) 的维度步数即可收敛;

      • 当椭圆族的长短轴与坐标轴斜交时,迭代次数将大大增加,收敛速度慢;

      • 当目标函数等值线出现“脊线”时,沿坐标轴方向搜索不能使得函数值有所下降,坐标轮换法在求优过程中将失败,这类函数对于坐标轮换法就是病态函数。

        CD法与目标函数等值线的关系

    4. 只能得到局部极小值,为得到更好的解,需要选择多个初始点求解再选择。

    5. 若变量间的相关性很高,收敛过程会非常缓慢,可以利用主成分分析法(Principle Components Analysis,PCA)获得尽可能独立的变量进行优化。

二、块坐标下降法(Block Coordinate Descent,BCD)

BCD 法是 CD 法的一般化,用于解决 CD 法效率低下的问题。

  • 基本思想:每次迭代对变量的子集进行优化,即每次沿着多个坐标轴的方向(超平面)取极值。其下降过程中子集的更新顺序可以是确定的也可以是随机的。子集的更新方法可参考: 非线性规划:坐标下降&&块坐标下降 一文。

  • 算法通用框架:

    优化问题:\(\underset{\mathbf{x}}{\operatorname{minimize}} F\left(\mathbf{x}_{1}, \cdots, \mathbf{x}_{s}\right) \equiv f\left(\mathbf{x}_{1}, \cdots, \mathbf{x}_{s}\right)+\sum_{i=1}^{s} r_{i}\left(\mathbf{x}_{i}\right)\)

    其中,\(\mathbf{x}_1,\mathbf{x}_2,\cdots,\mathbf{x}_s\) 都是变量 \(\mathbf{x}\) 的子集。

    BCD算法通用框架

参考链接

标签:right,mathbf,函数,BCD,下降,CD,坐标,left
From: https://www.cnblogs.com/hjd21/p/16609630.html

相关文章

  • IfcDocumentInformationRelationship
    IfcDocumentInformationRelationship实体定义IfcDocumentInformationRelationship是一种关系实体,它使文档能够引用其他文档。它用于描述一个文档可以引用一个或多个其他......
  • Vulfocus靶场 | GoCD 任意文件读取漏洞 (CVE-2021-43287)
    漏洞描述GoCD一款先进的持续集成和发布管理系统,由ThoughtWorks开发。(不要和Google的编程语言Go混淆了!)其前身为CruiseControl,是ThoughtWorks在做咨询和交付交付项目时......
  • Multiplex Drive and Bias of LCD Technology(copied)
    MultiplexDriveandBiasofLCDTechnology  LCDMULTIPLEXRATIOTheconfigurationforLiquidCrystalDisplayMultiplexDrivetechniquediffersfromaStatic......
  • IfcDocumentInformation
    IfcDocumentInformation 实体定义IfcDocumentInformation捕获外部文档的“元数据”。本规范未定义文件的实际内容;相反,它可以在Location属性之后找到。 可以使用IfcD......
  • 如何实现工程xyz平面坐标与经纬度坐标互转?
    1.常用的坐标系:WGS84坐标系是国际通用坐标系,也叫地球坐标系,大名鼎鼎的GPS系统就是采用的WGS84坐标系。WGS84坐标系对于具体地方的位置描述可能不如当地坐标系来的准确,但......
  • LCD液晶显示驱动器/液晶段码屏驱动芯片VK1623/VK0384更少脚位
     产品品牌:永嘉微电/VINKA产品型号:VK1623封装形式:LQFP100/QFP10产品年份:新年份原厂直销,样品免费,技术支持,价格优势。 概述:VK1623S是一个点阵式存储映射的LCD驱动器,可......
  • GCD(2021陕西省赛C题)—整除分块
    目录题意题解代码原题地址:GCD题意给你l,r和k,在l到r中任意取k个数,所有取法他们对应的最大公约数一共有多少个数。1≤l≤r≤10^12,2≤k≤r-l+1题解看......
  • 通过CDN引入jQuery的几种方式
    百度CDN<head><scriptsrc="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script></head> 新浪CDN<head><scriptsrc="ht......
  • 浅谈 Exgcd 和同余问题
    \[\large\text{本以为学的是数学专题,实际上学的是}\]\[\huge\stackrel{\text{xuán}}{\textbf{数}}\textbf{学专题}\]玄学专题\(\Huge\textbf{1}\\small\text{Exgcd(扩......
  • 一种关于低代码平台(LCDP)建设实践与设计思路
    简介: 作者在负责菜鸟商业中心CRM系统开发过程中发现有一个痛点:业务线很多,每个业务线对同一个页面都有个性化布局和不同的字段需求,而他所在的团队就3个人,那么在资源有限的......