最近の機械学習の進歩は目覚ましい。
Learning skillful medium-range global weather forecasting | Science
https://www.science.org/doi/10.1126/science.adi2336
解説記事はそんなになかったですが、
わずか1分で10日間の天気を予測可能なAI「GraphCast」をGoogle DeepMindが発表、スパコンで数時間かけた予測より高精度
https://gigazine.net/news/20231115-google-graphcast-global-weather-forecasting/
新しいモデルが発表されました。
「10日間の天気を予測する場合、従来の気象予測システムではスーパーコンピューターを数時間稼働させる必要がありましたが、GraphCastでは1台のマシンを1分稼働させるだけで従来の予測システムを超える精度での予測が可能とアピール」
「ECMWFの高分解能10日間大気予測モデル「HRES」で気象を予測するには数百台のマシンで構築されたスーパーコンピューターを数時間稼働させる必要がありますが、GraphCastではGoogle製AI特化プロセッサ「TPU v4」を1分稼働させるだけで予測可能です。」
凄まじい能力です。
GraphCast: AI model for faster and more accurate global weather forecasting
公式ページです。
「GraphCastは、天気予報のAIにおいて大きな一歩を踏み出し、より正確で効率的な予報を提供し、産業と社会のニーズに不可欠な意思決定をサポートする道を開いています。また、GraphCastのモデルコードをオープンソース化することで、世界中の科学者や予報士が、日常生活で何十億人もの人々に利益をもたらすことができます。GraphCastはすでに、ECMWFを含む気象機関によって使用されており、ECMWFは私たちのモデルの予報のライブ実験をウェブサイトで実施しています。」
すごいです。
「ディープラーニングは異なるアプローチを提供します:物理方程式ではなくデータを使用して天気予報システムを作成することです。GraphCastは、数十年にわたる歴史的気象データに基づいて訓練され、地球の天気が現在から未来にどのように進化するかを統治する原因と結果の関係のモデルを学びます。」
「衛星画像、レーダー、気象ステーションなどの歴史的気象観測に基づいており、伝統的なNWPを使用して観測が不完全な部分を「埋める」ことで、地球規模の歴史的気象の豊かな記録を再構築しています。」
手法をみます
「GraphCastは、0.25度の経度/緯度(赤道での28km x 28km)の高解像度で予報を行います。これは、地球表面全体をカバーする100万以上のグリッドポイントに相当します。各グリッドポイントで、モデルは地表の変数5つ――温度、風速と風向、平均海面圧力など――と、37の高度レベルごとの大気変数6つ――特定湿度、風速と風向、温度など――を予測します。」
「GraphCastを使用して10日間の予報を行うのに、Google TPU v4マシン1台で1分未満かかります。比較のために、HRESのような従来のアプローチを使用して10日間の予報を行う場合、数百台のマシンを搭載したスーパーコンピュータで数時間の計算が必要になります。」
「GraphCastの入力には、たった2つのデータセットが必要です:6時間前の天気の状態と、現在の天気の状態です。このモデルは、その後、6時間後の天気を予測します。このプロセスは、6時間ごとに進められ、最大10日前までの最先端の予報を提供します。」
「GraphCastは、Google DeepMindとGoogle Researchの他の最先端の天気予報システムに加わります。これには、90分先までの予報を生成する地域Nowcastingモデルや、米国とヨーロッパ全域で既に運用されている地域天気予報モデルMetNet-3が含まれ、これらは他のいかなるシステムよりも正確な24時間予報を生成します。」
めちゃくちゃ地球に貢献してますね。
使ってみる。リポジトリが公開されていて例題があります。
GraphCast
https://github.com/google-deepmind/graphcast/tree/main
使ってみました。
https://github.com/google-deepmind/graphcast/blob/main/graphcast_demo.ipynb
colabに入れると動きます。
自分のGoogle Colabで動かせました。
最後にちょっと論文から気になるところだけをピックアップしてみます。
GraphCast: Learning skillful medium-range global weather forecasting
Remi Lam, Alvaro Sanchez-Gonzalez, Matthew Willson, Peter Wirnsberger, Meire Fortunato, Ferran Alet, Suman Ravuri, Timo Ewalds, Zach Eaton-Rosen, Weihua Hu, Alexander Merose, Stephan Hoyer, George Holland, Oriol Vinyals, Jacklynn Stott, Alexander Pritzel, Shakir Mohamed, Peter Battaglia
https://arxiv.org/abs/2212.12794
かなり長い論文ですね。データもたんまりあります。モデル周りの概要だけを確認します。
「GraphCastは、地球の天気の最も最近の2つの状態――現在の時間と6時間前――を入力として取り、6時間先の天気の次の状態を予測します。単一の天気の状態は、0.25°緯度/経度グリッド(721×1440)によって表され、これは赤道でおよそ28×28キロメートルの解像度に相当します(図1a)。ここで、各グリッドポイントは一連の地表および大気変数を表します(表1に記載)。伝統的なNWPシステムと同様に、GraphCastは自己回帰的です:自身の予測を入力としてフィードバックし、任意に長い天気の状態の軌跡を生成することができます(図1b-c)。」
引用:https://arxiv.org/pdf/2212.12794.pdf
「図1 | モデル概要。(a) 入力される天気の状態は、合計721×1440=1,038,240点からなる0.25°緯度-経度グリッド上で定義されます。拡大ウィンドウ内の黄色いレイヤーは5つの地表変数を表し、青いレイヤーは37の圧力レベルで繰り返される6つの大気変数を表します(合計で1点あたり5 + 6×37 = 227変数)、これにより235,680,480値の状態表現が得られます。(b) GraphCastはグリッド上で次の天気の状態を予測します。(c) 予報は、GraphCastを前の予測された状態ごとに反復的に適用することにより、連続するリードタイムの天気を表す一連の状態を生成することによって作成されます。(d) GraphCastアーキテクチャのエンコーダー部分は、入力のローカル領域(緑のボックス)をマルチメッシュグラフ表現のノードにマッピングします(緑色の上向きの矢印は緑-青のノードで終わります)。(e) プロセッサー部分は、学習されたメッセージパッシングを使用して、各マルチメッシュノードを更新します(ノードで終わる太い青い矢印)。(f) デコーダー部分は、処理されたマルチメッシュ機能(紫のノード)をグリッド表現にマッピングします(赤いボックスで終わる赤い下向きの矢印)。(g) マルチメッシュは、基本メッシュ(𝑀0、12ノード)から最高解像度(𝑀6、40,962ノード)までの解像度が増加する二十面体メッシュから派生しており、全世界で均一な解像度を持ちます。それは𝑀6のノードのセットと𝑀0から𝑀6までのすべてのエッジを含んでいます。異なるメッシュのエッジ上での学習されたメッセージパッシングは同時に行われるため、各ノードはその入力エッジすべてによって更新されます。」
「GraphCastは、合計で3670万のパラメーターを持つ「エンコード-プロセス-デコード」構成のGNNに基づくニューラルネットワークアーキテクチャとして実装されています。以前のGNNベースの学習シミュレーターは、偏微分方程式によってモデル化された流体およびその他のシステムの複雑なダイナミクスを学習するのに非常に効果的であり、これは天候ダイナミクスのモデリングに適していることを支持しています。」
そうだったのか。。。
「エンコーダー(図1d)は単一のGNNレイヤーを使用して、入力グリッド上のノード属性として表される変数(ゼロ平均単位分散に正規化された)を内部の「マルチメッシュ」表現上の学習されたノード属性にマッピングします。
マルチメッシュ(図1g)は、地球上で高い空間解像度を持つ、空間的に均一なグラフです。これは、正規の二十面体(12ノード、20面、30エッジ)を6回反復して細分化することによって定義され、各細分化は各三角形を4つの小さなものに分割し(4倍の面とエッジになる)、ノードを球体上に再投影します。マルチメッシュは、最高解像度メッシュからの40,962ノードと、中間グラフで作成されたすべてのエッジの結合を含み、さまざまな長さのエッジを持つフラットな階層を形成します。」
「プロセッサー(図1e)は16の共有されていないGNNレイヤーを使用して、マルチメッシュ上で学習されたメッセージパッシングを実行し、少ないメッセージパッシングステップで効率的なローカルおよび長距離情報伝播を可能にします。
デコーダー(図1f)は、マルチメッシュ表現から最終プロセッサーレイヤーの学習された特徴を緯度-経度グリッドに戻します。これは単一のGNNレイヤーを使用し、最新の入力状態への残差更新として出力を予測します(ターゲット残差上で単位分散を達成するための出力正規化)。」
グラフニューラルネットワークってすごいんですね。。。ちょっと興味が湧きました。以上です。