深度学习(31)随机梯度下降九: Himmelblau函数优化实战
深度学习(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函数优化实战相关推荐
- 为了搞清深度学习的随机梯度下降我复习了下微积分
在学习深度学习时遇到了个新名词:随机梯度下降--可以想象把一个篮球扔到群山之中,让它自由滚动,直到滚动到最低点.找最低点的过程也是机器学习模型训练的过程.对于篮球来说在现实世界中有万有引力会牵引它走向 ...
- 深度学习_07_2_随机梯度下降_激活函数及梯度损失函数及梯度
07_2_随机梯度下降_激活函数及梯度&损失函数及梯度 激活函数及其梯度 Activation Functions(激活函数) 研究青蛙的神经元有多个输入,比如x0,x1,x2x_0,x_1, ...
- 深度学习必备:随机梯度下降(SGD)优化算法及可视化
补充在前:实际上在我使用LSTM为流量基线建模时候,发现有效的激活函数是elu.relu.linear.prelu.leaky_relu.softplus,对应的梯度算法是adam.mom.rmspr ...
- 深度学习系列之随机梯度下降(SGD)优化算法及可视化
补充在前:实际上在我使用LSTM为流量基线建模时候,发现有效的激活函数是elu.relu.linear.prelu.leaky_relu.softplus,对应的梯度算法是adam.mom.rmspr ...
- 【深度学习】从梯度下降到 Adam!一文看懂各种神经网络优化算法
王小新 编译自 Medium 量子位 出品 | 公众号 QbitAI,编辑:AI有道 在调整模型更新权重和偏差参数的方式时,你是否考虑过哪种优化算法能使模型产生更好且更快的效果?应该用梯度下降,随机梯 ...
- 深度学习相关概念:梯度下降
深度学习相关概念:梯度下降法.动量法与自适应梯度 1. 梯度下降概念 2. 梯度下降的目的 3. 梯度下降的原理 4. 梯度计算 5. 梯度下降算法的类别及计算效率 5.1 批量梯度下降(BGD) 5 ...
- 深度学习中的梯度下降优化算法综述
1 简介 梯度下降算法是最常用的神经网络优化算法.常见的深度学习库也都包含了多种算法进行梯度下降的优化.但是,一般情况下,大家都是把梯度下降系列算法当作是一个用于进行优化的黑盒子,不了解它们的优势和劣 ...
- 吴恩达深度学习 —— 2.4 梯度下降
在上一节中学习了逻辑回归模型,也知道了损失函数,损失函数是衡量单一训练样例的效果,还知道了成本函数,成本函数用于衡量参数w和b的效果,在全部训练集上来衡量,下面我们讨论如何使用梯度下降法来训练或学习训 ...
- 【深度学习】(4) 梯度下降、损失函数
各位同学好,今天和大家介绍一下TensorFlow2.0中的梯度下降.激活函数及其梯度.损失函数及其梯度. (1) 梯度计算:GradientTape(),tape.watch(),tape.grad ...
最新文章
- AI战“疫“之路:​揭秘高精准无感测温系统的全栈AI 技术
- 堪称为经典游戏设计帖整理20个点击回复超高的精品贴
- 正则表达式用单个空格替换多个空格
- 使用google云(GCP)二次利用安装kali Linux(kali browser)
- Python装饰器与面向切面编程
- java格式化输出双精度小数,用Java格式化双精度类型
- 3516a 自带的ive 算子的运行情况分析
- 机器学习从入门到进阶✅
- 重要的Python数据分析库
- mac版Unity Pro游戏开发工具如何创建和使用脚本
- python基础之面向对象(一)
- 解决Error: Can't find Python executable python, you can set the PYTHON env variable
- 安卓问题报告小记(四):Some projects cannot be imported because they already exist in the workspace...
- 内定抽奖小程序_Excel制作抽奖小程序,单人、多人抽奖只要三步就可实现
- 异常与调试之SEH、UEH、VEH、VCH以及SEH原理
- 百度地图全方位解析(一)
- ABO血型系统遗传规律表
- 韩式时尚大片《九月风》(出镜:马晓辉/徐嘉依)
- 杨振宁与清华计算机系,我们都误会杨振宁了!看到清华给出的工资,才明白他有多伟大...
- 每月一书(202107):《曾国藩的正面与侧面》
热门文章
- django 打开的html css_Django分页完整示例
- django 按钮的样式_【实战演练】Python+Django网站开发系列11-成绩查询与成绩录入...
- mfc判断文件是否被读写_迅为干货|标准io之一个字符的读写函数
- ramebufferobject工程说明
- Android中常用的一些方法总结的工具类
- 【296天】我爱刷题系列055(2017.11.28)
- Android USB转串口通信开发基本流程
- 《Access 2007开发指南(修订版)》一一1.11 额外的提示和技巧
- C#代码:获取与指定颜色相似的.NET自带颜色
- 安卓拒绝服务漏洞分析及漏洞检测