【自然语言处理-二-attention注意力 是什么】

自然语言处理二-attention 注意力机制

  • 自然语言处理二-attention 注意力
    • 记忆能力
    • 回顾下RNN(也包括LSTM GRU)解决memory问题
    • 改进后基于attention注意力的model
      • match操作
      • softmax操作
      • softmax值与hidder layer的值做weight sum 计算和
      • 将计算出来的和作为memory,成为decoder输入的一部分
      • 依次计算decoder其他输入

自然语言处理二-attention 注意力

自然语言处理离不开attention的概念,当然attention的机制不仅仅用在自然语言处理。
那么attention到底是什么呢?Attention可以理解成一种记忆能力,而人工智能需要具备推理、人工智慧等能力,那记忆能力就必不可少。

记忆能力

记忆能力分为三种sensory memory、working memory、Long-term memory
Sensory memory记忆的时间很短,一般通过外界输入,比如眼睛和耳朵可以看到的东西
Working memory 真正感知世界的信息,选择人应该attention的东西,比如眼睛一瞬间可以看到很多东西,但我们会根据当下的需要,attention其中的一部分。
Long-term memory 真正要 处理 感知到的这些信息,还需要长期记忆,从长期记忆中提取到本次处理需要的信息,然后处理了后再encode到长期记忆中。比如说我们看到本次讲课的内容,需要回忆很久之前课程讲解的内容,消化后我们会再更新到长期记忆中。
整个过程就如下:
在这里插入图片描述

生物学上的注意力,也是遵从这个过程的。
在这里插入图片描述

Attention based的model如果对应于上述memory的处理过程,其实可以分为两部分:
1.第一部分是sensory memory和working memory之间,这部分用于处理模型的输入,用于关注模型中的部分输入。
2.第二部分是working memory和long-term之间,这部分也不陌生在老的模型,RNN和LSTM等模型中就具备这种记忆能力,但是这些模型有些缺点,越大的memory就意味着更多的参数,比如RNN中需要memory是K*K大小(K是memory size),参数过多很容易overfit(过拟合)。但是attention based的model就解决了这种问题,参加memory的size不会增加参数数量,这部分会在后面解释。

回顾下RNN(也包括LSTM GRU)解决memory问题

在这里插入图片描述

下面用RNN代表RNN LSTM GRU等,我们以前用RNN实现机器翻译是用的seq2seq的model,模型的实现架构如上图,这个里面是如何实现记忆能力的呢?
RNN中最后一个hidden layer的输出,作为解码器每一个单元的输入的一部分,也就是图中红框的部分,这就实现了解码的时候可以具有记忆功能了。但是最后一层的输出真的能代表整个输入的信息么?答案肯定是不能,所以我们有了新的模型,attention based的model

改进后基于attention注意力的model

这个model改进了上面RNN model的缺陷,增加了attention的处理。
要实现attention需要经过下面这些步骤

match操作

在这里插入图片描述

图中字符标识意义:
z0:vector(向量),相当于RNN中init的memory。
match:function(操作)
a 01 : 输入h1与z0经过match操作后的结果

这个match操作有很多不同的做法,不同的论文中不同:
1.cosine z 和h
2.一个小的nn的网络,input是z和h,输出是一个标量
3.hTWz,h的转置乘上一个矩阵W,乘上矩阵h

第2 3中是有参数的,该怎么学习获得呢?这部分下面会讲到。
用match操作对Encoder的hidden layer都计算一下,得到如下:
在这里插入图片描述

softmax操作

对上面得到的每一个a做softmax,目的是希望这些值的和是1。
在这里插入图片描述

值得注意的是,这些操作跟seq的长度是没有关系的。

softmax值与hidder layer的值做weight sum 计算和

也就是下图中c0
h1* a01+ h2*a02+ ...

上图以softmax计算出来为0.5 0.5 0.0 0.0为例,出来的结果就是右图的c0
这个结果就表示说,我们这次的输入更关注前面两个的输入。

将计算出来的和作为memory,成为decoder输入的一部分

在这里插入图片描述

获取到c0 与z0之后经过 attintion的model生成了Z1

这时候可以解答上面如果需要learn的参数问题了,因为我们知道输出应该是machine,通过反向传播调整这个值,可以依次调整c0 ,最终调整到match操作中的参数。

依次计算decoder其他输入

在这里插入图片描述

获得Z1后,继续与z0做相同的操作,与hidden layer做match,softmax等生成c1
在这里插入图片描述

然后依次计算,一直遇到结束符。

模型就这样具备了记忆能力,当然也有其缺陷,所以后来也产生了自注意,这部分在后面的文章中会继续介绍。

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

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

相关文章

C++ 学习之Set容器

C++ Set容器构造和赋值 在C++中,std::set是一个用于存储唯一元素的有序集合容器。下面介绍一下std::set容器的构造和赋值操作: 构造 std::set 默认构造函数: std::set<int> mySet; // 创建一个空的set使用初始化列表构造: std::set<int> mySet

【Java程序设计】【C00285】基于Springboot的游戏分享网站(有论文)

基于Springboot的游戏分享网站&#xff08;有论文&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于Springboot的游戏分享网站 本系统分为系统功能模块、管理员功能模块以及用户功能模块。 系统功能模块&#xff1a;在网站首页可以查看首页、游戏…

深入探究node搭建socket服务器

自从上篇中sokect实现了视频通话&#xff0c;但是是使用ws依赖库实现的服务端&#xff0c;所以最近再看ws源码&#xff0c;不看不知道&#xff0c;一看很惊讶。 接下来一点点记录一下&#xff0c;如何搭建一个简易的服务端socket&#xff0c;来实现上次的视频通讯。 搭建一个…

IP 电话

1 IP 电话概述 IP 电话是在互联网上传送多媒体信息。 多个英文同义词&#xff1a; VoIP (Voice over IP) Internet Telephony VON (Voice On the Net) 1.1 狭义的和广义的 IP 电话 狭义的 IP 电话&#xff1a;指在 IP 网络上打电话。 广义的 IP 电话&#xff1a;不仅仅是…

Linux学习方法-框架学习法——Linux应用程序编程框架

配套视频学习链接&#xff1a;https://www.bilibili.com/video/BV1HE411w7by?p4&vd_sourced488bc722b90657aaa06a1e8647eddfc 目录 Linux应用程序编程 Linux应用程序编程 Linux文件I/O(input/output) Linux文件I/O(五种I/O模型) Linux多进程 Linux多线程 网络通信(s…

【Spring】 AOP面向切面编程

文章目录 AOP是什么&#xff1f;一、AOP术语名词介绍二、Spring AOP框架介绍和关系梳理三、Spring AOP基于注解方式实现和细节3.1 Spring AOP底层技术组成3.2 初步实现3.3 获取通知细节信息3.4 切点表达式语法3.5 重用&#xff08;提取&#xff09;切点表达式3.6 环绕通知3.7 切…

真Unity3D编辑器Editor二次开发

IMGUI Editor Label 改变颜色 分享一个很神奇的颜色 一开始这么写&#xff0c;以为不行的&#xff0c; private void OnGUI()(){GUILayout.Label("<colorred>name:</color>ffdasilufoi");//。。。。 } 结果这么写又好了&#xff0c; private GUIStyle m…

【Leetcode】2583. 二叉树中的第 K 大层和

文章目录 题目思路代码结果 题目 题目链接 给你一棵二叉树的根节点 root 和一个正整数 k 。 树中的 层和 是指 同一层 上节点值的总和。 返回树中第 k 大的层和&#xff08;不一定不同&#xff09;。如果树少于 k 层&#xff0c;则返回 -1 。 注意&#xff0c;如果两个节点与根…

目标检测-Transformer-ViT和DETR

文章目录 前言一、ViT应用和结论结构及创新点 二、DETR应用和结论结构及创新点 总结 前言 随着Transformer爆火以来&#xff0c;NLP领域迎来了大模型时代&#xff0c;成为AI目前最先进和火爆的领域&#xff0c;介于Transformer的先进性&#xff0c;基于Transformer架构的CV模型…

大模型必备向量数据库-Milvus的安装过程

一、介绍 Milvus是一个开源的向量相似度搜索引擎&#xff0c;专注于大规模向量数据的快速相似度搜索。它提供了高效的向量索引和搜索功能&#xff0c;支持多种向量数据类型和查询方式。 作为一个专门设计用于处理输入向量查询的数据库&#xff0c;Milvus能够在万亿规模上对向量…

在项目中应用设计模式的实践指南

目录 ✨✨ 祝屏幕前的您天天开心&#xff0c;每天都有好运相伴。我们一起加油&#xff01;✨✨ &#x1f388;&#x1f388;作者主页&#xff1a; 喔的嘛呀&#x1f388;&#x1f388; 引言 一. 单例模式&#xff08;Singleton Pattern&#xff09; 1、实现单例模式的方式 1…

高刷电竞显示器 - HKC VG253KM

今天给大家分享一款高刷电竞显示器 - HKC VG253KM。 高刷电竞显示器 - HKC VG253KM源于雄鹰展翅翱翔的设计灵感&#xff0c;严格遵循黄金分割比例的蓝色点晴线条&#xff0c;加上雾面工艺及高低起伏错落有致的线条处理&#xff0c;在VG253KM的背部勾勒出宛若大鹏展翅的鹰翼图腾…