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

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

编程实现:c++ code

[cpp] view plaincopy
  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://www.zhihu.com/question/20822481

另外可以参考:
http://blog.sina.com.cn/s/blog_bae3b74d01017dsf.html
http://www.zhizhihu.com/html/y2011/3632.html
http://www.360doc.com/content/12/0529/22/4617781_214618453.shtml

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

深入浅出梯度下降法1相关推荐

  1. 深入浅出--梯度下降法及其实现

    梯度下降的场景假设 梯度 梯度下降算法的数学解释 梯度下降算法的实例 梯度下降算法的实现 Further reading 本文将从一个下山的场景开始,先提出梯度下降算法的基本思想,进而从数学上解释梯度 ...

  2. 【梯度下降法】详解优化算法之梯度下降法(原理、实现)

    本文收录于<深入浅出讲解自然语言处理>专栏,此专栏聚焦于自然语言处理领域的各大经典算法,将持续更新,欢迎大家订阅! ​个人主页:有梦想的程序星空 ​个人介绍:小编是人工智能领域硕士,全栈工 ...

  3. 梯度下降法原理解析(大白话+公式推理)

    目录 摘 要 第一章:梯度下降法原理解析 1.1梯度下降算法的浅层解析(深入浅出的理解,有些专业名词在这一节只需混个眼熟即可,         1.2中就会通过前后呼应的方式进行解析.) 1.2  梯 ...

  4. ubuntu之路——day8.1 深度学习优化算法之mini-batch梯度下降法

    所谓Mini-batch梯度下降法就是划分训练集和测试集为等分的数个子集,比如原来有500W个样本,将其划分为5000个baby batch,每个子集中有1000个样本,然后每次对一个mini-bat ...

  5. 机器学习入门(09)— 偏导数、梯度概念、梯度下降法理论和实现

    1. 偏导数概念 对于式 4-6 而言 式(4.6)有两个变量,求导数时有必要区分对哪个变量求导数,即对 x0 和 x1 两个变量中的哪一个求导数.另外,我们把这里讨论的有多个变量的函数的导数称为偏导 ...

  6. 机器学习最常用的优化算法 — 梯度下降法

    1. 学习目标 每一个机器学习模型都有一个目标函数,而学习的目标,就是最小化目标函数.直观而言,当我们已经获得了一个函数,最小化该函数其实就是,在其自变量取值范围内,找到使得因变量最小的那个自变量取值 ...

  7. 线性回归介绍及分别使用最小二乘法和梯度下降法对线性回归C++实现

    回归:在这类任务中,计算机程序需要对给定输入预测数值.为了解决这个任务,学习算法需要输出函数f:Rn→R.除了返回结果的形式不一样外,这类问题和分类问题是很像的.这类任务的一个示例是预测投保人的索赔金 ...

  8. 机器学习中的梯度下降法

    1. 机器学习中为什么需要梯度下降 梯度下降是机器学习中常见优化算法之一,梯度下降法有以下几个作用: (1)梯度下降是迭代法的一种,可以用于求解最小二乘问题. (2)在求解机器学习算法的模型参数,即无 ...

  9. 通俗易懂讲解梯度下降法!

    Datawhale干货 作者:知乎King James,伦敦国王大学 知乎 | https://zhuanlan.zhihu.com/p/335191534 前言:入门机器学习必须了解梯度下降法,虽然 ...

  10. 线性回归之梯度下降法介绍

    线性回归之梯度下降法介绍 上一篇博文中介绍了最基本的梯度下降法实现流程,常见的梯度下降算法有: 全梯度下降算法(Full gradient descent), 随机梯度下降算法(Stochastic ...

最新文章

  1. dubbo与springboot的集成
  2. jvm性能调优实战 - 44Metaspace区域是如何因为类太多而发生内存溢出OOM
  3. dijkstra算法PHP,单源最短路径(dijkstra算法)php实现
  4. IOS工作笔记002---windows给VmWare虚拟机OS系统安装VMTools
  5. win10连Android机,Windows10电脑可以和安卓手机无缝连接使用了,实用性干翻Mac-win10手机...
  6. word下禁止显示回车符号
  7. android导航软件安装,【图】手把手教你安装免费且无需流量的安卓版本凯立德导航软件!...
  8. 百度图片api获取(包含获取原网址)
  9. Android 批量修改文件名称
  10. 椭圆积分函数和雅各比椭圆函数
  11. 跨时钟域信号如何处理(一、单bit信号)
  12. Vue绑定<audio>/<video>标记的muted属性无效问题随记
  13. 一个网站广告位的极致使用
  14. IOS多线程使用GCD与信号量实现生产者与消费者模式
  15. [电影]小蚁雄兵(Antz)
  16. Centos7.6 Install GMT
  17. 我最近一年的奋斗目标
  18. 使用vxe-table 制作编辑表格
  19. Win10系统安装MySQL5.5.62 解压版
  20. 【调剂】浙江理工大学【杭州】欢迎凝聚态物理、电子信息等专业优秀学子调剂深造...

热门文章

  1. 我来到这世上,却不曾歌唱
  2. MySQL数据库(五)
  3. MikroTik ROS软路由OSPF命令配置实例
  4. python列表题目_python4_list应用的练习题
  5. 计算机网络网络层之层次路由
  6. 协同过滤推荐算法的用户向量相似度计算
  7. Linux之Firewall防火墙、iptables、firewalld
  8. NYOJ--40--公约数和公倍数
  9. centos 关闭命令行警报声
  10. Webpack使用教程五(Babel)