| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 细读Autoformer—空间计量分析 -> 正文阅读 |
|
[人工智能]细读Autoformer—空间计量分析 |
摘要本周一是重新细读了Autoformer模型,对Autoformer的组成部分:序列分解模块(decompostion block),自相关机制(Auto-Correlation mechanism),编码和解码器(Encoder和Decoder),其输入输出有着详细理解。尤其是该论文的自相关机制如何去取代原来的自注意力机制,以及结合长时间预测的实际需要,说明了为什么需要这样做与自相关机制的独特优势。 二是对空间计量分析相关的理论部分进行了较为系统的学习,从空间计量概述,到空间权重矩阵的介绍与设定,以及应该如何选择;再到空间自相关检验莫兰指数等的公式介绍;以及空间计量模型的介绍与设定,如何去选择一个合适需求的计量模型。 三是对 pytorch框架基础的简单实践,都是基础内容。 一. 细读Autoformer1.1 论文摘要本文研究时间序列的长期预测问题,先前基于Transformer的模型都是采用各种自我注意机制来发现长期依赖关系,但对于长期预测来说表现并不是很好,难以发现可靠的依赖关系。并却由于Transformer都必须采用逐点稀疏版的self-attention以提高长序列效率,从而导致信息利用缺失。该文提出的Autoformer 设计为一种具有自相关机制的新型分解架构。该模型的大体框架是与Transformer相似的,但是Autoformer尝试将分解序列和预测序列都合在一个模型里面看,新添加了decomposition block序列分解模块,与用Auto-Correlation去替代自注意力机制。 1.2 研究内容本文主要探索长期时间序列预测问题:待预测的序列长度(O)远远大于输入长度(I),即基于有限的信息预测更长远的未来。对于长时间预测来说,模型的预测能力及计算效率有着很强的要求。然而Transformer在长序列的 O ( L 2 ) O(L^2) O(L2)时间复杂模式下很难发现可靠的时序依赖;基于Transformer的改进模型主要着力于稀疏注意力特征图 ( Q K T QK^T QKT) 来降低模型复杂度,而这些模型仍使用以节点为最小单位进行消息汇聚,这样将造成信息的丢失,这成为了长时间时序预测的性能瓶颈。 为了突破之前的困境,Autoformer的模型将从序列分解出发,提出Auto-Correlation机制替代self-attention,其考虑sub-series(子序列)间的相似度能更好的捕捉到趋势性,更多的关注序列,而不是节点。不仅要保证时间复杂度,也需要防止信息的丢失。 1.3 Autoformer模型框架Autoformer主要由三部分组成: ● 序列分解模块(decompostion block); ● 自相关机制(Auto-Correlation mechanism); ● 编码和解码器(Encoder和Decoder)。 1.3.1 Series Decomp BlockSeries Decomp Block使用传统的decomposition分解操作可以将序列分解为trend趋势项和seasonal季节项这两个部分,关于这两个部分的理解是一个可以反应短期的波动另一个则反应长期的季节性。 其中padding是为了保证序列长度不变,avgpool是移动平均。获取趋势项后,序列-趋势=季节。 1.3.2 Model inputs编码器的输入为已知历史 I I I个时间点长度的序列,编码器的输入包括季节项 和周期项 ;一个是季节项 [ X d e s ∈ R ( I / 2 + O ) ? d X_{des}\in\R^{(I/2+O)*d} Xdes?∈R(I/2+O)?d],另一个是周期项[ X d e t ∈ R ( I / 2 + O ) ? d X_{det}\in\R^{(I/2+O)*d} Xdet?∈R(I/2+O)?d]。前 I / 2 I/2 I/2 部分由 X e n X_{en} Xen? 分解得到,后面的 O O O长度序列分别由0与均值mean补齐。d为时序条数,O为未来时间长度。 公式表示如下:
1.3.3 Encoder关注季节部分建模的编码器,输出的是过去季节性信息,它将被用做互信息,帮助解码器调整预测结果。只保留平滑的seasonal part, 每一层的处理公式如下: 1.3.4 Decoder假设我们有M个解码层,第l个解码层 的内部细节如下; 解码器包括两个部分: ● 上路是对seasonal季节项成分使用堆叠自相关机制; ● 对trend-cyclical周期项成分使用累加操作。
模型最终的输出结果为: 1.3.5 Auto-Correlation Mechanism
如上图所示,Q,K,V和Transformer一样通过映射输入得到,首先注意到对Q和K分别执行快速傅里叶变换操作 (FFT),K还执行了共轭操作,公式如下(基于Wiener–Khinchin theorem ):
τ τ τ 是从1取到L,然后分别算出前K个最大的TOPK,取为K个 τ 1 , . . . . . τ k τ_1,.....τ_k τ1?,.....τk?做周期长度。 当使用FFT高效求解出
τ
τ
τ 从
1
1
1 到
L
?
1
L-1
L?1 的所有
R
X
X
(
T
)
R_{XX}(T)
RXX?(T) 后,然后本文将只取出最大的
t
o
p
k
top k
topk 个
R
X
X
(
T
)
R_{XX}(T)
RXX?(T),并且对取出的
k
k
k个
R
X
X
(
T
)
R_{XX}(T)
RXX?(T)执行
s
o
f
t
m
a
x
softmax
softmax 操作转换为概率,最后将
k
k
k个概率与对应的进行
R
O
L
L
(
)
ROLL()
ROLL()操作之后的
V
V
V 相乘后相加得到最后的结果,如下所示: 二. 空间计量分析理论部分2.1 空间计量经济学概述所谓空间数据,就是在原来得横截面或者面板数据上,加上横截面单位的位置信息(或者相互距离)。研究如何处理空间数据的计量经济学分支,称为“空间计量经济学”。 传统的计量只是研究了个体的自变量对个体的因变量的影响,而空间计量在传统计量的基础上,进一步研究个体的自变量对其他个体的因变量的影响。因此空间计量经济学最大的特色在于充分考虑横截面单位(地理区域)之间的空间依赖性。 空间相关性,也称空间依赖性,是指不同区域的事物和现象之间在空间上的互相依赖、互相制约、互相影响和互相作用,是事物和现象本身固有的空间经济属性,是地理空间现象和空间过程的本质属性。 空间依赖可以定义为观测值及区位之间的依赖性。当相邻区域特征变量的高值或低值在空间上呈现集聚倾向时为正的空间自相关,反之,当相邻区域特征变量取值与本区域变量取值高低相反时则为负的空间自相关。 为什么会存在空间相关性! 原因1:观测数据地理位置邻近 2.2 空间权重矩阵得设定与选择如何将经济变量的空间效应纳入回归方程中,这便需要根据某种标准建立空间权重矩阵。 2.2.1 空间权重矩阵的设定之前也学习了三种空间权重矩阵,还有一个综合距离,以及它们应该如何去获取与创建。下面再简单复习一下:
一般的经济指标是应用人均GDP,再按如下的公式去计算经济距离矩阵:
2.2.2 如何选择合适的空间权重矩阵尽管二进制的空间邻近权值矩阵并非适用于所有的空间计量经济模型,但是,处于某些情况下的实用性,在构建空间计量模型时的首选就是从二进制的邻近矩阵开始的。 一般是先从空间邻近的最基本二进制矩阵开始,逐步选择确定空间权值。 关于各种权值矩阵的选择,没有现成的理论根据,一般可考虑空间计量模型对各种空间权值矩阵的适用程度,检验估计结果对权值矩阵的敏感性,最终的依据实际上就是结果的客观性和科学性。 2.2.3 空间权重矩阵的标准化处理下面说明一下需要标准化的原因,以及处理的公式: 具体执行过程在Stata软件分析中使用代码可轻松实现这一操作。 2.3 空间自相关检验在确定好空间权重矩阵之后,我们需要对判断数据做是否存在空间自相关性。 “空间自相关”可以理解为位置相近的区域具有相似的变量取值。如果高值与高值集聚在一起,低值与低值集聚在一起,则为“正空间自相关”;反之,如果高值与低值相邻,则为“负空间自相关”;如果高值与低值完全随机地分布,则不存在空间自相关。 目前常用来考察数据空间自相关的指标为莫兰指数I和吉尔里指数C,其中莫兰指数是最常用的。 2.3.1 全局莫兰指数与局部莫兰指数
2.4 空间计量模型得设定与选择2.4.1 空间计量模型再次理解一下空间计量模型表示与含义: 1. SAR 在空间自回归模型(空间滞后模型)中,被解释变量间存在较强的空间依赖性,进而邻地被解释变量会通过空间传导机制影响到本地的被解释变量。(比如技术扩散) 2.SEM
2.4.2 如何去选择合适的空间模型对一般性空间计量模型进行拉格朗日乘数检验**(LM检验**)、稳健的拉格朗日乘数检验(RLM检验)和似然比检验(LR检验),根据检验结果来选择合适的模型。 对于空间截面数据: 对于空间面板模型: 具体过程可参考空间计量领域经典论文:如【中国东部沿海五大城市创新效率,影响因素及空间溢出效应】 三. pytorch框架基础3.1 nn.Model神经网络的基本骨架-nn.Module
3.2 CONV2D 是如何计算的详细计算过程可见:torch.nn.functional.conv卷积模块详解模块 torch.nn.functional.conv2d(input, weight, bias=None, stride=1, padding=0, dilation=1, groups=1) → Tensor functional.conv2d函数的使用
3.3 卷积层的具体简单代码实现GitHub上可视化卷积过程 卷积层动图理解(蓝色input,绿色output,深色kernel)。
3.4 查看VGG16 model 卷积神经网络怎么去写如下图一个经典案例: 3.5 Pooling layer MaxPool2(最大池化的作用)上官网查看具体的知识:Maxpooling 参数有: stride – 移动窗户的步幅。默认值为kernel_size padding– 要在两侧添加的隐式零填充 dilation– 控制窗口中元素步幅的参数(空洞卷积) return_indices – if 将返回最大指数和输出。对torch.nn.MaxUnpool2d稍后有用True ceil_mode – 当为 True 时,将使用ceil而不是floor来计算输出形状(ceil向上取整,floor向下取整)
输出池化之后的结果图片: 3.6 非线性激活操作Non-Linear Activations看官方文档:官方非线性激活文档
经过ReLU与Sigmoid非线性激活的操作后: 3.7 线性层网络正则化的官方文档:BATCHNORM2D 查看官网线性层的文档: Linear Layers torch.nn.Linear(in_features, out_features, bias=True, device=None, dtype=None)
下面是经典的VGG16 model :
线性层的简单实现:
3.8 神经网络实战小举例我们应用CIFAR10数据集做一个十分简单的分类,根据图片的内容识别属于哪一个类即可。 CIFAR10模型结果如下:
用nn.Sequential将代码变得更简洁:
毕设学弟初稿已交,项目正在搭建,保持联系。 总结一是:对于Transformer类模型应用于时序任务,主要分为网络模型的修改以及应用领域两个角度:
具体的关于Transformer类模型应用在时序预测文献可详见:Transformer应用于时序任务的综述 二是:对于空间计量分析,需要重新考量解释变量与被解释变量,如何建立合适的面板数据,合适的权重矩阵等,以及之间应该如何去建立空间计量模型,如何优化生态环境与经济环境的相关关系。 三是: 抓紧学习模型框架代码,从最基础的模型与利用现有数据集,到搭建自己的模型与利用自己的时序数据去做一些预测实现是近期的任务。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/8 4:21:31- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |