通道注意力机制keras_浅谈Attention机制的作用

前言

Attention机制是很好的一个东西,Attention机制在近几年来在图像,自然语言处理和cv等领域中都取得了重要的突破,被证明有益于提高模型的性能。让我们一起来了解下注意力机制吧。

什么是注意力机制

所谓Attention机制,便是聚焦于局部信息的机制,比如,图像中的某一个图像区域。随着任务的变化,注意力区域往往会发生变化。

面对上面这样的一张图,如果你只是从整体来看,只看到了很多人头,但是你拉近一个一个仔细看就了不得了,都是天才科学家。图中除了人脸之外的信息其实都是无用的,也做不了什么任务,Attention机制便是要找到这些最有用的信息,可以想到,最简单的场景就是从照片中检测人脸了。

注意力机制的本质就是定位到感兴趣的信息,抑制无用信息,结果通常都是以概率图或者概率特征向量的形式展示。

我们来看下这个例子可能久更加明白了:假设我们要翻译一句话:打电脑游戏,play computer game。

如果不引入注意力机制,那么我们从Encoder获得语义编码c之后,这个语义编码在Decoder中传递,其内容就和Encoder无关了。但是事实上我们希望在翻译打电脑游戏中的打的时候,我们更注意打->play的转换,此时我们希望Decoder更加注意Encoder从打中提取出来的特征。这就是注意力机制的概念,它的本意是让神经网络模型在做特定的事的时候可以注意到它需要注意的地方。

由于神经网络是一堆数字的传递,每个事物的特征也是由一堆数字组成的,比如打字的特征也是一堆数字,电脑的特征也是一堆数字,游戏的特征也是一堆数字,语义编码就是这么多特征的组合。

那么如何使得神经网络模型对某个内容进行注意呢?其实就是将改变不同内容的权重,当我们需要神经网络注意到打的时候,我们只需要提高打字的特征的权重就可以了。

假设函数 f 可以用于提取特征,函数 g 可以实现解码。那么如果我们要神经网络注意到打,可以通过如下方式进行。

空间注意力

空间域将原始图片中的空间信息变换到另一个空间中并保留了关键信息。

空间注意力的作者发明者认为之前通道pooling的方法太过于暴力,直接将信息合并会导致关键信息无法识别出来,所以提出了一个叫空间转换器(spatial transformer)的模块,将图片中的的空间域信息做对应的空间变换,从而能将关键的信息提取出来。

比如这个直观的实验图:

(a)列是原始的图片信息,其中第一个手写数字7没有做任何变换,第二个手写数字5,做了一定的旋转变化,而第三个手写数字6,加上了一些噪声信号;

(b)列中的彩色边框是学习到的spatial transformer的框盒(bounding

box),每一个框盒其实就是对应图片学习出来的一个spatial transformer;

©列中是通过spatial

transformer转换之后的特征图,可以看出7的关键区域被选择出来,5被旋转成为了正向的图片,6的噪声信息没有被识别进入。

对于时间步的注意力机制

ps:(我感觉cv里面叫空间注意力,不知道我理解错没,如果理解错了私信我)

1.数据集的制作

本次我们要进行的是 使用 注意力机制 + LSTM 进行时间序列预测

默认的 n = 30000, input_dim = 2 ,timesteps = 20。生成的数据为:


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部