深度学习理论向应用的过渡课程【北京大学_TensorFlow2.0笔记】学习笔记(十一)——RNN介绍及字母预测

循环核:参数时间共享,循环层提取时间信息

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

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNTg1ODYyMzU=,size_20,color_FFFFFF,t_70,g_se,x_16

yt :当前时刻循环核的输出特征——求解过程为一个全连接层

ht :记忆体当前时刻存储的状态信息

ht-1:记忆体上一时刻存储的状态信息

bh、by:偏置项

训练优化的就是这些参数矩阵,训练完成后,使用效果最好的参数矩阵执行前向传播,输出预测结果。

循环神经网络:借助循环核提取时间特征后,送入全连接网络

借助全连接网络,实现连续数据预测。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNTg1ODYyMzU=,size_20,color_FFFFFF,t_70,g_se,x_16

循环计算层:向输出方向生长

每个循环核构成一层循环计算层

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNTg1ODYyMzU=,size_20,color_FFFFFF,t_70,g_se,x_16

TF描述循环计算层

tf.keras.layers.SimpleRNN(记忆体个数, activation='激活函数',
                         return_sequences = 是否每个时刻输出ht到下一层)

activation = '激活函数' #不写默认tanh

return_sequences = True     #各时间步输出ht,常在中间层循环核使用
return_sequences = False    #仅最后时间步输出ht(默认),常在最后一层循环核使用

例如:SimpleRNN(3, return_sequence=True)

循环核在每个时间步输出ht可用下图表示

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNTg1ODYyMzU=,size_20,color_FFFFFF,t_70,g_se,x_16

循环核仅在最后一步输出ht

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNTg1ODYyMzU=,size_20,color_FFFFFF,t_70,g_se,x_16

API对送入循环层的数据维度有要求,送入循环层的数据是三维的,即x_train维度:

[送入样本数,循环核时间展开步数,每个时间步输入特征个数]

(1时间步=1循环核个数)

例如下图

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNTg1ODYyMzU=,size_20,color_FFFFFF,t_70,g_se,x_16

循环计算过程举例

1、使用一个字母预测下个字母

初始时ht中为全零

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNTg1ODYyMzU=,size_20,color_FFFFFF,t_70,g_se,x_16

在输入字母b的向量经过计算后更新ht。可理解为脑中记忆因当前输入事物而更新了。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNTg1ODYyMzU=,size_20,color_FFFFFF,t_70,g_se,x_16watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNTg1ODYyMzU=,size_20,color_FFFFFF,t_70,g_se,x_16

输出yt,就是把提取到的时间信息,通过全连接进行识别预测的过程,是整个网络的输出层。

用RNN实现输入一个字母,预测下一个字母(one-hot编码)

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNTg1ODYyMzU=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNTg1ODYyMzU=,size_20,color_FFFFFF,t_70,g_se,x_16

搭建具有三个记忆体的循环层,3为超参数。记忆体个数越多,记忆力越好,但占用的资源更多。

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNTg1ODYyMzU=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNTg1ODYyMzU=,size_20,color_FFFFFF,t_70,g_se,x_16

2、使用四个字母预测下个字母

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNTg1ODYyMzU=,size_20,color_FFFFFF,t_70,g_se,x_16

在四个时间步中用到的参数矩阵wxh、偏置项bh数值相同

用RNN实现输入连续四个字母,预测下一个字母(one-hot编码)

即abcd->e        bcde->a        cdea->b        deab->c        eabc->d

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNTg1ODYyMzU=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNTg1ODYyMzU=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNTg1ODYyMzU=,size_20,color_FFFFFF,t_70,g_se,x_16

watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAbTBfNTg1ODYyMzU=,size_20,color_FFFFFF,t_70,g_se,x_16

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值