当前位置: 首页 > news >正文

少儿类网站怎么做开源网站 做镜像 如何做

少儿类网站怎么做,开源网站 做镜像 如何做,头像制作免费,阿里云个人网站备案过程全记录4. 分析上图#xff0c;说明原理#xff08;选做#xff09; 1、为什么SGD会走“之字形”#xff1f;其它算法为什么会比较平滑#xff1f; 之所以会走之字形#xff0c;是因为它在每次更新参数时只考虑当前的样本梯度。这导致参数更新非常不稳定#xff0c… 4. 分析上图说明原理选做 1、为什么SGD会走“之字形”其它算法为什么会比较平滑       之所以会走之字形是因为它在每次更新参数时只考虑当前的样本梯度。这导致参数更新非常不稳定每个样本的梯度方向不一致从而产生了之字形的更新路径。      其他算法相对比较平滑的原因是它们引入了不同的策略来平衡参数更新的稳定性和速度。 例如Momentum算法引入了动量概念它在更新参数时考虑了之前更新的方向和速度。通过积累之前梯度的指数衰减平均值动量算法可以在梯度方向一致时加速收敛并减少参数更新的震荡从而使得更新路径更加平滑。Adagrad和RMSprop算法引入了自适应学习率的概念。它们通过梯度的历史信息对学习率进行调整可以根据梯度值的大小对参数的不同方向分配不同的学习率。这样可以使得梯度大的方向学习率减小梯度小的方向学习率增大从而更加平滑地更新参数。Adam算法在Momentum和RMSprop的基础上进一步改进结合了二者的优点。Adam算法不仅考虑了动量对更新路径的影响还引入了关于梯度平方的一阶矩量和二阶矩量的估计通过对梯度的偏移和峰值信息进行动态调整进一步提高更新路径的平滑性。 2、Momentum、AdaGrad对SGD的改进体现在哪里速度方向在图上有哪些体现     Momentum算法在更新时引入了动量的概念考虑了之前梯度更新的方向和速度。通过积累之前梯度的指数衰减平均值动量算法可以在梯度方向一致时加速收敛并减少参数更新的震荡。它在速度方面对SGD的改进的体现在:相当于增加了更新方向的平滑性。在图上这个改进体现为更新路径会比SGD更加平滑能够加速收敛。         Adagrad它通过历史梯度信息对每个参数自适应地调整学习率。Adagrad的学习率随着时间步的增加而不断衰减在每个参数那里都单独调整。这对于处理非平稳、强烈相关的数据具有很好的效果。在速度方面对SGD的改进的体现在可以自适应地调整每个参数的学习率以更贴合各自的梯度能够让更新更快速及早达到收敛。在图上这个改进体现为更新路径更加平缓而且每个维度更新幅度差异不大。 3.仅从轨迹来看Adam似乎不如AdaGrad效果好是这样么    轨迹上来看是这样因为此时Adam和AdaGrad的学习率并不相同并且Adam和AdaGrad选择的均是一个恰当的学习率。 但是图中的学习率都是调整过的我们随机换一个相同的学习率(0.1) 由上可见Adam优于Adagrad 所以上述观点错误没有一个模型会永远由于另一个知识参数不对而已。 5、调整学习率、动量等超参数轨迹有哪些变化 lr0.01时  lr太小30次根本不够搜索的改为1000次 这次Momentum找到了最小点Adam马上找到而其他两种算法还差得多 lr0.1搜索1000次 只有AdaGrad没有找到最小点   lr1搜索1000次 r100搜索100次  可以发现SGD和Momentum很容易错过全局最小值Adam需要较长的时间和较多的搜索次数来找到全局最小值AdaGrad效果最好。 5. 总结SGD、Momentum、AdaGrad、Adam的优缺点 上个博客有 但是我发现学长总结更直观 6. Adam这么好SGD是不是就用不到了  SGD最大的缺点是下降速度慢而且可能会在沟壑的两边持续震荡停留在一个局部最优点。SGD没有用到二阶动量因此学习率是恒定的实际使用过程中会采用学习率衰减策略因此学习率递减。AdaGrad的二阶动量不断累积单调递增因此学习率是单调递减的。因此这两类算法会使得学习率不断递减最终收敛到0模型也得以收敛。 但AdaDelta和Adam则不然。二阶动量是固定时间窗口内的累积随着时间窗口的变化遇到的数据可能发生巨变使得可能会时大时小不是单调变化。这就可能在训练后期引起学习率的震荡导致模型无法收敛。    并且Adam有两大罪状   谈到现在到底Adam好还是SGD好这可能是很难一句话说清楚的事情。去看学术会议中的各种paper用SGD的很多Adam的也不少还有很多偏爱AdaGrad或者AdaDelta。可能研究员把每个算法都试了一遍哪个出来的效果好就用哪个了。       而从这几篇怒怼Adam的paper来看多数都构造了一些比较极端的例子来演示了Adam失效的可能性。这些例子一般过于极端实际情况中可能未必会这样但这提醒了我们理解数据对于设计算法的必要性。优化算法的演变历史都是基于对数据的某种假设而进行的优化那么某种算法是否有效就要看你的数据是否符合该算法的胃口了。 7. 增加RMSprop、Nesterov算法 上个博客有 对比Momentum与Nesterov 两个算法都是动量优化法Nesterov项是momentum的改进在梯度更新时做一个校正让之前的动量直接影响当前的动量避免前进太快同时提高灵敏度。 对比AdaGrad与RMSprop 两个都是自适应学习率优化法RMSprop解决了对历史梯度一直累加而导致学习率一直下降的问题适合处理非平稳目标对于RNN效果很好但RMSprop依然依赖于手动选择全局学习率。 8. 基于MNIST数据集的更新方法的比较 # coding: utf-8 import os import sysimport numpy as npfrom jiwang.Server import SGD, Momentum, AdaGrad, Adamsys.path.append(os.pardir) # 为了导入父目录的文件而进行的设定 import matplotlib.pyplot as plt from nndl4.dataset import load_mnist from common.util import smooth_curve from common.multi_layer_net import MultiLayerNet from common.optimizer import *# 0:读入MNIST数据 (x_train, t_train), (x_test, t_test) load_mnist(normalizeTrue)train_size x_train.shape[0] batch_size 128 max_iterations 2000# 1:进行实验的设置 optimizers {} optimizers[SGD] SGD() optimizers[Momentum] Momentum() optimizers[AdaGrad] AdaGrad() optimizers[Adam] Adam() # optimizers[RMSprop] RMSprop()networks {} train_loss {} for key in optimizers.keys():networks[key] MultiLayerNet(input_size784, hidden_size_list[100, 100, 100, 100],output_size10)train_loss[key] []# 2:开始训练 for i in range(max_iterations):batch_mask np.random.choice(train_size, batch_size)x_batch x_train[batch_mask]t_batch t_train[batch_mask]for key in optimizers.keys():grads networks[key].gradient(x_batch, t_batch)optimizers[key].update(networks[key].params, grads)loss networks[key].loss(x_batch, t_batch)train_loss[key].append(loss)if i % 100 0:print( iteration: str(i) )for key in optimizers.keys():loss networks[key].loss(x_batch, t_batch)print(key : str(loss))# 3.绘制图形 markers {SGD: o, Momentum: x, AdaGrad: s, Adam: D} x np.arange(max_iterations) for key in optimizers.keys():plt.plot(x, smooth_curve(train_loss[key]), markermarkers[key], markevery100, labelkey) plt.xlabel(iterations) plt.ylabel(loss) plt.ylim(0, 1) plt.legend() plt.show() 从结果中可知与SGD相比其他3种方法学习得更快而且速度基本相同仔细看的话AdaGrad的学习进行得稍微快一点。这个实验需要注意的地方是实验结果会随学习率等超参数、神经网络的结构几层深等的不同而发生变化。不过一般而言与SGD相比其他3种方法可以学习得更快有时最终的识别精度也更高。 总结 1、本来觉得自己上个博客总结的还不错看了上届学长的总结觉得更直观更好直接盗了 2、每个优化算法在不同的模型上的表现是不一样的而且会因为学习率等参数的不同引起效果的不同。 3、今天24考研结束作为25考研的我感觉天都黑了没人在前面挡着了。 参考链接 NNDL 作业11优化算法比较_基于mnist数据集的更新方法-CSDN博客  NNDL 作业11优化算法比较_ptimizers[\sgd\] sgd(lr0.95) optimizers[\mo-CSDN博客 HBU-NNDL 作业11优化算法比较_adam不收敛-CSDN博客
http://www.pierceye.com/news/140558/

相关文章:

  • 徐州网站建设哪家好薇深圳找工作的网站
  • 局域网站点建设方案东莞企业营销型网站
  • 中国光大国际建设工程公司网站自己开店
  • 手机建站程序昆山设计公司
  • 网站泛解析中国新闻社是国企还是私企
  • dw做静态网站手机app制作视频教程
  • 惠州做网站公司网页游戏排行榜前十名歌
  • 会ps的如何做网站高等教材建筑电气久久建筑网
  • 甘肃住房城乡建设厅网站wordpress风格化页面
  • 起名网站建设免费找素材软件
  • 网站基本信息设置链接搜索
  • 广州海珠网站开发营销策划
  • 医院网站制作公司专门做spa的网站
  • 企业网页制作与网站设计网站必须天天更新吗
  • 乌苏市城乡建设局网站外贸网网站建设
  • html5网站开发实例书籍凡科建站代理
  • 与建设部网站网站注册登录页面设计
  • 企业网站推广计划免费最新如何建设网站教程视频
  • 17一起做网站普宁站好看个人网页模板
  • 民治营销网站专业网站建设价格最优
  • 免费的html网站做柜子喜欢上哪些网站看
  • 网站没备案怎么做加速现代装修风格三室两厅效果图
  • 互助平台网站建设网上商城怎么购物
  • 百度知道山东网站建设建设网站成本预算
  • 人人做免费网站网站建站是 什么
  • 以背景做网站视频为单位网站建设实施方案
  • 简洁大气企业网站模板西安个人做网站
  • 做一个网站需要到哪里做辽宁同鑫建设网站
  • 开发网站监控推荐扬中市建设局网站
  • 手机网站根目录简述一个网站设计的主要步骤