【ITニュース解説】Finding Exoplanets in Noisy Data with Machine Learning
2026年09月15日に「Dev.to」が公開したITニュース「Finding Exoplanets in Noisy Data with Machine Learning」について初心者にもわかりやすく解説しています。
ITニュース概要
ケプラー望遠鏡の観測データはノイズが多く、系外惑星探しは困難だった。このため、機械学習AI「Astrobit 1.0」を開発。データクリーンアップ、トレンド除去、特徴抽出、ランダムフォレスト分類器などを組み合わせ、ノイズを除去し、惑星候補を高精度で自動検出するシステムを構築した。
ITニュース解説
宇宙に存在する他の星の周りを回る惑星、通称「太陽系外惑星」を見つけることは、非常に難しい課題である。ケプラー宇宙望遠鏡のような観測装置は、遠くの星の明るさが時間とともにどのように変化するかを示す「光度曲線」という生のデータを提供する。この光度曲線の中に、もしその星の周りを惑星が周回し、私たちと星の間を横切る(通過する)と、その星の明るさは一時的にわずかに暗くなる現象(減光)が起こる。この減光の信号を、大量の「ノイズ」の中から正確に探し出すことが、太陽系外惑星探索の中心的な課題である。
ケプラー望遠鏡から得られる生の明るさデータは、様々な要因によるノイズが大量に含まれており、非常に複雑である。例えば、観測装置自体の特性による系統的な誤差、宇宙から飛来する高エネルギー粒子(宇宙線)がセンサーに与える影響、そして観測期間の区切りで生じる不自然なデータなどがある。これらのノイズは、本物の惑星による減光と区別がつきにくく、単純に「明るさがこれだけ暗くなったら惑星だ」というような閾値(基準値)を設定する方法では、本当の惑星を見逃したり、実際には惑星ではない現象を誤って惑星だと判断したりする「誤検出」が頻繁に発生してしまう。この問題を解決するために、「Astrobit 1.0」というシステムが開発された。これは、機械学習という技術を駆使して、ノイズの中から地球のような惑星の信号を自動的に見つけ出すことを目指したものである。
Astrobit 1.0のシステムは、複数の独立した処理段階を経て、太陽系外惑星の候補を特定する。最初の段階では、ケプラー望遠鏡からの生の明るさデータが入力される。この生データは、まず「クリーナー」という処理によってきれいにされる。ここでは、観測中に発生した異常な時点のデータを無効化したり、平均から大きくかけ離れた異常なデータポイント(外れ値)を自動的に取り除いたりする。これにより、データの品質が向上する。
次に「デトレンド」処理が行われる。星の明るさは、観測装置の熱変化や星自体の活動など、様々な理由でゆっくりと変化する傾向(トレンド)がある。この大きなトレンドがあると、惑星によるわずかな減光が見えにくくなってしまうため、「サビツキー・ゴレイフィルター」というデジタルフィルターを使って、データの滑らかな傾向を保ちつつ、ノイズや長期的なトレンドを取り除く。この処理は非常に重要であり、開発チームも最も時間をかけた部分である。なぜなら、ここでデータが適切に処理されないと、その後の全ての分析の精度が著しく低下してしまうからである。このデトレンド処理によって、惑星通過による真の減光の約90%を高い精度で回復できることが示された。
トレンドが除去されきれいになったデータに対して、「ボックス最小二乗法探索(BLS探索)」が実行される。これは、周期的な減光パターンを探し出すためのアルゴリズムである。数多くの異なる周期を試す必要があるため、まず粗い周期の候補を5万パターンも試すことで大まかな減光の兆候を見つけ出し、次にその周辺をより詳細に絞り込んでいくという、二段階の効率的な探索方法が採用されている。これにより、全周期を詳細に探索するよりも約100倍も高速に処理できる。さらに、誤った周期で減光が検出される「エイリアス」という現象を防ぐために、検出された周期の半数や倍数の周期でもチェックを行い、誤検出の可能性を排除する。
BLS探索によって減光の候補が見つかると、次に「特徴量抽出器」がその候補から様々な情報を集める。これには、減光の統計的な有意性を示す指標、減光の深さ、信号とノイズの比率(SNR)、奇数番目と偶数番目の減光の深さが一貫しているか、そして惑星が星の裏側に隠れる際に起こるわずかな減光(二次食)がないか、といったものが含まれる。これらの情報は、機械学習モデルが判断するための重要な「手がかり」となる。
これらの特徴量を入力として受け取るのが、「ランダムフォレスト分類器」という機械学習モデルである。これは、複数の決定木というシンプルな判断ルールを組み合わせることで、より複雑なパターンを認識し、高い精度で「この減光は惑星によるものか、それともノイズや他の現象によるものか」を分類する。過去に惑星の有無がすでにわかっている269の星のデータを使って学習させることで、このモデルは人間には難しい判断を自動で行うことができる。単純な閾値による判断では多くの誤検出が発生したが、ランダムフォレストを使うことで誤検出の割合が大幅に減少した。
ランダムフォレスト分類器が出力する「スコア」は、そのままでは真の確率を表しているわけではない。そこで、「プラットスケーラー」という処理を使って、このスコアを実際の確率に変換する。これにより、各候補が本当に惑星である可能性を数値として信頼できるようになり、候補を信頼度の高い順に並べ替えることが可能になる。
最後に、「ベッター」という検証段階がある。機械学習モデルは多くの誤検出を排除するが、それでも特定の種類の偽陽性、例えば二つの星が互いに食を起こす「食連星」のように、惑星による減光と非常によく似たパターンを示すものを見抜けない場合がある。ベッターは、二次食の有無や、異なる観測期間で減光が一定の周期で繰り返されているか、奇数番目と偶数番目の減光の深さに矛盾がないか、といった追加のチェックを行うことで、このような誤検出を最終的に排除する。
これらの段階を経て、最も信頼性の高い惑星候補が選ばれ、最終的なリストとして出力される。Astrobit 1.0は、Python言語を基盤とし、scikit-learn、lightkurve、scipy、numpyといった機械学習や科学技術計算のためのライブラリを活用して構築された。
このプロジェクトから得られた教訓は、システム開発においても非常に価値のあるものである。第一に、データの「前処理」、特にデトレンド処理が機械学習モデルの性能以上に重要であるということ。前処理が不十分だと、下流の全ての処理や判断が影響を受け、システムの全体的な信頼性が損なわれるため、この部分に時間と労力をかける価値があることが示された。第二に、一度計算した結果を保存しておく「キャッシュ」の重要性である。BLS探索のような時間のかかる処理の結果を保存しておくことで、開発やデバッグの時間を大幅に短縮できた。第三に、単一の基準だけで判断するのではなく、複数の情報源(特徴量)を使って総合的に判断する機械学習モデルの優位性である。これにより、誤検出を大幅に削減できた。第四に、機械学習モデルが出すスコアを実際の確率に校正することの重要性である。これにより、候補の信頼度を客観的に評価できるようになり、結果の信頼性が向上した。最後に、機械学習モデルによる自動化だけでは不十分で、人間の知識に基づいた最終的な「検証」ステップが不可欠であるということ。これにより、特定の種類の誤検出を確実に取り除き、最終的な結果の精度をさらに高めることができた。Astrobit 1.0は、機械学習が科学的な発見、特に太陽系外惑星探索のような複雑でノイズの多いデータから信号を抽出する分野で、いかに強力なツールとなるかを示している。