The Multimodal Universe: 天文学向け大規模機械学習用ビッグデータ

天文学は、その観測対象の広大さと複雑さから、常に膨大なデータを扱う分野です。近年、技術の進歩に伴い、画像、スペクトル、時系列データなど、多種多様な形式のデータが取得できるようになりました。これらのデータを統合的に解析することで、宇宙の理解をより深めることができると期待されています。
しかし、異なる観測装置や研究グループによって作成されたデータは、形式や保存方法が統一されていないことが多く、研究者にとってこれらのデータを横断的に利用することは大きな課題でした。
この問題を解決するために、複数のデータ形式を統合したマルチモーダル・データセットが期待されています。今回は、特に天文学分野における大規模なマルチモーダル・データセット「The Multimodal Universe」に焦点を当て、その概要、利用方法、そして今後の展望について紹介します。
The Multimodal Universe とは?
The Multimodal Universeは、天文学における機械学習研究を促進するために構築された、大規模なマルチモーダル・データセットです1。その特徴を以下にまとめます。
- 規模: 数億件に及ぶ天体観測データから構成され、総データ量は100TBを超えます。この規模は、天文学分野において、過去最大級の規模です。
- 多様性: マルチチャンネルおよびハイパースペクトル画像、スペクトル、多変量時系列データなど、多岐にわたる観測データが含まれています。さらに、これらのデータに関連する科学的測定値と「メタデータ」も豊富に提供されています。
- 学術分野: データは主に天文学および宇宙物理学の分野に属し、様々な望遠鏡や観測機器によって取得されたものが含まれています。
- 構築目的: 機械学習モデルの開発を主な目的としており、特に科学分野における基盤モデルの構築を視野に入れています。

データセットの詳細
このデータセットは、複数の観測データを統合的に扱うことができるように設計されており、そのマルチモーダル性が大きな特徴です。
- マルチモーダル性: 異なる種類のデータは、天体の位置座標に基づいて関連付けられています。これにより、例えば、ある天体の画像とスペクトルデータを組み合わせて解析することが可能になります。ただし、すべてのデータが完全にクロス・マッチングされているわけではなく、大規模な非ペアデータも含まれている点に注意が必要です。
- データ形式:
- 画像データ: 多チャンネル画像は、複数の波長帯で取得された天体画像です。ハイパースペクトル画像は、さらに多くの波長帯で取得され、空間的に分解されたスペクトル情報を含んでいます。画像データは、個々の天体を切り出した画像として提供され、多くの場合、160×160ピクセル程度のサイズです。
- スペクトルデータ: 天体からの光を波長ごとに分解した1次元データです。様々な波長範囲のデータが含まれており、天体の化学組成や運動状態を解析するのに利用できます。
- 時系列データ: 天体の明るさの時間変化を記録したデータです。超新星のような一時的な現象や、変光星のような周期的な変化を捉えるのに役立ちます。
- 表形式データ: 天体の測定値や、解析パイプラインの結果などを含みます。
- メタデータ: 各観測データには、観測ノイズ、ピクセルスケール、観測機器の応答関数など、科学的な解釈に必要な様々なメタデータが付与されています。これらのメタデータは、機械学習モデルの性能向上だけでなく、科学的な妥当性を検証する上でも重要です。データセットには、各モダリティの標準化されたフィールドとメタデータの記述が含まれており、複数のサーベイや機器からの観測の一貫した解釈を可能にするために必要な情報が含まれています。
- データ取得方法: データは、地上および衛星ベースの様々な望遠鏡によって取得されました。例えば、Legacy Surveys, HSC, JWST, SDSS, DESI, TESS, Gaiaなどのプロジェクトのデータが含まれています。これらのサーベイは、それぞれ異なる観測戦略や対象天体を持っているため、データセット全体として非常に多様な観測条件をカバーしています。

ベンチマークタスク
The Multimodal Universeには、天文学における一般的な機械学習タスクを反映した、複数のベンチマークタスクが含まれています2。これらのタスクは、データセットの利用を促進し、モデルの性能を評価するための基盤となります2。
- タスクの種類:
- 銀河の形態分類: 銀河の画像を、その形状に基づいて分類するタスクです。
- 超新星の候補識別: 画像データとメタデータを用いて、超新星の候補を識別するタスクです。
- 物理特性の推定: 画像、スペクトル、測光データから、銀河や星の物理特性(例えば、赤方偏移、質量、星形成率など)を推定するタスクです。
- 対照学習: 画像とスペクトルの間の対照学習を通じた自己教師あり表現学習です。
- タスクの選定理由: これらのタスクは、天文学における標準的な解析手法を反映しており、機械学習の有効性を評価するための適切な指標となります。また、これらのタスクは、天文学における様々な研究テーマに関連しており、データセットの多様性を活かすことができます。
- タスクの難易度: 各タスクは、データセットの規模や複雑さから、機械学習モデルにとって挑戦的です。例えば、銀河の形態分類タスクでは、多様な形状を持つ銀河を高精度に分類する必要があり、超新星の候補識別タスクでは、ノイズの多いデータから微弱な信号を検出する必要があります。
機械学習モデルへの応用
The Multimodal Universeは、天文学における機械学習の発展を大きく加速させる可能性を秘めています。
- 期待される効果:
- 大規模なマルチモーダルモデルの開発: このデータセットを用いることで、画像、スペクトル、時系列データなど、複数のデータ形式を統合的に処理できる強力なモデルを開発することが期待されます。
- 科学的な発見の加速: 開発されたモデルは、大量の観測データを効率的に解析し、新たな科学的発見につながる可能性があります。例えば、超新星の早期発見や銀河の進化過程の解明などが期待できます。
- 転移学習の促進: 異なる観測データセット間で、知識を転移する転移学習の適用を促進し、少ないデータでモデルを効率的にトレーニングできます。
- 科学における基盤モデルの構築: 天文学分野で大規模なデータセットを公開することは、科学分野における基盤モデルの開発を促進し、他の科学分野における機械学習の進歩にも貢献することが期待されます。
- 科学への貢献:
- 宇宙の理解の深化: このデータセットを用いた機械学習モデルは、宇宙の構造、進化、現象に関する理解を深める上で不可欠なツールになると期待されます。
- データ駆動型科学の推進: 天文学研究におけるデータ駆動型のアプローチを推進し、従来の理論的な研究を補完することが期待されます。
- 観測戦略の最適化: 観測データと機械学習モデルを組み合わせることで、観測戦略の最適化にも貢献する可能性を秘めています。
- 潜在的な課題:
- 計算資源: 大規模なデータセットを扱うためには、高性能な計算機環境が必要となります。
- データ管理: データのダウンロード、保存、整理など、効果的なデータ管理が重要となります。
- モデルの解釈可能性: 機械学習モデルは、往々にしてブラックボックス化しやすいため、モデルの解釈可能性を高め、科学的な理解を深める努力が必要です。
The Multimodal Universe の利用方法
Multimodal Universe データセットは、Hugging Face プラットフォームからダウンロードして利用できます。データセットの詳細については、Hugging Face の該当ページを確認するか、GitHub リポジトリを参照してください。
なお、現在利用できるデータは、下表の通りです。
Survey | Modality | Science Use Case | # samples |
---|---|---|---|
Legacy Surveys DR10 | Images | Galaxies | 124M |
Legacy Surveys North | Images | Galaxies | 15M |
HSC | Images | Galaxies | 477k |
BTS | Images | Supernovae | 400k |
JWST | Images | Galaxies | 300k |
Gaia BP/RP | Spectra | Stars | 220M |
SDSS-II | Spectra | Galaxies, Stars | 4M |
DESI | Spectra | Galaxies | 1M |
APOGEE SDSS-III | Spectra | Stars | 716k |
GALAH | Spectra | Stars | 325k |
Chandra | Spectra | Galaxies, Stars | 129k |
VIPERS | Spectra | Galaxies | 91k |
MaNGA SDSS-IV | Hyperspectral Image | Galaxies | 12k |
PLAsTiCC | Time Series | Time-varying objects | 3.5M |
TESS | Time Series | Exoplanets | 160k |
CfA Sample | Time Series | Supernovae | 1k |
YSE | Time Series | Supernovae | 2k |
PS1 SNe Ia | Time Series | Supernovae | 369 |
DES Y3 SNe Ia | Time Series | Supernovae | 248 |
SNLS | Time Series | Supernovae | 239 |
Foundation | Time Series | Supernovae | 180 |
CSP SNe Ia | Time Series | Supernovae | 134 |
Swift SNe Ia | Time Series | Supernovae | 117 |
Gaia | Tabular | Stars | 220M |
PROVABGS | Tabular | Galaxies | 221k |
Galaxy10 DECaLS | Tabular | Galaxies | 15k |
Pythonを利用することで簡単にデータを取得できるので、早速ダウンロードして中身を確認してみましょう。まずは、pipコマンドを使用して、必要なPythonパッケージをインストールします。
$ pip install datasets
# 今回は画像データを例に確認していくので、Matplotlibもインストールしておきます。
$ pip install matplotlib
今回は、ジェイムズ・ウェッブ宇宙望遠鏡(JWST)で観測された銀河の画像を確認してみます。次のようにすることで、当該データを取得できます。
from datasets import load_dataset # streaming=False にすると、全データ一気にダウンロードされます。 jwst = load_dataset("MultimodalUniverse/jwst", split="train", streaming=True) jwst = jwst.with_format("numpy") # 最初のデータを取り出す data = next(iter(jwst)) print(data)
JWSTデータの内容 (クリックして展開)
{'image': {'band': array(['f090w', 'f115w', 'f150w', 'f200w', 'f277w', 'f356w', 'f444w'],
dtype=object), 'flux': array([[[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
...,
[-0.04436091, -0.04982802, -0.00990715, ..., -0.05501344,
-0.07237495, -0.02402613],
[ 0.06514153, 0.02617454, -0.02339642, ..., -0.05597612,
-0.02314084, -0.00959741],
[ 0.01850694, 0.06668293, 0.01783583, ..., -0.02990865,
-0.04945605, -0.01038053]],
[[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
...,
[-0.04718581, -0.0509833 , -0.0090913 , ..., -0.02974769,
-0.00465148, -0.00392049],
[ 0.03037925, 0.00490437, 0.03269209, ..., 0.06548262,
0.04759821, -0.03889234],
[ 0.00405256, -0.06013254, -0.03454791, ..., -0.0473902 ,
-0.02654542, 0.0030592 ]],
[[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
...,
[ 0.00084935, 0.03110428, -0.05221398, ..., -0.01938104,
-0.049513 , -0.00897552],
[-0.00731311, -0.02776854, -0.02857358, ..., -0.01402313,
-0.07956383, -0.03024812],
[-0.01873844, 0.0267277 , 0.01732414, ..., -0.03129936,
0.00134412, -0.04971164]],
...,
[[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
...,
[-0.00920373, -0.01157118, 0.00823402, ..., 0.01067205,
-0.00583369, 0.00325032],
[ 0.00379672, 0.01740293, 0.01757478, ..., -0.00346839,
-0.00605852, 0.01221837],
[ 0.0072095 , 0.00766061, -0.00145523, ..., -0.00764878,
-0.0003703 , 0.03294371]],
[[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
...,
[ 0.00821444, -0.01201531, 0.00641221, ..., -0.00883668,
-0.00712929, -0.03127956],
[ 0.01570093, -0.02655274, -0.0060177 , ..., -0.00557671,
-0.01297471, -0.03774685],
[ 0.02090142, 0.0215053 , 0.021881 , ..., 0.01632322,
-0.00940459, -0.00013145]],
[[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
...,
[-0.01582881, 0.01289069, -0.0243545 , ..., 0.02387201,
-0.00474598, 0.00601821],
[-0.01411688, -0.0029766 , -0.01661145, ..., 0.00064274,
0.00337124, 0.00910433],
[-0.03093166, 0.02929786, 0.02238798, ..., -0.00728078,
0.00054407, 0.00482096]]], shape=(7, 96, 96), dtype=float32), 'ivar': array([[[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
...,
[ 511.70724, 559.32214, 504.3219 , ..., 585.5204 ,
507.65823, 567.6152 ],
[ 485.81564, 554.5168 , 481.87634, ..., 554.4088 ,
539.7351 , 556.4235 ],
[ 519.3023 , 497.9111 , 535.28217, ..., 533.03687,
552.4602 , 489.31543]],
[[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
...,
[ 597.62866, 593.7455 , 647.36285, ..., 609.7694 ,
605.8113 , 628.77954],
[ 573.71814, 304.23837, 587.1692 , ..., 539.64813,
555.907 , 604.2013 ],
[ 609.1371 , 544.7761 , 563.6898 , ..., 622.68396,
579.66187, 576.4253 ]],
[[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
...,
[ 935.8034 , 838.4577 , 990.8081 , ..., 901.95435,
930.8503 , 913.76404],
[ 987.2057 , 983.5839 , 912.61206, ..., 898.35016,
858.0229 , 1011.22675],
[ 889.45703, 923.05524, 920.6023 , ..., 993.2654 ,
850.73645, 953.91266]],
...,
[[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
...,
[2331.8496 , 3429.6902 , 2824.4097 , ..., 3845.3228 ,
2443.8416 , 3118.1023 ],
[2379.026 , 3184.4368 , 2107.33 , ..., 3121.391 ,
2616.5063 , 1655.3477 ],
[3656.1143 , 2359.6743 , 2989.1802 , ..., 2387.2424 ,
3893.1106 , 1538.2104 ]],
[[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
...,
[1136.603 , 4316.997 , 2577.4878 , ..., 4191.871 ,
2722.512 , 4207.4814 ],
[2394.9165 , 2758.3372 , 3281.2651 , ..., 2761.2795 ,
4327.606 , 3310.8047 ],
[1662.5266 , 1800.1964 , 4065.9966 , ..., 2720.436 ,
4357.0596 , 2541.1143 ]],
[[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
[ 0. , 0. , 0. , ..., 0. ,
0. , 0. ],
...,
[1958.5115 , 1199.7349 , 1980.0793 , ..., 1220.3306 ,
1270.4813 , 1318.2095 ],
[1280.2042 , 1543.4551 , 1806.6346 , ..., 1590.3546 ,
571.5766 , 1492.689 ],
[1047.1595 , 1898.0812 , 1338.0413 , ..., 1814.6711 ,
1384.4066 , 1977.6144 ]]], shape=(7, 96, 96), dtype=float32), 'mask': array([[[False, False, False, ..., False, False, False],
[False, False, False, ..., False, False, False],
[False, False, False, ..., False, False, False],
...,
[ True, True, True, ..., True, True, True],
[ True, True, True, ..., True, True, True],
[ True, True, True, ..., True, True, True]],
[[False, False, False, ..., False, False, False],
[False, False, False, ..., False, False, False],
[False, False, False, ..., False, False, False],
...,
[ True, True, True, ..., True, True, True],
[ True, True, True, ..., True, True, True],
[ True, True, True, ..., True, True, True]],
[[False, False, False, ..., False, False, False],
[False, False, False, ..., False, False, False],
[False, False, False, ..., False, False, False],
...,
[ True, True, True, ..., True, True, True],
[ True, True, True, ..., True, True, True],
[ True, True, True, ..., True, True, True]],
...,
[[False, False, False, ..., False, False, False],
[False, False, False, ..., False, False, False],
[False, False, False, ..., False, False, False],
...,
[ True, True, True, ..., True, True, True],
[ True, True, True, ..., True, True, True],
[ True, True, True, ..., True, True, True]],
[[False, False, False, ..., False, False, False],
[False, False, False, ..., False, False, False],
[False, False, False, ..., False, False, False],
...,
[ True, True, True, ..., True, True, True],
[ True, True, True, ..., True, True, True],
[ True, True, True, ..., True, True, True]],
[[False, False, False, ..., False, False, False],
[False, False, False, ..., False, False, False],
[False, False, False, ..., False, False, False],
...,
[ True, True, True, ..., True, True, True],
[ True, True, True, ..., True, True, True],
[ True, True, True, ..., True, True, True]]],
shape=(7, 96, 96)), 'psf_fwhm': array([0.033, 0.04 , 0.05 , 0.066, 0.092, 0.116, 0.145], dtype=float32), 'scale': array([0.04, 0.04, 0.04, 0.04, 0.04, 0.04, 0.04], dtype=float32)}, 'mag_auto': np.float32(23.07006), 'flux_radius': np.float32(8.395674), 'flux_auto': np.float32(1.9860381), 'fluxerr_auto': np.float32(0.0030488716), 'cxx_image': np.float32(0.006354722), 'cyy_image': np.float32(0.03653635), 'cxy_image': np.float32(-0.0042293277), 'object_id': np.str_('1757963689505748225')}
画像データの情報を確認すると、次のように7つのチャンネルを持つことがわかります。それぞれ、異なる波長帯で観測されたデータとなっています。
shape = data["image"]["flux"].shape band = data["image"]["band"] print(f"画像データの形状: {shape}") print(f"各チャンネルの説明: {band}")
画像データの形状: (7, 96, 96)
各チャンネルの説明: ['f090w' 'f115w' 'f150w' 'f200w' 'f277w' 'f356w' 'f444w']
では、画像データを表示して確認してみます。
import matplotlib.pyplot as plt fig, ax = plt.subplots(nrows=1, ncols=7, figsize=(15, 6)) for i in range(7): ax[i].set_title(f"Band: {band[i]}", fontsize=10, color="blue") ax[i].axes.xaxis.set_visible(False) ax[i].axes.yaxis.set_visible(False) ax[i].imshow(data["image"]["flux"][i]) plt.tight_layout() plt.show()

以上のように、Hugging Face プラットフォームで管理される天文学データを容易に使用することができました。今回は、画像データを例に説明しましたが、時系列データや表形式データについても簡単に利用できます。
おわりに
The Multimodal Universeは、天文学分野における機械学習研究を大きく前進させることを目指して構築された、過去最大規模のデータセットです。このデータセットが、研究者コミュニティにもたらす潜在的なインパクトと、今後の展望についてまとめます。
データセットの意義
- 機械学習モデル開発の加速: The Multimodal Universeは、大規模なマルチモーダルデータを扱うための標準的なデータセットを提供することで、高度な機械学習モデルの開発を加速させます。特に、天文学分野における基盤モデルの構築を視野に入れ、科学的発見を促進するための強力な基盤となることが期待されます。
- 分野横断的なコラボレーションの促進: このデータセットは、天文学と機械学習の両分野の研究者が、共通の課題に取り組むためのプラットフォームを提供します。これにより、異分野間の知識の融合が進み、新たな研究テーマやアプローチが生まれることが期待されます。
- 科学的知見の深化: データセットに含まれる、多様な観測データとメタデータは、宇宙の構造、進化、現象に関する理解を深めるための貴重な資源となります。機械学習モデルを活用することで、これまで見過ごされてきたパターンや関係性を明らかにし、新たな科学的知見をもたらす可能性があります。
- データ駆動型科学の推進: The Multimodal Universeは、天文学研究におけるデータ駆動型のアプローチを推進し、実験や観測から得られた大量のデータを効率的に解析するための道を開きます。これにより、仮説検証型の従来の研究手法を補完し、より深い科学的理解へと繋がります.
- オープンサイエンスの促進: データセットは、オープンアクセスで提供されており、誰でも利用可能です。このことは、科学研究の透明性と再現性を高めるとともに、研究成果の共有と普及を促進します。
今後の展望
- データセットの継続的な拡充: The Multimodal Universeは、オープンで協調的なプロジェクトとして運営されており、新しいデータの追加や既存データの改善が継続的に行われる予定です。これにより、データセットの規模と多様性がさらに拡大し、より高度な機械学習モデルの開発が可能になると期待されます。
- ベンチマークタスクの拡充: 新たな機械学習タスクの追加や、既存タスクの高度化が進められます。これにより、モデルの性能評価がより多角的に行えるようになり、研究の進捗を測るためのより良い基準が提供されます。
- モデルの実装と応用: データセットを用いて開発された機械学習モデルのオープンソース化や、天文学における様々な課題への応用が進められます。これにより、研究成果が広く共有され、実際の観測データ解析に活用されることが期待されます。
- テキストデータとの統合: 現在、The Multimodal Universeにはテキストデータが含まれていませんが、将来的には、観測データとテキストデータの統合も視野に入れています。これにより、自然言語処理技術を活用したより高度な科学的発見が可能になります.
- 教育・啓蒙活動への活用: データセットは、天文学や機械学習を学ぶ学生にとって、実践的な教材としても活用できます。教育プログラムやワークショップを通じて、データ駆動型科学の重要性を広めることに貢献できます。
まとめ
The Multimodal Universeは、天文学研究のパラダイムシフトを促す可能性を秘めた、革新的なデータセットです。データ駆動型の研究を推進し、宇宙の謎を解き明かす上で、重要な役割を果たすことが期待されます。
More Information
- arXiv:2412.02527, Multimodal Universe Collaboration. Eirini Angeloudi et al., 「The Multimodal Universe: Enabling Large-Scale Machine Learning with 100TB of Astronomical Scientific Data」、https://arxiv.org/abs/2412.02527