基于python的梯度下降法的实现

代码:

def _numerical_gradient_no_batch(f, x):h = 1e-4  # 0.0001grad = np.zeros_like(x)for idx in range(x.size):tmp_val = x[idx]x[idx] = float(tmp_val) + hfxh1 = f(x)  # f(x+h)x[idx] = tmp_val - hfxh2 = f(x)  # f(x-h)grad[idx] = (fxh1 - fxh2) / (2 * h)x[idx] = tmp_val  # 还原值return grad
def numerical_gradient(f, X):if X.ndim == 1:return _numerical_gradient_no_batch(f, X)else:grad = np.zeros_like(X)for idx, x in enumerate(X):grad[idx] = _numerical_gradient_no_batch(f, x)return graddef gradient_descent(f,init_x,lr=0.01,step_num=100):## 梯度下降法求函数的最小值# f:要优化的函数# init_x:自变量的初始位置# lr:学习率# step_num:重复的次数x = init_xa = []b = []for i in range(step_num):grad = numerical_gradient(f,x)x = x - lr *grada.append(x[0])b.append(x[1])plt.scatter(a,b,color='black')plt.show()return xdef function_2(x):return np.sum(x**2)if __name__ == '__main__':gradient_descent(f=function_2, init_x=np.array([-3.0, 4.0]), lr=0.3, step_num=100)

运行结果:

基于python的梯度下降法的实现代码相关推荐

  1. 用Numpy搭建神经网络第二期:梯度下降法的实现

    https://www.toutiao.com/a6696699352833851908/ 大数据文摘出品 作者:蒋宝尚 小伙伴们大家好呀~~用Numpy搭建神经网络,我们已经来到第二期了.第一期文摘 ...

  2. 大白话5分钟带你走进人工智能-第十一节梯度下降之手动实现梯度下降和随机梯度下降的代码(6)...

                                第十一节梯度下降之手动实现梯度下降和随机梯度下降的代码(6) 我们回忆一下,之前咱们讲什么了?梯度下降,那么梯度下降是一种什么算法呢?函数最优化 ...

  3. 基于“FFD形变+梯度下降优化”图像配准的一种加速方法

    前文我们讲过FFD形变与梯度下降优化算法的原理: 梯度下降法详解 图像配准系列之基于B样条的FFD自由变换原理与C++实现 图像配准系列之基于FFD形变与梯度下降法的图像配准 1. "FFD ...

  4. 基于python的音频播放器_基于python实现音乐播放器代码实例

    基于python实现音乐播放器代码实例,一首,函数,按钮,布局,音乐 基于python实现音乐播放器代码实例 易采站长站,站长之家为您整理了基于python实现音乐播放器代码实例的相关内容. 核心播放 ...

  5. python开发语音录入_基于python实现语音录入识别代码实例

    这篇文章主要介绍了如何通过python实现语音录入识别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 一.介绍 1.第一步录音存入本地 2.调用百度 ...

  6. python 物理实验_基于Python和梯度下降算法的物理实验数据一元线性拟合方法

    基于 Python 和梯度下降算法的物理实验数据一元线性拟 合方法 关毅铬 ; 程敏熙 [期刊名称] < <物理通报> > [年 ( 卷 ), 期] 2019(000)010 ...

  7. 两行代码完成特征工程-基于Python的特征自动化选择代码(提供下载)

    本文介绍一个特征选择神器:特征选择器是用于减少机器学习数据集的维数的工具,可以傻瓜式地进行特征选择,两行代码即可搞定!! 来源:Will Koehrsen 代码整理及注释翻译:黄海广 代码和数据下载地 ...

  8. 梯度下降算法和牛顿算法原理以及使用python用梯度下降和最小二乘算法求回归系数

    梯度下降算法 以下内容参考 微信公众号 AI学习与实践平台 SIGAI 导度和梯度的问题 因为我们做的是多元函数的极值求解问题,所以我们直接讨论多元函数.多元函数的梯度定义为: 其中称为梯度算子,它作 ...

  9. 梯度下降,随机梯度下降,代码实现

    分治法-可能会错过更好的取值.如果数据集或者维度大,代价也大. 我们要找一个更好的算法-梯度下降算法. 梯度:gradient,本文将用g代替. 所以: 梯度下降总是朝着下降速度最快的方向. 如果不都 ...

最新文章

  1. EditText禁止输入回车
  2. iOS定义静态变量、静态常量、全局变量
  3. zabbix监控nginx,PHP-FPM,ELK报警
  4. cryptojs vue 使用_VueJs里利用CryptoJs实现加密及解密的方法示例
  5. Linux (Ubuntu/CentOS) 添加用户并授予sudo的权限
  6. 组件基础-全局组件//全局组件的简写
  7. 统计各部门的薪水总和_近年来,统计学热过金融火过计算机,这是真的吗?
  8. 【函数计算月报】2018年12月刊
  9. 安装 | Android studio 3.5.2安装教程
  10. php不兼容_怎么解决php不兼容问题
  11. [转]Linq查询DataTable,DataRow
  12. 【2016-2017 ACM-ICPC, Egyptian Collegiate Programming Contest (ECPC 16) A】The game of Osho【SG函数+找规律】
  13. 前端菜鸟浅谈Web前端开发技术
  14. iPad中国内地商标权诉讼调查
  15. 小程序实现城市搜索功能
  16. 手游运营基础知识大全
  17. 利用for循环生成由ABCDEFG...XYZ,26个大写字母与26个小写字母组成的数组
  18. Python 如何被证明是 2021 年的转折点语言
  19. autocad ios 虚线_CAD交互绘制虚线(com接口)
  20. 计算机视觉OpenCv学习系列:第十部分、实时人脸检测

热门文章

  1. Syncthing+蒲公英oray快速实现异地文件同步
  2. 下一代微服务!Service Mesh 2018年度总结
  3. 什么是以太坊大都会:终极指南
  4. 怎么查看qq登陆记录
  5. linux环境下网卡重启
  6. http缓存机制详解之--强缓存
  7. 动态生成的dom为什么绑定事件会失效,以及如何解决
  8. Vue状态管理--Pinia使用详解
  9. 论文笔记-精读-8.24-Pruning neural networks without any data by iteratively conserving synaptic flow
  10. linux的echo连接字符串输出,echo命令 – 输出字符串或提取She