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主题模型的变分推断等等.本文就对 ...
随机推荐
- HTML5 01. 布局、语义化标签、智能化表单、表单元素/标签/属性/事件、多媒体、类操作、自定义属性
1.知识点 lang = “en” 所用语言是英文 文档结构更简洁 IE8一下不支持h5c3 书写更宽松 div没有语义 标签语义化:在合适的地方使用合适的标签 对seo优化友谊 网页经典布局 页 ...
- python读取大文件只能读取部分的问题
最近准备重新研究一下推荐系统的东西,用到的数据集是Audioscrobbler音乐数据集.我用python处理数据集中artist_data.txt这个文件的时候,先读取每一行然后进行处理: with ...
- 【Offer】[53-1] 【数字在排序数组中出现的次数】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 统计一个数字在排序数组中出现的次数.例如,输入排序数组{1,2,3,3,3,3,4,5}和数字3,由于3在这个数组中出现了4次,因此输出 ...
- debug 模式缓慢
debug 模式启动服务器,然后在 breakopints下可以看到打的断点.清除全部重启服务器,问题解决.
- mysql 复制表结构和表数据
CREATE TABLE a1 ( id INT NOT NULL AUTO_INCREMENT COMMENT '编号', txt VARCHAR(20) NOT NULL DEFAULT '' C ...
- 基础知识:什么是SNMP
简单网络管理协议(SNMP) 是专门设计用于在 IP 网络管理网络节点(服务器.工作站.路由器.交换机及HUBS等)的一种标准协议,它是一种应用层协议. SNMP 使网络管理员能够管理网络效能,发现并 ...
- 玩转 SpringBoot 2 快速整合 | JSP 篇
前言 JavaServer Pages(JSP)技术使Web开发人员和设计人员能够快速开发和轻松维护利用现有业务系统的信息丰富的动态Web页面. 作为Java技术系列的一部分,JSP技术可以快速开发独 ...
- LVM扩容根分区
LVM的工作方式 LVM管理工具集 [root@wendang ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda ...
- Python:给定一个不超过5位的正整数,判断有几位
方法一:作比较 [root@python markPy]# cat five.py #!/usr/bin/python3 a=int(input(">>>>" ...
- SqlServer还原数据库时提示:异常终止,不能在此版本的SQL Server中启动,因为它包含分区函数
场景 在SqlServer Management中进行数据库还原时提示: 数据库不能在此版本的SQL Server中启动,因为它包含分区函数. 点击左下角的查看详细信息 实现 电脑上安装的是SQL S ...