Address
ICC 2019的一篇paper,为清华团队所写
思路很有趣,也很容易想到,就是用比较火的GAN加上LSTM
Satellite Image Prediction Relying on GAN and
LSTM Neural Networks
一、创新点和主要工作
1.1 主要创新点
1.2 主要任务
本质上是时空序列预测问题,利用的是卫星云图
主要是过去的序列预测未来的一个时刻的图片
1.3 基本模型
1.3.1 GAN(Generative Adversarial Networks)
对抗生成器。
简单来说,就是有一个生成器,有一个判别器,生成器输出假的数据,把这个数据和真数据一起输入到判别器中,判别器没法判断哪个是真是假,这是最理想的训练情况,换句话说,就是生成器生成的数据可以以假乱真了,就到达这个目的了,不知道大家是否了解,可以去看很多资料,讲的很nice,如果实在是不懂,可以留言,我写出来几篇就差不多了。
最基本的GAN的loss如下:
1.3.2 LSTM(Long Short-Term Memory Networks)
这个就不需要多讲了吧,我个人写了好几篇LSTM相关了,可以去看看。
这个模型中的LSTM输入为卫星云图的序列数据,输出为提取的特征数据,也就是更深层的表现。
LSTM提取序列的一些深层时间特征, 比如云的motion特征
1.4 创新模型GAN-LSTM
主要的模型结构
训练分为两个步骤
- 只用真实数据集先去训练GAN,这里的限制条件是输入为固定的维度和形式,训练完成后,把GAN的生成器与判别器分开,再接下来的步骤中生成器的权重是不变的,一直保持训练好的参数。
- 用时间序列的卫星图片输入到LSTM中,因为图片太大了,所以通过两层hidden layers进行减少图片的维度,应该指的就是下采样,训练LSTM输出与第一步中生成器输入的相同维度的向量,最终通过LSTM输出的向量,用固定参数的生成器生成最终的下一个时刻的预测数据。
这里有一个疑问?为什么要分开训练呢?paper里也解释了,简单来说就是GAN主导了model
接下来也对很多GAN进行比较了,毕竟传统GAN训练真的很费劲。
二、实验
2.1 数据集和参数
利用的是 FY-2E 图片数据集,大小为552乘以552, 三小时采样一次。
图片预处理,为了加快收敛。减小计算量,输入为灰度图,并且标准化图片。
2.2 训练GAN
红色为D的训练部分,紫色为G的训练部分。
2.3 GAN训练结果
WGAN在最高迭代次数的时候,慢慢结果显示出海岸线,学习的效果较好。
2.4 训练GAN-LSTM
2.4.1 数据划分
2.4.2 数据整合和选择
为了学习到evolution特征,我们需要有运动变化的图片,所以选择每三个小时的,太近的没啥区别了。
之后我们输入序列为8,预测未来一帧
2.4.3 总体训练
注意看标红的地方大概就清晰了
2.4.4 结果
这边利用上面的训练方式 也对 autoencoder进行了类似的训练。
用FCM算法对图片进行分割,变为黑白图片,白代表云层,黑代表没有云,这种图片称为CS图片
2.4.5 评测
我们用CR对结果进行评估
为了更好地来比较模型的性能,我们迭代预测未来的五帧
很明显由于误差的叠加和预测的距离的增加,肯定是降低的,但是GAN-LSTM显示出明显的优势,下降也不是很明显。
三、结论
- 引入LSTM和GAN的协同合作来解决时空序列问题
- 利用GAN来进一步提取特征,并且可以把维度降低
- LSTM和GAN的分开训练的想法