【机器学习】坐标下降法(Coordinate descent)
coordinate-wise minimization(坐标朝向最小)
coordinate-wise minimization介绍的是坐标下降法的理论依据。
问题的描述:给定一个可微的凸函数,如果在某一点
,使得
在每一个坐标轴上都是最小值,那么
是不是一个全局的最小值。
形式化的描述为:是不是对于所有的
都有
这里的代表第
个标准基向量。
答案为成立。
这是因为:
但是问题来了,如果对于凸函数,若不可微该会怎样呢?
答案为不成立,上面的图片就给出了一个反例。
那么同样的问题,现在,其中
是可微的凸函数,每一个
都是凸的?这其实就是Lasso回归的目标函数。
答案为成立。
证明如下,对每一个
给定一个可微的凸函数
,如果在某一点
,使得
在每一个坐标轴上都是最小值,那么
就是一个全局的最小值。
坐标下降(Coordinate descent)
坐标下降法属于一种非梯度优化的方法,它在每步迭代中沿一个坐标的方向进行线性搜索(线性搜索是不需要求导数的),通过循环使用不同的坐标方法来达到目标函数的局部极小值。
算法过程
假设目标函数是求解的极小值,其中
是一个n维的向量,我们从初始点
开始(
是我们猜想的一个初值)对k进行循环:
相当于每次迭代都只是更新的一个维度,即把该维度当做变量,剩下的n-1个维度当作常量,通过最小化
来找到该维度对应的新的值。坐标下降法就是通过迭代地构造序列
来求解问题,即最终点收敛到期望的局部极小值点。通过上述操作,显然有:
证明如下:
当时,对应的
的值为
由于,所以
,以此类推
所以
所以
同理可得,命题得证。
相比梯度下降法而言,坐标下降法不需要计算目标函数的梯度,在每步迭代中仅需求解一维搜索问题,所以对于某些复杂的问题计算较为简便。但如果目标函数不光滑的话,坐标下降法可能会陷入非驻点。
流程总结:
- 首先,我们把
向量随机取一个初值。记为
,上面的括号里面的数字代表我们迭代的轮数,当前初始轮数为0。
- 对于第
轮的迭代。我们从
开始,到
为止,依次求
。
的计算表达式如上文所描述。
- 检查
向量和
向量在各个维度上的变化情况,如果在所有维度上变化都足够小,那么
即为最终结果,否则转入第二步,继续第
轮的迭代。
小结
关于坐标下降法,有几点需要注意的:
- 坐标下降的顺序是任意的,不一定非得按照从
的顺序来,可以是从1到n的任意排列。
- 坐标下降的关键在于一次一个地更新,所有的一起更新有可能会导致不收敛。
- 坐标上升法和坐标下降法的本质一样,只不过目标函数成为求
的极大值了,每次迭代过程
变成
了。
坐标轴下降法的求极值过程,可以和梯度下降做一个比较:
- 坐标轴下降法在每次迭代中在当前点处沿一个坐标方向进行一维搜索 ,固定其他的坐标方向,找到一个函数的局部极小值。而梯度下降总是沿着梯度的负方向求函数的局部最小值。
- 坐标轴下降优化方法是一种非梯度优化算法。在整个过程中依次循环使用不同的坐标方向进行迭代,一个周期的一维搜索迭代过程相当于一个梯度下降的迭代。
- 梯度下降是利用目标函数的导数来确定搜索方向的,该梯度方向可能不与任何坐标轴平行。而坐标轴下降法法是利用当前坐标方向进行搜索,不需要求目标函数的导数,只按照某一坐标方向进行搜索最小值。
- 两者都是迭代方法,且每一轮迭代,都需要O(mn)的计算量(m为样本数,n为系数向量的维度)
参考文章
Lasso回归算法: 坐标轴下降法与最小角回归法小结
机器学习笔记——简述坐标下降法
坐标下降法(Coordinate descent)
【机器学习】坐标下降法(Coordinate descent)相关推荐
- (转载)机器学习知识点(十二)坐标下降法(Coordinate descent)
首先介绍一个算法:coordinate-wise minimization 问题的描述:给定一个可微的凸函数,如果在某一点x,使得f(x)在每一个坐标轴上都是最小值,那么f(x)是不是一个全局的最小值 ...
- LASSO坐标下降法Coordinate Descent Method公式推导及代码
文章目录 LASSO by Coordinate Descent Method Coordinate Descent Method Framework Coordinate Descent Metho ...
- 坐标下降法(Coordinate descent)
- 最小二乘法、迭代优化、坐标轴下降法(Coordinate Descent, CD)、坐标下降和梯度下降对比、梯度下降法/最速下降法
最小二乘法.迭代优化.坐标轴下降法(Coordinate Descent, CD).坐标下降和梯度下降对比.梯度下降法/最速下降法 目录
- SDP半正定规划的低复杂度求解:基于块坐标下降(Block Coordinate Descent)
前言 之前的几篇博客 经典的SDR算法: 用半正定松弛法 ( Semidefinite Relaxation) 求解二次优化问题 和 经典的SDR算法(下):SDR的具体使用细节与相关代码 中介绍了一 ...
- 文献学习(part25)--Regularization Paths for Generalized Linear Models via Coordinate Descent
学习笔记,仅供参考,有错必究 文章目录 Regularization Paths for Generalized Linear Models via Coordinate Descent 摘要 简介 ...
- 常用的优化方法-梯度下降、牛顿法、坐标下降法
最优化问题在机器学习中有非常重要的地位,很多机器学习算法最后都归结为求解最优化问题.在各种最优化算法中,梯度下降法是最简单.最常见的一种,在深度学习的训练中被广为使用. 最优化问题是求解函数极值的问题 ...
- 人工智能与机器学习-梯度下降法
人工智能与机器学习-梯度下降法 一.梯度下降法概述 梯度下降法(Gradient descent)是一个一阶最优化算法. 要使用梯度下降法找到一个函数的局部极小值,必须向函数上当前点对应梯度(或者是近 ...
- Lasso回归的坐标下降法推导
目标函数 Lasso相当于带有L1正则化项的线性回归.先看下目标函数:RSS(w)+λ∥w∥1=∑Ni=0(yi−∑Dj=0wjhj(xi))2+λ∑Dj=0∣wj∣RSS(w)+λ∥w∥1=∑i=0 ...
最新文章
- 学 Win32 汇编[17]: 关于压栈(PUSH)与出栈(POP) 之一
- 【深度学习】深入浅出transformer内部结构
- druid seata 配置_五分钟带你了解Seata分布式事务
- 动态规划--电路布线(circuit layout)
- 广外计算机考研专业课,【广外考研论坛】 21广外各专业考研问题全解答!纯干货!...
- 听说你决定当全职自由漏洞猎人了?过来人想跟你聊聊
- python百度百科-python语言概述
- 数据库设计(一)——数据库设计
- 十大高人气商城高口碑蓝牙耳机排行榜,颜值在线性能无敌
- 35+大龄程序员们都在做什么?
- 【小算法】求约数个数
- pyqt使用graphicsView显示图片
- Node后端模板代码(附源码)
- Vue+ .netcore3.1 模拟QQ邮箱发送验证码
- 三菱fx5u modbus tcp fb块用法_2020江苏三菱PLCFX3GA14MR回收回收电话西门子软启动器...
- ERP-项目笔记—Day—08
- 关于3D可视化的几个知识点
- Bcdedit 删除 Boot Menu 中的多余启动引导
- java.util.ConcurrentModificationException: null异常由for增强循环嵌套增删引起。
- Java线程基础(13):wait()和notify()
热门文章
- mysql同步表到本地_sql 同步远程数据库(表)到本地
- Angular报错-Error: ENOENT: no such file or directory, scandir '/Users/echo_hx/node_modules'
- js 事件委托深入浅出
- JS 如何快速高效的将数组转换成树形结构
- viper4android哪个版本好,VIPER4Android最新版本
- java 子类重定义变量_java子类对象和成员变量的隐写方法重写
- 七天免登录JavaScript实现
- 推荐系统入门:作为Rank系统的推荐系统(协同过滤)
- PostgreSQL 数组类型
- POJ 1753 Flip Game 高斯消元