元胞自动机
文章目录
- 前言
- 文献阅读
- 摘要
- 主要贡献
- 方法框架
- 实验
- 结论
- 元胞自动机
- 元胞自动机是什么?
- 构成及规则
- 案例及代码实现
- 总结
前言
This week,the paper proposes a Multi-directional Temporal Convolutional Artificial Neural Network (MTCAN) model to impute and forecast PM2.5 pollutant concentration in a single training process.The main idea of the multi-directional properties of MTCAN is to interpolate the PM2.5 pollutant feature matrix to impute its value. In addition, the relevant knowledge of cellular automata is learned.
本周阅读文献《Multi-directional temporal convolutional artificial neural network for PM2.5 forecasting with missing values: A deep learning approach 》,文献主要提出了多向时间卷积人工神经网络模型(MTCAN)用来预测PM2.5的污染物浓度,MTCAN多向特性的主要思想是插入PM2.5污染物特征矩阵以估算其值,实验表明所提模型的有效性。另外学习了元胞自动机的相关知识。
文献阅读
题目:Multi-directional temporal convolutional artificial neural network for PM2.5 forecasting with missing values: A deep learning approach
作者:K. Krishna Rani Samal , Korra Sathya Babu , Santos Kumar Das
摘要
数据插补和预测是环境数据工程的主要研究领域。缺失数据是所有领域的常见问题,尤其是对于环境数据分析。大多数研究都试图使用不同的模型解决时间序列数据的问题。本研究提出了一种基于深度学习的混合模型架构多向时间卷积人工神经网络(MTCAN)模型,在单个训练过程中估算和预测PM2.5污染物浓度。MTCAN多向特性的主要思想是插入PM2.5污染物特征矩阵以估算其值。最终,它保持要素测量值与气象和污染物变量内的时间相关性,以插补PM2.5缺失值。实验结果表明,所提模型优于基线污染预测模型,证明了其在空气质量建模中的有效性。
主要贡献
- 开发了有效的多方向插补技术,利用不同时间戳下污染物和气象因素的不同参数之间的相关性,并考虑每个参数的其他测量值之间的相关性。最终,它利用每个参数测量值之间的相关性,及每个特征之间的相关性来估算PM2.5缺失值。
- MTCAN模型并行集成了卷积神经网络(CNN)的快速特征提取能力和循环神经网络(RNN)的顺序时间建模特征,提高了预测精度。采用残差映射的扩张卷积方法考虑大量过去数据,不会有从未来到过去的信息丢失。
- 通过使用微调层,预测准确性进一步增强。该层根据预测值和观测值相关性调整先前训练的预测模型的神经元权重。
数据插补技术
具有不一致缺失数据的空气质量建模是环境建模的主要问题之一。一种方法是使用部分可用的其他参数值插补缺失值,第二种方法是通过插补预测值恢复缺失的属性。插值技术通常使用部分存在的参数值的平均值、中位数和众数来预测缺失值;当每个参数值都很重要时,这些技术很重要。这些技术尝试通过仅捕获数据流中的时间相关性来重建数据,但忽略其他流的相关性。相比之下,插补技术捕获数据流的时间相关性,但忽略数据流中测量值的时间相关性。插补技术分为两种类型,即简单的插补技术,例如均值、中位数和模数插补技术。第二种插补技术是多重插补技术,如最大似然、期望最大化 (EM)和基于KNN的插补。
方法框架
本文提出的多向时序卷积神经网络(MTCAN)模型的多向属性同时包括插值块和插补块,它在前向和后向都进行了操作。MTCAN模型考虑气象因子与PM10污染物之间的相关性,以提高PM2.5的数据质量和长期预测性能。MTCAN模型包括用于时间序列预测的TCN模型和用于微调预测结果的ANN模型。
用于时间序列预测的时间卷积人工神经网络
CNN的扩展版本时间卷积网络TCN,与RNN相比,CNN通常仅用于特征提取目的,而不是用于顺序建模,因为缺乏处理长序列的存储块。然而,作为CNN的一种变体,TCN在训练效率方面优于RNN结构。该模型的主要组成部分是一维卷积、因果卷积、扩张卷积和残差块。TCN的卷积可以捕获局部信息,因此在时间建模方面效果更好。扩张因果卷积的感受野使我们能够捕获更多的输入特征。它可以并行执行特征学习和预测,以提高预测性能。与RNN不同,它可以接受任何长度的输入并将其映射到输出序列的相同长度。TCN使用全连接神经网络(FCNN)来实现这一目标。TCN具有卷积,本质上是因果关系,因此它可以确保没有信息从未来泄漏到过去。它生成顺序预测结果。
因果卷积基本设计的主要缺点是它需要深度网络或较大的过滤器大小才能获得较长的有效历史大小,这不支持基本结构。较大的过滤器尺寸会导致非收敛问题,而较大的更深的网络会导致训练问题,最终降低模型预测性能。为了解决这些限制,在TCN结构中采用了扩张因果卷积,其中膨胀因子随着网络深度的增加而增加。它具有扩展感受野的能力。因此,TCN通过使用更大的感受野和不使用更大的滤波器尺寸来实现更好的计算效率。
扩张因果卷积
元素 e 的输入序列 x 的卷积操作可以定义为
元素 e 的膨胀卷积操作可以定义为
其中 f(m) 是 m千其对应层的滤波器数,d为膨胀因子,k表示滤波器尺寸,e−d。m是过去的方向。当 d 变为 1 时,膨胀的因果卷积成为标准的因果卷积。较大的膨胀系数允许输出端的神经元表示广泛的输入历史数据,并且还提供了扩展更大感受野的灵活性。
扩张因果卷积的图形示意图如图:
残差映射
残差映射函数可以表述为
其中φ是非线性激活函数。
在所提出的架构中,TCN在残差块内具有两层膨胀的因果卷积和非线性。泄漏ReLU用作非线性激活函数。对卷积滤波器采用权重归一化过程进行归一化。此外,残差块还具有最大池化层和辍学层。采用最大池化操作来减小数据大小和计算复杂度。在每次扩张因果卷积后添加损失为 0.1 的 dropout 层,以避免训练模型时出现过拟合问题。
实验
实验数据集描述:使用两个真实的空气质量数据集进行实验,以评估所提出的模型性能。北京,从UCI机器学习存储库收集的多站点空气质量数据集用作基线数据集;另一个数据集从印度中央污染控制委员会收集也用于模型评估。
以 0.1 的概率添加了 dropout,避免过度拟合问题。Epochs大小为 2000,batch大小为 32,预测区域设置为 14 ,以进行长期空气质量预测。Relu 用作激活函数。RMSProp 为所有模型的优化器。它考虑以前的权重更新以更新下一个权重,而不是仅考虑当前的梯度值。MAE作为所有模型的默认损失函数,因为它可以更好地反映预测误差的实际情况。此外,在训练所有模型之前,利用 Z -score归一化过程对数据集进行归一化并删除异常值。均方根误差(RMSE)和平均绝对误差(MAE)用作模型评估指标。
上图显示了八个基线模型和MTCAN模型的预测比较结果。
结论
本文提出了一种新的深度学习架构,该架构利用数据插补方法来插补气象和污染物值,而不会失去它们的相关性。该模型可以利用气象因子与PM10污染物的时间相关性来估算PM2.5缺失值。同时,我们通过TCN模型的膨胀卷积特征考虑了大量历史数据集,以进行长期时间预测。结果表明,所提模型同时解决了所有讨论的问题,并最大限度地减少了空气质量建模的预测误差。
元胞自动机
元胞自动机是什么?
元胞自动机(cellular automata,CA)是一种时间、空间、状态都离散,空间相互作用和时间因果关系为局部的网格动力学模型,具有模拟复杂系统时空演化过程的能力。
构成及规则
元胞自动机的组成:元胞,元胞空间,元胞邻居,元胞边界,规则。
元胞:又称细胞、单元或者基元,是元胞自动机最基本的组成部分,元胞自动机变化的载体。
自动机:通过对元胞设定规则,每个元胞状态会不断自动更新。
元胞空间:元胞在空间分布上的集合。
元胞邻居:元胞自动机的演化规则是局部的,对于指定元胞的状态进行更新时只需要知道其临近元胞的状态;元胞的状态受自身状态和周围邻居的影响。
某一元胞状态更新时搜索的空间域(常见的几种):
冯.诺伊曼邻居(4邻居型):
红色方格是中心元胞,周围是4个邻居。
摩尔型邻居(8邻居型)
扩展摩尔型邻居(24邻居型)
元胞规则:根据元胞当前状态及其邻居状态确定下一时刻该元胞状态。演化规则是元胞自动机的灵魂所在。
元胞边界:元胞自动机对每个元胞施加同样的规则,因此要设置边界条件,使边界上的细胞与其他细胞具有相同的邻居数目。
边界类型:
固定边界:所有边界外元胞均取某一固定常量。
周期型边界:周期型是指相对边界连接起来的元胞空间。这种空间与无限空间最为接近,进行理论探讨时,常以此类空间作为实验进行模拟。
绝热边界:边界外元胞的状态始终和边界元胞的状态保持一致。
映射型边界:以边界元胞为对称轴的元胞状态作为边界。
案例及代码实现
生命游戏
每个格子的生死遵循下面的原则:
1. 如果一个细胞周围有3个细胞为生(一个细胞周围共有8个细胞),则该细胞为生(即该细胞若原先为死,则转为生,若原先为生,则保持不变)。
2.如果一个细胞周围有2个细胞为生,则该细胞的生死状态保持不变;
3. 在其它情况下,该细胞为死(即该细胞若原先为生,则转为死,若原先为死,则保持不变)
代码实现:
%生命游戏---元胞自动机
%每个格子的生死遵循下面的原则:
%1. 如果一个细胞周围有3个细胞为生(一个细胞周围共有8个细胞),则该细胞为生(即该细胞若原先为死,则转为生,若原先为生,则保持不变) 。
%2. 如果一个细胞周围有2个细胞为生,则该细胞的生死状态保持不变;
%3. 在其它情况下,该细胞为死(即该细胞若原先为生,则转为死,若原先为死,则保持不变) function ca
m=10;n=10;%世界大小m*n
p=.7;%用于初始化生命(p理解为为每一点出现生命的概率)
h=1000;%h为生命游戏进行的轮数%生命的随机初始化设定(前两重循环)
for x=1:m %对网格点的初始化for y=1:nr=rand(1); %r为U[0,1]中随机产生的一个数字 rand(1)中的1代表矩阵r的规模为1*1即一个数if r>pa(x,y)=1;elsea(x,y)=0;endend
end
for x=1:m%根据网格初始化后的结果来进行网格生命初始化设定for y=1:nif a(x,y)==1 %如果网格点(x,y)为1,则生命方块(x-1,y-1) (x-1,y) (x,y-1) (x,y)赋予生命fx=[x-1,x-1,x,x];fy=[y-1,y,y,y-1];fill(fx,fy,'g')%填涂绿色表示获得生命hold onelse %否则保持不变,即不获得生命endend
endfor k=1:h %一共进行h轮生命游戏fx=[0,m,m,0];fy=[0,0,n,n];fill(fx,fy,'k'),%新的一轮开始,将所有的格子全部涂黑,按上一轮得到的新的a来重新涂色,便于观察hold onfor x=2:m-1%遍历每一个点for y=2:n-1%b(x,y)为点a(x,y)附近八个点的和b(x,y)=a(x-1,y-1)+a(x-1,y)+a(x-1,y+1)+a(x,y-1)+a(x,y+1)+a(x+1,y-1)+a(x+1,y)+a(x+1,y+1);if b(x,y)==2 %如果a(x,y)附近有两个点,a(x,y)保持不变c(x,y)=a(x,y);elseif b(x,y)==3,%如果a(x,y)附近有三个点,a(x,y)获得生命c(x,y)=1;else %否则,a(x,y)失去生命c(x,y)=0;endendend%a的第一列和最后一列保持不变,因为上面的循环是从x=2:m-1 y=2:n-1c(1:m,1)=a(1:m,1);c(1:m,n)=a(1:m,n);for x=1:m %根据这一轮点的生命情况来确定它左下角这个格子的生命情况for y=1:nif c(x,y)==1fx=[x-1,x-1,x,x];fy=[y-1,y,y,y-1];fill(fx,fy,'g')hold onelseendendend
pause(0.01)%停止0.02秒后开始下一轮
a=c;
end
总结
本周主要学习了元胞自动机,了解元胞自动机的结构及其规则。
相关文章:

元胞自动机
文章目录前言文献阅读摘要主要贡献方法框架实验结论元胞自动机元胞自动机是什么?构成及规则案例及代码实现总结前言 This week,the paper proposes a Multi-directional Temporal Convolutional Artificial Neural Network (MTCAN) model to impute and forecast P…...

设计模式之各种设计模式总结与对比
目录1 目标2 定位3 一句话归纳设计原则4 G0F 23种设计模式简介5 设计模式使用频次总结6 —句话归纳设计模式7 设计模式之间的关联关系和对比1 目标 1、 简要分析GoF 23种设计模式和设计原则,做整体认知。 2、 剖析Spirng的编程思想,启发思维,为之后深入学习Spring…...
JAVA练习55- Fizz Buzz
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 目录 前言 一、题目-Fizz Buzz 1.题目描述 2.思路与代码 2.1 思路 2.2 代码 总结 前言 提示:这里可以添加本文要记录的大概内容: 2月19日练习…...
LeetCode笔记:Biweekly Contest 98
LeetCode笔记:Biweekly Contest 98 1. 题目一 1. 解题思路2. 代码实现 2. 题目二 1. 解题思路2. 代码实现 3. 题目三 1. 解题思路2. 代码实现 4. 题目四 比赛链接:https://leetcode.com/contest/biweekly-contest-98 1. 题目一 给出题目一的试题链接如…...
HNUCM-《算法分析与设计》期末考试考前复习题
问题 A: X星人的地盘题目描述一天,X星人和Y星人在一张矩形地图上玩抢地盘的游戏。X星人每抢到一块地,在地图对应的位置标记一个“X”;Y星人每抢到一块地,在地图对应的位置标记一个“Y”;如果某一块地无法确定其归属则标…...

算法导论【分治思想】—大数乘法、矩阵相乘、残缺棋盘
这里写自定义目录标题分治法概述特点大数相乘问题分治算法矩阵相乘分治算法残缺棋盘分治算法分治法概述 在分而治之的方法中,一个问题被划分为较小的问题,然后较小的问题被独立地解决,最后较小问题的解决方案被组合成一个大问题的解决。 通常…...

Java【七大排序】算法详细图解,一篇文章吃透
文章目录一、排序相关概念二、七大排序1,直接插入排序2,希尔排序3,选择排序4,堆排序5,冒泡排序5.1冒泡排序的优化6,快速排序6.1 快速排序的优化7,归并排序三、排序算法总体分析对比总结提示&…...
Autosar OS IOC
Inter-OS-Application Communicator 背景和基本原理General purposeIOC functionalityCommunicationNotificationIOC interface背景和基本原理 The IOC implementation shall be part of the Operating System IOC和操作系统紧密相关,是操作系统实现的一部分 The IO…...

记录一次Binder内存相关的问题导致APP被杀的BUG排查过程
事情的起因的QA压测过程发生进程号变更,怀疑APP被杀掉过,于是开始看日志 APP的压测平台会上报进程号变更时间点,发现是在临晨12:20分,先大概确定在哪个日志文件去找关键信息一开始怀疑是crash,然后就在日志…...

设计模式(十)----结构型模式之适配器模式
1、概述 如果去欧洲国家去旅游的话,他们的插座如下图最左边,是欧洲标准。而我们使用的插头如下图最右边的。因此我们的笔记本电脑,手机在当地不能直接充电。所以就需要一个插座转换器,转换器第1面插入当地的插座,第2面…...

【数据结构】——队列
文章目录前言一.什么是队列,队列的特点二、队列相关操作队列的相关操作声明队列的创建1.队列的初始化2.对队列进行销毁3.判断队列是否为空队列4.入队操作5.出队操作6.取出队头数据7. 取出队尾数据8.计算队伍的人数总结前言 本文章讲述的是数据结构的特殊线性表——…...

Android OTA升级常见问题的解决方法
1.1 多服务器编译 OTA 报错 Android7 以后引入了 jack-server 功能,也导致在公共服务器上 编译 Android7 以上的版本时,会出现 j ack-server 报错问题。 在多用户服务器上 编译 dist 时 会出现编译过程中 会将 port_service 和 port_admin 改为 默认的 …...

说说Hibernate
当你在实战项目中需要用到SSH时, 如果你之前只用过Mybatis那自然是不能解决问题的, 因为在很多银行类金融类项目中你可能会使用到Hibernate, 那么关于Hibernate你应该要了解什么呢, 本篇文章就以学习Hibernate框架为目的, 巩固在工作中可能需要用到的这种ORM技术, 同时也欢迎家…...

目标检测论文阅读:DETR算法笔记
标题:End-to-End Object Detection with Transformers 会议:ECCV2020 论文地址:https://link.springer.com/10.1007/978-3-030-58452-8_13 官方代码:https://github.com/facebookresearch/detr 作者单位:巴黎第九大学、…...
Golang sync.Once 源码浅析
本文分析了Golang sync.Once 源码,并由此引申,简单讨论了单例模式的实现、 atomic 包的作用和 Java volatile 的使用。 sync.Once 使用例子 sync.Once 用于保证一个函数只被调用一次。它可以用于实现单例模式。 有如下类型: type instanc…...

C++面向对象(上)
文章目录前言1.面向过程和面向对象初步认识2.引入类的概念1.概念与用法2.类的访问限定符及封装3.类的作用域和实例化4.类的大小计算5.this指针3.总结前言 本文将对C面向对象进行初步介绍,引入类和对象的概念。围绕类和对象介绍一些基础知识,为以后深入学…...
经常用但是不知道什么是BFC?
BFC学习 block formatting context 块级格式上下文 简单理解: 一个独立容器,内部布局不会受到外面的影响 形成条件: 1.浮动元素:float除none之外的值 2.绝对定位:position:absolute,fixed 3.display:inline-blo…...
GO的临时对象池sync.Pool
GO的临时对象池sync.Pool 文章目录GO的临时对象池sync.Pool一、临时对象池:sync.Pool1.1 临时对象的特点1.2 临时对象池的用途1.3 sync.Pool 的用法二、临时对象池中的值会被及时清理掉2.1 池清理函数2.2 池汇总列表2.3 临时对象池存储值所用的数据结构2.4 临时对象…...

高精度算法一
目录 1. 基础知识 2. 大整数 大整数 3. 大整数 - 大整数 1. 基础知识 利用计算机进行数值计算,有时会遇到这样的问题:有些计算要求精度高,希望计算的数的位数可达几十位甚至几百位,虽然计算机的计算精度也算较高了,…...
2023年全国最新食品安全管理员精选真题及答案1
百分百题库提供食品安全管理员考试试题、食品安全员考试预测题、食品安全管理员考试真题、食品安全员证考试题库等,提供在线做题刷题,在线模拟考试,助你考试轻松过关。 11.预包装食品的标签内容应使用规范的汉字,但可以同时使用&a…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...

基于uniapp+WebSocket实现聊天对话、消息监听、消息推送、聊天室等功能,多端兼容
基于 UniApp + WebSocket实现多端兼容的实时通讯系统,涵盖WebSocket连接建立、消息收发机制、多端兼容性配置、消息实时监听等功能,适配微信小程序、H5、Android、iOS等终端 目录 技术选型分析WebSocket协议优势UniApp跨平台特性WebSocket 基础实现连接管理消息收发连接…...
【android bluetooth 框架分析 04】【bt-framework 层详解 1】【BluetoothProperties介绍】
1. BluetoothProperties介绍 libsysprop/srcs/android/sysprop/BluetoothProperties.sysprop BluetoothProperties.sysprop 是 Android AOSP 中的一种 系统属性定义文件(System Property Definition File),用于声明和管理 Bluetooth 模块相…...
Web 架构之 CDN 加速原理与落地实践
文章目录 一、思维导图二、正文内容(一)CDN 基础概念1. 定义2. 组成部分 (二)CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 (三)CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 …...
rnn判断string中第一次出现a的下标
# coding:utf8 import torch import torch.nn as nn import numpy as np import random import json""" 基于pytorch的网络编写 实现一个RNN网络完成多分类任务 判断字符 a 第一次出现在字符串中的位置 """class TorchModel(nn.Module):def __in…...

【VLNs篇】07:NavRL—在动态环境中学习安全飞行
项目内容论文标题NavRL: 在动态环境中学习安全飞行 (NavRL: Learning Safe Flight in Dynamic Environments)核心问题解决无人机在包含静态和动态障碍物的复杂环境中进行安全、高效自主导航的挑战,克服传统方法和现有强化学习方法的局限性。核心算法基于近端策略优化…...
scikit-learn机器学习
# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...
tomcat指定使用的jdk版本
说明 有时候需要对tomcat配置指定的jdk版本号,此时,我们可以通过以下方式进行配置 设置方式 找到tomcat的bin目录中的setclasspath.bat。如果是linux系统则是setclasspath.sh set JAVA_HOMEC:\Program Files\Java\jdk8 set JRE_HOMEC:\Program Files…...