ML を活用して天気と気候のリスクを予測
Google Cloud Japan Team
※この投稿は米国時間 2023 年 3 月 11 日に、Google Cloud blog に投稿されたものの抄訳です。
はじめに
地球上のすべての生物は、天気と呼ばれる大気現象の影響を受けています。そのため、人類はあらゆる種類の測定ツールを発明し、幸運にも観測から得た大量のデータを保有しています。これらのデータにおける技術的な取り組みは、これまでに著しい進歩を遂げてきました。紙や地下室のローカル サーバーに収集されていたデータは、現在では、さまざまなセンサーデータを正規化するオープンなクラウド プラットフォーム上に存在し、誰でも研究に利用できるようになっています。
また、より優れた予測モデルを構築する AI 技術も、ディープ ラーニングと呼ばれるニューラル ネットワークによって進化してきました。Google Research で AI Weather&Climate を研究している私の同僚は、MetNet という素晴らしいモデルを構築しました。これは、夕方のニュースで見るような降水量予測を 1 キロメートルという驚異的な空間分解能により、時間分解能 2 分で、最長 12 時間まで実行します。7~8 時間しか予測できなかった他の従来のモデルよりも優れた性能を発揮します。より具体的には、比較的短時間で局所的な大雨を予測できます。
Google の People&Planet AI シリーズの 12 分間の YouTube エピソードでは、Google Earth Engine と Google Cloud を使用した天気予報モデルの構築方法について解説しています。また、技術者向けのノートブックを参照して、実際にお試しいただくこともできます。なお、このサンプルモデルの構築にかかった総費用は、合計で 1 ドル未満でした(公開日現在)。
この記事では、その概要をご紹介します。
目次
物理ベース気象モデルとディープ ラーニング気象モデルの比較
Google Cloud と Earth Engine でモデルを構築する方法
試してみる
Google をフォローする
極めて高い解像度で地球を理解したい人にとって、これらは非常に大きなデータセットです。Google のクラウド プラットフォームを使用すれば、これらの大規模なデータセットをダウンロードして、この研究をしたいと思うすべての人に利用してもらえるようになります。
Google AI、Weather&Climate 担当 Jason Hickey
物理ベース気象モデルとディープ ラーニング気象モデルの比較
歴史的に見ても、気象モデルを計算することは非常に困難でした。これは、物理学をベースにして、互いに影響し合う自然の力をシミュレートしようとしてきたためです。コンピュータでこのような計算を行うには、複雑なルールの長いシーケンスを含むプログラムを書く必要があるため、膨大な計算量と時間が必要になります。
しかし最近になって、この状況は、ディープ ラーニングを使用した根本的に異なるアプローチによって変わりつつあります。この方法では、さまざまな降水現象のラベルを付けた衛星画像のデータセットを使用してモデルをトレーニングすることにより、雲の動きの気象パターンを見つけるモデルを構築できます。つまり、モデルはシミュレーションによって気象システム全体を再現しようとするのではなく、ピクセルのモザイクから視覚的なパターンを認識するトレーニングが行われ、そのことに計算能力を集中します。これは、私たちの目のはたらきに似ていると言えるでしょう。このような進歩により、地球の変化を細かく計測する Dynamic World のようなプロジェクトも実現しました。
さらに、この手法を GPU や TPU などの高度なデータ処理ハードウェアと組み合わせることで、ユーザーはわずかな費用と時間でより正確な予測を得られるようになります。
この図は、物理ベースのアンサンブル HREF やグラウンド トゥルース MRMS と比較した、MetNet-2 による予測の一部です。
Google Cloud と Earth Engine でモデルを構築する方法
ご利用を開始するには、Google Earth Engine のアカウント(非営利団体の場合は無料)と、Google Cloud アカウント(ご利用を開始する場合、すべてのユーザーに無料枠あり)が必要です。モデルを構築するために使用するプロダクトが機能別に分けられています。このモデルは、2~6 時間の非常に短期間の天気予報を行うもので、ナウキャストと呼ばれています。
ナウキャスト モデルのトレーニングとデプロイのためのアーキテクチャは、まずデータを入力することから始まります(Earth Engine に一元化されている降水量(GPM)、衛星画像(GOES-16)、標高のデータが使用されます)。そして、モデルに予測させる項目(降水量(ミリメートル)、1 時間あたりの雨や雪の範囲)のラベルを出力することで終了します。Dataflow は、エクスポート プロセスを数時間から数分にスピードアップするためのデータ処理サービスで、Earth Engine の大容量エンドポイントを使用します。通常は、stratifiedSample を使用して分類ごとにバランスのとれた量のポイントを収集しますが、回帰で行っているため、タイプを分類するラベルのためにバケットを作成する必要があります。
ヒント: これらの用語(回帰や分類など)に馴染みがない場合は、9 分間のディープ ラーニング紹介動画をご覧になることをおすすめします。
ここでは、すべての数値ラベルを整数に変換し、それらがすべて分類バケットに分類されるようにします。1 時間あたりの降水量が 0~30 ミリメートルであることを表す 31 のバケットを選んでいます。
ここでは、2 時間後と 6 時間後の 2 回に分けて予測しますが、必要に応じて任意の回数を設定できます。また、入力が必要なデータ量については、過去のデータが多ければ多いほど精度は向上しますが、将来の予測をするのに十分なコンテキストを提供するには、少なくとも入力ポイントが 3 つ必要であることがわかっています。
次に、PyTorch(ML ライブラリ)を使用し、Vertex AI という Google の ML プラットフォームでモデルをトレーニングするスクリプトを書きます。ダウンロードしたデータセットの 90% をモデルのトレーニングに使用し、10% は、それまでに遭遇したことがないデータでモデルの精度をテストするために使用します。最終的には、ウェブ ホスティング サービスである Cloud Run にモデルをホストできます。
そして最後に、地図として予測結果を可視化するために、colab のようなノートブックを使用したり、それを Earth Engine に戻したりできます(10 分間の土地被覆の動画やコードサンプルでは、完全な畳み込みネットワーク-ERR:REF-NOT-FOUND-を使用して、衛星画像から地球上の変化を分類する方法を紹介しています)。
試してみる
以上、ディープ ラーニング技術と Google プロダクトを使用して天気予報モデルを構築する方法の概要でした。お試しになるには、GitHub のこちらのコードサンプルをご覧ください(画面の下部にある [Open in Colab] をクリックしてノートブック形式のチュートリアルを表示するか、こちらのショートカットをクリックしてください)。このチュートリアルは 4 つのノートブックに分かれており、最初から最後まで通して進めることも、特定の部分をスキップすることもできます。
Colab を使用すると、ここで使用したすべてのコードを見ることができます。また、[再生] アイコンをクリックして、コードをライブで実行することもできます(任意のアカウント認証情報を入力できます)。
Google をフォローする
環境レジリエンスのために ML を使用する皆様の熱意に対し、心からの賛辞を贈ります。今後も私たちのコンテンツをフォローしていただけると幸いです。Twitter や YouTube で情報を発信しています。
- Geo for Environment 担当デベロッパー アドボケイト Alexandrina Garcia-Verdin