循环神经网络--GRU

在这里插入图片描述
这里我们首先来看一下GRU是如何将LSTM的三个门简化成两个门的结构的:
这里的 r r r门(r门这里同样是一个激活函数)控制的是上一个时间戳的状态 s t − 1 s_{t-1} st1对我们的当前时间戳状态 s t s_t st的一个影响,r的取值范围依旧是在0到1之间,也就是说,当你的r门全部关闭(r = 0)的时候,就意味着将上一个时间戳上的状态复位了,从0开始;如果r门全部打开(r = 1)的时候,就是保留了接收进来所有的上一个时间戳的状态。r就意味着是否要reset上一个时间戳的状态信息,以及reset的程度是多少。

z = σ ( x t U z + s t − 1 W z ) r = σ ( x t U r + s t − 1 W r ) h = tanh ⁡ ( x t U h + ( s t − 1 ∘ r ) W h ) s t = ( 1 − z ) ∘ h + z ∘ s t − 1 \begin{aligned} z &=\sigma\left(x_{t} U_{z}+s_{t-1} W_{z}\right) \\ r &=\sigma\left(x_{t} U_{r}+s_{t-1} W_{r}\right) \\ h &=\tanh \left(x_{t} U_{h}+\left(s_{t-1} \circ r\right) W_{h}\right) \\ s_{t} &=(1-z) \circ h+z \circ s_{t-1} \end{aligned} zrhst=σ(xtUz+st1Wz)=σ(xtUr+st1Wr)=tanh(xtUh+(st1r)Wh)=(1z)h+zst1

根据图分析公式:

r = σ ( x t U r + s t − 1 W r ) \begin{aligned} r &=\sigma\left(x_{t} U_{r}+s_{t-1} W_{r}\right) \end{aligned} r=σ(xtUr+st1Wr)

  • 1.由黄色的导向线得,上一个时间戳的状态 s t − 1 s_{t-1} st1与新的输入 x t x_t xt分别做一个线性变换然后求和,最后经过r门的激活函数得到r门的输出。
    z = σ ( x t U z + s t − 1 W z ) \begin{aligned}z &=\sigma\left(x_{t} U_{z}+s_{t-1} W_{z}\right)\end{aligned} z=σ(xtUz+st1Wz)
  • 2.由蓝色的导向线得,上一个时间戳的状态 s t − 1 s_{t-1} st1与新的输入 x t x_t xt分别再做一个线性变换然后求和,最后经过z门的激活函数得到z门的输出。
    h = tanh ⁡ ( x t U h + ( s t − 1 ∗ r ) W h ) \begin{aligned} h &=\tanh \left(x_{t} U_{h}+\left(s_{t-1} * r\right) W_{h}\right)\end{aligned} h=tanh(xtUh+(st1r)Wh)
  • 3.由红色的导向线得,上一个时间戳的状态 s t − 1 s_{t-1} st1与r(门控变量)做一个乘积,再与经过一个线性变换后的 x t x_t xt求和,最后经过激活函数tanh得到输出h。
    这里的h并不是一个新的变量,对于GRU来说,它只有这样的一个状态,我们将其叫做 s t − 1 s_{t-1} st1,你也可以将其叫做 c c c或者 h h h这只是这样的命名的习惯,对于LSTM来说有一个 c c c,一个 h h h,对于GRU来说只有一个 h h h这样的临时的变量
    s t = ( 1 − z ) ∗ h + z ∗ s t − 1 \begin{aligned} s_{t} &=(1-z) * h+z * s_{t-1}\end{aligned} st=(1z)h+zst1
  • 4.最后得到当下时间戳的状态 s t s_t st
    s t s_t st的公式中,这里的 h h h是由 1 − z 1-z 1z控制的, s t − 1 s_{t-1} st1是由更新门 Z Z Z控制的,对于 h h h s t − 1 s_{t-1} st1来说非大即小,也就是说如果向上的路径变强了,向右的路径就变小了,反之也这回事,就是 h h h状态和 s t − 1 s_{t-1} st1的状态互斥的流通门。
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
抱歉,我目前无法提供图像或绘图功能。但是,我可以为您提供PSO-GRU神经网络的文字描述。PSO-GRU(Particle Swarm Optimization-Gated Recurrent Unit)是一种优化算法与门控循环单元(Gated Recurrent Unit,简称GRU)结合的神经网络模型。 PSO-GRU的流程图通常由以下几个主要步骤组成: 1. 初始化粒子群和神经网络参数:首先,初始化一群粒子,每个粒子代表一个神经网络模型,并随机初始化模型的参数。同时,为每个粒子分配初始速度和个体最佳位置。 2. 计算适应度值:使用训练数据集输入粒子的神经网络模型,并计算其在训练数据上的适应度值。适应度值可以根据任务的不同而有所变化,例如分类任务可以使用准确率作为适应度值。 3. 更新速度和位置:根据粒子群中每个粒子的当前适应度值、个体最佳位置和全局最佳位置,使用PSO算法更新每个粒子的速度和位置。 4. 更新神经网络参数:根据粒子群中每个粒子的当前位置,更新相应神经网络模型的参数。可以使用梯度下降等优化算法进行参数的更新。 5. 重复步骤2至4直到满足停止条件:重复执行步骤2至4,直到满足预设的停止条件,例如达到最大迭代次数或达到一定的适应度阈值。 6. 返回全局最佳模型:在PSO-GRU算法结束后,返回具有全局最佳适应度值的神经网络模型作为最终模型。 这是一个简化的PSO-GRU神经网络流程图的描述,希望可以帮助您理解PSO-GRU神经网络的工作原理。如果您需要更详细的信息或其他问题,请随时告诉我。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值