机器学习(二)——梯度下降法

代价函数(cost function):弄清楚如何用最接近的直线和数据相拟合

线性拟合实际上是一个最小化的问题,使代价函数

(平方误差函数)最小(最小二乘法),采用梯度下降算法可将代价函数J最小化

         梯度下降模拟图

在假设函数的参数范围内随机选择一组特定参数,我们以最快下降的方向降低成本函数。每个步骤的大小由参数α确定,称为学习速率(步长)。

梯度下降算法是:重复直至收敛。而步骤的方向由偏导数确定,在每次迭代中,要同时更新参数。

如下:

有两个参数情况下,左边是对的,保持同步更新

注解:

如果学习速率α太小,那么梯度下降就会很缓慢

如果学习速率α太大,则会导致震荡甚至无法收敛

当学习速率到一个局部最低点时,不需要减小α,因为随着斜率的下降,θ1会减小移动的步伐,直至到达局部最小点

将梯度下降算法应用到线性回归模型中

找到使代价函数最小的那个点

同步更新(梯度下降图)

重复迭代直至收敛(适用于多个变量)

梯度下降运算中的实用技巧

特征缩放:

如果含有两个特征x1和x2,如果x1范围为0~2000,x2范围在0~5,那么画出代价函数的轮廓图将非常偏斜

如果用这个代价函数来运营梯度下降的话,可能需要花很长时间并且会来回波动最终收敛到全局最小值。采用特征缩放,消耗掉这些值的范围,这样用梯度下降算法会下降更快。

一般比较合适的是将特征的取值约束到-1~+1的范围内,接近即可,范围太大和太小都不合理。

均值归一化:

有时也采用这种方法

μi是所有特征的平均值,Si是范围值。均值归一化涉及从该值的值中减去输入变量的平均值输入变量导致输入变量的新的平均值为零。

如何保证梯度下降算法正确的工作

怎样选择学习率α

如果α太小,那么梯度下降将异常缓慢

如果α太大,那么可能不会在每次迭代中下降,或者收敛

如果学习率α足够小,那么可以确保在每次迭代中都下降,但太小则导致收敛特别缓慢。

我们还可以改进我们的特征,如长x1,宽x2,则可用面积x3=x1*x2来合并参数。

如果新的特征是原特征的平方或立方,那么特征缩减将变得尤为重要。

时间: 2024-10-12 08:59:59

机器学习(二)——梯度下降法的相关文章

机器学习:梯度下降法(调试、其它思考)

一.梯度下降法的调试 1)疑问 / 难点 如何确定梯度下降法的准确性? 损失函数的变量 theta 在某一点上对应的梯度是什么? 在更负责的模型中,求解梯度更加不易: 有时候,推导出公式后,并将其运用到程序中,但当程序运行时,有时对梯度的计算可能会出现错误,怎么才能发现这种错误? 2)梯度下降法的调试思路 关于导数的理解,参考:高数:关于导数: 调试思路: 如果机器学习的算法涉及到求解梯度,先使调试方式求出梯度,提前得到此机器学习算法的正确结果: 用数学推导方式(根据算法模型推导出的求解梯度的公

机器学习之梯度下降法

在吴恩达的机器学习课程中,讲了一个模型,如何求得一个参数令错误函数值的最小,这里运用梯度下降法来求得参数. 首先任意选取一个θ 令这个θ变化,怎么变化呢,怎么让函数值变化的快,变化的小怎么变化,那么函数值怎么才能变小变得快呢,求偏导,刚开始不太清楚,就是要求每一个θ,看看错误函数在哪一个方向上变化得快,所有θ的分量集合起来,就能让J(θ)变化变小的最快.

机器学习之梯度下降法---梯度下降法分析

梯度下降法的基本思想是函数沿着其梯度方向增加最快,反之,沿着其梯度反方向减小最快.在前面的线性回归和逻辑回归中,都采用了梯度下降法来求解.梯度下降的迭代公式为: θj=θj−α∂J(θ)∂θj 在回归算法的实验中,梯度下降的步长α为0.01,当时也指出了该步长是通过多次时间找到的,且换一组数据后,算法可能不收敛.为什么会出现这样的问题呢?从梯度下降法的出发点可以看到,算法指出了行进的方向,但没有明确要行进多远,那么问题就来了,步子太小,走个一千一万年都到不了终点,而步子太大,扯到蛋不说,还可能越

逻辑回归模型梯度下降法跟牛顿法比较

1.综述 机器学习的优化问题中,梯度下降法和牛顿法是常用的两种凸函数求极值的方法,他们都是为了求得目标函数的近似解.梯度下降的目的是直接求解目标函数极小值,而牛顿法则变相地通过求解目标函数一阶导为零的参数值,进而求得目标函数最小值.在逻辑回归模型的参数求解中,一般用改良的梯度下降法,也可以用牛顿法. 2 梯度下降法 2.1算法描述 1.确定误差范围和下降的步长,确定函数的导函数 2.while(|新值 -旧值| >误差) 3.       旧值=新值 4.       新值=初始值-步长*导函数

Hulu机器学习问题与解答系列 | 二十四:随机梯度下降法

Hulu优秀的作者们每天和公式抗争,只为提升你们的技能,感动的话就把文章看完,然后哭一个吧. 今天的内容是 [随机梯度下降法] 场景描述 深度学习得以在近几年迅速占领工业界和学术界的高地,重要原因之一是数据量的爆炸式增长.如下图所示,随着数据量的增长,传统机器学习算法的性能会进入平台期,而深度学习算法因其强大的表示能力,性能得以持续增长,甚至在一些任务上超越人类.因此有人戏称,"得数据者得天下". 经典的优化方法,例如梯度下降法,每次迭代更新需要用到所有的训练数据,这给求解大数据.大规

机器学习中常见问题_几种梯度下降法

一.梯度下降法 在机器学习算法中,对于很多监督学习模型,需要对原始的模型构建损失函数,接下来便是通过优化算法对损失函数进行优化,以便寻找到最优的参数.在求解机器学习参数的优化算法中,使用较多的是基于梯度下降的优化算法(Gradient Descent, GD). 梯度下降法有很多优点,其中,在梯度下降法的求解过程中,只需求解损失函数的一阶导数,计算的代价比较小,这使得梯度下降法能在很多大规模数据集上得到应用.梯度下降法的含义是通过当前点的梯度方向寻找到新的迭代点. 基本思想可以这样理解:我们从山

机器学习初学心得——梯度下降法

回归与梯度下降: 回归在数学上来说是给定一个点集,能够用一条曲线去拟合之,如果这个曲线是一条直线,那就被称为线性回归,如果曲线是一条二次曲线,就被称为二次回归,回归还有很多的变种,如locally weighted回归,logistic回归,等等,这个将在后面去讲. 用一个很简单的例子来说明回归,这个例子来自很多的地方,也在很多的open source的软件中看到,比如说weka.大概就是,做一个房屋价值的评估系统,一个房屋的价值来自很多地方,比如说面积.房间的数量(几室几厅).地段.朝向等等,

Stanford机器学习课程笔记——单变量线性回归和梯度下降法

Stanford机器学习课程笔记--单变量线性回归和梯度下降法 1. 问题引入 单变量线性回归就是我们通常说的线性模型,而且其中只有一个自变量x,一个因变量y的那种最简单直接的模型.模型的数学表达式为y=ax+b那种,形式上比较简单.Stanford的机器学习课程引入这个问题也想让我们亲近一下machine learning这个领域吧~吴恩达大神通过一个房屋交易的问题背景,带领我们理解Linear regression with one variable.如下: 不要看这个问题简答,大神就是大神

谷歌机器学习速成课程---3降低损失 (Reducing Loss):梯度下降法

迭代方法图(图 1)包含一个标题为"计算参数更新"的华而不实的绿框.现在,我们将用更实质的方法代替这种华而不实的算法. 假设我们有时间和计算资源来计算 w1 的所有可能值的损失.对于我们一直在研究的回归问题,所产生的损失与 w1 的图形始终是凸形.换言之,图形始终是碗状图,如下所示: 图 2. 回归问题产生的损失与权重图为凸形. 凸形问题只有一个最低点:即只存在一个斜率正好为 0 的位置.这个最小值就是损失函数收敛之处. 通过计算整个数据集中 w1 每个可能值的损失函数来找到收敛点这种

[机器学习]—梯度下降法

机器学习中往往需要刻画模型与真实值之间的误差,即损失函数,通过最小化损失函数来获得最优模型.这个最优化过程常使用梯度下降法完成.在求解损失函数的最小值时,可以通过梯度下降法来一步步的迭代求解,得到最小化的损失函数和模型参数值. 1. 梯度 解释梯度之前需要解释导数与偏导数.导数与偏导数的公式如下: 导数与偏导数都是自变量趋于0时,函数值的变化量与自变量的变化量的比值,反应了函数f(x)在某一点沿着某一方向的变化率.导数中该方向指的是x轴正方向,偏导数中指的是向量x所在空间中一组单位正交基()中某