05.序列模型 W3.序列模型和注意力机制

文章目录

    • 1. 基础模型
    • 2. 选择最可能的句子
    • 3. 集束搜索(Beam Search)
    • 4. 改进集束搜索
    • 5. 集束搜索的误差分析
    • 6. Bleu 得分
    • 7. 注意力模型直观理解
    • 8. 注意力模型
    • 9. 语音识别(Speech recognition)
    • 10. 触发字检测(Trigger Word Detection)
    • 作业

参考:
吴恩达视频课
深度学习笔记

序列模型和注意力机制(Sequence models & Attention mechanism)

1. 基础模型

  • seq2seq : 语言翻译
  • image to sequence:图片描述

2. 选择最可能的句子


条件语言模型 和之前的 语言模型 一个主要的区别

  • 语言模型 随机地生成句子
  • 条件语言模型,你要找到最有可能的英语句子,但是句子组合数量过于巨大,需要一种合适的搜索算法,集束搜索(Beam Search)

3. 集束搜索(Beam Search)



在 集束宽为3时,集束搜索一次只考虑3个可能结果

如果集束宽等于1,就变成了贪心搜索算法
同时考虑多个可能的结果比如3个,10个或者其他的个数,集束搜索通常比贪婪搜索更好

4. 改进集束搜索

上节讲到 集束搜索 要选出条件概率最高的前 B 个,公式如下:
arg⁡max⁡y∏t=1TyP(y<t>∣x,y<1>,…,y<t−1>)\arg \max _{y} \prod_{t=1}^{T_{y}} P\left(y^{<t>} \mid x, y^{<1>}, \ldots, y^{<t-1>}\right)argymaxt=1TyP(y<t>x,y<1>,,y<t1>)
展开就是下面的式子:
P(y<2>∣X,y<1>)P(y<3>∣X,y<1>,y<2>)…P(y<Ty>∣X,y<1>,y<2>…y<Ty−1>)P\left(y^{<2>} \mid X, y^{<1>}\right) P\left(y^{<3>} \mid X, y^{<1>}, y^{<2>}\right) \ldots P\left(y^{<T_{y}>} \mid X, y^{<1>}, y^{<2>} \ldots y^{<T_{y}-1>}\right)P(y<2>X,y<1>)P(y<3>X,y<1>,y<2>)P(y<Ty>X,y<1>,y<2>y<Ty1>)

上式缺点:

  • 概率越乘越小,向下溢出
  • 式子倾向于给出更短的句子(概率相乘,没有那么小)

采用取 log 的式子

arg⁡max⁡y∑y=1Tylog⁡P(y<t>∣x,y<1>,…,y<t−1>)\arg \max _{y} \sum_{y=1}^{T_{y}} \log P\left(y^{<t>} \mid x, y^{<1>}, \ldots, y^{<t-1>}\right)argymaxy=1TylogP(y<t>x,y<1>,,y<t1>)

再对长度进行归一化:乘以系数

arg⁡max⁡y1Tyα∑y=1Tylog⁡P(y<t>∣x,y<1>,…,y<t−1>)\arg \max _{y} \frac{1}{T_y^{\alpha}}\sum_{y=1}^{T_{y}} \log P\left(y^{<t>} \mid x, y^{<1>}, \ldots, y^{<t-1>}\right)argymaxTyα1y=1TylogP(y<t>x,y<1>,,y<t1>)

超参数 α=0.7\alpha = 0.7α=0.7 常用,0 没有归一化,1 完全由长度来归一化

注意:集束搜索 不一定搜到的是最优解,是一种启发式搜索算法,达到较好的效果


如何选择束宽 B

  • B 越大,输出句子越好,计算代价也大,内存占用大
  • B 较小,输出效果没那么好,计算快些,内存占用小,产品中常见 B = 10,科研看情况可以取大些,效果好,好发文章

5. 集束搜索的误差分析

怎样才能发现是 Beam搜索 算法出现了问题,还是你的 RNN模型 出了问题?


分析哪种错误更多:

  • Beam搜索 算法造成了大部分错误时,才值得花费努力增大集束宽度
  • RNN模型 出了更多错,可以进行更深层次的分析,来决定是需要增加正则化还是获取更多的训练数据,抑或是尝试一个不同的网络结构,或是其他方案。(见第三门课)

6. Bleu 得分

机器翻译(machine translation)的一大难题是一个法语句子可以有多种英文翻译而且都同样好,所以当有多个同样好的答案时,怎样评估一个机器翻译系统呢?

BLEU得分背后的理念:观察机器生成的翻译,然后看生成的词是否出现在 至少一个人工翻译参考之中

短的语句更容易有 更高的Bleu 得分(较大的概率:语句中的词语都在 参考语句中),为了平衡这种情况,使用 “简短惩罚”( brevity penalty)

BLEU得分 是一个有用的单一实数评估指标,用于评估生成文本的算法,判断输出的结果是否与人工写出的参考文本的含义相似。

常用于 机器翻译,图像描述, Bleu 有很多开源实现,可以直接下载来用

7. 注意力模型直观理解


注意力权重,a<t,t>a^{<t,t>}a<t,t> 告诉你,当你尝试生成第 ttt 个英文词,它应该花多少注意力在第 ttt 个法语词上面。

当生成一个特定的英文词时,这允许它在每个时间步去看周围词距内的法语词要花多少注意力。

8. 注意力模型

注意力模型如何让一个神经网络只注意到一部分的输入句子。当它在生成句子的时候,更像人类翻译

9. 语音识别(Speech recognition)


10. 触发字检测(Trigger Word Detection)

设备唤醒:手机助理,汽车中控唤醒等

Finish!

作业

作业:机器翻译+触发词检测


本文地址:https://michael.blog.csdn.net/article/details/108908470

我的CSDN博客地址 https://michael.blog.csdn.net/

长按或扫码关注我的公众号(Michael阿明),一起加油、一起学习进步!
Michael阿明

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/473799.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

决策树-分类算法

决策树-分类算法 1 认识决策树 决策树是一种基本的分类方法&#xff0c;也可以用于回归。我们一般只讨论用于分类的决策树。决策树模型呈树形结构&#xff0c;在分类问题中&#xff0c;表示基于特征对实例进行分类的过程&#xff0c;它可以认为是if-then规则的集合。在决策树…

在Visual Studio中利用NTVS创建Pomelo项目

刚看新闻&#xff0c;才知道微软发布了Node.js Tools for Visual Studio&#xff08;NTVS&#xff09;&#xff0c;受够了WebStorm输入法Bug的困扰&#xff0c;这下终于可以解脱了。以Pomelo为例&#xff0c;运行命令&#xff1a;pomelo init pomelo_test&#xff0c;生成一个默…

LeetCode 834. 树中距离之和(树上DP)*

文章目录1. 题目2. 解题1. 题目 给定一个无向、连通的树。树中有 N 个标记为 0...N-1 的节点以及 N-1 条边 。 第 i 条边连接节点 edges[i][0] 和 edges[i][1] 。 返回一个表示节点 i 与其他所有节点距离之和的列表 ans。 示例 1: 输入: N 6, edges [[0,1],[0,2],[2,3],[…

随机森林-集成学习方法(分类)

随机森林-集成学习方法&#xff08;分类&#xff09; 1 集成学习方法 集成学习通过建立几个模型组合的来解决单一预测问题。它的工作原理是生成多个分类器/模型&#xff0c;各自独立地学习和作出预测。这些预测最后结合成单预测&#xff0c;因此优于任何一个单分类的做出预测…

05.序列模型 W3.序列模型和注意力机制(作业:机器翻译+触发词检测)

文章目录作业1&#xff1a;机器翻译1. 日期转换1.1 数据集2. 用注意力模型进行机器翻译2.1 注意力机制3. 可视化注意力作业2&#xff1a;触发词检测1. 数据合成&#xff1a;创建语音数据集1.1 听一下数据1.2 音频转频谱1.3 生成一个训练样本1.4 全部训练集1.5 开发集2. 模型2.1…

线性回归分析-回归算法

线性回归分析-回归算法 1 回归算法 机器学习中监督学习算法分为分类算法和回归算法两种&#xff0c;其实就是根据类别标签分布类型为离散型、连续性而定义的。回归算法用于目标是连续的&#xff0c;在指定区间内可以是任意一个数值&#xff0c;针对的是数值型的样本&#xff0…

拟合与岭回归

目录 拟合与岭回归 1 什么是过拟合与欠拟合 2 模型复杂度 3 鉴别欠拟合与过拟合 4 过拟合解决方法 5 岭回归&#xff08;Ridge&#xff09; 6 模型的保存与加载 拟合与岭回归 1 什么是过拟合与欠拟合 通过下面两张图来解释过拟合和欠拟合&#xff1a; 左图中机器通过这…

LeetCode 778. 水位上升的泳池中游泳(二分查找+dfs)

文章目录1. 题目2. 解题1. 题目 在一个 N x N 的坐标方格 grid 中&#xff0c;每一个方格的值 grid[i][j] 表示在位置 (i,j) 的平台高度。 现在开始下雨了。当时间为 t 时&#xff0c;此时雨水导致水池中任意位置的水位为 t 。 你可以从一个平台游向四周相邻的任意一个平台&a…

pycharm快捷键、常用设置、配置管理

内容包含&#xff1a; pycharm学习技巧 Learning tips PyCharm3.0默认快捷键(翻译的) pycharm常用设置 pycharm环境和路径配置 Pycharm实用拓展功能&#xff1a;pycharm中清除已编译.pyc中间文件 python2转python3最快方式 [pycharm版本控制和数据库管理][PyCharm中的那些实用功…

逻辑回归-分类算法

目录 逻辑回归-分类算法 1 概述 2 sigmoid函数 3 逻辑回归公式 4 逻辑回归的损失函数 5 均方误差与对数自然损失对比 6 sklearn逻辑回归API 7 案例 8 总结 逻辑回归-分类算法 1 概述 逻辑回归&#xff08;Logistic Regression&#xff09;&#xff0c;简称LR。它的特…

LeetCode 1220. 统计元音字母序列的数目(DP)

文章目录1. 题目2. 解题1. 题目 给你一个整数 n&#xff0c;请你帮忙统计一下我们可以按下述规则形成多少个长度为 n 的字符串&#xff1a; - 字符串中的每个字符都应当是小写元音字母&#xff08;a, e, i, o, u&#xff09; - 每个元音 a 后面都只能跟着 e - 每个元音 e 后面…

Django视图(python函数)

1.视图 视图负责接受Web请求HttpRequest&#xff0c;进行逻辑处理&#xff0c;返回Web响应HttpResponse给请求者响应可以是一张网页的HTML内容&#xff0c;一个重定向&#xff0c;一个404错误等 视图就是python中的函数视图一般被定义在“应用/views.py”文件中 视图的第一个…

非监督学习

非监督学习 1 什么是非监(unsupervised learning)督学习 无监督学习&#xff0c;就是不受监督的学习&#xff0c;一种自由的学习方式。该学习方式不需要先验知识进行指导&#xff0c;而是不断地自我认知&#xff0c;自我巩固&#xff0c;最后进行自我归纳&#xff0c;在机器学…

LeetCode 1250. 检查「好数组」(set / 最大公约数)

文章目录1. 题目2. 解题1. 题目 给你一个正整数数组 nums&#xff0c;你需要从中任选一些子集&#xff0c;然后将子集中每一个数乘以一个 任意整数&#xff0c;并求出他们的和。 假如该和结果为 1&#xff0c;那么原数组就是一个「好数组」&#xff0c;则返回 True&#xff1…

用户画像系统

用户画像系统 1 用户画像概述 1.1 什么是用户画像 用户画像就是对现实世界中用户的数学建模。现实世界的用户通过自己各种各样的行为&#xff0c;浏览购买&#xff0c;或者收藏&#xff0c;等等这些行为会把自己的兴趣爱好等体现在这些行为中&#xff0c;比如喜欢看书就会有…

编程思想:面向对象和面向过程

何谓面向对象&#xff1f;何谓面向过程&#xff1f;对于这编程界的两大思想&#xff0c;一直贯穿在我们学习和工作当中。我们知道面向过程和面向对象&#xff0c;但要让我们讲出来个所以然&#xff0c;又感觉是不知从何说起&#xff0c;最后可能也只会说出一句就是那样啦&#…

LeetCode 1210. 穿过迷宫的最少移动次数(状态压缩BFS)

文章目录1. 题目2. 解题1. 题目 你还记得那条风靡全球的贪吃蛇吗&#xff1f; 我们在一个 n*n 的网格上构建了新的迷宫地图&#xff0c;蛇的长度为 2&#xff0c;也就是说它会占去两个单元格。 蛇会从左上角&#xff08;(0, 0) 和 (0, 1)&#xff09;开始移动。 我们用 0 表示…

Django模板(编写html代码

1.模板 用于编写html代码&#xff0c;还可以嵌入模板代码更快更方便的完成页面开发&#xff0c;再通过在视图中渲染模板&#xff0c;将生成最终的html字符串返回给客户端浏览器 模版致力于表达外观&#xff0c;一个视图可以使用任意一个模板&#xff0c;一个模板可以供多个视图…

用户画像之Spark ML实现

用户画像之Spark ML实现 1 Spark ML简单介绍 Spark ML是面向DataFrame编程的。Spark的核心开发是基于RDD&#xff08;弹性分布式数据集&#xff09;&#xff0c;但是RDD&#xff0c;但是RDD的处理并不是非常灵活&#xff0c;如果要做一些结构化的处理&#xff0c;将RDD转换成…

[Kaggle] Digit Recognizer 手写数字识别(神经网络)

文章目录1. baseline2. 改进2.1 增加训练时间2.2 更改网络结构Digit Recognizer 练习地址 相关博文&#xff1a; [Hands On ML] 3. 分类&#xff08;MNIST手写数字预测&#xff09; [Kaggle] Digit Recognizer 手写数字识别 1. baseline 导入包 import tensorflow as tf fr…