[人工智能-深度学习-53]:循环神经网络 - LSTM长短记忆时序模型的简化:门控循环网络GRU模型

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/121599096


目录

第1章 前序知识

1.1 RNN循环神经网络模型

1.2 LSTM长短记忆时序模型

1.3 LSTM模型的缺点

第2章 GRU模型详解

2.1 GRU模型概述

2.2 RNN网络结构对比

2.3 LSTM网络结构对比

2.4 GRU网络的结构

2.5 GRU网络特点

第3章 GRU的反向传播



第1章 前序知识

1.1 RNN循环神经网络模型

[人工智能-深度学习-51]:循环神经网络RNN基本原理详解_文火冰糖(王文兵)的博客-CSDN博客https://blog.csdn.net/HiWangWenBing/article/details/121387285

1.2 LSTM长短记忆时序模型

https://blog.csdn.net/HiWangWenBing/article/details/121547541https://blog.csdn.net/HiWangWenBing/article/details/121547541

1.3 LSTM模型的缺点

随着 LSTM 在自然语言处理特别是文本分类任务的广泛应用,人们逐渐发现 LSTM有如下一些缺点:

  • 具有训练时间长
  • 参数较多
  • 内部计算复杂

LSTM的简化模型GRU因运而生。

第2章 GRU模型详解

2.1 GRU模型概述

GRU(Gated Recurrent Unit):门控循环网络

GRU是LSTM网络的一种效果很好的变体,相比较LSTM网络,GRU网络的结构更加简单,效果也很好,同时它也可以较好的解决RNN网络中长依赖、梯度消失等问题。因此也是当前非常流形的一种网络。

2.2 RNN网络结构对比

2.3 LSTM网络结构对比

[人工智能-深度学习-53]:循环神经网络 - LSTM长短记忆时序模型的简化:门控循环网络GRU模型_第1张图片

2.4 GRU网络的结构

[人工智能-深度学习-53]:循环神经网络 - LSTM长短记忆时序模型的简化:门控循环网络GRU模型_第2张图片

(1)输入:与RNN网络一致

  • 当前的时序样本输入Xt
  • 先前保存的状态Ht-1
  • Ht-1与Xt组合成[Ht-1, Xt] ,作为后续控制门的输入

(3)输出:与RNN网络一致

  • 输入:[Ht-1, Xt]
  • 运算矩阵Wi
  • 激活函数Tanh
  • 功能:生成本次迭代提取的新的状态特征 ~Ht
  • 数学表达式:

(3)Ht-1状态输入重置门:与LSTM类似

  • 输入:[Ht-1, Xt]
  • 运算矩阵Wr
  • 激活函数sigmod
  • 输出在[0, 1]之间
  • 功能(乘法):用于对先前状态Ht-1的过滤选择。它决定了先前的状态Ht-1,有多大的比例能够参与本次特征状态输出Ht。0表示忽略先前保留的状态,1表示完全使用先前的状态,其他值表示使用先前状态的程度。
  • 数学表达式:

(4)Ht状态更新门: 与LSTM类似

  • 输入:[Ht-1, Xt]
  • 运算矩阵Wz
  • 激活函数sigmod
  • 输出在[0, 1]之间
  • 功能(乘法):用于对当前状态Ht的更新控制。它决定了本次迭代的输出,多大程度可以用于最终的特征状态输出。0表示忽略本次迭代的状态输出,1表示100%使用当前的状态输出,其他值表示使用当前状态的程度。
  • 数学表达式:

(5)Ht的状态更新:与LSTM类似

[人工智能-深度学习-53]:循环神经网络 - LSTM长短记忆时序模型的简化:门控循环网络GRU模型_第3张图片

  • 输入1= 先前状态Ht-1 * (1 - 状态更新门的输出)
  • 输入2 = 当前新生成的状态~Ht * 状态更新门的输出
  • 运算:累加/叠加 = 输入1 + 输入2 =》 

2.5 GRU网络特点

LSTM和CRU都是通过各种门函数来将重要特征保留下来,这样就保证了在long-term传播的时候也不会丢失。

此外GRU相对于LSTM少了一个门函数,因此在参数的数量上也是要少于LSTM的,所以整体上GRU的训练速度要快于LSTM。

第3章 GRU的反向传播

从前向传播过程中的公式可以看出要学习的参数有Wr、Wz、Wh、Wo。其中前三个参数都是拼接的(因为后先的向量也是拼接的),所以在训练的过程中需要将他们分割出来:

输出层的输入: 

输出层的输出:  

在得到最终的输出后,就可以写出网络传递的损失,单个样本某时刻的损失为:

则单个样本的在所有时刻的损失为:

采用后向误差传播算法来学习网络,所以先得求损失函数对各参数的偏导(总共有7个):

其中各中间参数为:

在算出了对各参数的偏导之后,就可以更新参数,依次迭代知道损失收敛。


作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客

本文网址:https://blog.csdn.net/HiWangWenBing/article/details/121599096

你可能感兴趣的:(人工智能-深度学习,循环神经网络,递推神经网络,深度学习,GRU,LSTM)