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主题模型的变分推断等等.本文就对 ...
随机推荐
- zabbix监控nginx脚本
~]# cd /etc/zabbix/scripts/ scripts]# ls nginx_status.sh scripts]# cat nginx_status.sh ############# ...
- 代码整洁 vs 代码肮脏
写出整洁的代码,是每个程序员的追求.<clean code>指出,要想写出好的代码,首先得知道什么是肮脏代码.什么是整洁代码:然后通过大量的刻意练习,才能真正写出整洁的代码. WTF/mi ...
- Winform中在FastReport的PreviewControl预览控件中对report控件模板中控件值进行修改
场景 FastReport安装包下载.安装.去除使用限制以及工具箱中添加控件: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...
- spring scope prototype与singleton区别
1.singleton作用域 当一个bean的作用域设置为singleton, 那么Spring IOC容器中只会存在一个共享的bean实例,并且所有对bean的请求,只要id与该bean定义相匹配 ...
- git的几个小技巧
git的几个小技巧 分享git的几个小技巧,后面会根据使用补充.目前包括git撤销本地修改.git回退到前n个版本.git多用户提交冲突解决.git 命令简化.欢迎大家补充^_* 1.git撤销本地修 ...
- HTML连载38-内边距属性、外边距属性
一.内边距属性 1.定义:边框和内容之间的距离就是内边距 2.分开写 padding-top:数字px: padding-left:数字px: padding-bottom:数字px: padding ...
- 44 (OC)* 野指针、空指针
一: 空指针 : 没有存储任何内存地址的指针就称为空指针(NULL指针). 被赋值为nil的指针,在没有被具体初始化之前,为nil.nil.Nil.NULL.NSNULL的含义和区别 nil:OC中的 ...
- 15 (OC)* UIGesture
前言 本文主要内容如下: 1. UIGestureRecognizer 属性.方法.代理和七个子类详解. 2. 讲讲 UIGestureRecognizer 和 UITouch 事件的关系. 3. 讲 ...
- C#基础知识总结(三)--反射
如何在C#.NET开发中使用反射. 首先,我新建一个普通的类库项目.在该项目的测试类中,定义好 属性.静态方法.实例方法.无参方法等... 代码如下: using System; using Syst ...
- centos7防火墙命令
https://blog.csdn.net/achang21/article/details/52538049