博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【DL】2 Attention入门——李宏毅机器学习课程笔记
阅读量:3916 次
发布时间:2019-05-23

本文共 1746 字,大约阅读时间需要 5 分钟。

由RNN和Attention条件生成

1. Generation

按组件生成结构化对象组件(Generating a structured object component-by-component)

  • 句子是由字符/语料库组成的——通过RNN每次生成一个字符/单词

    在这里插入图片描述

  • 图像是由像素组成的——每次用RNN生成一个像素

    在这里插入图片描述

    在这里插入图片描述
    在这里插入图片描述
    RNN可以生成图像、手写汉字、语音、文字

为什么要条件生成:

  • 我们不希望简单地生成一些随机的句子
  • 根据条件生成句子

在这里插入图片描述

  • 将输入条件表示为一个矢量,并考虑此作为RNN发生器的输入

在这里插入图片描述

  • 机器翻译/聊天机器人(Sequence-to-sequence learning)

在这里插入图片描述

这是个很好的例子:聊天时需要考虑较长的语境,例如再考虑以下对话,如果再说一次’Hi’就显得很僵硬……所以可以把很多句子放到一起进行学习
在这里插入图片描述

2. Attention

Dynamic Conditional Generation

在这里插入图片描述

  1. 有时候Encoder不能很好的把一个句子变成一个向量
  2. 让Decoder在产生’machine’的时候只需要考虑’机器’,只需要考虑相关的就好了

2.1 Attention-based model

机器翻译为例看一下Attention-based model

在这里插入图片描述
在这里插入图片描述
关于 α 1 α_1 α1的产生没有一个公认的最好的方法,你可以这样:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上的技术也可以应用到语音识别上面

在这里插入图片描述

或者图像标题生成(对图像产生一段说明)

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
以下亮的地方是机器的Attention所在的地方,注意到长颈鹿生成的时候是长颈鹿周围的场景,以下都是一些表现良好的场景
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上结果看起来表现非常好

2.2 Memory Network

对Memory上进行Attention

在这里插入图片描述
可以考虑把一个句子拆成两个向量

在这里插入图片描述

关于Hopping:

在这里插入图片描述

2.3 Neural Turing Machine

不只从Memory里训练出数据,他还可以根据match score修改Memory的数据

在这里插入图片描述

在这里插入图片描述
实际上由k生成attention的步骤如下所示:

在这里插入图片描述

相信没有兴趣知道它,所以跳过,接下来根据attention和e、a的值修改Memory的值

在这里插入图片描述

在这里插入图片描述

3. Tips for Generation

Training的技巧

在这里插入图片描述

训练和测试之间的不匹配
在这里插入图片描述
在这里插入图片描述
一步错,步步错:
在这里插入图片描述
修改训练过程?

使训练与测试相匹配,当我们尝试减少步骤1和步骤2的损失时…在实践中,这样的训练方式很难

在这里插入图片描述

3.1 Scheduled Sampling

在这里插入图片描述

在这里插入图片描述

3.2 Beam Search

绿色路径的分数更高,不可能检查所有的路径

在这里插入图片描述
每一步都要保持几条最佳路径
Beam size = 2
在这里插入图片描述
本例中beam的尺寸为3:

在这里插入图片描述

以下说明了为什么采样比直接把概率分布作为输入训练效果要好一些

在这里插入图片描述

3.3 强化学习

对象级(Object level)与组件级(Component level)

在这里插入图片描述

R不好进行微分,当句子和reference相同时,输出为0,调参数时结果不变,所以解决办法可以是强化学习

在这里插入图片描述

在这里插入图片描述

4. Pointer Network

在这里插入图片描述

Sequence-to-sequence?
在这里插入图片描述
在这里插入图片描述
Problem?效果不好,而且训练的长度和测试的输入长度可能不一样

在这里插入图片描述

这样输入的数量变化,输出的数量也跟着变化

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
更多的应用——机器翻译、聊天机器人……

在这里插入图片描述

小结

这次课Conditional Generation by RNN & Attention:

  1. 从那个聊天很僵硬知道了条件生成的目的但是具体怎么解决?就是Attention(动态条件生成)吗难道
  2. Attent原理差不多知道什么意思了,需要编程动手实践一下;Memory Network和Neural Turing Machine一知半解的
  3. Scheduled Sampling就是train到后面,不用reference用model来train,可以防止出现没有的数据集;Beam Search就是为每个路径赋予一定的值,但是不可能遍历完,所以选最大的两个;强化学习提了一下,编程实现估计不简单
  4. Pointer Network提了一下,原理感觉和Attention差不多,但不像based model那样把Attention和输入向量相乘,而是直接输出输入的这个值,应用场景了解了一下,编程实现估计也用不太到

转载地址:http://bwtrn.baihongyu.com/

你可能感兴趣的文章
深入探究.Net Core Configuration读取配置的优先级
查看>>
Blazor带我重玩前端(六)
查看>>
使用 C# 捕获进程输出
查看>>
数据库单表千万行 LIKE 搜索优化手记
查看>>
.NET Core 中生成验证码
查看>>
.NET Core 中导入导出Excel
查看>>
初识ABP vNext(8):ABP特征管理
查看>>
WPF 消息框 TextBox 绑定新数据时让光标和滚动条跳到最下面
查看>>
【BCVP】实现基于 Redis 的消息队列
查看>>
网络安全逐渐成为程序员的必备技能
查看>>
统信发布UOS V20 进军个人市场 生态日益完善
查看>>
【追加功能】OFFICE插件管理工具重整后再上路,更好用易用。
查看>>
BeetleX框架详解-小结
查看>>
打造钉钉事件分发平台之钉钉审批等事件处理
查看>>
2020 中国开源年会(COSCon'20)再启程:开源向善(Open Source for Good)
查看>>
拥抱.NET 5,从自研微服务框架开始
查看>>
开源特训营 - Lesson 4 - 如何运营社区
查看>>
C# 中的 is 真的是越来越强大,越来越语义化
查看>>
简单理解CAP-BASE
查看>>
gRPC-微服务间通信实践
查看>>