一、Address

ICC 2019的一篇paper,为清华团队所写

思路很有趣,也很容易想到,就是用比较火的GAN加上LSTM

Satellite Image Prediction Relying on GAN and LSTM Neural Networks


二、Introduction and Model

2.1 主要创新点



2.2 主要任务

本质上是时空序列预测问题,利用的是卫星云图

主要是过去的序列预测未来的一个时刻的图片

2.3 基本模型

2.3.1 GAN(Generative Adversarial Networks)

对抗生成器。


简单来说,就是有一个生成器,有一个判别器,生成器输出假的数据,把这个数据和真数据一起输入到判别器中,判别器没法判断哪个是真是假,这是最理想的训练情况,换句话说,就是生成器生成的数据可以以假乱真了,就到达这个目的了,不知道大家是否了解,可以去看很多资料,讲的很nice,如果实在是不懂,可以留言,我写出来几篇就差不多了。

最基本的GAN的loss如下:


2.3.2 LSTM(Long Short-Term Memory Networks)

这个就不需要多讲了吧,我个人写了好几篇LSTM相关了,可以去看看。这个模型中的LSTM输入为卫星云图的序列数据,输出为提取的特征数据,也就是更深层的表现。


LSTM提取序列的一些深层时间特征, 比如云的motion特征

2.4 创新模型GAN-LSTM

主要的模型结构训练分为两个步骤

  1. 只用真实数据集先去训练GAN,这里的限制条件是输入为固定的维度和形式,训练完成后,把GAN的生成器与判别器分开,再接下来的步骤中生成器的权重是不变的,一直保持训练好的参数。
  2. 用时间序列的卫星图片输入到LSTM中,因为图片太大了,所以通过两层hidden layers进行减少图片的维度,应该指的就是下采样,训练LSTM输出与第一步中生成器输入的相同维度的向量,最终通过LSTM输出的向量,用固定参数的生成器生成最终的下一个时刻的预测数据。

这里有一个疑问?为什么要分开训练呢?paper里也解释了,简单来说就是GAN主导了model


接下来也对很多GAN进行比较了,毕竟传统GAN训练真的很费劲。

三、Experiments

3.1 数据集和参数

利用的是 FY-2E 图片数据集,大小为552乘以552, 三小时采样一次。

图片预处理,为了加快收敛。减小计算量,输入为灰度图,并且标准化图片。


3.2 训练GAN

红色为D的训练部分,紫色为G的训练部分。


3.3 GAN训练结果

WGAN在最高迭代次数的时候,慢慢结果显示出海岸线,学习的效果较好。

3.4 训练GAN-LSTM

3.4.1 数据划分


3.4.2 数据整合和选择

为了学习到evolution特征,我们需要有运动变化的图片,所以选择每三个小时的,太近的没啥区别了。之后我们输入序列为8,预测未来一帧

3.4.3 总体训练

注意看标红的地方大概就清晰了

3.4.4 结果

这边利用上面的训练方式 也对 autoencoder进行了类似的训练。用FCM算法对图片进行分割,变为黑白图片,白代表云层,黑代表没有云,这种图片称为CS图片


3.4.5 评测

我们用CR对结果进行评估


为了更好地来比较模型的性能,我们迭代预测未来的五帧

很明显由于误差的叠加和预测的距离的增加,肯定是降低的,但是GAN-LSTM显示出明显的优势,下降也不是很明显。

四、Conclusions

  1. 引入LSTM和GAN的协同合作来解决时空序列问题
  2. 利用GAN来进一步提取特征,并且可以把维度降低
  3. LSTM和GAN的分开训练的想法

点个在看,么么哒!

gan怎么输入一维数据_时空序列预测模型GAN+LSTM相关推荐

  1. gan怎么输入一维数据_GAN评价指标最全汇总

    本文首发于微信公众号:有三AI 作者:小米粥 最近一部分的内容将会比较容易,将和大家一起讨论GAN的评价指标.在判别模型中,训练完成的模型要在测试集上进行测试,然后使用一个可以量化的指标来表明模型训练 ...

  2. python 预测任意天后股票数据_在Python中使用LSTM进行股票市场预测

    本文概述 在本教程中, 你将看到如何使用称为长短期记忆的时间序列模型. LSTM模型功能强大, 特别是通过设计保留了长期记忆, 这一点将在以后看到.你将在本教程中解决以下主题: 了解为什么你需要能够预 ...

  3. 如何提取edit control中输入的数据_如何在Power Query中提取数据——列表篇(1)

    表名为列表,第一步骤名称为源 (一)从头开始提取 1. 获取列表第一个 List.First(list as list, optionaldefaultValue as any)as any 返回列表 ...

  4. slice_input_producer在2.0版本里怎么用_用Gan生成一维数据(附代码)

    引言 之前在知乎上问过一个关于使用对抗生成网络(Generative Adversarial Network)生成一维数据的问题.最近老是有人问代码的问题,网上关于图片的很多,一维数据的也有,但是比较 ...

  5. 将一维数据(序列)转化为二维数据(图像)的方法汇总GAFS, MTF, Recurrence plot,STFT

    将一维序列数据转化为二维图像数据的方法汇总 详细 全面 一.背景 二.方法介绍 格拉米角场 GAFs 原理 实现步骤 调用示例 马尔可夫变迁场 MTF 原理 实现步骤 调用示例 递归图 Recurre ...

  6. 建立“图书_读者”数据库及如下 3 个表,并输入实验数据,用 SQL 语句实现如下五个查询(opengauss)

    建立"图书_读者"数据库及如下 3 个表,并输入实验数据,用 SQL 语句实现如下五个查询(opengauss) 题目所涉及的表如下 注:使用opengauss与HeidiSQL: ...

  7. python函一维聚类_聚类实战:一维数组数据聚类

    大部分聚类方法针对的是多维数据,现实场景中还有可能存在以为数据的情况,针对以为数组的聚类和多维的数据有很大的不同,今天就来实战演练下: 需求内容:分析订单的价格分布 常见方案:按照100为梯度,分析不 ...

  8. auto.js停止所有线程_使用多线程处理输入的数据

    TensorFlow 的 Session 对象是支持多线程的,因此多个线程可以很方便地在同一个会话下对同一个队列并行地执行操作.Python 本身也提供了创建线程的threading.py,这个文件提 ...

  9. 多线程分批量处理list数据_使用多线程处理输入的数据

    TensorFlow 的 Session 对象是支持多线程的,因此多个线程可以很方便地在同一个会话下对同一个队列并行地执行操作.Python 本身也提供了创建线程的threading.py,这个文件提 ...

最新文章

  1. 从零开始用TensorFlow搭建卷积神经网络
  2. 亚马逊高级应用科学家熊元骏:人类行为理解研究进展 | PhD Talk #19
  3. ng-content的一个实际例子
  4. 手机MODEM 开发(33)---SIM卡基础知识
  5. 支付宝App采用华为方舟编译器几乎秒开?支付宝回应:华为好棒,加油
  6. 图像分析demo android_10个JavaScript图像处理库,收藏好留备用
  7. Pytorch——搭建深度神经网络的基本流程
  8. 在内核中如何获得系统的日期和时间
  9. 批标准化 tf.keras.layers.BatchNormalization 中的trainable参数与training参数比较
  10. 不使用手机代理,进行手机抓包
  11. python tornado返回上一页 读取refer
  12. jvm参数-verbose:gc和-XX:+PrintGC有区别?
  13. UE4像素流送(Pixel Streaming)快速上手指南
  14. 计算机任务栏的透明颜色设置,教你电脑任务栏透明设置教程
  15. c语言中islower是什么函数,c语言中的isalpha,isdigit,islower,isupper等一系列函数.pdf
  16. 智能手机丢失照片如何恢复
  17. PHP判断ip是否在指定IP段内(微信支付回调IP段验证)
  18. c++将函数作为函数参数(函数指针)
  19. Day18--拉氏变换与控制系统模型
  20. 2021牛客暑期多校训练营2 F-Girlfriend

热门文章

  1. 【转载】12项职场缺陷行为你有吗?
  2. 为了建设我们的飞鸽传书2011
  3. 【飞秋】Asp.net MVC2 model验证 看似美好,实则让人失望。
  4. 不搞代码来搞我,我又动了谁的奶酪?
  5. 前端工程师如何摆脱舒适区,持续精进?
  6. java 创建ssh用户秘钥,安装Java、Maven、Git,以及生成、拷贝密钥
  7. python多线程基本操作
  8. 机器学习系列补充:数据集准备和更正YSX包
  9. gvim安装及其配置
  10. 强烈推荐:给去美国的新生说几句(转载),超实用