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

建设一个网站的硬件要求广东营销型网站建设多少钱

建设一个网站的硬件要求,广东营销型网站建设多少钱,小程序询价表,网站的链接结构包括3.14 正向传播、反向传播和计算图 前面几节里我们使用了小批量随机梯度下降的优化算法来训练模型。在实现中#xff0c;我们只提供了模型的正向传播#xff08;forward propagation#xff09;的计算#xff0c;即对输入计算模型输出#xff0c;然后通过autograd模块来调…3.14 正向传播、反向传播和计算图 前面几节里我们使用了小批量随机梯度下降的优化算法来训练模型。在实现中我们只提供了模型的正向传播forward propagation的计算即对输入计算模型输出然后通过autograd模块来调用系统自动生成的backward函数计算梯度。基于反向传播back-propagation算法的自动求梯度极大简化了深度学习模型训练算法的实现。本节我们将使用数学和计算图computational graph两个方式来描述正向传播和反向传播。具体来说我们将以带 L 2 L_2 L2​范数正则化的含单隐藏层的多层感知机为样例模型解释正向传播和反向传播。 3.14.1 正向传播 正向传播是指对神经网络沿着从输入层到输出层的顺序依次计算并存储模型的中间变量包括输出。为简单起见假设输入是一个特征为 x ∈ R d \boldsymbol{x} \in \mathbb{R}^d x∈Rd的样本且不考虑偏差项那么中间变量 z W ( 1 ) x , \boldsymbol{z} \boldsymbol{W}^{(1)} \boldsymbol{x}, zW(1)x, 其中 W ( 1 ) ∈ R h × d \boldsymbol{W}^{(1)} \in \mathbb{R}^{h \times d} W(1)∈Rh×d是隐藏层的权重参数。把中间变量 z ∈ R h \boldsymbol{z} \in \mathbb{R}^h z∈Rh输入按元素运算的激活函数 ϕ \phi ϕ后将得到向量长度为 h h h的隐藏层变量 h ϕ ( z ) . \boldsymbol{h} \phi (\boldsymbol{z}). hϕ(z). 隐藏层变量 h \boldsymbol{h} h也是一个中间变量。假设输出层参数只有权重 W ( 2 ) ∈ R q × h \boldsymbol{W}^{(2)} \in \mathbb{R}^{q \times h} W(2)∈Rq×h可以得到向量长度为 q q q的输出层变量 o W ( 2 ) h . \boldsymbol{o} \boldsymbol{W}^{(2)} \boldsymbol{h}. oW(2)h. 假设损失函数为 ℓ \ell ℓ且样本标签为 y y y可以计算出单个数据样本的损失项 L ℓ ( o , y ) . L \ell(\boldsymbol{o}, y). Lℓ(o,y). 根据 L 2 L_2 L2​范数正则化的定义给定超参数 λ \lambda λ正则化项即 s λ 2 ( ∥ W ( 1 ) ∥ F 2 ∥ W ( 2 ) ∥ F 2 ) , s \frac{\lambda}{2} \left(\|\boldsymbol{W}^{(1)}\|_F^2 \|\boldsymbol{W}^{(2)}\|_F^2\right), s2λ​(∥W(1)∥F2​∥W(2)∥F2​), 其中矩阵的Frobenius范数等价于将矩阵变平为向量后计算 L 2 L_2 L2​范数。最终模型在给定的数据样本上带正则化的损失为 J L s . J L s. JLs. 我们将 J J J称为有关给定数据样本的目标函数并在以下的讨论中简称目标函数。 3.14.2 正向传播的计算图 我们通常绘制计算图来可视化运算符和变量在计算中的依赖关系。图3.6绘制了本节中样例模型正向传播的计算图其中左下角是输入右上角是输出。可以看到图中箭头方向大多是向右和向上其中方框代表变量圆圈代表运算符箭头表示从输入到输出之间的依赖关系。 图3.6 正向传播的计算图 3.14.3 反向传播 反向传播指的是计算神经网络参数梯度的方法。总的来说反向传播依据微积分中的链式法则沿着从输出层到输入层的顺序依次计算并存储目标函数有关神经网络各层的中间变量以及参数的梯度。对输入或输出 X , Y , Z \mathsf{X}, \mathsf{Y}, \mathsf{Z} X,Y,Z为任意形状张量的函数 Y f ( X ) \mathsf{Y}f(\mathsf{X}) Yf(X)和 Z g ( Y ) \mathsf{Z}g(\mathsf{Y}) Zg(Y)通过链式法则我们有 ∂ Z ∂ X prod ( ∂ Z ∂ Y , ∂ Y ∂ X ) , \frac{\partial \mathsf{Z}}{\partial \mathsf{X}} \text{prod}\left(\frac{\partial \mathsf{Z}}{\partial \mathsf{Y}}, \frac{\partial \mathsf{Y}}{\partial \mathsf{X}}\right), ∂X∂Z​prod(∂Y∂Z​,∂X∂Y​), 其中 prod \text{prod} prod运算符将根据两个输入的形状在必要的操作如转置和互换输入位置后对两个输入做乘法。 回顾一下本节中样例模型它的参数是 W ( 1 ) \boldsymbol{W}^{(1)} W(1)和 W ( 2 ) \boldsymbol{W}^{(2)} W(2)因此反向传播的目标是计算 ∂ J / ∂ W ( 1 ) \partial J/\partial \boldsymbol{W}^{(1)} ∂J/∂W(1)和 ∂ J / ∂ W ( 2 ) \partial J/\partial \boldsymbol{W}^{(2)} ∂J/∂W(2)。我们将应用链式法则依次计算各中间变量和参数的梯度其计算次序与前向传播中相应中间变量的计算次序恰恰相反。首先分别计算目标函数 J L s JLs JLs有关损失项 L L L和正则项 s s s的梯度 ∂ J ∂ L 1 , ∂ J ∂ s 1. \frac{\partial J}{\partial L} 1, \quad \frac{\partial J}{\partial s} 1. ∂L∂J​1,∂s∂J​1. 其次依据链式法则计算目标函数有关输出层变量的梯度 ∂ J / ∂ o ∈ R q \partial J/\partial \boldsymbol{o} \in \mathbb{R}^q ∂J/∂o∈Rq ∂ J ∂ o prod ( ∂ J ∂ L , ∂ L ∂ o ) ∂ L ∂ o . \frac{\partial J}{\partial \boldsymbol{o}} \text{prod}\left(\frac{\partial J}{\partial L}, \frac{\partial L}{\partial \boldsymbol{o}}\right) \frac{\partial L}{\partial \boldsymbol{o}}. ∂o∂J​prod(∂L∂J​,∂o∂L​)∂o∂L​. 接下来计算正则项有关两个参数的梯度 ∂ s ∂ W ( 1 ) λ W ( 1 ) , ∂ s ∂ W ( 2 ) λ W ( 2 ) . \frac{\partial s}{\partial \boldsymbol{W}^{(1)}} \lambda \boldsymbol{W}^{(1)},\quad\frac{\partial s}{\partial \boldsymbol{W}^{(2)}} \lambda \boldsymbol{W}^{(2)}. ∂W(1)∂s​λW(1),∂W(2)∂s​λW(2). 现在我们可以计算最靠近输出层的模型参数的梯度 ∂ J / ∂ W ( 2 ) ∈ R q × h \partial J/\partial \boldsymbol{W}^{(2)} \in \mathbb{R}^{q \times h} ∂J/∂W(2)∈Rq×h。依据链式法则得到 ∂ J ∂ W ( 2 ) prod ( ∂ J ∂ o , ∂ o ∂ W ( 2 ) ) prod ( ∂ J ∂ s , ∂ s ∂ W ( 2 ) ) ∂ J ∂ o h ⊤ λ W ( 2 ) . \frac{\partial J}{\partial \boldsymbol{W}^{(2)}} \text{prod}\left(\frac{\partial J}{\partial \boldsymbol{o}}, \frac{\partial \boldsymbol{o}}{\partial \boldsymbol{W}^{(2)}}\right) \text{prod}\left(\frac{\partial J}{\partial s}, \frac{\partial s}{\partial \boldsymbol{W}^{(2)}}\right) \frac{\partial J}{\partial \boldsymbol{o}} \boldsymbol{h}^\top \lambda \boldsymbol{W}^{(2)}. ∂W(2)∂J​prod(∂o∂J​,∂W(2)∂o​)prod(∂s∂J​,∂W(2)∂s​)∂o∂J​h⊤λW(2). 沿着输出层向隐藏层继续反向传播隐藏层变量的梯度 ∂ J / ∂ h ∈ R h \partial J/\partial \boldsymbol{h} \in \mathbb{R}^h ∂J/∂h∈Rh可以这样计算 ∂ J ∂ h prod ( ∂ J ∂ o , ∂ o ∂ h ) W ( 2 ) ⊤ ∂ J ∂ o . \frac{\partial J}{\partial \boldsymbol{h}} \text{prod}\left(\frac{\partial J}{\partial \boldsymbol{o}}, \frac{\partial \boldsymbol{o}}{\partial \boldsymbol{h}}\right) {\boldsymbol{W}^{(2)}}^\top \frac{\partial J}{\partial \boldsymbol{o}}. ∂h∂J​prod(∂o∂J​,∂h∂o​)W(2)⊤∂o∂J​. 由于激活函数 ϕ \phi ϕ是按元素运算的中间变量 z \boldsymbol{z} z的梯度 ∂ J / ∂ z ∈ R h \partial J/\partial \boldsymbol{z} \in \mathbb{R}^h ∂J/∂z∈Rh的计算需要使用按元素乘法符 ⊙ \odot ⊙ ∂ J ∂ z prod ( ∂ J ∂ h , ∂ h ∂ z ) ∂ J ∂ h ⊙ ϕ ′ ( z ) . \frac{\partial J}{\partial \boldsymbol{z}} \text{prod}\left(\frac{\partial J}{\partial \boldsymbol{h}}, \frac{\partial \boldsymbol{h}}{\partial \boldsymbol{z}}\right) \frac{\partial J}{\partial \boldsymbol{h}} \odot \phi\left(\boldsymbol{z}\right). ∂z∂J​prod(∂h∂J​,∂z∂h​)∂h∂J​⊙ϕ′(z). 最终我们可以得到最靠近输入层的模型参数的梯度 ∂ J / ∂ W ( 1 ) ∈ R h × d \partial J/\partial \boldsymbol{W}^{(1)} \in \mathbb{R}^{h \times d} ∂J/∂W(1)∈Rh×d。依据链式法则得到 ∂ J ∂ W ( 1 ) prod ( ∂ J ∂ z , ∂ z ∂ W ( 1 ) ) prod ( ∂ J ∂ s , ∂ s ∂ W ( 1 ) ) ∂ J ∂ z x ⊤ λ W ( 1 ) . \frac{\partial J}{\partial \boldsymbol{W}^{(1)}} \text{prod}\left(\frac{\partial J}{\partial \boldsymbol{z}}, \frac{\partial \boldsymbol{z}}{\partial \boldsymbol{W}^{(1)}}\right) \text{prod}\left(\frac{\partial J}{\partial s}, \frac{\partial s}{\partial \boldsymbol{W}^{(1)}}\right) \frac{\partial J}{\partial \boldsymbol{z}} \boldsymbol{x}^\top \lambda \boldsymbol{W}^{(1)}. ∂W(1)∂J​prod(∂z∂J​,∂W(1)∂z​)prod(∂s∂J​,∂W(1)∂s​)∂z∂J​x⊤λW(1). 3.14.4 训练深度学习模型 在训练深度学习模型时正向传播和反向传播之间相互依赖。下面我们仍然以本节中的样例模型分别阐述它们之间的依赖关系。 一方面正向传播的计算可能依赖于模型参数的当前值而这些模型参数是在反向传播的梯度计算后通过优化算法迭代的。例如计算正则化项 s ( λ / 2 ) ( ∥ W ( 1 ) ∥ F 2 ∥ W ( 2 ) ∥ F 2 ) s (\lambda/2) \left(\|\boldsymbol{W}^{(1)}\|_F^2 \|\boldsymbol{W}^{(2)}\|_F^2\right) s(λ/2)(∥W(1)∥F2​∥W(2)∥F2​)依赖模型参数 W ( 1 ) \boldsymbol{W}^{(1)} W(1)和 W ( 2 ) \boldsymbol{W}^{(2)} W(2)的当前值而这些当前值是优化算法最近一次根据反向传播算出梯度后迭代得到的。 另一方面反向传播的梯度计算可能依赖于各变量的当前值而这些变量的当前值是通过正向传播计算得到的。举例来说参数梯度 ∂ J / ∂ W ( 2 ) ( ∂ J / ∂ o ) h ⊤ λ W ( 2 ) \partial J/\partial \boldsymbol{W}^{(2)} (\partial J / \partial \boldsymbol{o}) \boldsymbol{h}^\top \lambda \boldsymbol{W}^{(2)} ∂J/∂W(2)(∂J/∂o)h⊤λW(2)的计算需要依赖隐藏层变量的当前值 h \boldsymbol{h} h。这个当前值是通过从输入层到输出层的正向传播计算并存储得到的。 因此在模型参数初始化完成后我们交替地进行正向传播和反向传播并根据反向传播计算的梯度迭代模型参数。既然我们在反向传播中使用了正向传播中计算得到的中间变量来避免重复计算那么这个复用也导致正向传播结束后不能立即释放中间变量内存。这也是训练要比预测占用更多内存的一个重要原因。另外需要指出的是这些中间变量的个数大体上与网络层数线性相关每个变量的大小跟批量大小和输入个数也是线性相关的它们是导致较深的神经网络使用较大批量训练时更容易超内存的主要原因。 小结 正向传播沿着从输入层到输出层的顺序依次计算并存储神经网络的中间变量。反向传播沿着从输出层到输入层的顺序依次计算并存储神经网络中间变量和参数的梯度。在训练深度学习模型时正向传播和反向传播相互依赖。 注本节与原书基本相同原书传送门
http://www.dnsts.com.cn/news/20881.html

相关文章:

  • 广州天河区有什么好玩的地方昆明利于优化的网站
  • 深圳做网站哪家便宜深圳宝安区电子厂
  • 上海珍岛网站建设wordpress mysql权限设置
  • 环保网站模板微信营销软件有哪些
  • 网站 先建设还是先等级保护备案织梦小说网站源wap站
  • 伪静态网站巩义在线
  • 十大最坑装修公司排名seo排名点击 seo查询
  • 济南网站建设运营网站推广网络推广
  • 潍坊网站制作企业怎么样才能申请网址
  • 国内最佳网站建设设计石景山保安公司
  • 网站建设公众号开网站建设哪家性价比高
  • 地方网站发展app推广接单渠道
  • 赣州网站推广公司电话名词解释 网站内容
  • 金融网站源码 aspwordpress页面超链接
  • lol做任务领头像网站佛山网站建设培训
  • 长沙市住房与城乡建设厅网站行业门户网站运营
  • 企业官网建站外贸网站建设的败笔
  • 企业网站免费源码郑州浩方网站建设智联招聘
  • 定制型网站设计报价表wordpress手机版优化
  • 做网站的公司图自媒体平台
  • 网站留言表单是如何做的深圳市注册公司流程图
  • 长沙注册公司核名网站金山办公给我发验证码
  • 网站首页下拉广告网站开发和网页开发的区别
  • 四川企业品牌网站建设网站开发公司成都
  • 找出网站所有死链接检验是否安装wordpress
  • 哈尔滨建设网站的免费咨询名片设计模板
  • 优化推广排名网站教程用第三方做网站
  • 做个网站需要多少钱?有没有旧装修要拆番禺开发网站费用
  • 网站开发的国内外研究现状电商设计模板
  • 汕头市营商环境建设监督局网站用什么做网站开发