一、注意力机制
1.定义 只处理重要的数据,用以对抗数据超载。
2.分类 自下而上:无需主动关注,对应汇聚(pooling)
自上而下:需要主动关注(带有问题)对应会聚(focus)
3.人工神经网络中的实现
文章图片
软性注意力机制:以概率分布为数据赋予不同的权重
①计算注意力分布α
文章图片
②根据α来计算信息的加权平均
文章图片
打分函数
文章图片
加性模型 | 文章图片 |
点积模型 | 文章图片 |
缩放点积模型 | 文章图片 |
双线性模型 | 文章图片 |
②键值对注意力:
文章图片
文章图片
其中(K,V)用以表示N个输入信息
③多头注意力:利用多个查询,同时从输入信息中选取多组信息,籍此每个注意力头可以关注不同的信息
文章图片
④结构化注意力:一般不用
5.指针网络 作为一个软性指针来指出相关信息的位置。一般协同其他神经网络使用
通过一个查询向量,与各个数据计算相似度,得出数据的位置。
也可单独使用,例如数据排序
【机器学习|神经网络(八)注意力机制与外部记忆】
文章图片
6.自注意力模型
文章图片
权重矩阵
文章图片
由注意力动态生成
QKV模式(引入三个参数,使得自注意力模型变得可学习)
文章图片
①输入序列矩阵化
文章图片
②生成三个向量序列Q
文章图片
,K
文章图片
,V
文章图片
③计算
文章图片
多头自注意力模型
文章图片
7.Transformer 自注意力模型的单独使用,但是并不能仅有自注意力,需要结合其他操作:位置编码、层归一化、直连边、逐位的FFN。
文章图片
主要用于建模局部连接,效率更高。
与CNN,RNN的对比分析
文章图片
二、记忆增强网络 1.记忆
文章图片
2.记忆增强神经网络
文章图片
记忆神经网络 = 主网络 + 外部记忆 + 读写操作
3.结构化的外部记忆单元 外部记忆的定义为矩阵M,N为记忆片段的数量,D为每个记忆片段的大小
读写操作:通过注意力机制实现。由查询向量 q 查找外部记忆中最相关的内容
4.基于神经动力学的联想记忆 由一个相关的输入查询内容,而不是由地址查询内容
文章图片
Hopfield网络:是一种记忆的存储和检索模型(属于全连接神经网络)
文章图片
仅S0时刻获取外部信息,直至迭代收敛后输出
更新过程:
①神经元自身无连接且具有对称性(
文章图片
)
②第 i 个神经元状态:
文章图片
若
文章图片
= -1其他情况
公式为其所有邻居的加权偏置
③
文章图片
Hopfield网络是稳定的(多次迭代后必定收敛),其中有一个标量属性,称为“能量”
文章图片
且
文章图片
(每迭代一次能力就会下降)
权重对称也是一个重要特征,保证了能量函数的单调递减,若不对称可能会导致周期性的震荡/混乱
联想记忆
文章图片
每次更新能量会下降,所以会是的迭代指向局部最优点。也就是所谓的吸引点,可以视为网络中存储的信息。
存储过程
文章图片
若两个神经元经常同时激活,则加强他们的连接;若不经常激活,则连接消失
相较于结构化外部记忆,具有更好的生物学特征
推荐阅读
- linux格式化磁盘挂载磁盘
- java|Django+haystack+whoosh+jieba全文检索实现
- 运维|redis哨兵机制
- Spring|Spring-IOC配置-依赖注入
- Java|霸占GitHub热榜的《Spring Cloud Alibaba源码笔记》果然“威力极大”
- JAVA后端面试|java 8 stream API
- 深度学习|【Yolov5在‘Segmentation-Based-Surface-Defect-Detection’上的验证】
- java|使用maven创建web项目
- 数据库|什么是“根创新”(从公交支付用上国产数据库说起)