A-04 坐标轴下降法
更新、更全的《机器学习》的更新网站,更有python、go、数据结构与算法、爬虫、人工智能教学等着你:https://www.cnblogs.com/nickchen121/
坐标轴下降法
坐标轴下降法顾名思义,沿着坐标轴下降。坐标轴下降法和梯度下降法使用的都是迭代法,即使用启发式的方式一步一步迭代求解函数的最小值。
可以想象一个可微的凸函数\(J(\omega)\),其中\(\omega\)是一个\(n*1\)维的向量。如果在这\(n\)维空间中存在着某一点\(\overline{\omega}\)能够使得\(J(\omega)\)在每一个坐标轴上都是最小的,那么我们则可以说\(J(\overline{\omega})\)是全局最小值。如二维空间\((x,y)\)中的曲线\(x^2\),当\(x\)和\(y\)都是最小的时候,即为曲线\(x^2\)最小值的时候。(注:Lasso回归的目标函数虽然不可微,但是由于目标函数非正则项是可微的,L1正则项是凸函数,因此也可以使用该结论。)
一、坐标轴下降法流程
坐标轴下降法即在\(\omega\)的每个坐标轴上做迭代下降,当每个坐标轴上的值都收敛时,则可以说明达到了\(J(\omega)\)的全局最小值。
- \(\omega\)取初值记为\(\omega^{(0)}\),其中\((0)\)表示迭代的轮数,初轮数为0。
- 对于第\(k\)轮的迭代,依次求解\({\omega_i}^{(k)} \quad(i=1,2,\cdots,n)\),即
\[
{\omega_i}^{(k)} \in \underbrace{argmin}_{\omega_i}\,J({\omega_1}^{(k)},{\omega_2}^{(k)},\cdots,{\omega_n}^{(k)})
\]
其中由于在每次单独对一个坐标轴迭代的时候其他坐标轴上的值为常数。也就是\({\omega_i}^{(k)}\)是使\(J({\omega_1}^{(k)},{\omega_i-1}^{(k)},{\omega_i+1}^{(k)},\cdots,{\omega_n}^{(k)})\)为最小的值,除了\({\omega_i}^{(k)}\)为变量外,其他参数都为常数,则对\(J({\omega_1}^{(k)},{\omega_i-1}^{(k)},{\omega_i+1}^{(k)},\cdots,{\omega_n}^{(k)})\)求导即可得该函数的最小值。 - 检查\({\omega}^{(k)}\)和\({\omega}^{(k-1)}\)在每个维度上的变化情况,如果所有维度的变换都小于某个阈值,则\({\omega}^{(k)}\)为最终结果,否则循环第2步,进入\(k+1\)次迭代。
二、坐标轴下降法和梯度下降法的异同
- 两者都是迭代方法,并且每一轮迭代都需要\(O(mn)\)的计算量,其中\(m\)为样本数,\(n\)为特征数。
- 坐标轴下降法固定\(n-1\)个坐标,沿着剩下的一个坐标轴迭代,得到函数的局部最小值;梯度下降法则是沿着梯度的负方向得到函数的局部最小值。
- 坐标轴下降法是一种非梯度优化算法,但是一个周期中循环使用不同的坐标方向迭代,相当于梯度下降的一轮迭代。
- 由于坐标轴下降法是利用当前坐标方向迭代,不需要求目标函数的倒数;梯度下降法是利用目标函数的偏导数来确定迭代方向的。
A-04 坐标轴下降法的更多相关文章
- Lasso回归算法: 坐标轴下降法与最小角回归法小结
前面的文章对线性回归做了一个小结,文章在这: 线性回归原理小结.里面对线程回归的正则化也做了一个初步的介绍.提到了线程回归的L2正则化-Ridge回归,以及线程回归的L1正则化-Lasso回归.但是对 ...
- plot sin 04 坐标轴居中
plot sin 04 坐标轴居中 code #!/usr/bin/env python # -*- coding: utf-8 -*- import numpy as np import matpl ...
- 逻辑回归原理_挑战者飞船事故和乳腺癌案例_Python和R_信用评分卡(AAA推荐)
sklearn实战-乳腺癌细胞数据挖掘(博客主亲自录制视频教程) https://study.163.com/course/introduction.htm?courseId=1005269003&a ...
- 数据挖掘-逻辑Logistic回归
逻辑回归的基本过程:a建立回归或者分类模型--->b 建立代价函数 ---> c 优化方法迭代求出最优的模型参数 --->d 验证求解模型的好坏. 1.逻辑回归模型: 逻辑回归(L ...
- python机器学习笔记:EM算法
EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,它是一个基础算法,是很多机器学习领域的基础,比如隐式马尔科夫算法(HMM),LDA主题模型的变分推断算法等等.本文对于E ...
- scikit-learn 逻辑回归类库使用小结
之前在逻辑回归原理小结这篇文章中,对逻辑回归的原理做了小结.这里接着对scikit-learn中逻辑回归类库的我的使用经验做一个总结.重点讲述调参中要注意的事项. 1. 概述 在scikit-lear ...
- scikit-learn 线性回归算法库小结
scikit-learn对于线性回归提供了比较多的类库,这些类库都可以用来做线性回归分析,本文就对这些类库的使用做一个总结,重点讲述这些线性回归算法库的不同和各自的使用场景. 线性回归的目的是要得到输 ...
- MCMC(四)Gibbs采样
MCMC(一)蒙特卡罗方法 MCMC(二)马尔科夫链 MCMC(三)MCMC采样和M-H采样 MCMC(四)Gibbs采样 在MCMC(三)MCMC采样和M-H采样中,我们讲到了M-H采样已经可以很好 ...
- EM算法原理总结
EM算法也称期望最大化(Expectation-Maximum,简称EM)算法,它是一个基础算法,是很多机器学习领域算法的基础,比如隐式马尔科夫算法(HMM), LDA主题模型的变分推断等等.本文就对 ...
随机推荐
- [DP]矩阵的最小路径和
题目 给定一个矩阵m, 从左上角开始每次只能向右或者向下走,最后到达右下角的位置,路径上所有的树子累加起来就是路径和,返回所有的路径中最小的路径和. 解法一 这是一道经典的动态规划题,状态转移方程为d ...
- c++调试在容器释放内存时报Unknown Signal 或 Trace/breakpoint trap异常
在做一道题时,用到的板子中出现了很多的容器的使用,,一开始都是开MAXN大小的容器,,但是有几率出现程序运行完后不正常退出,, 在多次尝试断点调试后,发现主要的异常是程序在结束时,要进行资源的释放,, ...
- linux部署html代码到linux服务器,并进行域名解析
本博客主要是说一下,如何将本地写好的html代码部署到linux服务器,并进行解析.下一篇博客将写一下,如何将html代码部署到阿里云服务器,并进行域名解析,以及在部署过程中遇到的问题和解决方法. 1 ...
- IDEA导入Maven工程
1. 2.选择要导入的工程 3. 4. 5. 6.OK之后点击4图页面的next 7.点击Finish之后 完成!
- Python面向对象编程——继承与派生
Python面向对象编程--继承与派生 一.初始继承 1.什么是继承 继承指的是类与类之间的关系,是一种什么"是"什么的关系,继承的功能之一就是用来解决代码重用问题. 继承是一种创 ...
- Jmeter安装图文及入门教程
一.JMeter介绍 JMeter是Apache组织开发的基于Java的压力测试工具.用于对软件做压力测试,它最初被设计用于Web应用测试,但后来扩展到其他测试领域.它可以用于测试静态和动态资源,例如 ...
- Nightmare Ⅱ(双向BFS)
Problem Description Last night, little erriyue had a horrible nightmare. He dreamed that he and his ...
- Vue学习之vue实例中的数据、事件和方法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【linux】【gitlab】gitlab安装、备份、恢复、升级、内存消耗问题
前言 GitLab:GitLab 是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的web服务.功能:Gitlab 是一个提供代码托管.提交审核和问题跟踪的代码管理平 ...
- sql server 建表,主键与外键约束
主键: 能唯一区分表中每一行 外键:为某表的一列,是另一个表的主键,外键定义了两表之间的联系 商品类别表 use eshopgocreate table category( name varchar( ...