参数估计-2| 学习笔记

简介: 快速学习参数估计-2。

开发者学堂课程【机器学习算法 :参数估计-2】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/535/detail/7222


参数估计-2

 

内容介绍

一、梯度与梯度法

二、梯度上升法

三、常见的梯度方法

 

一、梯度与梯度法

(1) 梯度(Gradient):是一个向量,表示某一函数在该点处的方向导数沿着该方向取得最大值,即函数在该点处沿着该方向变化最快,变化率最大。

(2)梯度下降法(Gradient Descent):一种最优化算法,也称为最速下降法。沿着负梯度方向去减小函数值从而接近目标值。

(3)梯度上升法(GradientAscent):一种最优化算法,也称为最速上升法。沿着梯度方向去增加函数值从而接近目标值。

梯度这一概念非常重要,特别是用迭代方法求解的时候这个梯度很重要。迭代的时候当前值是知道的,然后算出来与最终结果有误差。这个误差不能接受,需要改变当前值。这时候有两个选择,是把这个值变大还是变小,往哪个方向改,这个时候就要用到梯度。沿着梯度的方向来变化是最容易快速接近正确解的一个方式。

一旦求到了某一个点的梯度实际上是有两个选择的,要么是沿着梯度方向减小函数值接近目标值,或者是沿着梯度的反方向。这个时候就有两个,一个是梯度下降法,一个是梯度上升法。

举例说明:

image.png

它是一个二式曲线。这个时候想通过迭代法去找它的最小值。随便取一个点,这个点取一下它的切线实际上就是它的梯度方向。很明显这个值不是它的最小值。

按照迭代的原理需要再取下一个值,让这个值更接近最小值,实际上就需要使用梯度下降法,就是要按照负梯度方向减少这个值,然后让它接近目标值。

再去算一下它的梯度,沿负的梯度方向变化,通过迭代一直找到最小值。

(4)梯度示意图

image.png

这是梯度的一个示意图,梯度上升就是上山,下降就是下山。如果要最快到达山顶或是找到最小值,就沿着梯度的负方向减少这个值。

(5)剖面图

image.png

这是一个剖面图,实际上是沿着梯度的负方向逐渐地接近它的极值。

 

二、梯度上升法

(1)梯度上升法(GradientAscent):一种最优化算法,也称为最速上升法。沿着梯度方向去增加函数值从而接近目标值。

(2)步骤:求梯度,沿着梯度以指定步长(学习率)增加函数值,直到函数值接近目标值。

(3)以求解逻辑回归似然函数为例,s 函数导数image.png 

image.png

(4)求梯度:

image.png

(5)其梯度统一形式为:

image.png

(6)每次循环,参数image.png更新为:

image.png

(7) 循环终止条件:

①定义一个合适的阈值,当两次迭代之间的差值小于该阈值时,循环终止。

②定义一个循环次数,当达到该次数时,终止循环。

因为这里求的是最大值,随机取一个值它可能不是最大值,沿着这个值所在点的梯度让它上升,更接近于最大值。

步骤:首先要求梯度,沿着梯度以指定步长(学习率)增加函数值,直到函数值接近目标值。

以求解逻辑回归似然函数为例,选择它的原因是计算起来比较方便。求梯度就要分别对image.pngimage.png求导。每次循环的时候就要去更新 β 值了,就是沿着梯度的方向变化。因为是梯度上升,所以是沿着梯度的正方向增加,增加了α。α是学习率或者是步长,选定了变化的方向,每次就是变α。按照公式去更新β。α的值也要去试,看取多少合适。α的值过大或过小都不行。按照image.png更新的式子就可以通过循环去找最期望的结果的参数 β 的值。

循环终止条件:

定义一个合适的阈值,当两次迭代之间的差值小于该阈值时,循环终止。通过一个步长更新之后和上一次带进去取值的差小于阈值,可能不是最大值,但已经接近最大值,或者说它和最大值之间没有误差。

定义一个循环次数,当达到该次数时,终止循环。

循环次数其实和 α 的取值是相关的,就和步长是相关的。假设爬山的时候一万步就停止,但步长是多大和最终处在半山腰还是山顶或是已经越过山顶是息息相关的。

它有可能爬过了会再返过来,所以如果步长比较大。它可能围绕着的定义的阈值比较大的话,有可能在三角上发生震荡,往前一步这个值就变小了,因为是处在下坡了。退回一步来也不是最大值,它就在山顶这个值的两侧来后震荡。有时候需要定义两个终止条件,最佳的就是达到了合适的阈值。如果一直震荡的话就需要定义一个循环次数,保证这个程序可以终止。

示意图:

image.png

 

三、常见的梯度方法

(1)梯度上升法(GradientAscent):一种最优化算法,也称为最速上升法。沿着梯度方向去增加函数值从而接近目标值。

image.png

(2)批量梯度上升法(Batch Gradient Ascent,BGA):最原始形式,使用全部数据更新参数,即 i=1,2....n

得到的解更优,易于并行实现。

当样本数据量较大时,训练时间长,消耗资源多。

(3)随机梯度上升法(Stochastic Gradient Ascent,SGA):随机使用一条数据更新参数,即 i∈[1,n]

训练速度快

得到解比较差的概率大,准确率不高,不易于并行

(4)小批量梯度上升法(Mini-Batch Gradient Ascent,MBGA):BGA 和 SGA 折中,使用一部分数据更新。这部分数据既不是整体数据那么大,也不是一条数据那么随意。它实际上是兼顾了上面两种算法的特点,实际中的使用较多。

第一种是批量梯度上升法,这是一种最原始的形式,每次都使用整个样本集来更新参数。好处就是得到的解更优,因为每次都是用所有的样本去更新值。这样得到的解更优,并且很容易去做。但是有一个问题,就是如果样本的数据量比较大,训练的时间会很长。计算量比较大,消耗的资源也比较多。另外一种方法叫随机梯度上升法,就是随机使用一条数据来更新参数。这个计算量很小,每次都取一条,训练速度非常快,但也有它的问题。就是得到的解比较差的概率比较高,并且不太容易进行并行。还有一个折中的办法为小批量梯度上升法,它实际上介于 BGA 和 SGA 之间。它使用一部分数据更新,这部分数据既不是整体数据那么大也不是一条数据那么随意,实际上是兼顾了两种算法的优点。实际上使用 MBGA 的次数较多。这是梯度上升法求最大值,当然也有梯度下降法求最小值。后面讲其他算法的时候就会经常使用梯度法,不管是上升还是下降,来求极值算参数值。

相关文章
|
23天前
|
算法
【数理统计实验(二)】参数估计
【数理统计实验(二)】参数估计
|
23天前
|
算法
R语言Gibbs抽样的贝叶斯简单线性回归仿真分析
R语言Gibbs抽样的贝叶斯简单线性回归仿真分析
R语言Gibbs抽样的贝叶斯简单线性回归仿真分析
|
23天前
R语言多项式线性模型:最大似然估计二次曲线
R语言多项式线性模型:最大似然估计二次曲线
|
23天前
|
算法
R语言贝叶斯推断与MCMC:实现Metropolis-Hastings 采样算法示例
R语言贝叶斯推断与MCMC:实现Metropolis-Hastings 采样算法示例
|
23天前
使用R语言进行多项式回归、非线性回归模型曲线拟合
使用R语言进行多项式回归、非线性回归模型曲线拟合
|
机器学习/深度学习 算法 开发者
误差反向传播算法-3|学习笔记
快速学习误差反向传播算法-3
81 0
|
机器学习/深度学习 算法 开发者
参数估计-1| 学习笔记
快速学习参数估计-1。
88 0
参数估计-1| 学习笔记
|
机器学习/深度学习 算法 开发者
参数估计-3| 学习笔记
快速学习参数估计-3。
100 0
参数估计-3| 学习笔记
|
人工智能 开发者
卡方检验 | 学习笔记
快速学习卡方检验
150 0
卡方检验 | 学习笔记
|
人工智能 开发者
回归直线拟合优度 | 学习笔记
快速学习回归直线拟合优度
265 0
回归直线拟合优度 | 学习笔记

热门文章

最新文章