一、概念
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)输入维度:三维张量(输入样本数,循环核时间展开步数,每个时间步输 入特