梯度下降参数不收敛_数据分析|梯度下降算法

梯度下降参数不收敛_数据分析|梯度下降算法_第1张图片

OX00 统计学习三要素

统计学习三要素:模型、策略、算法

模型(=假设空间=所有备选模型):决策函数(y=f(x)),条件概率分布,两种形式 (一种是判别式模型,一种是生成式模型)

策略:确定标准,决定最优标准最重要是确定损失函数:测试值与真实值之间差别的惩罚。

算法:如何选择最优模型;

OX01 常见的最优化算法

梯度下降参数不收敛_数据分析|梯度下降算法_第2张图片

梯度下降参数不收敛_数据分析|梯度下降算法_第3张图片

519578b715eea4bf3f0f6dc3887a0f1a.png
判别模型:感知机,k近邻,决策树,逻辑回归,支持向量机,条件随机场,最大熵模型。
生成模型:朴素贝叶斯,混合高斯,隐马尔科夫。
判别模型由于直接学习决策函数f(x),和条件概率P(y|x),直接面对预测,所以准确率更高!判别模型可以对数据进行各种程度的抽象,定义特征,并使用特征,所以可以简化问题。
生成模型,可以还原出联合概率分布,生成学习方法的收敛速度更快,样本量增加的时候,模型可以更快的收敛。

OX02 为什么需要梯度下降算法

在学习简单线性回归时,我们使用最小二乘法来求损失函数的最小值,但是这只是一个特例。在绝大多数的情况下,损失函数是很复杂的(比如逻辑回归),根本无法得到参数估计值的表达式。因此需要一种对大多数函数都适用的方法。这就引出了“梯度算法”。

我们先了解一下梯度下降是用来做什么的?

首先梯度下降(Gradient Descent, GD),不是一个机器学习算法,而是一种基于搜索的最优化方法。梯度下降(Gradient Descent, GD)优化算法,其作用是用来对原始模型的损失函数进行优化,以便寻找到最优的参数,使得损失函数的值最小。

要找到使损失函数最小化的参数,如果纯粹靠试错搜索,比如随机选择1000个值,依次作为某个参数的值,得到1000个损失值,选择其中那个让损失值最小的值,作为最优的参数值,那这样太笨了。我们需要更聪明的算法,从损失值出发,去更新参数,且要大幅降低计算次数。

梯度下降算法作为一个聪明很多的算法,抓住了参数与损失值之间的导数,也就是能够计算梯度(gradient),通过导数告诉我们此时此刻某参数应该朝什么方向,以怎样的速度运动,能安全高效降低损失值,朝最小损失值靠拢

OX03 什么是梯度下降算法

简单地来说,多元函数的导数(derivative)就是梯度(gradient),分别对每个变量进行微分,然后用逗号分割开,梯度是用括号包括起来,说明梯度其实一个向量,我们说损失函数L的梯度为:

476a5df877af51da9fdbe789d389a792.png

在单变量的函数中,梯度其实就是函数的微分,代表着函数在某个给定点的切线的斜率 在多变量函数中,梯度是一个向量,向量有方向,梯度的方向就指出了函数在给定点的上升最快的方向。

梯度下降参数不收敛_数据分析|梯度下降算法_第4张图片

关于梯度下降法的数学推导:

什么是梯度下降法?​www.zhihu.com
梯度下降参数不收敛_数据分析|梯度下降算法_第5张图片

关于学习率 :

我们已经知道,梯度对应的是下山的方向,而参数 对应的是步伐的长度。在学术上,我们称之为“学习率”(learning rate),是模型训练时的一个很重要的超参数,能直接影响算法的正确性和效率

  • 首先,学习率不能太大。因此从数学角度上来说,一阶泰勒公式只是一个近似的公式,只有在学习率很小,也就是很小时才成立。并且从直观上来说,如果学习率太大,那么有可能会“迈过”最低点,从而发生“摇摆”的现象(不收敛),无法得到最低点
  • 其次,学习率又不能太小。如果太小,会导致每次迭代时,参数几乎不变化,收敛学习速度变慢,使得算法的效率降低,需要很长时间才能达到最低点。

梯度下降法有个致命缺陷:它只能找到局部最优点,而非全局最优点。也就是说,不同的初始值,会导致最终收敛的极值点不同。那么对应的解决方案如下:首先随机产生多个初始参数集,即多组;然后分别对每个初始参数集使用梯度下降法,直到函数值收敛于某个值;最后从这些值中找出最小值,这个找到的最小值被当作函数的最小值。当然这种方式不一定能找到全局最优解,但是起码能找到较好的。

对于梯度下降来说,初始点的位置,也是一

你可能感兴趣的:(梯度下降参数不收敛)