声明:文章是从本人公众号中复制而来,因此,想最新最快了解各类算法的家人,可关注我的VX公众号:python算法小当家,不定期会有很多免费代码分享~
目录
关于注意力机制(Attention)的研究与应用越来越多,这并不是空穴来风。可以说,注意力机制就像人的大脑皮层,让我们的模型更加智能化。
但是,这么多模型到底该怎么选择?今天小当家推出最全注意力机制全家桶,共10种结合注意力机制的模型,每种模型可以进行回归预测、时间序列预测,并且已经在真实数据上得到验证,代码注释也是十分清楚,适合新手!!!
01 数据集介绍(回归/时间序列)
针对不同的预测问题,不同的数据,同一种模型的数据格式是不一样的,这里主要分为回归预测和时间序列预测。下面我来一一介绍所用的数据。
回归预测(多输入单输出数据)中的示例数据如下。该数据集为共享单车共享单车租赁数据集。目标里为最后一列,其他都是输入特征
时间序列预测(多输入单输出数据)中的示例数据如下。该数据集为股票收盘价波动数据。目标里为最后一列,其他都是输入特征。
时间序列预测(单列数据)中的示例数据如下。该数据集为某市场指数价波动数据。目标列只有一列。
TIPs:替换数据十分方便,可以直接把自己的数据复制到示例数据表格中,只要把目标列放最后即可。同时,时间序列预测中还可以通过改变输出步长实现多步预测。
02 实验展示(回归/时间序列)
下面我们以BiLSTM-Attention为例,进行实验效果的展示。
1)回归预测(多输入单输出)
2)时间序列预测(多输入单输出)
后台后很多小伙伴私信关于多步预测的模型,那今天这个模型就能实现单步/多步预测。只需要修改代码中的最后一行,T=1为单步预测,T>1则为多步预测,其他代码并不需做修改,可视化也是根据步长自动调整。
# 调用函数,传入预测步数T
train_and_evaluate_model(T=2)
3)时间序列预测(单序列)
03 注意力机制原理介绍
注意力机制(Attention Mechanism)[1]是一种基于人类视觉注意力的思想,将输入序列中不同位置的信息赋予不同的权重,使得模型能够更加集中地关注有用的信息,从而提高模型的性能和效果。
具体地,注意力机制的实现通常包含以下 几个步骤:首先,对输入序列
进行编码,得到一组查询向量q;然后通过打分之间的相似度
,打分函数定义如下:
其中,V 、W 、U 均为参数待学习的矩阵。并利用 Softmax 函数进行归一化,得到每组输入向量 的权重ai,计算如下:
最后,根据权重和对应的值向量计算加权和, 得到最终的故障诊断分类输出 a。
[1]Vaswani A,Shazeer N,Parmar N,et al. Attention is all you need[J].Advances in neural information processing systems,2017,30.
04 代码获取
关注VX公众号python算法小当家,后台回复关键字,即可获得完整代码
注意力全家桶
可后台回复需求定制模型,看到秒回