您的位置:首页 > 其它

机器学习与深度学习系列连载: 第二部分 深度学习(二十四) Pointer Network

2018-11-16 22:07 288 查看

Pointer Network

1. 引导

我们先从一个例子出发,在下图中如何找到相关的点,他们的连线能够把所有点覆盖。

按照机器学习思维,那就用数据硬Train吧,期望得到如下结果:

但是硬Train需要大量的数据集。那我们使用Seq2Seq 的Model呢? 这是一个典型的一个序列到另一个序列的问题。


但是输出Seq的长度是固定的,比如训练的时候,输入是10个点,输出是5个点,但是如果输入变成100个点,输出还是5个点的话,5个点是很难包住100个点。所以我们需要一个动态输出结果Seq的方法。

2. Pointer Network 结构

我们用Seq2Seq模型增加Attention 机制。

Attention 直接output结果。这样输入的size是多少,我们的输出的size也会动态的变化。

那么Point Network的记过加上Decoder 结果,会使得我们的结果更加完整。

3. Pointer Network 应用

(1) 文本总结 summary
summary过程中,Pointer network 是由Decoder的一部分内容和输入一起attention决定的(红色的Context Vector)。最终final输出的时候,是一部分Pointer + 一部分Decoder

(2) 机器翻译 MT
机器翻译中可以直观的理解,一部分词语(尤其是人名、地名)实在vocabulary中没有的,所以主要从输入中直接copy。(Pointer network)

(3) 机器问答

本专栏图片、公式很多来自台湾大学李弘毅老师、斯坦福大学cs229,斯坦福大学cs231n 、斯坦福大学cs224n课程。在这里,感谢这些经典课程,向他们致敬!

阅读更多
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐