机器学习周报第26周

摘要

本周学习了简化attention计算量的一些方法,包括Local Attention、Stride Attention、Global Attention、Clustering、Learnable pattern、(V*K)*Q以及Synthesizer。这些方法有些是从减少Attention Matrix的计算量入手,有些是从改变Attention的矩阵相乘顺序入手,还有一些甚至完全抛弃矩阵乘法直接由机器学习attention。
本周还阅读了一篇使用EMD和LSTM进行水质预测的文章,主要了解到了EMD这项数据预处理技术,该技术允许离群值和非对齐数据发挥积极作用,有助于捕获数据模式。同时也用代码实现了EMD分解一个函数。

Abstract

This week, we learned about several methods to simplify the computation of attention, including Local Attention, Stride Attention, Global Attention, Clustering, Learnable pattern, (V*K)*Q, and Synthesizer. Some of these methods reduce the computation of the Attention Matrix, some change the order of matrix multiplication in Attention, and some even completely abandon matrix multiplication, allowing the machine to learn attention.

We also read a paper on water quality prediction using EMD and LSTM, which mainly introduced the EMD data preprocessing technique. This technique allows outliers and non-aligned data to play a positive role, helping to capture data patterns. We also implemented EMD decomposition of a function using code.

一、文献阅读

论文标题:Accurate prediction of water quality in urban drainage network with integrated EMD-LSTM model

论文摘要:快速准确地掌握排水管网中的水质,对于城市水环境的管理和预警至关重要。基于建模的检测方法能够基于廉价的多源数据进行快速且无需试剂的水质检测,这比传统的基于化学反应的检测方法更清洁、更可持续。但不令人满意的准确性限制了它们的实际应用。该文提出一种融合EMD-LSTM模型,该模型将以经验模态分解(EMD)为中心的数据预处理模块与长短期记忆(LSTM)神经网络预测模块相结合,以提高基于建模的检测方法的精度。在集成的EMD-LSTM模型中,EMD允许保留异常值并利用非对齐时刻的数据,这有助于捕获数据模式,而LSTM神经网络强大的非线性映射和学习能力可以对水质进行时间序列预测。

过去方案:多种指标反映了排水管网中的水质。COD、TP、TN等一些指标尤为重要,因为它们与水环境的健康密切相关。但这些指标往往依赖于基于化学反应的检测方法,这需要至少20分钟的检测时间和连续的试剂消耗。高昂的资金成本和时间成本使这些指标被视为高成本指标 (HCI)。事实证明,城市排水管网中水质的HCI会受到各种因素的影响,例如人口和温度,这些因素很容易被收集。基于廉价的城市多源数据建立模型,间接检测排水管网水质的HCIs是可行的。过去,研究人员开发了一系列基于模型的检测方法,具有低成本、无二次污染等优势,例如一系列基于经验、动力学、数据驱动的水质检测模型。这些方法只需要很少的参数,并且可以进行更清洁和可持续的水质检测。但其准确性不尽如人意,可归因于其处理非线性、非平稳水质时间序列的能力较差。

深度学习算法因其强大的非线性映射和学习能力而成为近年来最流行的数据驱动建模算法。在深度学习算法中,LSTM神经网络又因其独特的门结构而特别擅长处理时间序列,使其能够捕获时间序列中的长期依赖关系。使用LSTM神经网络作为建模算法是提高基于建模的水质检测精度的有效途径。尽管深度学习算法性能强大,但仍有未解决的问题,尤其是数据预处理导致的大量有效数据浪费。这个问题困扰着所有数据驱动的模型。报告表明,过滤异常值和去除非对齐时刻数据(即非对齐数据)的操作已广泛应用于数据预处理过程中,但过滤准确的离群值会破坏原始数据的特征(如连续性),不利于后续模型捕获数据模式。由于时间序列相邻值之间的密切关系,非对齐数据是优化对齐时刻数据(即对齐数据)的良好基础。设计一个预处理程序,有效地利用准确的异常值和非对齐数据是必要的。时频变换技术可以将时间序列转换成不同频率的分量。过滤掉代表噪声或对原始数据贡献不大的成分可以减少噪声。这意味着时频变换算法允许保留异常值并通过非对齐数据优化对齐数据。值得一提的是,一些时频变换技术,如短时傅立叶变换(STFT)和小波变换(WT),不适合分析非平稳时间序列。原因是它们的基函数在变换过程中不能改变。经验模态分解(EMD)有效地克服了这一困难。在数据预处理过程中应用时频变换算法以允许离群值和非对齐数据发挥积极作用是一种新颖的尝试。

论文方案:本文提出了以EMD为中心的数据预处理模块和LSTM预测模块相结合的城市排水管网水质HCI综合预测模型。本文的本质是探索一种更准确的基于建模的实际应用的水质检测方法,这符合市场对更清洁、更可持续的水质检测的需求。将EMD应用于数据预处理过程,提高数据利用效率,是EMD-LSTM综合模型提高预测精度的理论基础。

如Fig.1所示,多源混频数据集为EMD-LSTM模型提供了测试数据。根据获取数据所需的时间和经济成本,将15个指标分为两部分,LCIs(L1,L2,…,L10)作为模型输入,HCIs(H1,H2,…,H5)作为模型输出。对所有指标进行基本预处理,包括清洗、填充和归一化。值得一提的是,仅清理了由于仪器故障导致的连续缺失值和异常值。用插值法填充单个缺失值。Min-max归一化方法将所有指标归一化,消除数值差异,如式(1)所示。对每个LCI进行EMD。对于在此分解中获得的分量,代表噪声或具有低贡献的部分被去除。将剩余成分相加,形成优化后的LCIs(L1’,L2’,…,L10’)。在预处理程序结束时,高频指标根据低频指标的频率进行对齐。在移除高频指标之前,将频率对准放置在EMD之后,以确保高频指标中频率不匹配的部分有助于EMD。

在这里插入图片描述

二、复习

2.1 How to make self-attention efficient?

回顾所学的知识,当一个Self-Attention所处理的序列长度为N时,其内部的query和key的长度也为N,此时Attention Matrix就等于N\times N。因此,当N越大时,Attention内部的Attention Matrix越大,计算的复杂程度越高。
在这里插入图片描述

2.2 Skip some calculations with human knowledge

第一种方法是只让Self-Attention计算Attention Matrix中的部分值,另一部分的值由人类经验与认知值来补充。
比如说,让序列的每一个成员只考虑其附近成员的值,也就是将其query值与较远成员的key值的乘积直接设为零。这样的处理方式类似于CNN。
在这里插入图片描述
再比如说,让序列的成员每隔一定数量的成员考虑一次对应位置成员的值,也就是跳跃式地进行query和key的product。步长为1和2的Attention Matrix如下图所示。
在这里插入图片描述
还比如说,在序列中加入Special Token,表示在这个位置要做Global Attention。 Global Attention主要做两件事,第一件事是让Special Token收集全局信息,也就是要考虑序列的每一个Token。第二件事是让Special Token被序列的每一个Token所考虑。实现Global Attention有两种方式,其一为在序列原有的Token中选一些作为Special Token。其二为外加Special Token,在计算Attention Matrix时,只考虑Special Token的query乘Token的key以及Special Token的key乘Token的query,而Token之间的query与Token之积不予计算。
在这里插入图片描述
总的来说,Global Attention的作用可以类比为一个村庄,村民(Token)之间互不相识,而每一个村民(Token)都认识村长(Special Token),且村长(Special Token)都认识每一个村民(Token),因此村民(Token)之间的交流通过村长(Special Token)来实现。
上述三种减少Attention Matrix计算量的方法可以同时被使用,只要让Multi-head Self-Attention的不同head使用这三种不同方法即可。例如Longformer模型同时使用了Local Attention、Stride Attention以及Global Attention。Big Bird模型同时使用了Local Attention、Global Attention以及Random Attention(随机计算Attention Matrix的部分值)。
在这里插入图片描述
第二种方法是让head只计算那些Attention Matrix中值较大的地方,对于值较小的地方则直接设置为0或者任意一个小到不会对结果产生多大影响的值。这种方法最大的问题在于如何快速估计出哪些地方的值是较小的。
在这里插入图片描述
在两篇论文,Reformer和Routing Transformer,中都用到了一种名为Clustering的技术来解决上述问题。Clustering步骤如下,首先将Input Sequence的query和key全都拿出来,根据相似程度将query和key进行分类,相近的归为一类(一个类别中可以有多个query和key)。这个估计聚类的过程必须是快速的,否则时间复杂度与Input Sequence的长度的平方相关就失去了意义。
在这里插入图片描述
然后,在Attention Matrix只计算同一类别的query和key的product,不同类别的query和key的product则直接设为0。这种情况下会有大量值被免去了计算过程,加快了Attention的速度。
在这里插入图片描述
哪些query和key的product需要被计算也可以让机器来决定,一个方法是Sinkhorn Sorting Network,它直接预测哪些地方要不要计算attention,产生一个1-0矩阵,下图中深色位置是1,代表要计算attention weight,浅色位置是0,代表不计算attention weight。Sinkhorn Sorting Network的具体做法是learn另外一个network来决定这个1-0矩阵。新的network会input一个sequence,sequence中每个位置的vector都输出一个跟sequence长度一致的vector。Sequence中每个位置都产生一个vector,拼起来就产生一个N×N的矩阵。然后将这个矩阵通过某种计算变成一个1-0矩阵,并且保证这个计算过程可以微分。
在这里插入图片描述
在Linformer这篇论文中指出,在一个Attention Matrix中其实存在大量重复计算的列,将这些重复计算的列去除也能减少Attention的耗时。所以其实并不需要计算整个Attention Matrix。
在这里插入图片描述
因此,可以通过减少key的方法来减少Attention Matrix中的列,且这些列是重复计算的。精简下来的key是具有代表性的key,由于key的减少,相对应的value也要减少,所以value也需要选出具有代表性的value。可以减少query吗?理论上是可行的,但是需要结合实际任务来判断,因为query的减少就意味着Output Sequence的长度会减少,对输出的结果是有很大影响的,如果无所谓输出结果的形式,或者说输出结果不是固定长度的,就可以考虑减少query。
在这里插入图片描述
减少key主要有两种方法,第一种为论文Compressed Attention所提出的对key进行卷积来减少key的方法。第二种为论文Linformer所提出的让大小为d×N的key矩阵乘上一个N×k的矩阵,这样得到的key矩阵就是d×k大小的了,同样也能减少key的数量。第二种方法实际上就是对N个vector作线性组合。
在这里插入图片描述

三、相关代码

import numpy as np
import matplotlib.pyplot as plt
from PyEMD import EMD
 
# 生成示例数据
t = np.linspace(0, 1, 100)
signal = np.sin(2 * np.pi * 5 * t) + np.sin(2 * np.pi * 10 * t)
 
# 运行EMD分解
emd = EMD()
IMFs = emd(signal)
 
# 绘制结果
n_IMFs = IMFs.shape[0]
 
plt.figure(figsize=(12, 8))
plt.subplot(n_IMFs + 1, 1, 1)
plt.plot(t, signal, label='Original Signal', color='black')
plt.legend()
 
for i in range(n_IMFs):
    plt.subplot(n_IMFs + 1, 1, i + 2)
    plt.plot(t, IMFs[i], label=f'IMF {i + 1}')
    plt.legend()
 
plt.show()

运行结果
在这里插入图片描述

总结

Self-attention多种简化运算方式能够在保证准确率的前提下大大缩短模型训练时间,在实际的大模型任务中具有广泛的运用。

  • 21
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值