简单分析线性回归中的梯度下降
2017-04-06 19:40
253 查看
对于回归问题,我们的目标是要找到一个模型,或者说hypothesis,使之能够:对于我们一个输入,能够返回我们预期的结果。也就是说,假设在我们的数据集和结论集之间存在一个完美的对应关系f使得所有数据集都能正确得出结果,那我们的模型h应该与f之间的差距尽可能的小。
所以,我们靠瞎猜来蒙到这个h肯定是不现实的。我们这时候就会想,虽然我们一开始的模型不怎么贴合f,那么能不能根据已知数据集,一点一点地修正它(具体表现就是f中有很多参数,一步一步修正这些参数,使得它更贴合f),以此达到目的?
对于线性回归问题。
假设变量是线性相关(即都是一维的)
xi代表特征/输入变量
y代表输出/目标变量
m代表训练样本的数量
n代表特征数
则 假设函数
h(X)=θ0+θ1x1+θ2x2+.....+θnxn
我们定义如下式子(实际上就是很普通的最小二乘)。
J(θ)=∑i=0m(hθ(x(i))−y(i))2
这里区别一下,
xi表示h(X)中的第i个变量,x(i)代表第i个样本
这个式子反映了所有的样本通过h的映射之后与真实结果之间的差距(这里的差距指的是欧氏距离,实际上还有很多不同的反应距离的方法,例如曼哈顿距离和余弦距离balabala,先不讨论),用来判定我们的模型是好还是坏,很明显,这个式子的值越大,说明结果越烂。
要调整θ使此式尽可能的小,即与实际偏差越来越小。
实际上,这个函数叫做loss函数,损失函数或代价函数。因为它反映了模型得出的结果和真实的结果之间的差距。Loss函数应具有这样的特征:①它是凸函数,可以简单理解为边缘任意两点连接,之间的线段一定全在函数围成的形状内。这个性质保证了梯度下降之后可以达到全局最优解。②它处处可导,不然就不论什么梯度下降了。③模型得出的结果与真实结果偏差越大,loss函数值就越大,也就是说:损失越大。
给他取个名字叫J,自变量是θ(粗体代表向量),也就是那些参数。
所谓梯度下降,就是一种找到使j最小的方法。
想像站在一座这样的山峰上,十字位置,此时要想最快下山,就要找到最陡峭的方向走一小步,然后再走一小步。通常,十字位置就是零向量(初始点)
梯度下降中,是通过对每个θ,计算
θi:=θi−α∂J(θ)∂θi
此式中:=是赋值,α表示学习强度(迈步的距离)学习时,会随着离最小值点越近,步子越小,此时不是α变了,而是偏导变小了
实际上
∂J(θ)∂θi=∑i=0m(h(x(i))−y(i))xi
所以此式又可以化成
θi:=θi−α∑i=0m(h(x(i))−y(i))x(i)
这种算法也叫批梯度下降法,优点是准确,缺点是对每个θi都要计算所有的样本
这样计算负载很大
另一种思路被称为随机梯度下降法,不是每次都用所有的样本去计算损失函数,而是每次更新都只使用一个样本
θi:=θi−α(h(x(i))−y(i))x(i)
缺点也很明显,就是随机性大难以收敛,因为,万一有一个样本很鬼畜,就会拉远数据
所以批梯度下降是平滑地走向最低点,随机梯度下降是一会上一会下但是总体处于下降。
所以,我们靠瞎猜来蒙到这个h肯定是不现实的。我们这时候就会想,虽然我们一开始的模型不怎么贴合f,那么能不能根据已知数据集,一点一点地修正它(具体表现就是f中有很多参数,一步一步修正这些参数,使得它更贴合f),以此达到目的?
对于线性回归问题。
假设变量是线性相关(即都是一维的)
xi代表特征/输入变量
y代表输出/目标变量
m代表训练样本的数量
n代表特征数
则 假设函数
h(X)=θ0+θ1x1+θ2x2+.....+θnxn
我们定义如下式子(实际上就是很普通的最小二乘)。
J(θ)=∑i=0m(hθ(x(i))−y(i))2
这里区别一下,
xi表示h(X)中的第i个变量,x(i)代表第i个样本
这个式子反映了所有的样本通过h的映射之后与真实结果之间的差距(这里的差距指的是欧氏距离,实际上还有很多不同的反应距离的方法,例如曼哈顿距离和余弦距离balabala,先不讨论),用来判定我们的模型是好还是坏,很明显,这个式子的值越大,说明结果越烂。
要调整θ使此式尽可能的小,即与实际偏差越来越小。
实际上,这个函数叫做loss函数,损失函数或代价函数。因为它反映了模型得出的结果和真实的结果之间的差距。Loss函数应具有这样的特征:①它是凸函数,可以简单理解为边缘任意两点连接,之间的线段一定全在函数围成的形状内。这个性质保证了梯度下降之后可以达到全局最优解。②它处处可导,不然就不论什么梯度下降了。③模型得出的结果与真实结果偏差越大,loss函数值就越大,也就是说:损失越大。
给他取个名字叫J,自变量是θ(粗体代表向量),也就是那些参数。
所谓梯度下降,就是一种找到使j最小的方法。
想像站在一座这样的山峰上,十字位置,此时要想最快下山,就要找到最陡峭的方向走一小步,然后再走一小步。通常,十字位置就是零向量(初始点)
梯度下降中,是通过对每个θ,计算
θi:=θi−α∂J(θ)∂θi
此式中:=是赋值,α表示学习强度(迈步的距离)学习时,会随着离最小值点越近,步子越小,此时不是α变了,而是偏导变小了
实际上
∂J(θ)∂θi=∑i=0m(h(x(i))−y(i))xi
所以此式又可以化成
θi:=θi−α∑i=0m(h(x(i))−y(i))x(i)
这种算法也叫批梯度下降法,优点是准确,缺点是对每个θi都要计算所有的样本
这样计算负载很大
另一种思路被称为随机梯度下降法,不是每次都用所有的样本去计算损失函数,而是每次更新都只使用一个样本
θi:=θi−α(h(x(i))−y(i))x(i)
缺点也很明显,就是随机性大难以收敛,因为,万一有一个样本很鬼畜,就会拉远数据
所以批梯度下降是平滑地走向最低点,随机梯度下降是一会上一会下但是总体处于下降。
相关文章推荐
- 利用梯度下降法实现简单的线性回归
- Tensorflow 使用 Gradient Descent(梯度下降) 分析 Linear Regression(线性回归)
- 线性回归、梯度下降以及运用TensorFlow进行简单实现
- 最简单的机器学习算法-线性回归和梯度下降法
- 机器学习线性回归中用标准方程求w和用梯度下降求w的分析
- 线性回归与梯度下降法
- 斯坦福机器学习课程:第二讲,线性回归、梯度下降与正规方程组
- 机器学习系列(1):线性回归(regression)和梯度下降(gradient descent)
- Stanford 机器学习 第二讲------- 线性回归及梯度下降
- 第一讲.Liner_Regression and Gradient_Descent(Rui Xia) 单变量线性回归及梯度下降
- 对梯度下降的简单理解
- 梯度下降法,最小二乘法求线性回归
- 利用简单的一元线性回归分析估计软件项目开发时间
- 机器学习之梯度下降法---梯度下降法分析
- 梯度下降取负梯度的简单证明,挺有意思的mark一下
- 梯度下降取负梯度的简单证明,挺有意思的mark一下
- 【转载】Andrew Ng机器学习公开课笔记 — 线性回归和梯度下降
- 梯度下降法解线性回归
- 【Stanford Machine Learning Open Course】3. 线性回归问题两种解法:正规方程组解法 & 梯度下降法
- 线性回归及梯度下降