机器学习与深度学习系列连载: 第二部分 深度学习(二十四) 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课程。在这里,感谢这些经典课程,向他们致敬!
阅读更多相关文章推荐
- 机器学习与深度学习系列连载: 第二部分 深度学习(二十五) 递归神经网络Resursive Network
- 机器学习与深度学习系列连载: 第三部分 强化学习(一) 强化学习简介
- Hulu机器学习问题与解答系列 | 第二弹: SVM模型
- DB2 开发系列 第二部分 数据库的创建
- 【爬虫系列】第二部分 网页解析Jsoup
- 【本文已迁移到“程序员文摘” http://programmerdigest.cn/category/lajp】LAJP系列教程-第二部分-HelloWorld(Linux 消息队列)
- WCF 4.0 进阶系列 – 第十五章 构建REST服务(第二部分)
- (基于Java)编写编译器和解释器-第3章:扫描-第二部分(连载)
- 使用Box2d和cocos2d-x从头开始制作一个弹弓类游戏系列教材的第二部分
- JSF2自定义组件编程系列 第二部分
- Python培训知识总结系列- 第二章Python数据结构第二部分,字符串拼接
- 易语言自绘系列教程(美易自绘)(第二部分)
- (基于Java)编写编译器和解释器-第2章:框架I:编译器和解释器-第二部分(连载)
- 机器学习第二课:概率与统计的部分说明
- Struts 2与AJAX(第二部分)(Struts 2系列之十四)
- JSF2自定义组件编程系列 第二部分
- (基于Java)编写编译器和解释器-第7章:解析(Parsing)控制语句-第二部分(连载)
- BitTorrent协议规范(BitTorrent Protocol Specification)系列之元信息文件结构(Metainfo File Structure)-第二部分
- JSF2自定义组件编程系列 第二部分
- 使用腾讯云 GPU 学习深度学习系列之一:传统机器学习的回顾