博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
梯度下降的问题
阅读量:6038 次
发布时间:2019-06-20

本文共 977 字,大约阅读时间需要 3 分钟。

%matplotlib inlineimport gluonbook as gbimport mathfrom mxnet import ndimport numpy as npeta = 0.4def f_2d(x1,x2):    return 0.1*x1**2 + 2*x2**2def gd_2d(x1,x2,s1,s2):    return (x1-eta*0.2*x1,x2-eta*4*x2,0,0)def train_2d(trainer):    x1,x2,s1,s2 = -5,-2,0,0    results = [(x1,x2)]    for i in range(20):        x1,x2,s1,s2 = trainer(x1,x2,s1,s2)        results.append((x1,x2))    print('epoch %d,x1 %f,x2 %f' % (i+1,x1,x2))    return resultsdef show_trace_2d(f,results):    gb.plt.plot(*zip(*results),'-o',color='#ff7f0e')    x1,x2 = np.meshgrid(np.arange(-5.5,1.0,0.1),np.arange(-3.0,1.0,0.1))    gb.plt.contour(x1,x2,f(x1,x2),colors='#1f77b4')    gb.plt.xlabel('x1')    gb.plt.ylabel('x2')show_trace_2d(f_2d,train_2d(gd_2d))eta = 0.6show_trace_2d(f_2d,train_2d(gd_2d))

可以看到,x2 比 x1 的斜率的绝对值更大。

给定学习率,迭代自变量时会使自变量在竖直方向比水平方向移动幅度更大。那么我们需要一个较小的学习率从而避免自变量在竖直方向上越过目标函数最优解。然而,这样又会造成自变量在水平方向上朝着最优解移动变慢。

调大学习率,竖直方向的自变量,不断越过最优解,并发散。

 

转载于:https://www.cnblogs.com/TreeDream/p/10083037.html

你可能感兴趣的文章
大文件如何传输,大文件的传输方式有哪些?
查看>>
docker的持久化存储和共享存储和网络架构
查看>>
撕掉普通程序员的标签,这才是真正的大数据工程师!
查看>>
Windows下安装Sqlmap过程及遇到的问题
查看>>
BSD常见分支
查看>>
开挂了!这5个Word技巧真的是超级实用,值得收藏!
查看>>
三分钟了解实时流式大数据分析
查看>>
留与后人一段面试的总结
查看>>
Spring基于XML方式配置事务
查看>>
T-MBA学习营 | 寒窗十数载,我们原来并不会学习?
查看>>
log4j.properties模板
查看>>
Linux:信号(上)
查看>>
vmware虚拟化无法迁移虚拟机
查看>>
SQL UPDATE实现多表更新
查看>>
最近有个需求,就是把某个网址跳转到另外一个网址
查看>>
innobackupex 在增量的基础上增量备份
查看>>
Windows Server 2012 R2 DirectAccess功能测试(2)App1服务器安装及配置
查看>>
基于清单的启动器的实现
查看>>
外网用户通过citrix打印慢的解决方法
查看>>
STL容器的使用
查看>>