吴恩达Deeplearning.ai 第五课 Sequence Model 第一周------Sampling novel sequence

本文介绍如何使用训练好的循环神经网络(RNN)进行序列采样生成,并探讨字母级语言模型的优势与局限性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这一节主要讲了如何从一个训练好的RNN中进行采样得到序列

这里写图片描述

从训练好的RNN中采样出一个序列

之前在序列产生中讲到,首先RNN输入a<0>(0向量)和x<1>(0向量),通过一个RNN cell产生一个输出y。

y = softmax(np.dot(Wya, a) + by),可以知道y是一个向量,向量每个entry表示对应index单词的概率。之前直接选择概率最大的那个作为y,在这里利用采样的方法,根据每个entry的概率值来产生y(np.random.choice)

再将这样产生的y作为下一个输入,即x<2> = y<1>,x = y

这里写图片描述

采用这样的方法直到最后y输出<EOS>或者句子达到之前设定的长度才停下,这样就利用RNN产生了一个序列

这样有可能会sample得到<UNK>,可以采用两种处理方法:一种就是如果产生<UNK>就重新进行采样,另一种就是将<UNK>保留在句子中

字母级语言模型

这里写图片描述

这里将一个字母作为一个x<t>

好处是不会产生<UNK>,例如可以产生Mau这种可能不在字典中的名字,而不是用<UNK>来代替

缺点是序列过长,如果序列前后存在一定关联,则字母级的模型可能难以捕捉到这种关联,同时由于序列更长了,计算量也比之前更大一些

这里写图片描述

序列生成的例子,利用RNN来产生一段新闻风格和莎士比亚风格的文字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值