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

这一节主要讲了如何从一个训练好的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来产生一段新闻风格和莎士比亚风格的文字

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值