RNN————循环神经网络

RNN————循环神经网络(Recurrent Neural Network)


在零时刻通常使用零向量来初始化 a < 0 > a^{<0>} a<0>

Teddy Roosevelt was a great President.

Teddy bears are on sale!

如果只给定前三个单词,是不可能确切地知道Teddy是否是人名的一部分,所以在某一时刻的预测需要该时刻之后的输入信息,因此需要双向循环神经网络

RNN的计算:

激 活 项 : a < t > = g 1 ( W a a a < t − 1 > + W a x x < t > + b a ) y ^ < t > = g 2 ( W y a a < t > + b y ) 激活项:a^{<t>}=g_1(W_{aa}a^{<t-1>}+W_{ax}x^{<t>}+b_a)\\ \hat{y}^{<t>}=g_2(W_{ya}a^{<t>}+b_y) a<t>=g1(Waaa<t1>+Waxx<t>+ba)y^<t>=g2(Wyaa<t>+by)

RNN前向传播示意图:

image-20210323092756026

损失函数:

计算每个时间步的损失函数,再将所有的损失函数都加起来

RNN 反向传播示意图:

image-20210323093547835

RNN的不同结构:

多对一:情感分类(对一句话进行1~5的类别分类)

一对多:音乐生成

多对多:

​ 输入与输出长度相等:上面的例子

​ 输入与输出的长度不等:机器翻译(英语与法语一句话的长度不同,但是表达的意思是一样的)

image-20210323094613426

使用RNN生成语言模型

例子:Cats average 15 hours of sleep a day.

1.首先在句子的结尾加上 < E O S > <EOS> <EOS>标志表示句子的结尾。

2.其次将句子中的单词使用one—hot向量进行表示,并与自己的语料数据库进行比对,如果句子中存在单词是语料库中没有的,那么将这个词使用UNK进行替换。

3.开始建立RNN模型。

​ 开始的第一个输入 x < 1 > x^{<1>} x<1>零向量,而按照之前介绍的普通的初始化方法, a < 0 > a^{<0>} a<0>也为一个零向量,于是 a < 1 > a^{<1>} a<1>要做的就是它会通过 softmax 进行一些预测来 计算出第一个词可能会是什么,其结果就是 y ^ < 1 > \widehat{y}^{<1>} y <1>,这一步其实就是通过一个 softmax 层来预测字典中的任意单词会是第一个词的概率,比如说第一个词是𝑎的概率 有多少,第一个词是 Aaron 的概率有多少,第一个词是 cats 的概率又有多少,就这样一直到 Zulu 是第一个词的概率是多少,还有第一个词是 UNK(未知词)的概率有多少,还有第一个词是句子结尾标志的概率有多少,表示不必阅读.

​ 之后RNN进入下个时间步,在下一时间步中,仍然使用激活项 a < 1 > a{<1>} a<1>,在这步要做的是 计算出第二个词会是什么。现在我们依然传给它正确的第一个词,我们会告诉它第一个词就是Cats,也就是 y ^ < 1 > \widehat{y}^{<1>} y <1>,这也是** y < 1 > = x < 2 > y^{<1>}=x^{<2>} y<1>=x<2>**的原因。然后在第二个时间步中,输出结果同样经过 softmax 层进行预测,RNN 的职责就是 预测这些词的概率(下图编号 3 所示),而不会去管结果是什么,可能是 b 或者 arron,可能是 Cats 或者 Zulu 或者 UNK(未知词)或者 EOS 或者其他词,它只会考虑之前得到的词。

​ 以此类推,RNN中的每一步都会考虑前面得到的单词,接下来为了训练这个网络,我们要定义代价函数。如果在某个时间步t真正的词是 y < t > y^{<t>} y<t>,而softmax函数预测的结果是 y ^ < t > \widehat{y}^{<t>} y <t>,那么softmax的损失函数就是 L ( y ^ < t > , y < t > ) L(\widehat{y}^{<t>},y^{<t>}) L(y <t>,y<t>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值