深度学习在序列模型、强化学习与文本挖掘中的应用
1. 循环神经网络(RNN)与长短期记忆网络(LSTM)
1.1 RNN基础
RNN 是一种在处理序列数据时非常有效的神经网络结构。以下是一个基本 RNN 网络的定义代码:
# 定义一个最基本的 RNN 网络
network = tf.contrib.rnn.GRUCell(n_hidden)
# 然后,分配堆叠的 RNN 单元
network = tf.contrib.rnn.MultiRNNCell([lambda: network] * num_layers)
# 创建一个循环神经网络
cell_output, _ = tf.contrib.rnn.static_rnn(network, x, dtype=tf.float32)
# 线性激活,使用 RNN 内部循环
last_vec = cell_output[-1]
return tf.matmul(last_vec, weights) + bias
1.2 LSTM 模型
在序列学习中,标准 RNN 虽然能很好地捕捉短期记忆,但在处理长期依赖时效果不佳,因为随着时间推移,RNN 链中的梯度会消失(或极少情况下爆炸)。为解决这个问题,提出了长短期记忆网络(LSTM)。
在 TensorFlow 中,可以使用 BasicLSTMCell 轻松将 RNN 模型扩展为 LSTM 模型,以下是 LSTM 实现的代码:
def
深度学习在序列与文本中的应用
超级会员免费看
订阅专栏 解锁全文
1454

被折叠的 条评论
为什么被折叠?



