梯度下降法,主要通过梯度方向与学习率两个值,一步一步迭代求出最优值的过程。

1. 随机产生开始迭代的初始值,包括x值,学习率;

2. 计算函数的导数,通过学习率与导数的乘积更新x,即

其中是学习率,是函数的导数。

3. 用更新的x,更新y,重复2与3,直到相邻两个y值相同,或者相邻两个y的差值小于某个值终止。

假设以为例,那么等于2x,假设学习率为0.3,则相关python代码实现如下:

# 第一步:随机生成一个数,区间在[-10,10]
x_begin = np.random.uniform(-10,10)
iter_time = 1
learning_rate = 0.3
x = x_begin
y_tmp = 0
# 第二步:根据梯度乘以时间做迭代,通过前后两次的值的差小于某个值作为迭代终止条件
while(True):y = x**2# 添加终止条件,当前后两个y值一样时终止if np.abs(y-y_tmp)>1e-8:# 更新x值print('iter time: ',iter_time)print('gradient*learning_rate: ',2*x*learning_rate,',the x is %f' % x,'and the y is %f' % y)iter_time = iter_time + 1x = x - 2*x*learning_ratey_tmp = yelse:break

运行的结果如下所示:

由于的最小值为(0,0),通过迭代得到最小值的近似值为(0.000077,0)。

梯度下降法的特点:

不能保证被优化的函数达到全局最优解。

初始化值很大程度上影响求解最优解。

当函数为凸函数时,梯度下降法能够保证达到全局最优解。

最简单的梯度下降法求最优值相关推荐

  1. python迭代算法_Python实现简单的梯度下降法

    Python 实现简单的梯度下降法 机器学习算法常常可以归结为求解一个最优化问题,而梯度下降法就是求解最优化问题的一个方法. 梯度下降法(gradient descent)或最速下降法(steepes ...

  2. 用梯度下降法求根号2的值

    阿里实习面试的时候,面试官问了这个问题:如何用梯度下降法求根号2的值.我一开始是懵逼的,后来在面试官的指引下有了一些思路,最后面试官讲出了其中的原理.下面总结一下,是个挺有意思的问题. 我们知道梯度下 ...

  3. 梯度下降法求多元线性回归及Java实现

    为什么80%的码农都做不了架构师?>>>    对于数据分析而言,我们总是极力找数学模型来描述数据发生的规律, 有的数据我们在二维空间就可以描述,有的数据则需要映射到更高维的空间.数 ...

  4. 逻辑回归梯度下降法详解

    引言 逻辑回归常用于预测疾病发生的概率,例如因变量是是否恶性肿瘤,自变量是肿瘤的大小.位置.硬度.患者性别.年龄.职业等等(很多文章里举了这个例子,但现代医学发达,可以通过病理检查,即获取标本放到显微 ...

  5. python实现梯度下降法

    文章目录 梯度下降法 梯度定义 梯度下降法思路 梯度下降法的简单应用 梯度下降法求二维曲线的最小值 梯度下降法求三维曲面的最小值 代码附录 梯度下降法 梯度定义 梯度的本意是一个向量(矢量),表示某一 ...

  6. 一种更简单的求最小平方均值函数(MSE)的方法 -- 梯度下降法。

    在上一篇博客中我们通过解析解法算出来了 但是上面公式中的对称阵是N维乘以N维的,复杂度为O(n*n*n),虽然很精准但是很慢. 为此我们引入梯度下降法 我们首先大致画出MSE的图像,MSE是一个开口向 ...

  7. [数值计算-10]:一元非线性函数求最小值 - 导数与梯度下降法Python法代码示例

    作者主页(文火冰糖的硅基工坊):https://blog.csdn.net/HiWangWenBing 本文网址:https://blog.csdn.net/HiWangWenBing/article ...

  8. 【数据挖掘】神经网络 后向传播算法 ( 梯度下降过程 | 梯度方向说明 | 梯度下降原理 | 损失函数 | 损失函数求导 | 批量梯度下降法 | 随机梯度下降法 | 小批量梯度下降法 )

    文章目录 I . 梯度下降 Gradient Descent 简介 ( 梯度下降过程 | 梯度下降方向 ) II . 梯度下降 示例说明 ( 单个参数 ) III . 梯度下降 示例说明 ( 多个参数 ...

  9. 为什么一些机器学习模型需要对数据进行归一化?——1)归一化后加快了梯度下降求最优解的速度;2)归一化有可能提高精度...

    为什么一些机器学习模型需要对数据进行归一化? http://www.cnblogs.com/LBSer/p/4440590.html 机器学习模型被互联网行业广泛应用,如排序(参见:排序学习实践).推 ...

最新文章

  1. Linux 文件系统剖析
  2. Android架构篇-4 架构模式MVVM
  3. 查缺补漏 | Python自定义函数
  4. NHibernateLinq简单的CRUD操作
  5. Qt 视图框架示例 Colliding Mice 的翻译
  6. Android NDK学习笔记4:JNI访问Java构造函数
  7. 吉林推出百项政策扩开放
  8. Linux——软件包简单学习笔记
  9. ZZULIOJ 1114: 逆序
  10. 月薪3K与月薪3万的程序员,距离是怎么拉开的?
  11. 网页视频播放器代码大全 + 21个为您的网站和博客提供的免费视频播放器
  12. opc java_Java OPC 代码
  13. 什么是SSH 以及常见的ssh 功能
  14. 大数据集群Linux环境配置
  15. 使用EasyPOI导出复杂的Word表格
  16. php 自动累加,excel自动累加公式是什么
  17. Node.js基础入门第十天
  18. c语言面试题sizeof,C语言面试题——sizeof的注意点
  19. SpringBoot 整合【Mybatis-Plus实现分页查询】
  20. android适配布局,大佬手把手教你如何仿写出大厂的APP,一篇文章帮你解答

热门文章

  1. 《Python与硬件项目案例》— 基于Python与指纹模块AS608的指纹识别签到考勤系统(下篇)(期末大作业、课程设计、毕业设计、结课项目)
  2. kso经验记录 -- Global .asax各个方法的使用说明!
  3. smart夏季的笑话
  4. 阿里安全潘多拉实验室首先完美越狱苹果iOS 11.2
  5. open(r“地址“) r的作用,防止字符转义
  6. java生成二维码海报,面经解析
  7. week15作业A ZJM 与霍格沃兹
  8. 用view-source:查看网页源代码
  9. 【概率论与数理统计 宋浩】P2(1) 互不相容事件 对立事件
  10. word常见问题_2 添加不同的页码