[LNU.Machine Learning.Question.1]梯度下降方法的一些理解
曾经学习machine learning,在regression这一节,对求解最优化问题的梯度下降方法,理解总是处于字面意义上的生吞活剥。
对梯度的概念感觉费解?到底是标量还是矢量?为什么沿着负梯度方向函数下降最快?想清楚的回答这些问题。还真须要点探究精神。
我查阅了一些经典的资料(包含wiki百科),另一些个人的博客,比方 p=2573">http://www.codelast.com/?p=2573
1.为什么在多元函数自变量的研究中引入方向?
在自变量为一维的情况下,也就是自变量能够视为一个标量,此时,一个实数就能够代表它了。这个时候,假设要改变自变量的值,则其要么减小,要么添加。也就是“非左即右“。
所以,说到“自变量在某个方向上移动”这个概念的时候,它并非十分明显;而在自变量为n(n≥2)维的情况下。这个概念就实用了起来:假设自变量X为3维的,即每个X是(x1, x2, x3)这种一个点,当中x1,x2和x3各自是一个实数,即标量。
那么,假设要改变X。即将一个点移动到还有一个点,你怎么移动?能够选择的方法太多了,比如。我们能够令x1。x2不变,仅使x3改变,也能够令x1,x3不变。仅使x2改变。等等。这些做法也就使得我们有了”方向“的概念。由于在3维空间中,一个点移动到还有一个点,并非像一维情况下那样“非左即右”的。而是有“方向”的。在这种情况下,找到一个合适的”方向“,使得从一个点移动到还有一个点的时候。函数值的改变最符合我们预定的要求(比如。函数值要减小到什么程度),就变得十分有必要了。
2.为什么是梯度下降(Gradient Descent)
依据维基百科的定义,假设实值函数
在点
处可微且有定义,那么函数
在
点沿着梯度相反(什么是梯度?这也要问?)的方向
下降最快。因而我们在回归所导出的优化问题中採用梯度下降的方法来寻找最长处问题
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl1NnRvdA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
3.那么。为什么方向
下降最快?
爱问为什么的学生死得快(
).解释这一问题,还须要用到Taylor展开,回顾:
在梯度的概念下。这个式子能够进一步化为:
(a)
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbGl1NnRvdA==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">:代表第k个点的自变量(一个向量)。
d:单位方向(一个向量)。即 |d|=1。
:步长(一个实数)。
:目标函数在Xk这一点的梯度(一个向量)。
:α的高阶无穷小。
在(a)式中,能够忽略不计。
所谓最速下降,即意味着
也就是说希望(a)式取最小,即觉得最小,而
是向量内积的形式(如果向量d与负梯度
的夹角为θ):
(b)
(b)式取最小当且仅当\theta=0,此时方向向量d(自变量的变化方向)取负梯度方向,这个方向就是梯度变化最大的方向(负变化最小,始终要求方向的概念在脑海中)。
4.几何解释
以下图片演示样例了这一过程,这里如果 F 定义在平面上,而且函数图像是一个碗形。
蓝色的曲线是等高线(水平集)。即函数 F 为常数的集合构成的曲线。红色的箭头指向该点梯度的反方向。(一点处的梯度方向与通过该点的等高线垂直)。
沿着梯度下降方向,将终于到达碗底,即函数 F 值最小的点
![]()
梯度下降法几何解释:
因为我们的任务是求得经验损失函数的最小值。所以上图的过程实际上是一个“下坡”的过程。
在每个点上。我们希望往下走一步(如果一步为固定值0.5米),使得下降的高度最大,那么我们就要选择坡度变化率最大的方向往下走。这个方向就是经验损失函数在这一点梯度的反方向。
每走一步,我们都要又一次计算函数在当前点的梯度,然后选择梯度的反方向作为走下去的方向。随着每一步迭代,梯度不断地减小,到最后减小为零。
这就是为什么叫“梯度下降法”。
先讲到这里。敲符号、磊代码太累......
在此,向Orange先生、learnhard、wiki表示由衷的感谢
[LNU.Machine Learning.Question.1]梯度下降方法的一些理解的更多相关文章
- 几种梯度下降方法对比(Batch gradient descent、Mini-batch gradient descent 和 stochastic gradient descent)
https://blog.csdn.net/u012328159/article/details/80252012 我们在训练神经网络模型时,最常用的就是梯度下降,这篇博客主要介绍下几种梯度下降的变种 ...
- batch gradient descent(批量梯度下降) 和 stochastic gradient descent(随机梯度下降)
批量梯度下降是一种对参数的update进行累积,然后批量更新的一种方式.用于在已知整个训练集时的一种训练方式,但对于大规模数据并不合适. 随机梯度下降是一种对参数随着样本训练,一个一个的及时updat ...
- [Hinton] Neural Networks for Machine Learning - Basic
Link: Neural Networks for Machine Learning - 多伦多大学 Link: Hinton的CSC321课程笔记1 Link: Hinton的CSC321课程笔记2 ...
- [Hinton] Neural Networks for Machine Learning - RNN
Link: Neural Networks for Machine Learning - 多伦多大学 Link: Hinton的CSC321课程笔记 补充: 参见cs231n 2017版本,ppt写得 ...
- Machine Learning in Action(4) Logistic Regression
从这节算是开始进入“正规”的机器学习了吧,之所以“正规”因为它开始要建立价值函数(cost function),接着优化价值函数求出权重,然后测试验证.这整套的流程是机器学习必经环节.今天要学习的话题 ...
- Federated Machine Learning: Concept and Applications
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Qiang Yang, Yang Liu, Tianjian Chen, and Yongxin Tong. 2019. Federate ...
- Machine Learning - 第5周(Neural Networks: Learning)
The Neural Network is one of the most powerful learning algorithms (when a linear classifier doesn't ...
- 采用梯度下降优化器(Gradient Descent optimizer)结合禁忌搜索(Tabu Search)求解矩阵的全部特征值和特征向量
[前言] 对于矩阵(Matrix)的特征值(Eigens)求解,采用数值分析(Number Analysis)的方法有一些,我熟知的是针对实对称矩阵(Real Symmetric Matrix)的特征 ...
- 今天开始学Pattern Recognition and Machine Learning (PRML),章节5.2-5.3,Neural Networks神经网络训练(BP算法)
转载请注明出处:http://www.cnblogs.com/xbinworld/p/4265530.html 这一篇是整个第五章的精华了,会重点介绍一下Neural Networks的训练方法——反 ...
随机推荐
- 查找网内活跃IP和自动传输文本
ifconfig p32p1|egrep -o "broadcast [^ ]*" |grep -o "[0-9.]*"grep -o "broadc ...
- 「SCOI2011」糖果
蒟蒻又回来写题解了... 题面 幼儿园里有 N 个小朋友, lxhgww 老师现在想要给这些小朋友们分配糖果,要求每个小朋友都要分到糖果.但是小朋友们也有嫉妒心,总是会提出一些要求,比如小明不希望小红 ...
- 《Redis设计与实现》学习笔记
第2章 简单动态字符串(SDS) redis的字符串不是直接用c语言的字符串,而是用了一种称为简单动态字符串(SDS)的抽象类型,并将其作为默认字符串. redis中包含字符串值的键值对在底层都是由S ...
- #Plugin 环形loading插件
CircleLoader 环形loading插件 1.原生JS,不依赖jquery,zepto 2.前端学习交流群:814798690 案例展示 下载地址 https://github.com/cha ...
- org.apache.maven.archiver.MavenArchiver.getManifest错误
eclipse导入新的maven项目时,pom.xml第一行报错: org.apache.maven.archiver.MavenArchiver.getManifest(org.apache.mav ...
- linux学习笔记-11.正则表达式
1.cut截取以:分割保留第七段 grep hadoop /etc/passwd | cut -d: -f7 2.排序 du | sort -n 3.查询不包含hadoop的 grep -v hado ...
- DIM-00014: Cannot open the Windows NT Service Control Manager.
创建Oracle数据库时出错: OPW-00001: Unable to open password-file DIM-00014: Cannot open the Windows NT Servic ...
- CentOS7下安装MySQL5.7安装与配置(YUM)
http://blog.csdn.net/xyang81/article/details/51759200 安装环境:CentOS7 64位 MINI版,安装MySQL5.7 1.配置YUM源 在My ...
- python基础-UDP、进程、进程池、paramike模块
1 基于UDP套接字1.1 介绍 udp是无连接的,是数据报协议,先启动哪端都不会报错 udp服务端 import socket sk = socket() #创建一个服务器的套接字 sk.bind( ...
- SmartSVN has inconsistent newlines解决方法
SmartSVN has inconsistent newlines解决方法 点击 Project–>Setting,选择Working copy下的EOL-style,将Default EOL ...