Scaled Dot-Product Self-Attention
对输入 X (L×D)
:
Q=XWq, K=XWk, V=XWv
(均为 L×D
)。S = QK^T / sqrt(D)
(L×L
)。S
每行做 softmax 得到注意力矩阵 A
。某工业制造企业在其生产线上部署了多台传感器以监控关键设备(如电机、泵、压缩机等)的运行状态。这些传感器周期性地采集设备的多维度运行数据(如温度、振动、压力、电流、转速等),每隔固定时间窗口会生成一组时序特征数据。为了实现设备早期故障预警,需要对每一组采集到时序数据进行异常检测和评分。工程师们通过人工标记历史数据集,训练出一套多层自注意力(Self−Attention)+多层全连接层(FC)结构的神经网管模型。现在,为了模型的快速部罢与测试,需要根据题目中给定的网络权重参数,编写代码完成端到端推理,输出每一组传感器时序数据的最终导常分数。结构如下图所示:
具体说明如下:
每一组采集数据为一个二维矩阵,尺寸为L,L采样时序长度,D为每次采样包含的特征数(如:10个时间点、每点5个特征)。
网络结构为:两层Self−Attention,每层后接全连接层FC,最终输出异常分数。为简化起见,网络中无非线性激活函数。
Self−Attenton采用Dot−productAttention,计算公式如下:$\operatorname{Attention}(Q, K, V)=\operatorname{softmax}\left(\frac{Q K^{T}}{\sqrt{d_{k}}}\right) V$
第一行:序列长度 L∈[1,10]、特征维度D∈[1,10]
第二行:输入序列,L×D个数
第3~5行:第一层SeIfAttention参数Wq1,Wk1,Wv1每行D×D个数
第6行:第-层FC参数Wfc1 ,D×D 个数
第7行:第一层FC偏置 bfc1,D 个数
第8~10行:第二层Self−Attention参数Wq2,Wk2,Wv2,每行D×D个数
第11行:第层FC参数Wfc2,D×D个数
第12行:第二层FC编置bfc2,D个数
一行,即最终FC输出,L×D个数
注:数据间用返号隔开,输出结果均保留2位小数
输入
4,1
1.00,-3.00,9.50,6.50
-0.20
0.45
-0.20
0.60
0.15
0.23
-0.34
0.50
-0.32
0.05
输出
0.04,0.04,0.05,0.05
输入:
首行:4 1表示序列长度L=4,特征维度D=1
第二行:1.00,−3.00,9.50,6.50
输入序列为4×1=4,即4个时刻的传感器数据
第3~5行:第一层SelfAttention参数Wq1,Wk1,Wv1(每行1个数)
第6行:第一层FC参数Wfc1(1个数)
第7行:第一层FC偏置 bfc1(1个数)
第8~10行:第二层Self−Attention参数Wq2,Wk2,WV2(每行1个数)
第11行:第二层FC参数 Wfc2(1个数)
第12行:第二层FC偏置 bfc2(1个数)
输出:
最终FC输出的4×1=4个数,英文逗号分隔。
输入
2,2
1.00,2.00,3.00,4.00
0.10,0.20,0.30,0.40
-0.10,-0.20,-0.30,-0.40
0.50,0.60,0.70,0.80
-0.50,-0.60,-0.70,-0.80
0.01,0.02
0.11,0.12,0.13,0.14
-0.11,-0.12,-0.13,-0.14
0.21,0.22,0.23,0.24
-0.21,-0.22,-0.23,-0.24
0.03,0.04
输出
0.66,0.69,0.66,0.69
输入:
首行:2 2表示序列长度L=2,特征维度D=2
第二行:1.00,2.00,3.00,4.00
输入序列为2×2,分别为第1时刻(1.00,2.00),第2时刻(3.00,4.00)
第3~5行:第一层SelfAttention参数Wq1,Wk1,Wv1(每行2×2个数)
第6行:第一层FC参数Wfc1(2×2个数)
第7行:第一层FC偏置 bfc1(2个数)
第8~10行:第二层Self−Attention参数Wq2,Wk2,WV2(每行2×2个数)
第11行:第二层FC参数 Wfc2(2×2个数)
第12行:第二层FC偏置 bfc2(2个数)
输出:
最终FC输出的2×2=4个数,英文逗号分隔。