循环神经网络

文章目录

  • 循环神经网络
    • 1 - 无隐状态的神经网络
    • 2 - 有隐状态的循环神经网络
    • 3 - 基于循环神经网络的字符级语言模型
    • 4 - 困惑度(Perplexity)
    • 5 - 小结

循环神经网络

循环神经网络_第1张图片

1 - 无隐状态的神经网络

循环神经网络_第2张图片

2 - 有隐状态的循环神经网络

循环神经网络_第3张图片
循环神经网络_第4张图片

import torch
from d2l import torch as d2l
X,W_xh = torch.normal(0,1,(3,1)),torch.normal(0,1,(1,4))
H,W_hh = torch.normal(0,1,(3,4)),torch.normal(0,1,(4,4))

torch.matmul(X,W_xh) + torch.matmul(H,W_hh)
tensor([[ 2.7082, -1.9897, -0.5827,  2.6741],
        [-4.2047,  2.0132,  1.7765, -0.2202],
        [-0.8636,  0.8902,  0.6410,  1.5466]])

现在,我们沿列(轴1)拼接矩阵X和H,沿行(轴0)拼接矩阵W_xh和W_hh

这两个拼接分别产⽣形状(3, 5)和形状(5, 4)的矩阵。再将这两个拼接的矩阵相乘,我们得到与上⾯相同形状(3, 4)的输出矩阵

torch.matmul(torch.cat((X, H), 1), torch.cat((W_xh, W_hh), 0))
tensor([[ 2.7082, -1.9897, -0.5827,  2.6741],
        [-4.2047,  2.0132,  1.7765, -0.2202],
        [-0.8636,  0.8902,  0.6410,  1.5466]])

3 - 基于循环神经网络的字符级语言模型

循环神经网络_第5张图片

4 - 困惑度(Perplexity)

循环神经网络_第6张图片
循环神经网络_第7张图片

5 - 小结

  • 对隐状态使用循环计算的神经网络称为循环神经网络(RNN)
  • 循环神经网络的隐状态可以捕获直到当前时间步序列的历史信息
  • 循环神经网络模型的参数数量不会随着时间步的增加而增加
  • 我们可以使用循环神经网络创建字符级语言模型
  • 我们可以使用困惑度来评价语言模型的质量

你可能感兴趣的:(深度学习,rnn,深度学习,人工智能)