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

建网站做哪方面网站优化的方法有哪些

建网站做哪方面,网站优化的方法有哪些,哪个网站做汽车分期,房产交易网站原文链接:动手学深度学习pytorch版:6.6_bptt github:https://github.com/ShusenTang/Dive-into-DL-PyTorch 正向传播字训练神经网络中比较直观,而通过时间反向传播其实是反向传播在循环神经网络中的具体应用。我们需要将循环神经…

原文链接:动手学深度学习pytorch版:6.6_bptt
github:https://github.com/ShusenTang/Dive-into-DL-PyTorch

正向传播字训练神经网络中比较直观,而通过时间反向传播其实是反向传播在循环神经网络中的具体应用。我们需要将循环神经网络按时间步展开,从而得到模型变量和参数之间的依赖关系,并根据链式法则应用反向传播计算并存储梯度。

1. 定义模型

简单起见,我们考虑一个无偏差项的循环神经网络,且激活函数为恒等映射(ϕ(x)=xϕ(x)=xϕ(x)=x)。设时间步 ttt 的输入为单样本 xt∈Rd{x}_t \in {R}^dxtRd,标签为 yty_tyt,那么隐藏状态 ht∈Rh{h}_t \in R^hhtRh 的计算表达式为
ht=Whxxt+Whhht−1{h}_t = {W}_{hx} {x}_{t} + {W}_{hh} {h}_{t-1} ht=Whxxt+Whhht1

其中 Whx∈Rh×dW_{hx} \in R^{h×d}WhxRh×dWhh∈Rh×hW_{hh} \in R^{h×h}WhhRh×h 是隐藏层权重参数。设输出层权重参数 Wqh∈Rq×hW_{qh} \in R^{q×h}WqhRq×h ,时间步 t 的输出层变量 Ot∈RqO_t \in R^qOtRq 计算为
ot=Wqhhto_t = W_{qh} h_t ot=Wqhht

设时间步 t 的损失为 ℓ(ot,yt)\ell(o_t, y_t)(ot,yt)。时间步数为 T 的损失函数 L 定义为、
L=1T∑t=1Tℓ(ot,yt)L = \frac{1}{T} \sum^T_{t=1} \ell(o_t, y_t) L=T1t=1T(ot,yt)

我们将 L 陈给有关给定时间步的数据样本的目标函数,并在后续讨论中称为目标函数。

2. 模型计算图

为了可视化循环神经网络中模型变量和参数在计算中的依赖关系,我们可以绘制模型计算图,如图所示。例如,时间步3的隐藏状态h3h_3h3 的计算依赖模型参数 Whx,WhhW_{hx},W_{hh}Whx,Whh 上一时间步隐藏状态 h2h_2h2 以及当前时间步输入 x3x_3x3

请添加图片描述

时间步数为3的循环神经网络模型计算中的依赖关系。方框代表变量(无阴影)或参数(有阴影),圆圈代表运算符

3. 方法

刚刚提到,图中的模型的参数是Whx,Whh\boldsymbol{W}_{h x}, \boldsymbol{W}_{h h}Whx,WhhWqh\boldsymbol{W}_{q h}Wqh。与3.14节(正向传播、反向传播和计算图)中类似,训练模型通常需要模型参数的梯度 ∂L/∂Whx,∂L/∂Whh\partial L / \partial \boldsymbol{W}_{h x}, \partial L / \partial \boldsymbol{W}_{h h}L/Whx,L/Whh∂L/∂Wqh\partial L / \partial \boldsymbol{W}_{q h}L/Wqh。根据图中的依赖关系,我们可以按照其中箭头所指的反方向一次计算并存储梯度。为了表述方便,我们依然采用3.14节中表达链式法则的运算符 prod。

首先,目标函数有关各时间步输出层变量的梯度 ∂L/∂ot∈Rq\partial L / \partial \boldsymbol{o}_{t} \in \mathbb{R}^{q}L/otRq 很容易计算:
∂L∂ot=∂ℓ(ot,yt)T⋅∂ot\frac{\partial L}{\partial o_{t}}=\frac{\partial \ell\left(o_{t}, y_{t}\right)}{T \cdot \partial o_{t}} otL=Tot(ot,yt)

下面,我们可以计算目标函数有关模型参数Wqh\boldsymbol{W}_{q h}Wqh 的梯度 ∂L/∂Wqh∈Rq×h\partial L / \partial \boldsymbol{W}_{q h} \in \mathbb{R}^{q \times h}L/WqhRq×h 。 根据图6.3, LLL 通过 o1,…,oT\boldsymbol{o}_{1}, \ldots, \boldsymbol{o}_{T}o1,,oT 依赖 Wqh\boldsymbol{W}_{q h}Wqh 依据链式法则,
∂L∂Wqh=∑t=1Tprod⁡(∂L∂ot,∂ot∂Wqh)=∑t=1T∂L∂otht⊤.\frac{\partial L}{\partial \boldsymbol{W}_{q h}}=\sum_{t=1}^{T} \operatorname{prod}\left(\frac{\partial L}{\partial o_{t}}, \frac{\partial o_{t}}{\partial \boldsymbol{W}_{q h}}\right)=\sum_{t=1}^{T} \frac{\partial L}{\partial \boldsymbol{o}_{t}} \boldsymbol{h}_{t}^{\top} . WqhL=t=1Tprod(otL,Wqhot)=t=1TotLht.

其次,我们注意到隐藏状态之间也存在依赖关系。 在图6.3中,LLL 只通过 OT\boldsymbol{O}_{T}OT 依赖最终时间步 TTT 的隐藏状态 hT。 \boldsymbol{h}_{T \text { 。 }}hT  。因此,我们先计算目标函数有关最终时间步隐藏状态的梯度 ∂L/∂hT∈Rh\partial L / \partial \boldsymbol{h}_{T} \in \mathbb{R}^{h}L/hTRh 。依据链式法则,我们得到
∂L∂hT=prod⁡(∂L∂oT,∂oT∂hT)=Wqh⊤∂L∂oT\frac{\partial L}{\partial \boldsymbol{h}_{T}}=\operatorname{prod}\left(\frac{\partial L}{\partial \boldsymbol{o}_{T}}, \frac{\partial \boldsymbol{o T}}{\partial \boldsymbol{h}_{T}}\right)=\boldsymbol{W}_{q h}^{\top} \frac{\partial L}{\partial \boldsymbol{o}_{T}} hTL=prod(oTL,hToT)=WqhoTL

接下来对于时间步 t<Tt<Tt<T, 在图6.3中, LLL 通过 ht+1\boldsymbol{h}_{t+1}ht+1ot\boldsymbol{o}_{t}ot 依赖 ht\boldsymbol{h}_{t}ht 。 依据链式法则, 目标函数有关时间步 t<Tt<Tt<T 的隐藏状态的梯度 ∂L/∂ht∈Rh\partial L / \partial \boldsymbol{h}_{t} \in \mathbb{R}^{h}L/htRh 需 要按照时间步从大到小依次计算:
∂L∂ht=prod⁡(∂L∂ht+1,∂ht+1∂ht)+prod⁡(∂L∂ot,∂ot∂ht)=Whh⊤∂L∂ht+1+Wqh⊤∂L∂ot\frac{\partial L}{\partial \boldsymbol{h}_{t}}=\operatorname{prod}\left(\frac{\partial L}{\partial \boldsymbol{h}_{t+1}}, \frac{\partial h_{t+1}}{\partial \boldsymbol{h}_{t}}\right)+\operatorname{prod}\left(\frac{\partial L}{\partial \boldsymbol{o}_{t}}, \frac{\partial \boldsymbol{o t}}{\partial \boldsymbol{h}_{t}}\right)=\boldsymbol{W}_{h h}^{\top} \frac{\partial L}{\partial \boldsymbol{h}_{t+1}}+\boldsymbol{W}_{q h}^{\top} \frac{\partial L}{\partial \boldsymbol{o}_{t}} htL=prod(ht+1L,htht+1)+prod(otL,htot)=Whhht+1L+WqhotL

将上面的递归公式展开,对任意时间步 1≤t≤T1 \leq t \leq T1tT, 我们可以得到目标函数有关隐藏状态梯度的通项公式
∂L∂ht=∑i=tT(Whh⊤)T−iWqh⊤∂L∂oT+t−i\frac{\partial L}{\partial \boldsymbol{h} t}=\sum_{i=t}^{T}\left(\boldsymbol{W}_{h h}^{\top}\right)^{T-i} \boldsymbol{W}_{q h}^{\top} \frac{\partial L}{\partial \boldsymbol{o} T+t-i} htL=i=tT(Whh)TiWqhoT+tiL

由上式中的指数项可见, 当时间步数 TTT 较大或者时间步 ttt 较小时,目标函数有关隐藏状态的梯度较容易出现衰减和爆炸。这也会影响其他包含 ∂L/∂ht\partial L / \partial \boldsymbol{h}_{t}L/ht 项的梯度, 例如隐藏层中模型参数的梯度 ∂L/∂Whx∈Rh×d\partial L / \partial \boldsymbol{W}_{h x} \in \mathbb{R}^{h \times d}L/WhxRh×d∂L/∂Whh∈Rh×h\partial L / \partial \boldsymbol{W}_{h h} \in \mathbb{R}^{h \times h}L/WhhRh×h 。在图6.3中, LLL 通过 h1,…,hT\boldsymbol{h}_{1}, \ldots, \boldsymbol{h}_{T}h1,,hT 依赖这些模型参数。依据链式法则, 我们有
∂L∂Whx=∑t=1Tprod⁡(∂L∂ht,∂ht∂Whx)=∑t=1T∂L∂htxt⊤∂L∂Whh=∑t=1Tprod⁡(∂L∂ht,∂ht∂Whh)=∑t=1T∂L∂htht−1⊤.\begin{aligned} \frac{\partial L}{\partial \boldsymbol{W}_{h x}} &=\sum_{t=1}^{T} \operatorname{prod}\left(\frac{\partial L}{\partial \boldsymbol{h}_{t}}, \frac{\partial \boldsymbol{h}_{t}}{\partial \boldsymbol{W}_{h x}}\right)=\sum_{t=1}^{T} \frac{\partial L}{\partial \boldsymbol{h}_{t}} \boldsymbol{x}_{t}^{\top} \\ \frac{\partial L}{\partial \boldsymbol{W}_{h h}} &=\sum_{t=1}^{T} \operatorname{prod}\left(\frac{\partial L}{\partial \boldsymbol{h}_{t}}, \frac{\partial \boldsymbol{h}_{t}}{\partial \boldsymbol{W}_{h h}}\right)=\sum_{t=1}^{T} \frac{\partial L}{\partial \boldsymbol{h}_{t}} \boldsymbol{h}_{t-1}^{\top} . \end{aligned} WhxLWhhL=t=1Tprod(htL,Whxht)=t=1ThtLxt=t=1Tprod(htL,Whhht)=t=1ThtLht1.

我们已在3.14节里解释过, 每次迭代中, 我们在依次计算完以上各个梯度后, 会将它们存储起来, 从而避免重复计算。例如, 由于隐藏状态梯度 ∂L/∂ht\partial L / \partial \boldsymbol{h}_{t}L/ht 被计算和存储, 之后的模型参数梯度 ∂L/∂Whx\partial L / \partial \boldsymbol{W}_{h x}L/Whx∂L/∂Whh\partial L / \partial \boldsymbol{W}_{h h}L/Whh 的计算可以直接读取 ∂L/∂ht\partial L / \partial \boldsymbol{h}_{t}L/ht 的值, 而无须重复计算它们。此外, 反向传播中的梯度计算可能会依赖变量的当前值。它们正是通过正向传播计算出来的。举例来说, 参数梯度 ∂L/∂Whh\partial L / \partial \boldsymbol{W}_{h h}L/Whh 的计算需要依赖隐藏状态在时间 步 t=0,…,T−1t=0, \ldots, T-1t=0,,T1 的当前值 ht(h0h_{t}\left(h_{0}\right.ht(h0 是初始化得到的) 。这些值是通过从输入层到输出层的正向传播计算并存储得到的。

小结

  • 通过时间反向传播是反向传播在循环神经网络中的具体应用。
  • 当总的时间步数较大或者当前时间步较小时,循环神经网络的梯度较容易出现衰减或爆炸。
http://www.lbrq.cn/news/2797543.html

相关文章:

  • 沙坪建设集团网站做网站要多少钱
  • 济南app网站建设绍兴seo计费管理
  • 个人站长和企业网站湖南网站建设效果
  • 重庆石桥铺网站建设公司百度论坛首页
  • 中山 网站关键词优化网站推广教程
  • 商城版网站制作seo优化对网店的推广的作用为
  • 工布江达网站建设百度排行榜
  • 企业网站策划论文软文推广的优点
  • 云南网站设计联系方式2022智慧树互联网与营销创新
  • 给县里做网站google官网进入
  • 张家港手机网站建设郑州网站策划
  • 小额贷款 网站模板seo优化是怎么优化的
  • 微商做色情网站全世界足球排名前十位
  • 做网站负责人有法律风险吗广告营销案例分析
  • 政府网站建设方案范文—工作方案google关键词搜索技巧
  • WordPress主题Perimg优化培训课程
  • 本溪网站建设百度网址提交
  • 接单网站设计 只做设计图报价千锋教育的口碑怎么样
  • 中国建设银行山西分行招聘网站企业全网推广公司
  • 珠海企业集团网站建设网络营销策划是什么
  • 网站建设与推广策划案案例优化人员是什么意思
  • 松桃县住房和城乡建设局网站网站应该如何进行优化
  • 一个女的让我和她做优惠网站策划推广
  • 西安公司网站费用百度seo插件
  • wordpress过FTP更新建站合肥网络公司seo
  • 装饰公司看的设计网站百度客户端官网
  • 班级网站开发报告seo推广外包报价表
  • 彭阳县城乡与住房建设局网站搜狗站长工具
  • 哪个网站简历做的好淘大象排名查询
  • 网店托管公司seo网络营销
  • 2025-08-21 Python进阶4——错误和异常
  • Docker操作速查表
  • PyTorch API 7
  • C++高频知识点(三十二)
  • 【GPT入门】第49课 LlamaFacotory 训练千问
  • java17学习笔记-Deprecate the Applet API for Removal