使用深度学习预测天气并还原地图

拇指1

预测天气是一项艰巨的任务,涉及统计和数据处理。如今,在天气预报中,机器学习扮演着至关重要的角色。但是,在数值模型中,更常使用ML。

本文是对我所做的一个项目的解释,该项目是使用深度学习根据今天的梯度来预测明天的最高温度梯度的。使用的模型称为Pix2Pix。是GAN的一个版本,用于基于其他人生成图像(链接)。运作方式如下:我们输入今天美国最高温度梯度的图像作为输入,然后模型返回明天最高温度梯度的图像(预测)。

在谈论项目,使用的数据以及训练模型的方式之前,我们必须谈论模型本身。

推荐阅读
1的6,160

什么是Pix2Pix?

Pix2Pix是称为“通用对抗网络”(GAN)的更通用模型的版本。在此模型中,我们有两个网络:生成器和鉴别器。生成器网络必须学会精心制作伪造的图像,以欺骗鉴别器,该任务是说图像是真实的还是伪造的(由生成器生成)。换句话说,生成器生成新图像,而鉴别器则将它们区别开来,这就是为什么要这样称呼它们的原因。

但是,生成器如何生成新图像?假设我们要生成花。为了做到这一点,我们必须有一个想要神经网络生成的花朵图像的数据集。在准备好该数据集之后,我们将基于相同的图像生成另一个数据集,但会添加随机噪声。这样一来,我们就不再有花朵,而是花朵模糊了。使用这两个数据集,我们传递花的真实图像和带有模糊图像的输入。使用这两个图像,生成器会尝试精心制作一幅类似于真实图像的图像(从嘈杂的图像开始)。之后,将生成的图像传递到鉴别器,该鉴别器将图像分类为真实或伪造。这就是训练模型的方式。

另外,可以注意到上述任务正在试图相互竞争。我们可以说他们是对抗性的。这为GAN命名。

我们是数据科学家;我们想进一步了解该模型的架构。嗯,如上所述,此模型内部有两个网络。让我们关注发生器。每个人都必须熟悉成交量积神经网络(CNN)(如果不阅读本文的话)。该模型将图像作为输入,并使用成交量积层对其进行处理,直到我们只有分类模型所具有的类的百分比为止。换句话说,我们从图像传递到数字。我们可以使用所谓的反成交量积神经网络(DNN)进行逆运算。它接收数字作为输入,并给出图像作为输出。使用这两个模型,我们构建了Generator。

如果你想进一步了解该模型,可以阅读该论文。

考虑到该模型如何工作和训练,我们将专注于我所做的项目。

使用Pix2Pix预测天气并还原地图

该项目是一个二合一项目,因为使用了相同的模型来预测天气并恢复预测器输出的图像。更准确地说,该模型经过两次训练。第一个包含从NOAA的温度寄存器生成的图像数据集。第二个带有图像,第一个模型作为输出给出。

这两个项目将在不同的部分进行说明。

在进入两个项目之前,有必要说明已完成的数据处理。我从NOAA(https://www.noaa.gov)获得了3.5 GB的数据,其中收集了世界各地不同站点记录的气象数据。从1840年到今天,这些记录按月分发。作为大量数据,由于有错误的记录,一些与记录的日期不匹配的记录,因此我不得不进行大量清理。

对于清洁过程,我使用了C#。第一步是分离目标变量(最高温度),这将数据集减少到2 GB。然后,利用来自许多气象站的数据,我继续对每个气象站的经度和纬度进行绘图,并查看在哪个区域中有更多数据(每个像素是一个站):

天气“ width =” 360“ height =” 180“  data-srcset=” https://i2.wp.com/www.datadriveninvestor.com/wp-content/uploads/2019/10/1.png?w=360&ssl=1 360w,https://i2.wp.com/www.datadriveninvestor.com/wp-content/uploads/2019/10/1.png?resize = 300%2C150&ssl = 1 300w“ data-lazy-sizes =”(max -width:360px)100vw,360px“ data-recalc-dims =” 1图1:1840年至2019年之间所有可用电台的K线走势图天气” width =“ 360” height =“ 180”  data-srcset=“ https://i0.wp.com/www.datadriveninvestor.com/wp-content/uploads/2019/10/1-1.png?w=360&ssl = 1 360w,https://i0.wp.com/www.datadriveninvestor.com/wp-content/uploads/2019/10/1-1.png?resize = 300%2C150&ssl = 1 300w“ data-lazy-sizes =“(最大宽度:360像素)100vw,360像素” data-recalc-dims =“ 1图2:1840年至2019年之间以美国为界的电台K线走势图。

如你所见,美国的站点最多,因此我决定将TMAX数据集限制为美国的站点。数据集减少到1.6 GB。所有这些都是使用C#完成的。下一步是按照年,月,日以及与该天相关的温度,将测站及其纬度和经度分开。这在数据中心化生成了许多记录,并将其提高到6 GB。该数据集被引入数据库以更轻松地处理它。上传后,使用“查询”,我一直在清理数据集。我删除了更多不一致的记录,将温度调整到合理的范围,因为有许多温度超过了最高记录温度或低于历史最低记录。我这样做的原因是,那一天可能是一个不好的衡量标准,所以我将寄存器限制在52ºC和-18ºC,这是美国的历史记录。

一旦使用C#完成所有数据清理,就只索引了1980年至2019年的数据,并将站点给定的TMAX值通过颜色映射到一个映射表中以表示温度梯度。最终结果如下(图像256×256):

天气“ width =” 696“ height =” 357“  data-srcset=” https://i1.wp.com/www.datadriveninvestor.com/wp-content/uploads/2019/10/Annotation-2019-10-08-140507 .jpg?w = 763&ssl = 1 763w,https://i1.wp.com/www.datadriveninvestor.com/wp-content/uploads/2019/10/Annotation-2019-10-08-140507.jpg?resize= 300%2C154&ssl = 1 300w,https://i1.wp.com/www.datadriveninvestor.com/wp-content/uploads/2019/10/Annotation-2019-10-08-140507.jpg?resize=620%2C318&ssl = 1620w,https://i1.wp.com/www.datadriveninvestor.com/wp-content/uploads/2019/10/Annotation-2019-10-08-140507.jpg?resize=696%2C357&ssl=1 696w “ data-lazy-sizes =”(最大宽度:696px)100vw,696px“ data-recalc-dims =” 1图3:夏季和冬季的示例。

两侧的彩色线是代表日期和年份的颜色代码。水平条代表日期(1到365),垂直条代表年份。对于第一个项目,这以某种方式有助于第二天的预测。

第一个项目

第一个项目的目的是使用Pix2Pix模型根据今天的温度图预测明天的天气。这样,输入的就是今天的地图,而目标就是明天的地图。

使用Pix2Pix预测天气的主要动机是因为好奇,需要检查用于将图像转换为图像的神经网络结构是否也可以从现有数据中推断出新数据。也就是说,验证模型是否可以生成真实的图像(或至少接近它)而不是假设的图像。

由于一次迭代的目标是下一次迭代的输入,因此这两个图像都位于同一文件夹中。它们带有一个使用以下格式标识它们的名称:yyyymmdd-xxxxxx.png,其中后六位是数据中心化的图像编号。

培训完成了3200张图像。其中的20%用于测试。

结果如下:

天气” width =“ 696” height =“ 519” data-recalc-dims =“ 1图片4:在第一个项目中获得的结果。

从该项目得出的结论是,它生成的预测图非常接近实际。尽管我们认为增加EPOCH并扩展训练数据集,但结果应该更加可靠。

第二项目

在第二个项目中,给出了一个转折,目的是使项目1的输出看起来更类似于气象学中使用的最高温度的真实图。这样,气候学家可以使用此模型来改进根据其数据生成的地图。

拍摄了1000个数据集的图像,并在Photoshop中应用了“操作”,其中对图像进行了修饰以使其尽可能地被接受:

天气” width =“ 696” height =“ 365”  data-srcset=“ https://i2.wp.com/www.datadriveninvestor.com/wp-content/uploads/2019/10/1-25.jpg?w=772&ssl = 1 772w,https://i2.wp.com/www.datadriveninvestor.com/wp-content/uploads/2019/10/1-25.jpg?resize=300%2C157&ssl=1 300w,https:// i2 .wp.com / www.datadriveninvestor.com / wp-content / uploads / 2019/10 / 1-25.jpg?resize = 768%2C403&ssl = 1 768w,https://i2.wp.com/www.datadriveninvestor。 com / wp-content / uploads / 2019/10 / 1-25.jpg?resize = 620%2C325&ssl = 1 620w,https://i2.wp.com/www.datadriveninvestor.com/wp-content/uploads/2019 /10/1-25.jpg?resize=696%2C365&ssl=1 696w“ data-lazy-sizes =”(最大宽度:696px)100vw,696px“ data-recalc-dims =” 1图片6:示例1天气” width =“ 696” height =“ 352” data-recalc-dims =“ 1图片7:示例2

显然,新目标将是一个改进的图像。

该模型训练了1000幅图像(20%的测试)。结果如下:

天气” width =“ 601” height =“ 211”  data-srcset=“ https://i0.wp.com/www.datadriveninvestor.com/wp-content/uploads/2019/10/1-27.jpg?w=601&ssl = 1 601w,https://i0.wp.com/www.datadriveninvestor.com/wp-content/uploads/2019/10/1-27.jpg?resize = 300%2C105&ssl = 1 300w“ data-lazy-sizes =“(最大宽度:601px)100vw,601px” data-recalc-dims =“ 1

天气“ width =” 601“ height =” 211“  data-srcset=” https://i1.wp.com/www.datadriveninvestor.com/wp-content/uploads/2019/10/1-28.jpg?w=601&ssl = 1 601w,https://i1.wp.com/www.datadriveninvestor.com/wp-content/uploads/2019/10/1-28.jpg?resize = 300%2C105&ssl = 1 300w“ data-lazy-sizes =“(最大宽度:601px)100vw,601px” data-recalc-dims =“ 1

天气” width =“ 601” height =“ 211”  data-srcset=“ https://i1.wp.com/www.datadriveninvestor.com/wp-content/uploads/2019/10/1-29.jpg?w=601&ssl = 1 601w,https://i1.wp.com/www.datadriveninvestor.com/wp-content/uploads/2019/10/1-29.jpg?resize = 300%2C105&ssl = 1 300w“ data-lazy-sizes =“(最大宽度:601px)100vw,601px” data-recalc-dims =“ 1图片8:项目2的结果。

如我们所见,它设法以准确的方式重建图像。毫无疑问,这对于天气预报和地图改进或定制中的不同应用非常有用。

这是重新创建的输出的gif:

天气” width =“ 480” height =“ 480” data-recalc-dims =“ 1图片9:连续几天的输出动画。

结论是,尽管该模型并非旨在用于这种类型的应用程序,但是该模型用于从数据推断数据。

反过来,可以使用相同的模型来改进和调整地图,使其更符合气象学中使用的图像类型。

本文显示的所有结果都可以在该项目的GitHub存储库中找到

资讯来源:由0x资讯编译自DATADRIVENINVESTOR,版权归作者Agustin Bignu所有,未经许可,不得转载