TensorFlow之循环神经网络

一、概念

CNN: 借助卷积核(kernel)提取特征后,送入后续网络(如全连接网络 Dense) 进行分类、目标检测等操作。CNN 借助卷积核从空间维度提取信息,卷积核参数 空间共享。

RNN: 借助循环核(cell)提取特征后,送入后续网络(如全连接网络 Dense) 进行预测等操作。RNN 借助循环核从时间维度提取信息,循环核参数时间共享。

循环核具有记忆力,通过不同时刻的参数共享,实现了对时间序列的信息提取。

每个循环核有多个记忆体,对应图中的多个小圆柱,记忆体内存储着每个时刻的状态信息ht。

在前向传播时,记忆体内存储的状态信息h𝑡在每个时刻都被刷新,而三个参数矩阵𝑤𝑥ℎ、wℎℎ、𝑤ℎ𝑦和两个偏置项𝑏ℎ、 𝑏y自始至终都是固定不变的。

在反向传播时,三个参数矩阵和两个偏置项由梯度下降法更新。

(这和我们预测是一致的:我们脑中的记忆体每个时刻都根据当前的输入而更新;当前的预测推理是根据我们以往的知识积累用固化下来的“参数矩阵”进行的推理判断。)

二、模型构建

tf.keras.layers.SimpleRNN(神经元个数,activation=‘激活函数’,
                          return_sequences=是否每个时刻输出ℎ𝑡𝑡到下一层)

(1)神经元个数:即循环核中记忆体的个数。

(2)return_sequences:False 返回最后时刻,True 返回全部时刻。

(3)输入维度:三维张量(输入样本数,循环核时间展开步数,每个时间步输 入特征个数)。

三、RNN模型

RNN 面临的较大问题是无法解决长跨度依赖问题,即后面节点相对于跨度很 大的前面时间节点的信息感知能力太弱。

1.LSTM

通过门控单元很好的解决了 RNN 长期依赖问题。

LSTM 引入了三个门限:输入门𝑖𝑡、遗忘门𝑓𝑡、输出门𝑜𝑡

输入门(门限):决定了多少比例的信息会被存入 当前细胞态;

遗忘门(门限):将细胞态中的信息选择性的遗忘;

输出门(门限):将细胞态中的信息选择性的进行输出;

model = tf.keras.Sequential([
    LSTM(80, return_sequences=True),
    Dropout(0.2),
    LSTM(100),
    Dropout(0.2),
    Dense(1)
])

2.GRU

门控循环单元(Gated Recurrent Unit,GRU)是 LSTM 的一种变体,将 LSTM 中 遗忘门与输入门合二为一为更新门,模型比 LSTM 模型更简单。

model = tf.keras.Sequential([
    GRU(80, return_sequences=True),
    Dropout(0.2),
    GRU(100),
    Dropout(0.2),
    Dense(1)
])

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值