深度学习(31)随机梯度下降九: Himmelblau函数优化实战

  • 1. Himmelblau函数
  • 2. 函数优化实战

1. Himmelblau函数

Himmelblau函数是用来测试后话算法的常用阳历函数之一,它包含了两个自变量xxx和yyy,数学表达式是:
f(x,y)=(x2+y−11)2+(x+y2−7)2f(x,y)=(x^2+y-11)^2+(x+y^2-7)^2f(x,y)=(x2+y−11)2+(x+y2−7)2

2. 函数优化实战

(1) 首先通过如下代码实现Himmelblau函数的表达式:

(2) 然后完成Himmelblau函数的可视化操作。通过np.meshgrid函数(TensorFlow中也有meshgrid函数)生成二维平面网格点坐标,代码如下:

(3) 利用Matplotlib库可视化Himmelblau函数:

Himmelblau函数3D曲面如图所示:

大致可以看出,它共有4个局部极小值点,并且局部极小值都是0,所以这4个局部极小值也都是全局最小值。我们可以通过解析的方法计算出极小值的精确坐标,它们分别是:
(3,2),(−2.805,3.131),(−3.779,−3.283),(3.584,−1.848)(3,2),(-2.805,3.131),(-3.779,-3.283),(3.584,-1.848)(3,2),(−2.805,3.131),(−3.779,−3.283),(3.584,−1.848)
(4) 在已知晓极值解析的情况下,利用梯度下降算法来优化Himmelblau函数的极小值数值解。
Himmelblau函数等高线图如下:

利用TensorFlow自动求导来求出函数在xxx和yyy的偏导数,并循环迭代更新x和y值,代码如下:

(5) 经过200次迭代更新后,程序可以找到一个极小值解,此时函数值接近于0。找到的数值解为:

这与解析解之一(-2.805,3.131)几乎一样。
(6) 事实上,通过改变网络参数的初始状态,程序可以得到多种极小数值解。参数的初始化状态是可能影响梯度下降算法的搜索轨迹的,甚至有可能搜索出完全不同的数值解,如下表所示。这个例子就比较好地解释了不同的初始状态对梯度下降算法的影响。

深度学习(31)随机梯度下降九: Himmelblau函数优化实战相关推荐

  1. 为了搞清深度学习的随机梯度下降我复习了下微积分

    在学习深度学习时遇到了个新名词:随机梯度下降--可以想象把一个篮球扔到群山之中,让它自由滚动,直到滚动到最低点.找最低点的过程也是机器学习模型训练的过程.对于篮球来说在现实世界中有万有引力会牵引它走向 ...

  2. 深度学习_07_2_随机梯度下降_激活函数及梯度损失函数及梯度

    07_2_随机梯度下降_激活函数及梯度&损失函数及梯度 激活函数及其梯度 Activation Functions(激活函数) 研究青蛙的神经元有多个输入,比如x0,x1,x2x_0,x_1, ...

  3. 深度学习必备:随机梯度下降(SGD)优化算法及可视化

    补充在前:实际上在我使用LSTM为流量基线建模时候,发现有效的激活函数是elu.relu.linear.prelu.leaky_relu.softplus,对应的梯度算法是adam.mom.rmspr ...

  4. 深度学习系列之随机梯度下降(SGD)优化算法及可视化

    补充在前:实际上在我使用LSTM为流量基线建模时候,发现有效的激活函数是elu.relu.linear.prelu.leaky_relu.softplus,对应的梯度算法是adam.mom.rmspr ...

  5. 【深度学习】从梯度下降到 Adam!一文看懂各种神经网络优化算法

    王小新 编译自 Medium 量子位 出品 | 公众号 QbitAI,编辑:AI有道 在调整模型更新权重和偏差参数的方式时,你是否考虑过哪种优化算法能使模型产生更好且更快的效果?应该用梯度下降,随机梯 ...

  6. 深度学习相关概念:梯度下降

    深度学习相关概念:梯度下降法.动量法与自适应梯度 1. 梯度下降概念 2. 梯度下降的目的 3. 梯度下降的原理 4. 梯度计算 5. 梯度下降算法的类别及计算效率 5.1 批量梯度下降(BGD) 5 ...

  7. 深度学习中的梯度下降优化算法综述

    1 简介 梯度下降算法是最常用的神经网络优化算法.常见的深度学习库也都包含了多种算法进行梯度下降的优化.但是,一般情况下,大家都是把梯度下降系列算法当作是一个用于进行优化的黑盒子,不了解它们的优势和劣 ...

  8. 吴恩达深度学习 —— 2.4 梯度下降

    在上一节中学习了逻辑回归模型,也知道了损失函数,损失函数是衡量单一训练样例的效果,还知道了成本函数,成本函数用于衡量参数w和b的效果,在全部训练集上来衡量,下面我们讨论如何使用梯度下降法来训练或学习训 ...

  9. 【深度学习】(4) 梯度下降、损失函数

    各位同学好,今天和大家介绍一下TensorFlow2.0中的梯度下降.激活函数及其梯度.损失函数及其梯度. (1) 梯度计算:GradientTape(),tape.watch(),tape.grad ...

最新文章

  1. AI战“疫“之路:​揭秘高精准无感测温系统的全栈AI 技术
  2. 堪称为经典游戏设计帖整理20个点击回复超高的精品贴
  3. 正则表达式用单个空格替换多个空格
  4. 使用google云(GCP)二次利用安装kali Linux(kali browser)
  5. Python装饰器与面向切面编程
  6. java格式化输出双精度小数,用Java格式化双精度类型
  7. 3516a 自带的ive 算子的运行情况分析
  8. 机器学习从入门到进阶✅
  9. 重要的Python数据分析库
  10. mac版Unity Pro游戏开发工具如何创建和使用脚本
  11. python基础之面向对象(一)
  12. 解决Error: Can't find Python executable python, you can set the PYTHON env variable
  13. 安卓问题报告小记(四):Some projects cannot be imported because they already exist in the workspace...
  14. 内定抽奖小程序_Excel制作抽奖小程序,单人、多人抽奖只要三步就可实现
  15. 异常与调试之SEH、UEH、VEH、VCH以及SEH原理
  16. 百度地图全方位解析(一)
  17. ABO血型系统遗传规律表
  18. 韩式时尚大片《九月风》(出镜:马晓辉/徐嘉依)
  19. 杨振宁与清华计算机系,我们都误会杨振宁了!看到清华给出的工资,才明白他有多伟大...
  20. 每月一书(202107):《曾国藩的正面与侧面》

热门文章

  1. django 打开的html css_Django分页完整示例
  2. django 按钮的样式_【实战演练】Python+Django网站开发系列11-成绩查询与成绩录入...
  3. mfc判断文件是否被读写_迅为干货|标准io之一个字符的读写函数
  4. ramebufferobject工程说明
  5. Android中常用的一些方法总结的工具类
  6. 【296天】我爱刷题系列055(2017.11.28)
  7. Android USB转串口通信开发基本流程
  8. 《Access 2007开发指南(修订版)》一一1.11 额外的提示和技巧
  9. C#代码:获取与指定颜色相似的.NET自带颜色
  10. 安卓拒绝服务漏洞分析及漏洞检测