Attention机制详解(深入浅出)

news2024/9/21 4:29:51

目录

  • 1. 为什么要有Attention
  • 2. Attention机制

我们都知道,对于人类来说注意力是非常重要的一件事。有了注意的能力我们才能在一个比较复杂的环境中, 把有限的注意力放到重要的地方

在这一节中,我们将了解如何使得我们的网络也具有产生注意力的能力,以及这样的注意力能够给网络表现带来怎样的改变。

1. 为什么要有Attention

让我们从循环神经网络的老大难问题——机器翻译问题入手。

我们知道,普通的用目标语言中的词语来代替原文中的对应词语是行不通的,因为从语言到另一种语言时词语的语序会发生变化。比如英语的“red”对应法语的“rouge”,英语的“dress”对应法语“robe”,但是英语的“red dress”对应法语的“robe rouge”。

为了解决这个问题,我们创造了Encoder-Decoder结构的循环神经网络。

  • 它先通过一个Encoder循环神经网络读入所有的待翻译句子中的单词,得到一个包含原文所有信息的中间隐藏层,接着把中间隐藏层状态输入Decoder网络,一个词一个词的输出翻译句子。
  • 这样子,无论输入中的关键词语有着怎样的先后次序,由于都被打包到中间层一起输入后方网络,我们的Encoder-Decoder网络都可以很好地处理这些词的输出位置和形式了。

在这里插入图片描述

但是问题在于,中间状态由于来自于输入网络最后的隐藏层,一般来说它是一个大小固定的向量。既然是大小固定的向量,那么它能储存的信息就是有限的,当句子长度不断变长,由于后方的decoder网络的所有信息都来自中间状态,中间状态需要表达的信息就越来越多。

如果句子的信息是在太多,我们的网络就有点把握不住了。比如现在你可以尝试把下面这句话一次性记住并且翻译成中文:

It was the best of times, it was the worst of times, it was the age of wisdom, it was the age of foolishness, it was the epoch of belief, it was the epoch of incredulity, it was the season of Light, it was the season of Darkness, it was the spring of hope, it was the winter of despair, we had everything before us, we had nothing before us, we were all going direct to Heaven, we were all going direct the other way — in short, the period was so far like the present period, that some of its noisiest authorities insisted on its being received, for good or for evil, in the superlative degree of comparison only.
.
– A Tale of Two Cities, Charles Dickens.

别说翻译了,对于人类而言,光是记住这个句子就有着不小的难度。如果不能一边翻译一边回头看,我们想要翻译出这个句子是相当不容易的。

Encoder-Decoder网络就像我们的短时记忆一样,存在着容量的上限,在语句信息量过大时,中间状态就作为一个信息的瓶颈阻碍翻译了。

可惜我们不能感受到Encoder-Decoder网络在翻译这个句子时的无奈。但是我们可以从人类这种翻译不同句子时集中注意力在不同的语句段的翻译方式中受到启发,得到循环神经网络中的Attention机制。

2. Attention机制

我们现在把Encoder网络中的隐藏层记为 h ( t ) h^{(t)} h(t) ,把Decoder网络中的隐藏层记为 H ( t ) H^{(t)} H(t),第 t t t 个输出词记为 y ( t ) y^{(t)} y(t),我们原先的Decoder网络中的式子就可以写做:
H ( t ) = f ( H ( t − 1 ) , y ( t − 1 ) ) H^{(t)}=f(H^{(t-1)}, y^{(t-1)}) H(t)=f(H(t1),y(t1))

我们要使得网络在翻译不同的句子时,可以注意到并利用原文中不同的词语和语句段,那我们就可以把Decoder网络式子写作:
H ( t ) = f ( H ( t − 1 ) , y ( t − 1 ) , C t ) H^{(t)}=f(H^{(t-1)}, y^{(t-1)}, C_t) H(t)=f(H(t1),y(t1),Ct)

其中 C t C_t Ct 指的是在时刻 t t t 的上下文向量(Context Vector)。我们把它定义为所有的原文隐藏层值 h ( t ) h^{(t)} h(t) 加权平均的结果 C t = ∑ i = 1 T x α t i h ( t ) C_t=\sum^{T_x}_{i=1}\alpha_{t_i}h^{(t)} Ct=i=1Txαtih(t),而如何分配权重就体现了输出这个 H ( t ) H^{(t)} H(t) 的时候,应该给哪些原文词语更高的注意力

在这里插入图片描述

我们给 h ( t ) h^{(t)} h(t) 分配的权重就叫做全局对齐权重(Global Alignment Weights)

参考资料:https://zhuanlan.zhihu.com/p/380892265

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

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

相关文章

47. 全排列 II

关上过去和未来的铁门,活在“今天”这个舱室中。 ——《人性的优点》 47. 全排列 II 给定一个可包含重复数字的序列 nums ,按任意顺序 返回所有不重复的全排列。 示例 1: 输入:nums [1,1,2] 输…

蓝桥杯嵌入式AT24C02

文章目录前言一、AT24C02原理图二、IIC通信协议三、代码编写1.拷贝官方驱动程序2.编写AT24C02读写函数1.查看AT24C02芯片手册确定AT24C02器件地址2.读函数编写3.写函数编写4.代码使用总结前言 本文将带大家了解IIC协议,并带大家编写AT24C02的驱动代码。 一、AT24C…

MySQL-MHA高可用配置及故障切换

文章目录一、MHA概述二、MHA的组成1、MHA Node(数据节点)2、MHA Manager(管理节点)3、MHA 的特点四、搭建步骤实验思路实验操作故障模拟故障切换备选主库的算法一、MHA概述 MHA(MasterHigh Availability)是…

Java搭建宝塔部署实战毕设项目SpringBoot大学生就业信息管理源码

大家好啊,我是测评君,欢迎来到web测评。 本期给大家带来一套Java开发的毕设项目SpringBoot大学生就业信息管理源码,适合拿来做毕业设计的同学。可以下载来研究学习一下,本期把这套系统分享给大家。 技术架构 技术框架&#xff1a…

(ICIP-2019)通过神经结构搜索进行视频动作识别

通过神经结构搜索进行视频动作识别 paper题目:VIDEO ACTION RECOGNITION VIA NEURAL ARCHITECTURE SEARCHING paper是奥卢大学发表在ICIP 2019的工作 paper地址:链接 ABSTRACT 深度神经网络在视频分析和理解方面取得了巨大成功。然而,设计高…

【Spring系列】- Spring循环依赖

Spring循环依赖 😄生命不息,写作不止 🔥 继续踏上学习之路,学之分享笔记 👊 总有一天我也能像各位大佬一样 🏆 一个有梦有戏的人 怒放吧德德 🌝分享学习心得,欢迎指正,大…

JMeter入门教程(11) --关联

文章目录1.任务背景2.任务目标3.任务实操1.任务背景 当JMeter执行脚本时,伪装成浏览器,然后根据脚本,把当初真的浏览器所发过的内容,再对网站服务器重新发送一遍,JMeter企图骗过服务器,让服务器以为它就是…

010. 递增子序列

1.题目链接: 491. 递增子序列 2.解题思路: 2.1.题目要求: 给你一个整数数组 nums ,找出并返回所有该数组中不同的递增子序列,递增子序列中 至少有两个元素 (数组可能有重复的元素,相等的元素排…

IDOC的状态

这篇文章介绍IDOC Status的概念和它们的用途,明确IDOC status的类别,看一下完整的状态列表,包括INBOUND和OUTBOUND,还有入站和出站iDoc处理时iDoc状态的顺序。 另外还有监控SAP IDOC status的工具,比如AIF,…

推特营销引流入门指南

一、关注 当您关注另一个Twitter用户时,您进行订阅,即可立即阅读其内容分享。因此,请评估您关注的人,尤其是刚开始时。跟踪新用户的一种简单方法是找到他们的个人资料,然后单击“关注”按钮。 Twitter对于那些疯狂点…

机器学习笔记之受限玻尔兹曼机(三)推断任务

机器学习笔记之受限玻尔兹曼机——推断任务引言回顾:受限玻尔兹曼机的模型表示推断任务求解——后验概率(posterior)基于隐变量的后验概率求解基于观测变量的后验概率求解受限玻尔兹曼机与神经网络的联系引言 上一节介绍了受限玻尔兹曼机的模型表示(Representation…

C++图书管理系统(管理员-读者)

C图书管理系统(管理员-读者) 一、设计一款文字式交互的图书管理系统,要求具备注册登录、浏览图书、借还图书等基本功能; 二、要求以外部文件的形式存储书籍信息、馆藏记录、借阅记录、用户信息等。【可参考提供的书籍清单】 三…

如何批量查询搜狗收录?提升搜狗收录8个方法介绍

如何批量查询搜狗收录? 批量查询搜狗收录的具体流程如下: 1、打开站长工具 2、在域名输入框添加需要查询的域名 3、在功能选择区勾选需要查询的功能(这里勾选搜狗是否收录,搜狗收录总数) 4、提交查询,等待查询结果 …

Android样式和主题背景

简介: 本文将简单介绍Android样式与主题背景的相关内容 文章目录前言一、样式二、主题背景三、样式层次结构四、创建并应用样式五、自定义默认主题六、添加特定于版本的样式七、常见的主题风格总结前言 借助 Android 中的样式和主题背景,我们可以将应用…

十五管还原炉舟皿自动卸料单元

目  录 摘要 Ⅰ 1 绪论 1 1.1 十五管还原炉舟皿产生和发展 1 1.2十五管还原炉舟皿的今天与明天 2 2 总体方案设计 4 2.1自动卸料单元的作用 4 2.2十五管还原炉舟皿自动卸料单元结构的选择 4 2.3设计技术参数: 7 2.4 自动卸料单元…

Python实现基于物品的协同过滤推荐算法构建电影推荐系统

说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后获取。 1.项目背景 基于物品的协同过滤推荐(Item-based CF)的假设原理为:跟你喜欢的东西…

python的数据可视化

python画图1.使用pyecharts画图1.1 画地图1.1.1 画2D中国地图1.1.2 画2D世界地图1.1.3 画3D世界地图1.2 pyecharts的三种图片渲染工具1.2.1 snapshot_selenium1.2.2 snapshot_phantomjs1.2.3 snapshot_pyppeteer1.3 词云图1.3.1依据图片渲染出指定形状的词云图1.3.2渲染出指定大…

基于Android的学生信息管理App设计(Android studio开发)

目 录 一、 题目选择(题目、选题意义) 3 二、 设计目的 3 1、 初衷 3 2、 结合实际 3 3、 使用工具 3 三、 最终页面效果展示 4 1、 登陆界面 4 2、 主界面 5 3、 各个功能模块 6 四、 各部分设计 11 1、活动页面Activity布局文件 11 2、Activity的编程 …

基于JSP网上书城的设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问…

Figma UI UX设计教程

Figma UI UX设计教程 使用 Figma 获得 UI 设计、用户界面、用户体验设计、UX 设计和网页设计方面的工作 课程英文名:Figma UI UX Design Essentials 此视频教程共10.0小时,中英双语字幕,画质清晰无水印,源码附件全 下载地址 课…