深度学习——深度循环神经网络(笔记)

深度学习——深度循环神经网络(笔记)_第1张图片

 1.回顾:循环神经网络

深度学习——深度循环神经网络(笔记)_第2张图片

 如何将循环神经网络变深,获得更多的非线性性

通过添加多个隐藏层的方式来实现,每个隐藏状态都连续地传递到当前层地下一个时间步下一层地当前时间步

深度学习——深度循环神经网络(笔记)_第3张图片

2.深度循环网络

深度学习——深度循环神经网络(笔记)_第4张图片

 

①类似于多层感知机,隐藏层数目隐藏单元数目都是超参数

②使用门控循环单元长短期记忆网络的隐状态替代上图中深度循环网络的隐状态计算,就能够得到深度门控循环神经网络或长短期记忆神经网络。

【总结】

①深度循环网络使用多个隐藏层来获得更多的非线性

GRU、RNN、LSTM 在结构上都是相同的,只是隐状态 H 的计算方式有区别,所以它们加深神经网络的原理都是相同的

②在深度循环神经网络中,隐状态的信息被传递到当前层的下一时间步下一层的当前时间步

③存在许多不同风格的深度循环神经网络。如长短期记忆网络、门控循环单元或经典循环神经网络

④深度循环神经网络需要大量的调参(如学习率和修剪)来确保合适的收敛,模型的初始化也需要谨慎

【代码实现】

1.加载数据集

import torch
from torch import nn
from d2l import torch as d2l

batch_size, num_steps = 32, 35
train_iter, vocab = d2l.load_data_time_machine(batch_size, num_steps)

 2.num_layers设定隐藏层数

vocab_size, num_hiddens, num_layers = len(vocab), 256, 2
num_inputs = vocab_size
device = d2l.try_gpu()
lstm_layer = nn.LSTM(num_inputs, num_hiddens, num_layers)
model = d2l.RNNModel(lstm_layer, len(vocab))
model = model.to(device)

3.训练和预测

num_epochs, lr = 500, 2
d2l.train_ch8(model, train_iter, vocab, lr*1.0, num_epochs, device)

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