李宏毅:conditional generation by RNN & attention

1、Generation生成句子或者文章。在生成好的RNN模型里,我们输入开头,模型可以输出一系列的输出,如下图,我们根据输出得到了“床”,然后把“床”作为下一个时间点的输入,得到“前”,依次类推。这是测试时的一种做法,并不是唯一做法。在训练RNN模型的时候,并不是拿上一时刻的输出当作下一时刻的输入,而是拿句子真正的序列当作输入的。2、condition generation我...
摘要由CSDN通过智能技术生成

1、Generation

生成句子或者文章。

在生成好的RNN模型里,我们输入开头,模型可以输出一系列的输出,如下图,我们根据输出得到了“床”,然后把“床”作为下一个时间点的输入,得到“前”,依次类推。这是测试时的一种做法,并不是唯一做法。在训练RNN模型的时候,并不是拿上一时刻的输出当作下一时刻的输入,而是拿句子真正的序列当作输入的。

2、condition generation

我们希望根据一些情景来生成我们的句子而不是随机生成一些句子,比如对话系统,需要根据问题来生成我们的答案,再比如翻译系统,我们要根据给出的句子得到对应的翻译。

比如下图:input一个image,通过CNN得到image的vector,把vector当做input丢给RNN,丢进去的input(image)不一样的话,它的output也会不一样,可能你的input影响不够大,网络在后面会遗忘之前看到的东西,我们需要在每次RNN output之前的时间点丢一个image(vector),RNN就会反复的复习看到的这张image。就不会让句子忘记自己要说什么了。

再比如下面的机器翻译:

首先,我们把问题或者需要被翻译的句子通过一个RNN或者LSTM进行Encoder,最后一个的输出就包含了这个句子的全部信息,然后把这个句子当作初始输入丢到另一个RNN或者LSTM中,然后通过这个得到对应的输出。encoder和decoder的LSTM或者RNN里的参数可以一样也可以不一样。

3、attention(dynamic(动态) conditional generation)

当使用attention的时候,它只会关注“机器”这一个词的vector,在decoder中能更好地学习到“机器”这一个词的特征,输出会更加准确。

下图中的match是一个function,可以自己设计,“机”,“器”,“学”,“习”通过RNN得到各自的vector,z0是一个parameter。α10,上标1表示z0和h1到底有多match,下标0表示时间是0这个时间点,α表示相匹配程度。

z1可以是c0丢到RNN以后,hidden layer的output,也可以是其他,z1再去算一次match的分数

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值