梯度下降法(一)入门

转载 2016年05月30日 15:17:40

梯度下降法(一)入门
22981人阅读 评论(12) 收藏 举报
本文章已收录于:
分类:

梯度下降法是一个一阶最优化算法,通常也称为最速下降法。我之前也没有关注过这类算法。最近,听斯坦福大学的机器学习课程时,碰到了用梯度下降算法求解线性回归问题,于是看了看这类算法的思想。今天只写了一些入门级的知识。




我们知道,函数的曲线如下:


编程实现:c++ code

  1. /* 
  2.  * @author:郑海波 
  3.  * blog.csdn.net/nuptboyzhb/ 
  4.  * 2012-12-11 
  5.  */  
  6. #include <iostream>  
  7. #include <math.h>  
  8. using namespace std;  
  9. int main()  
  10. {  
  11.     double e=0.00001;//定义迭代精度  
  12.     double alpha=0.5;//定义迭代步长  
  13.     double x=0;//初始化x  
  14.     double y0=x*x-3*x+2;//与初始化x对应的y值  
  15.     double y1=0;//定义变量,用于保存当前值  
  16.     while (true)  
  17.     {  
  18.         x=x-alpha*(2.0*x-3.0);  
  19.         y1=x*x-3*x+2;  
  20.         if (abs(y1-y0)<e)//如果2次迭代的结果变化很小,结束迭代  
  21.         {  
  22.             break;  
  23.         }  
  24.         y0=y1;//更新迭代的结果  
  25.     }  
  26.     cout<<"Min(f(x))="<<y0<<endl;  
  27.     cout<<"minx="<<x<<endl;  
  28.     return 0;  
  29. }  
  30. //运行结果  
  31. //Min(f(x))=-0.25  
  32. //minx=1.5  
  33. //Press any key to continue  

问题:

迭代步长alpha为什么要选择0.5??选择其他的值可以吗?它的取值与迭代的次数、收敛性及结果的准确性有何关系?如果选择alpha的值?下次好好的探讨。

  转载请声明:http://blog.csdn.net/nuptboyzhb/article/details/8281923

机器学习算法入门之(一)梯度下降法实现线性回归

1. 背景 文章的背景取自An Introduction to Gradient Descent and Linear Regression,本文想在该文章的基础上,完整地描述线性回归算法。部分数据...
  • u012556077
  • u012556077
  • 2016年01月28日 19:19
  • 802

梯度下降法(一)入门

梯度下降法是一个一阶最优化算法,通常也称为最速下降法。我之前也没有关注过这类算法。最近,听斯坦福大学的机器学习课程时,碰到了用梯度下降算法求解线性回归问题,于是看了看这类算法的思想。今天只写了一些入门...
  • sruixue
  • sruixue
  • 2014年10月14日 10:14
  • 337

【转载】梯度下降法(一)入门

原文请看这里:http://www.52ml.net/2038.html 梯度下降法 是一个 一阶 最优化算法 ,通常也称为 最速下降法 。我之前也没有关注过这类算法。最近,听斯...
  • lanse20
  • lanse20
  • 2017年11月25日 00:50
  • 13

梯度下降法解多元线性回归

今天试验了梯度下降法求多元线性回归,一般给出拟合数据,根据误差平方最小可以将系数表示为输入数据的函数。这里先选择了一组初始系数,设定步长,迭代最大500次,结果比较稳定。 原始数据X: 9.200...
  • u010627377
  • u010627377
  • 2016年09月10日 12:51
  • 742

机器学习入门(一):关于梯度下降法

前几天听了不错的机器学习课,顺利入坑。但是由于基础差,刚开始的线性回归部分都有些问题搞不清楚,老师讲这个地方的时候,不知道。所以需要自己补过来。 先如何进行线性回归? 思路:代价函数求极值...
  • crazyeden
  • crazyeden
  • 2017年11月07日 19:36
  • 98

机器学习算法入门之(一) 梯度下降法实现线性回归

文章的背景取自An Introduction to Gradient Descent and Linear Regression,本文想在该文章的基础上,完整地描述线性回归算法。部分数据和图片取自该文...
  • Titan0427
  • Titan0427
  • 2015年12月24日 12:32
  • 54317

梯度下降法入门

梯度下降法是一个一阶最优化算法,通常也称为最速下降法。我之前也没有关注过这类算法。最近,听斯坦福大学的机器学习课程时,碰到了用梯度下降算法求解线性回归问题,于是看了看这类算法的思想。今天只写了一些入门...
  • wisdomfriend
  • wisdomfriend
  • 2014年05月21日 06:12
  • 467

梯度下降法(一)

梯度下降法是一个一阶最优化算法,通常也称为最速下降法。我之前也没有关注过这类算法。最近,听斯坦福大学的机器学习课程时,碰到了用梯度下降算法求解线性回归问题,于是看了看这类算法的思想。今天只写了一些入门...
  • ahuang1900
  • ahuang1900
  • 2013年11月19日 13:08
  • 868

梯度下降中的归一化、标准化问题

简述  在我上一篇完结的Tianic测试中,我曾提到了一个在使用sklenlearn包中出现的一个问题,这成为了我们这里预留的一个悬念,也就是为了防止不拟合时而使用了scaling,但是当时我在sca...
  • Exziro
  • Exziro
  • 2017年09月24日 19:36
  • 359

梯度下降法一

学习梯度下降法,首先要掌握梯度,法向量和切线之间的区别。        步长:一维寻优法        源码: %梯度下降法的思路 %步长的第一种解法:一维寻优法 x=[1;3]; er...
  • lskyne
  • lskyne
  • 2012年12月19日 17:03
  • 856
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:梯度下降法(一)入门
举报原因:
原因补充:

(最多只允许输入30个字)