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

Pointer Network

1. 引导

我们先从一个例子出发,在下图中如何找到相关的点,他们的连线能够把所有点覆盖。
机器学习与深度学习系列连载: 第二部分 深度学习(二十四) Pointer Network_第1张图片
按照机器学习思维,那就用数据硬Train吧,期望得到如下结果:
机器学习与深度学习系列连载: 第二部分 深度学习(二十四) Pointer Network_第2张图片

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

机器学习与深度学习系列连载: 第二部分 深度学习(二十四) Pointer Network_第3张图片
但是输出Seq的长度是固定的,比如训练的时候,输入是10个点,输出是5个点,但是如果输入变成100个点,输出还是5个点的话,5个点是很难包住100个点。所以我们需要一个动态输出结果Seq的方法。

2. Pointer Network 结构

我们用Seq2Seq模型增加Attention 机制。
机器学习与深度学习系列连载: 第二部分 深度学习(二十四) Pointer Network_第4张图片

Attention 直接output结果。这样输入的size是多少,我们的输出的size也会动态的变化。
机器学习与深度学习系列连载: 第二部分 深度学习(二十四) Pointer Network_第5张图片
那么Point Network的记过加上Decoder 结果,会使得我们的结果更加完整。

3. Pointer Network 应用

(1) 文本总结 summary
summary过程中,Pointer network 是由Decoder的一部分内容和输入一起attention决定的(红色的Context Vector)。最终final输出的时候,是一部分Pointer + 一部分Decoder
机器学习与深度学习系列连载: 第二部分 深度学习(二十四) Pointer Network_第6张图片

(2) 机器翻译 MT
机器翻译中可以直观的理解,一部分词语(尤其是人名、地名)实在vocabulary中没有的,所以主要从输入中直接copy。(Pointer network)
机器学习与深度学习系列连载: 第二部分 深度学习(二十四) Pointer Network_第7张图片

(3) 机器问答
机器学习与深度学习系列连载: 第二部分 深度学习(二十四) Pointer Network_第8张图片

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

你可能感兴趣的:(深度学习,神经网络,深度学习)