使用梯度下降求函数的极小值

本篇文章有助于了解梯度下降。这里用函数的变量x和y进行梯度下降,目标是求函数的极小值。而深度学习中是对权重W和偏置值b进行梯度下降,目标是求损失函数的极小值。

 import numpy as npfrom mpl_toolkits.mplot3d import     Axes3Dfrom matplotlib import pyplot as pltimport torch# 目标函数def fun(x):return (x[0] ** 2 + x[1] - 11) ** 2 + (x[0] + x[1] ** 2 - 7) ** 2x = np.arange(-6, 6, 0.1)y = np.arange(-6, 6, 0.1)# print(x)# print(type(x))print('x,y range:', x.shape, y.shape)X, Y = np.meshgrid(x, y)# print(X)print('X,Y maps:', X.shape, Y.shape)Z = fun([X, Y])# 对函数进行可视化fig = plt.figure('fun')ax = fig.gca(projection='3d')ax.plot_surface(X, Y, Z)ax.view_init(60, 30)ax.set_xlabel('x')ax.set_ylabel('y')# 对x赋初值,不同的初始值可能得到的极小值不一样x = torch.tensor([4., 0.], requires_grad=True)optimizer = torch.optim.Adam([x], lr=1e-3)for step in range(20000):pred = fun(x)optimizer.zero_grad()pred.backward()optimizer.step()if step % 2000 == 0:print('step{} : x = {}, f(x) = {}'.format(step, x.tolist(), pred.item()))plt.show()

使用梯度下降求函数的极小值相关推荐

  1. 梯度下降求函数最小值C++样例

    强力推荐大家阅读<深度学习的数学>一书,日本作家所写(通俗易懂),可当作课外读物阅读 #include<iostream> #include<cmath> usin ...

  2. 大白话5分钟带你走进人工智能-第九节梯度下降之函数最优化算法和梯度下降代码过程解析(4)

        第九节梯度下降之函数最优化算法(4) 上一节中我们介绍了梯度下降的两种方式,批量梯度下降和随机梯度下降的两种方式,介绍了其具体的梯度下降的方式.本节的话,我们介绍一种函数最优化的算法.以后一听 ...

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

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

  4. [Python深度学习入门]实战一·Numpy梯度下降求最小值

    [深度学习入门]实战一·Numpy梯度下降求最小值 问题描述: 求解y1 = xx -2 x +3 + 0.01*(-1到1的随机值) 与 y2 = 0 的最小距离点(x,y) 给定x范围(0,3 不 ...

  5. 变分法(欧拉 - 拉格朗日)和梯度下降求泛函最优解

    泛函的简单理解: 是的变量, 这样的就叫泛函 . 加个积分,这样的就叫积分泛函 . 欧拉 - 拉格朗日 (E - L) 公式: 定义一个能量泛函如下: 我们的目的是找到能使 取到极值的时候 的取值,所 ...

  6. 梯度下降求最小值和线性方程(线性回归详解)

    线性回归 梯度下降法一般用于求解最小值,以下分别例举两种求最小值情况: 1)二次函数求最小值的情况 2)预测线性函数的情况(已知x和y,求解最合适的w和b,是预测误差最小) 以下就按照上述的两种情况进 ...

  7. matlab求函数的极小值和零点,函数的根、极小值原来可以这么求!

    今天给大家介绍MATLAB命令fzero和fminbnd,fzero可以用于寻找一个函数的零点,fminbnd可以用于寻找一个函数的最小值. 以下面这个函数为例: 先用户自定义函数把上面的函数叫为fu ...

  8. pytorch梯度下降函数_Pytorch学习笔记6:激活函数/单层感知机/梯度下降求最小值实例...

    #添加到学习笔记2末尾,直接运行.代码意义可以看注释. #需要import以下库 import torch import numpy as np from matplotlib import pypl ...

  9. lect01_codes03_eg梯度下降

    PythonML purpose:梯度下降的实例 利用梯度下降求函数y=(x+5)^2的最小值 梯度下降算法 import numpy as np def func(x):return (x+5)** ...

最新文章

  1. man nfsd(rpc.nfsd中文手册)
  2. 第十七单元 Samba服务
  3. 基础练习 字母图形(找规律)
  4. MySql中添加用户/删除用户
  5. mybatis直接执行sql语句后续之一
  6. tomcat端口被占用的两个解决方法
  7. java ssh 学习_初学Java ssh之Spring 第三篇
  8. JavaScript 函数的length
  9. yanqiyetan V1.0 存档
  10. Web-Coration
  11. wget连接指定端口_WGET常用命令 WGET下载HTTPS链接
  12. 轻重在平衡:平衡查找树的强大威力
  13. crm系统服务器要求,crm系统需要配备什么云服务器
  14. xcb_query_extension_reply_t的解释
  15. java项目里bean文件夹_JavaBean的class文件必须放在WEB-INF文件夹中。()
  16. Android OpenGLES滤镜开发之贴纸效果
  17. 大型开源车牌数据集CCPD及私有车牌数据集介绍
  18. PMP 考试是一个骗局吗?
  19. Python中 axis=0、axis=1是行还是列?
  20. Android视频播放器ExoPlayer全屏

热门文章

  1. 笔记本怎么用android,电脑上如何使用Android系统
  2. 弘辽科技:淘宝直通车ROI怎么提升?直通车ROI多少正常?
  3. 深入理解Java虚拟机小结
  4. 什么是5G聚合路由器?
  5. 形容人的内核是什么意思_气场: 一个人的精神内核
  6. 编译原理:理解文法和语文
  7. 【运筹学】对偶理论 : 总结 ( 对偶理论 | 原问题与对偶问题对应关系 | 对偶理论的相关结论 ) ★★★
  8. js 根据身份证获取出生日期与年龄
  9. 虚拟机共享目录添加按钮灰色_共享按钮将成为PS4最重要的遗产
  10. Aquarius's Trial F - 6 HDU - 2102 A计划