[深度学习] Attention机制,一文搞懂从实例到原理
一 人类的视觉注意力
扩展阅读:
Attention and Augmented Recurrent Neural Networks【译文】
不用看数学公式!图解谷歌神经机器翻译核心部分:注意力机制
Attn: Illustrated Attention
Deep Reading | 从0到1再读注意力机制,此文必收藏!
从注意力模型的命名方式看,很明显其借鉴了人类的注意力机制,因此,我们首先简单介绍人类视觉的选择性注意力机制。
图1 人类的视觉注意力
视觉注意力机制是人类视觉所特有的大脑信号处理机制。人类视觉通过快速扫描全局图像,获得需要重点关注的目标区域,也就是一般所说的注意力焦点,而后对这一区域投入更多注意力资源,以获取更多所需要关注目标的细节信息,而抑制其他无用信息。
这是人类利用有限的注意力资源从大量信息中快速筛选出高价值信息的手段,是人类在长期进化中形成的一种生存机制,人类视觉注意力机制极大地提高了视觉信息处理的效率与准确性。
图1形象化展示了人类在看到一副图像时是如何高效分配有限的注意力资源的,其中红色区域表明视觉系统更关注的目标,很明显对于图1所示的场景,人们会把注意力更多投入到人的脸部,文本的标题以及文章首句等位置。
深度学习中的注意力机制从本质上讲和人类的选择性视觉注意力机制类似,核心目标也是从众多信息中选择出对当前任务目标更关键的信息。
Attention机制的应用
前文有述,Attention机制在深度学习的各种应用领域都有广泛的使用场景。上文在介绍过程中我们主要以自然语言处理中的机器翻译任务作为例子,下面分别再从图像处理领域和语音识别选择典型应用实例来对其应用做简单说明。
图13 图片-描述任务的Encoder-Decoder框架
图片描述(Image-Caption)是一种典型的图文结合的深度学习应用,输入一张图片,人工智能系统输出一句描述句子,语义等价地描述图片所示内容。很明显这种应用场景也可以使用Encoder-Decoder框架来解决任务目标,此时Encoder输入部分是一张图片,一般会用CNN来对图片进行特征抽取,Decoder部分使用RNN或者LSTM来输出自然语言句子(参考图13)。
此时如果加入Attention机制能够明显改善系统输出效果,Attention模型在这里起到了类似人类视觉选择性注意的机制,在输出某个实体单词的时候会将注意力焦点聚焦在图片中相应的区域上。图14给出了根据给定图片生成句子“A person is standing on a beach with a surfboard.”过程时每个单词对应图片中的注意力聚焦区域。
图14 图片生成句子中每个单词时的注意力聚焦区域
图15给出了另外四个例子形象地展示了这种过程,每个例子上方左侧是输入的原图,下方句子是人工智能系统自动产生的描述语句,上方右侧图展示了当AI系统产生语句中划横线单词的时候,对应图片中聚焦的位置区域。比如当输出单词dog的时候,AI系统会将注意力更多地分配给图片中小狗对应的位置。
图15 图像描述任务中Attention机制的聚焦作用
图16 语音识别中音频序列和输出字符之间的Attention
语音识别的任务目标是将语音流信号转换成文字,所以也是Encoder-Decoder的典型应用场景。Encoder部分的Source输入是语音流信号,Decoder部分输出语音对应的字符串流。
图16可视化地展示了在Encoder-Decoder框架中加入Attention机制后,当用户用语音说句子 how much would a woodchuck chuck 时,输入部分的声音特征信号和输出字符之间的注意力分配概率分布情况,颜色越深代表分配到的注意力概率越高。从图中可以看出,在这个场景下,Attention机制起到了将输出字符和输入语音信号进行对齐的功能。
上述内容仅仅选取了不同AI领域的几个典型Attention机制应用实例,Encoder-Decoder加Attention架构由于其卓越的实际效果,目前在深度学习领域里得到了广泛的使用,了解并熟练使用这一架构对于解决实际问题会有极大帮助。
原文:干货 | 关于深度学习中的注意力机制,这篇文章从实例到原理都帮你参透
https://zhuanlan.zhihu.com/p/37601161
[深度学习] Attention机制,一文搞懂从实例到原理相关推荐
- 【深度学习计算机指令系统,彻底搞懂指令十大寻址方式】
系列文章目录 1.<带你深挖计算机底层逻辑,打通你计算机基础知识的任督二脉> 2.<深度学习计算机底层原理,深度剖析存储器> 3.<基于内存全面理解高速缓冲存储器> ...
- 深度学习——attention机制
一.序列编码 目前主流的处理序列问题像机器翻译,文档摘要,对话系统,QA等都是encoder和decoder框架, 编码器:从单词序列到句子表示 解码器:从句子表示转化为单词序列分布 1.第一个基本的 ...
- 万字综述梳理ChatGPT----一文搞懂弄潮儿ChatGPT技术原理、行业现状、投资前景
本文是笔者自学ChatGPT的总结与思考,类型为综述文章,适合想全面了解ChatGPT或对人工智能感兴趣的小伙伴~~ 目录先行,自行找需,全文三万六千余字.分为三大模块,追求效率可跳转感兴趣部分直接开 ...
- 一文搞懂网卡驱动的原理与移植方法
1.网卡设备驱动原理 1.1 层次结构 Linux系统对网络设备驱动定义了4个层次, 这4个层次有到下分为: 1.网络协议接口层:实现统一的数据包收发的协议.该层主要负责调用dev_queue_xmi ...
- 一文搞懂TCP/IP 协议栈原理
转载自:https://www.toutiao.com/a6708509605044945421/?app=news_article_lite&is_hit_share_recommend=0 ...
- 一文搞懂CAS,CAS原理分析及ABA问题详解
什么是CAS CAS即Compare And Swap的缩写,翻译成中文就是比较并交换,其作用是让CPU比较内存中某个值是否和预期的值相同,如果相同则将这个值更新为新值,不相同则不做更新,也就是CAS ...
- 一文搞懂Linux 内存管理原理
导语 linux 内存是后台开发人员,需要深入了解的计算机资源.合理的使用内存,有助于提升机器的性能和稳定性.本文主要介绍 linux 内存组织结构和页面布局,内存碎片产生原因和优化算法,linux ...
- l293d电机驱动原理_一文搞懂步进电机特性、原理及驱动器设计
1.步进电机的概念 步进电机是将电脉冲信号,转变为角位移或线位移的开环控制电机,又称为脉冲电机.在非超载的情况下,电机的转速.停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响.当步进驱动 ...
- 一文搞懂一致性hash的原理和实现
在 go-zero 的分布式缓存系统分享里,Kevin 重点讲到过一致性hash的原理和分布式缓存中的实践.本文来详细讲讲一致性hash的原理和在 go-zero 中的实现. 以存储为例,在整个微服务 ...
最新文章
- 【Android】Touch事件分发
- Hive 正则匹配函数 regexp_extract
- under what circumstances, breakfast is essential
- 软件工程概论课堂作业3
- matlab练习程序(倾斜校正,透视变换)
- Android模拟登陆学信网获取四六级成绩
- java上传视频转格式,Java实现视频格式转化
- Java--网上银行登录及存取款业务模拟系统
- python 录屏_python实现录制全屏和选择区域录屏功能代码
- Docker - 单独搭建部署应用服务(Nginx+Php+Mysql+Redis)
- 机器学习之L1、L2的区别与相关数学基础知识
- 持续交付的软件系统架构
- java 三点_[Java教程]三点运算符使用方法
- 读书计划--2009年1月
- 常见项目管理组织机构简介
- Swift - lazy 修饰符和lazy 方法
- imx6ull平台视频相关-ipu的EOF中断响应过程及用户空间map视频存储过程
- 阿里巴巴的机器视觉有多强!ET城市大脑发布四大AI视觉产品
- 【踩坑笔记】从零开始在Linux和Windows部署安装 ***
- [益智]:消失的 1 元钱
热门文章
- SVN使用和解决方案
- Spring Security认证过程
- iOS:通过URL构件UIImage
- 院士倪光南:Win10不安全 中国必须用自主操作系统
- WAF指纹识别和XSS过滤器绕过技巧
- Exchange 2007 被 SMTP中继***一例
- 深入Java核心 Java内存分配原理精讲(3)
- 一起谈.NET技术,C#序列化与反序列化(Serializable and Deserialize)
- 巧用PowerShell维护Win2008服务器作业
- [原创].如何解决Nios II SBTE中出现的undefined reference to `xxx'警告