Original url:
http://blog.csdn.net/zhangjunhit/article/details/78249184 Attention in Neural Networks and How to Use It http://akosiorek.github.io/ml/2017/10/14/visual-attention.html
这篇博文主要介绍神经网络中的注意力机制,代码实现了两个 soft visual attention
What is Attention? 首先来看看 注意力机制是什么? 在非形式化上,神经注意机制赋予神经网络关注其输入(或特征)子集的能力:它选择特定的输入。 注意力机制可以让一个神经网络能够只关注其输入的一部分信息,它能够选择特定的输入。
attention is implemented as f 是一个 attention network,其生成一个 attention vector a, 再讲 a 与输入 x 的 特征向量 z 相乘,这个 a 取值范围是 【0,1】,当我们说 soft attention 时,其取值是 0 到 1,当我们说 hard attention 其取值就只有 0 或 1。
为什么 attention 是重要的了?我们还有从 neural network 的本质说起, neural network 本质上就是一个 函数拟合器 function approximator,它的结构决定其可以拟合什么类型的函数,通常情况下输入向量彼此的作用方式只能是相加。典型的神经网络是由矩阵乘法和元素非线性构成的,其中输入或特征向量的元素仅通过加法相互作用。 但是 注意力机制可以让输入向量之间的作用方式是相乘 ,注意机制计算一个用于多重特征的掩码。 神经网络是一种通用的函数逼近器,可以对任意函数进行任意精度的逼近,但只能在无限个隐藏单元的极限内进行逼近。在任何实际的设置中,情况都不是这样:我们受到可以使用的隐藏单元数量的限制。注意力引入的 multiplicative interactions 可以让我们拟合更复杂的函数模型。 该模型在生成描述该部分的单词时,学习关注图像的特定部分
注意力机制扩展了神经网络的功能:它们允许逼近更复杂的函数,或者用更直观的术语来说,它们允许专注于输入的特定部分。