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

昆山网站建设培训wordpress做网盘资源

昆山网站建设培训,wordpress做网盘资源,免费访问国外网站的应用,网站建设课程设计实训报告随机梯度下降 给定一个可微函数,理论上可以用解析法找到它的最小值:函数的最小值就是导数为0的点,因此只需找到所有导数为0的点,然后比较函数在其中哪个点的取值最小。将这一方法应用于神经网络,就是用解析法求出损失…

随机梯度下降

给定一个可微函数,理论上可以用解析法找到它的最小值:函数的最小值就是导数为0的点,因此只需找到所有导数为0的点,然后比较函数在其中哪个点的取值最小。将这一方法应用于神经网络,就是用解析法求出损失函数最小值对应的所有权重值。可以通过对方程grad(f(W), W) = 0求解W来实现这一方法。这是一个包含N个变量的多项式方程,其中N是模型的系数个数。当N = 2或N = 3时,可以对这样的方程进行求解,但对于实际的神经网络是无法求解的,因为参数的个数不会少于几千个,而且经常有上千万个。

不过可以这么做:基于当前在随机数据批量上的损失值,一点一点地对参数进行调节。我们要处理的是一个可微函数,所以可以计算出它的梯度。沿着梯度的反方向更新权重,每次损失值都会减小一点。

(1)抽取训练样本x和对应目标y_true组成的一个数据批量。(2)在x上运行模型,得到预测值y_pred。这一步叫作前向传播。(3)计算模型在这批数据上的损失值,用于衡量y_pred和y_true之间的差距。(4)计算损失相对于模型参数的梯度。这一步叫作反向传播(backward pass)​。(5)将参数沿着梯度的反方向移动一小步,比如W -= learning_rate * gradient,从而使这批数据上的损失值减小一些。学习率(learning_rate)是一个调节梯度下降“速度”的标量因子。这个方法叫作小批量随机梯度下降(mini-batch stochastic gradient descent,简称小批量SGD)​。术语随机(stochastic)是指每批数据都是随机抽取的(stochastic在科学上是random的同义词)​。下图给出了一维的例子,模型只有一个参数,并且只有一个训练样本。

在这里插入图片描述

learning_rate因子的取值很重要。如果取值太小,那么沿着曲线下降需要很多次迭代,而且可能会陷入局部极小点。如果取值过大,那么更新权重值之后可能会出现在曲线上完全随机的位置。注意,小批量SGD算法的一个变体是每次迭代只抽取一个样本和目标,而不是抽取一批数据。这叫作真SGD(true SGD,有别于小批量SGD)​。还可以走向另一个极端:每次迭代都在所有数据上运行,这叫作批量梯度下降(batch gradient descent)​。这样做的话,每次更新权重都会更加准确,但计算成本也高得多。这两个极端之间有效的折中方法则是选择合理的小批量大小。

在实践中需要在高维空间中使用梯度下降。神经网络的每一个权重系数都是空间中的一个自由维度,神经网络则可能包含数万个甚至上百万个参数。为了对损失表面有更直观的认识,你还可以将沿着二维损失表面的梯度下降可视化,如下图所示。但你不可能将神经网络的真实训练过程可视化,因为无法用人类可以理解的方式来可视化1 000 000维空间。因此最好记住,在这些低维表示中建立的直觉,实践中不一定总是准确的。

在这里插入图片描述

SGD还有多种变体,比如带动量的SGD、Adagrad、RMSprop等。它们计算下一次权重更新时还要考虑上一次权重更新,而不是仅考虑当前的梯度值。这些变体被称为优化方法(optimization method)或优化器(optimizer)​。动量的概念尤其值得关注,它被用于许多变体。动量解决了SGD的两个问题:收敛速度和局部极小值。下图给出了损失作为模型参数的函数的曲线。

在这里插入图片描述

在某个参数值附近,有一个局部极小点(local minimum)​:在这个点附近,向左和向右移动都会导致损失值增大。如果使用学习率较小的SGD对参数进行优化,那么优化过程可能会陷入局部极小点,而无法找到全局极小点。使用动量方法可以避免这样的问题,这一方法的灵感来源于物理学。一个有用的思维模型是将优化过程想象成小球从损失函数曲线上滚下来。如果小球的动量足够大,那么它不会卡在峡谷里,最终会到达全局极小点。动量方法的实现过程是,每一步移动小球,不仅要考虑当前的斜率值(当前的加速度)​,还要考虑当前的速度(由之前的加速度产生)​。这在实践中的含义是,更新参数w不仅要考虑当前梯度值,还要考虑上一次参数更新,其简单实现如下所示。

past_velocity = 0.
#不变的动量因子
momentum = 0.1  
#优化循环
while loss > 0.01:  w, loss, gradient = get_current_parameters()velocity = past_velocity * momentum - learning_rate * gradientw = w + momentum * velocity - learning_rate * gradientpast_velocity = velocityupdate_parameter(w)

链式求导:反向传播算法

反向传播是这样一种方法:利用简单运算(如加法、relu或张量积)的导数,可以轻松计算出这些基本运算的任意复杂组合的梯度。重要的是,神经网络由许多链接在一起的张量运算组成,每个张量运算的导数都是已知的,且都很简单。例如,代码清单2-2定义的模型可以表示为,一个由变量W1、b1、W2和b2(分别属于第1个和第2个Dense层)参数化的函数,其中用到的基本运算是dot、relu、softmax和+,以及损失函数loss。这些运算都是很容易求导的。

http://www.dtcms.com/wzjs/786132.html

相关文章:

  • 外国人做的学汉字网站个人网站制作设计
  • 医生做兼职有什么网站吗绮思网站建设qswoo
  • 做微信小程序哪个网站好五金表带厂东莞网站建设
  • 青岛网站推广招商不建网站可不可以做cpa
  • 纪检监察网站建设 讲话九江网站建设九江
  • 天猫网站建设论文电商类网站有几个主流程
  • 编写网站代码网站表单及商品列表详情模板
  • python 网站架构杭州平面设计
  • 上海网站建设要多少钱做网站不想用微软雅黑了
  • 建站市场分析小程序开发报价明细
  • 资阳网站网站建设如何自己开网站
  • 如何做网站百度排名优化长沙如何做百度的网站
  • 中小企业建网站多少钱app 微信 网站三合一
  • 强化网站建设和管理wordpress分页条目
  • 淘宝销售书网站建设方案上海市公共招聘网官网
  • 广西省住房和城乡建设厅官方网站app免费下载安装
  • 品牌网站定制开发wordpress卡车主题
  • 找人做网站应该注意哪些网站建设设计广州
  • 手机微信网站怎么做的六安城市网
  • 网站建站报价表科汛 kesioncms v8.05 企业网站建设入门视频教程
  • 泰兴住房和城乡建设厅网站网站建设课程报告论文
  • 洛阳有建社网站的吗智慧校园平台
  • 北京公司网站制作要多少钱门户网站模版
  • 保定 网站建设网站策划书背景介绍
  • 东莞seo外包平台昆明高端seo怎么做
  • 网站建设工作室怎么开网站项目建设措施
  • 学校网站开发协议建网站 需要签署协议
  • 网站哪家好北京三快在线科技有限公司
  • 如何选定目标关键词及网站栏目名称的确定wordpress图片自动添加alt
  • 网站开发实例教程实训心得关联词有哪些三年级