人工智能之注意力模型

article/2025/10/29 12:19:37

朋友们,如需转载请标明出处:人工智能AI技术的博客_CSDN博客-python系列教程,人工智能,程序人生领域博主

注意力模型

通过对教程中前面一些文章的学习,我们知道可以用上面的神经网络来实现机器翻译。假设要将一段法语句子翻译成英文句子。那么首先要将法语句子中的每一个单词都输入到绿色的编码网络中,然后紫色的解码网络才能开始输出英语单词。如果法语句子比较短,那么效果还是不错的,但是如果法语句子非常长,那么效果就越来越差。大概句子长度超过20个单词,翻译效果就越来越差了。例如下图中反映出了随着句子越来越长,Bleu score就越来越低了。

其实我们人类翻译时并不是读完整个句子后才翻译的。通常我们是读了一部分句子后,就可以翻译出一些内容了。打比方说英语句子“I love you”,当我们读到“I”这个单词时,就可以直接翻译出“我”这个单词了,因为信息已经足够,“I”翻译成“我”肯定没错。但是读到“love”时,不能直接在“我”后面加一个“爱”。因为有可能整个句子是“I love you too”。如果是这种情况,那么在“我”后面接着的应该是“也”字。“我也爱你”。也就是说,我们人类在翻译时,我们的注意力只需要集中在某一部分单词上就可以了。例如对于“我”这个词的翻译,只需要把注意力集中在“I”这个单词上就可以了。下面我们要介绍的注意力模型,就是对文章开头的模型的改良版本,这个改良后的注意力模型在翻译时就会像人类一样只关注部分输入单词。从而对较长的句子也能有很好的翻译效果。

注意力模型的第1个重要部分通常是一个双向的RNN,其实这个部分也就是一个编码网络,用来采集法语句子的特征信息。

然后用另一个RNN来生成英语单词,也就相当于解码网络。

在这个解码网络中,我们使用s来代表激活值,在编码网络中,我们使用a来代表激活值。大家可能注意到了,解码网络中,除了有s作为输入之外,还有另外一个输入c。这个c就来自于编码网络。这个c是基于编码网络中某些时间步的激活值a得来的,就像我们人类在翻译时只需要基于部分法语单词就可以给出相应翻译了。打比方说,为了翻译出第1个单词Jane,有可能基于了前面2个时间步的激活值。

具体基于哪些时间步的激活值,是由一组新的的参数来决定的,也就是图中镜头旁边的α(阿尔法alpha)。这里千万要注意呀,α(alpha)与我们的激活值的英文字母a很相似,但他们是两个不同的东西。而且图中只画出了三个时间步的α参数,但其实每一个时间步都有对应的参数α。这些参数决定了编码网络中各时间步的激活值在组成输入c时的占比,可能有些激活值的占比为0,例如在生成英语单词jane时,可能除了α<1,1>外α<1,2>外其它α参数都为0,因为只需要第1和第2个法语单词就可以确定第1个英语单词是jane了。同理,第2个英语单词可能基于另外一些法语单词。

本篇文章就先说到这里,下一篇文章我们再继续深入学习注意力模型。

注意力模型详述

上篇文章中我们简单地介绍了一下注意力模型,这种模型主要原理是通过一组新的参数α(阿尔法alpha)来决定应该基于编码网络中的哪些时间步的激活值来生成解码网络中的翻译结果。原理与模型的名字很匹配——将注意力集中在编码网络的某些时间步上,将注意力集中在输入句子的某些单词上。本篇文章我们继续学习注意力模型的一些细节。

编码网络通常使用双向GRU或双向LSTM(后者用得更多些)。因为是双向的,所以每一个时间步都有两个激活值。如下图所示,每一个时间步都有两个激活值,一个是往右传播时计算得出的,一个是往左传播时计算得出的。

在本文中我们会用t'来表示编码网络中时间步编号,而且为了简单起见我们用一个激活值符号来表示往右传播的激活值和往左传播的激活值。如下图所示。

下图展示了计算y<1>时的过程,也就是生成第一个翻译单词的过程。

图中解码网络的第一个时间步的输入c是基于参数α和编码网络每个时间步的激活值a生成的。公式如下

另外这个公式中的所有α参数相加起来必须等于1,也就是说要满足下面的公式。

从上面的两个公式也可以看出,参数α决定了编码网络中某个时间步是否起作用,例如,如果第3个时间步关联的参数α<1,3>为0的话,那么参数α<1,3>与激活值a<3>的乘积就为0,也就是说,在生成c<1>时会忽略掉激活值a<3>。

同理,生成第二个单词时如下图中的绿色部分所示

如何设置注意力权重

我们知道注意力模型的主要原理是通过一组新的参数α(阿尔法alpha)来决定应该基于编码网络中的哪些时间步的激活值来生成解码网络中的翻译结果。从上面这句话中就可以看出这组参数非常重要。因为他们决定了应该把注意力集中在哪里。这组参数可以叫做注意力权重。

那么这组参数的值是如何设置的呢?其实严格来说这些值不是人为设置的,而是由神经网络设置的。下面我就一步一步地给大家解释如何通过神经网络设置注意力权重。

注意力权重α(阿尔法alpha)的值可以由下面这个公式计算得来,这个公式确保了某一组注意力权重的值累加起来等于1。因为注意力权重的目的是要表明把注意力分配在编码网络中的哪些位置上,所以这些配额累加起来肯定是要等于1的。例如第1个时间步的值为0.6,说明占了60%,其余的时间步只有另外40%可以分配了。

公式中的t'上一篇文章我们已经说到了,它表示编码网络中时间步的编号,例如第1个时间步,第2个时间步,第3个时间步等等等。而t则表示解码网络中时间步的编号。公式中的e是由另外一个小型神经网络学习而来的,如下图所示。

从图中可以得知这个小型神经网络的输入是解码网络前一个时间步的激活值s以及编码网络中本时间步的激活值a。这里千万要注意呀,图中的是激活值a而不是注意力权重α。

也就是说这个e不是人为设置的值,而是由上面这种小型的神经网络学习而来的。感觉是不是很奇妙?在一个大型的神经网络中,还可以利用一个小型的神经网络来设置参数值。因为人为根本无法知道应该设置什么值,所以干脆用另外一个神经网络通过梯度下降来学习这些值。

这种通过另一个神经网络来学习参数的方法的一个缺点就是计算量很大,但是通常来说,机器翻译中输入句子的长度都不是特别长,所以计算量还是可以接受。当然也有很多研究人员在想办法减少计算量。


http://chatgpt.dhexx.cn/article/O7uBo25r.shtml

相关文章

注意力之双线性模型注意力

本文主要针对两篇论文&#xff1a;双线性注意力网络模型和深度模块化注意力进行总结&#xff0c;加上自己对其的理解。若有不足&#xff0c;还望指出。 论文地址&#xff1a; 双线性注意力网络 深度模块化注意力 项目地址&#xff1a; 双线性注意力网络 深度模块化注意力 0. 写…

注意力模型CBAM

论文&#xff1a;CBAM: Convolutional Block Attention Module Convolutional Block Attention Module (CBAM) 表示卷积模块的注意力机制模块。是一种结合了空间&#xff08;spatial&#xff09;和通道&#xff08;channel&#xff09;的注意力机制模块。相比于senet只关注通道…

注意力模块

目前主流的注意力机制可以分为以下三种&#xff1a;通道注意力、空间注意力以及自注意力&#xff08;Self-attention&#xff09; 通道域旨在显示的建模出不同通道之间的相关性&#xff0c;通过网络学习的方式来自动获取到每个特征通道的重要程度&#xff0c;最后再为每个通道…

注意力机制学习

注意力机制学习 学习于博客https://blog.csdn.net/weixin_44791964/article/details/121371986 1.Channel Attention 1.1 SeNet 对于输入进来的特征层&#xff0c;关注其每一个通道的权重&#xff0c;让网络关注它最需要关注的通道。【channel不变&#xff0c;h,w变】 代表…

一般注意力模型

文章目录 一般注意力模型注意力输入注意力输出 一般注意力模型 描述一般注意力模型&#xff0c;首先要描述可以使用注意力的模型的一般特征。我们将这种模型称为任务模型&#xff0c;如图&#xff1a; 这个模型接受一个输入&#xff0c;执行指定的任务&#xff0c;然后产生所…

深度学习中的注意力机制模型及代码实现(SE Attention、CBAM Attention)

目录 常用的注意力机制模型 SE Attention CBAM Attention CBAM Attention 模型结构​ CBAM Attention 代码实现&#xff08;Pytorch版&#xff09;&#xff1a; 注意力机制加到网络的哪里合适 常用的注意力机制模型 常用的注意力机制多为SE Attention和CBAM Attention。它…

深度学习笔记——Attention Model(注意力模型)学习总结

深度学习里的Attention model其实模拟的是人脑的注意力模型&#xff0c;举个例子来说&#xff0c;当我们观赏一幅画时&#xff0c;虽然我们可以看到整幅画的全貌&#xff0c;但是在我们深入仔细地观察时&#xff0c;其实眼睛聚焦的就只有很小的一块&#xff0c;这个时候人的大脑…

什么是注意力机制?

Attention机制在近几年来在图像&#xff0c;自然语言处理等领域中都取得了重要的突破&#xff0c;被证明有益于提高模型的性能。 Attention机制本身也是符合人脑和人眼的感知机制&#xff0c;这次我们主要以计算机视觉领域为例&#xff0c;讲述Attention机制的原理&#xff0c…

transformer 模型(self-attention自注意力)

transformer模型在《Attention is all you need》论文中提出 这篇论文主要亮点在于&#xff1a;1&#xff09;不同于以往主流机器翻译使用基于RNN的seq2seq模型框架&#xff0c;该论文用attention机制代替了RNN搭建了整个模型框架。2&#xff09;提出了多头注意力&#xff08;…

深度学习中的注意力机制模型ECANet

目录 ECANet简介 ECA Module ECANet 性能对比 ECANet简介 Efficient Channel Attention Module 简称 ECA&#xff0c;2020年 Qilong Wang等人提出的一种 高效通道注意力(ECA)模块 &#xff1b; 提出了一种 不降维的局部跨通道交互策略 &#xff0c;有效避免了降维对于通道…

注意力模型直观理解(Attention Model Intuition)

来源&#xff1a;Coursera吴恩达深度学习课程 本周的课程我们都在使用这个编码解码的构架&#xff08;a Encoder-Decoder architecture&#xff09;来完成机器翻译。当你使用RNN读一个句子&#xff0c;于是另一个会输出一个句子。注意力模型&#xff08;the Attention Model&a…

深度学习中的注意力机制

作者 | 张俊林 责编 | 何永灿 最近两年&#xff0c;注意力模型&#xff08;Attention Model&#xff09;被广泛使用在自然语言处理、图像识别及语音识别等各种不同类型的深度学习任务中&#xff0c;是深度学习技术中最值得关注与深入了解的核心技术之一。 本文以机器翻译为例&…

注意力模型---Attention Model

注意力模型---Attention Model 1、Soft Attention Mode1.1 什么是Soft Attention Mode1.1 公式介绍 2、四种注意力中的打分函数2.1 加性注意力&#xff08;additive attention&#xff09;2.2 点积注意力&#xff08;multiplicative attention&#xff09;与双线性注意力(MLB)2…

【机器学习】关于注意力模型(Attention-model)的理解和应用

注意力模型是近年来在序列处理领域新提出的机器学习方法&#xff0c;在语言翻译等领域取得了不错的效果。要想了解注意力模型&#xff0c;那么必须对现在的机器学习各领域有一定的了解&#xff0c;而且要了解encoder-decoder基本思想。 首先可以大致的概括下目前的机器学习尤其…

一文读懂计算机视觉中的注意力机制原理及其模型发展

作者&编辑 | 言有三 来源 | AI有道&#xff08;ID:yanyousan_ai&#xff09; 导读&#xff1a;Attention机制在近几年来在图像&#xff0c;自然语言处理等领域中都取得了重要的突破&#xff0c;被证明有益于提高模型的性能。Attention机制本身也是符合人脑和人眼的感知机制…

注意力模型(Attention Model)理解和实现

1. 直观感受和理解注意力模型 在我们视野中的物体只有少部分被我们关注到&#xff0c;在某一时刻我们眼睛的焦点只聚焦在某些物体上面&#xff0c;而不是视野中的全部物体&#xff0c;这是我们大脑的一个重要功能&#xff0c;能够使得我们有效过滤掉眼睛所获取的大量无用的视觉…

注意力模型(Attention Model)

八月的第一天&#xff0c;苏神yyds&#xff01; 来源&#xff1a;Coursera吴恩达深度学习课程 在注意力模型直观理解中我们看到注意力模型如何让一个神经网络只注意到一部分的输入句子。当它在生成句子的时候&#xff0c;更像人类翻译。让我们把这些想法转化成确切的式子&…

VOC 数据集格式的生成

VOC 数据集格式的生成 准备好以下文件 images里放置图片 labels里面放置标签 注&#xff1a;前面两行必须是 ignore 和 background labelme2voc.py 里放入以下代码 #!/usr/bin/env pythonfrom __future__ import print_functionimport argparse import glob import os impo…

voc数据集对有标签的数据集数据增强

voc数据集对有标签的数据集数据增强 安装依赖库和imgaug库Bounding Boxes实现读取原影像bounding boxes坐标生成变换序列bounding box 变化后坐标计算 使用示例数据准备设置文件路径设置增强次数设置增强参数修改xml文件中filename和path输出 完整代码 安装依赖库和imgaug库 在…

目标检测:PASCAL VOC 数据集简介

一、简介 PASCAL VOC 挑战赛主要有 Object Classification 、Object Detection、Object Segmentation、Human Layout、Action Classification 这几类子任务 PASCAL 主页 与 排行榜PASCAL VOC 2007 挑战赛主页 、PASCAL VOC 2012 挑战赛主页 、PASCAL VOC Evaluation Server PA…