学习深度学习刚刚半年,可能对有些知识的把握不准确,如有错误,望包容。现在来谈一谈神经网络中的一个很重要的概念:注意力机制。
神经网络说白了就是 用电脑程序实现模拟人脑的功能,注意力机制只是其中的一部分。注意力机制(Attention Mechanism)源于对人类视觉的研究。在认知科学中,由于信息处理的瓶颈,人类会选择性地关注所有信息的一部分,同时忽略其他可见的信息。上述机制通常被称为注意力机制。谈到人类的注意力,我们可以想象自己上小学、初中、高中时,坐在教室里听老师讲课,如果你的注意力集中你就可以多学习一点东西,但如果你注意力不集中,上课老是跑神,学习的东西就会少一点。而且,你上课时的注意力会集中在你感兴趣的东西上面,比如你对科学方面的东西感兴趣,那么当老师讲到关于科学方面的知识时,你就会集中注意力去听,但是如果老师讲的是你不感兴趣的东西,那么你就不会把注意力放到这上面。这其实就是注意力机制的原理。
在神经网络训练时,他所提取的特征是随机的,也就是说,神经网络提取的特征,有的重要有的不重要,而我们想要的是那些重要的特征,所以我们就要用一个方法去增强哪些重要的特征,削弱那些不重要的特征,而这个方法就是添加注意力机制。举个例子,比如说我们现在写一个猫狗识别的二分类神经网络,在训练的图片中会有很多跟猫狗无关的东西,比如说背景中的小草、大树等等。这些都是与猫狗无关的东西,但是神经网络在训练的时候,很可能就把这些无关东西的特征都提取出来对分类造成了一定程度的影响。这时候,如果我们在网络中加入注意力机制,把那些与猫狗无关的特征削弱,把那些与猫和狗有关的特征增强,这样就会达到一个比原来的模型更好的 果。我们看下面的两张图片
左边这个图片我们一眼就能看出这是一条狗,对于右边的图片而言,虽然我们也能很容易的看出这是狗,但是我们在看这张图片时我们的注意力虽然有很大一部分放在了狗身上,但是还有一部分注意力放在了后面人身上,而这些都会影响图片分类的精确度。所以,对于图片本身而言,注意力机制就是将与类别标签无关的东西模糊化(削弱),使与类别标签有关的东西变得更清晰(增强)。这样会使图片更好区分,从而使分类精度提高。
以上就是注意力机制的原理,然而在应用中,注意力机制有很多种不同方式的实现,下面给出我所了解的这一种
上图是我目前了解的一种注意力机制的实现,可以看到,思路还是很简单的,让网络自己学习到权重矩阵,权重矩阵中就是每一个像素点的重要程度,经过相乘操作后,就会增强重要的部分削弱不重要的部分。这里面还用到了转置卷积的操作,转置卷积只是为了使特征图与原特征图的尺寸一样还不破坏空间结构。
这就是本文的全部内容,只是简单的谈一下注意力机制的原理,希望对你有帮助。