Этот пост призван возобновить мой проект Google Summer of Code (GSoC) 2022: «Поиск экзопланет с помощью астрономических наблюдений», завершенный в сотрудничестве с организацией ML4Sci.

Что такое Google Summer of Code?

Google Summer of Code, GSoC, — это программа, в рамках которой Google присуждает стипендии участникам, завершившим летом проект кодирования программного обеспечения с открытым исходным кодом; В этом году у GSoC было 202 организации с открытым исходным кодом и 1227 проектов, а именно организация ML4Sci, цель которой — внедрить современное машинное обучение и применить его к передовым проблемам в науке, технологиях, инженерии и математике.

О чем проект?

Цель этого проекта - использовать общедоступные данные наблюдений, предназначенных для идентификации экзопланет, чтобы определить, содержит ли данная звездная система одну или несколько экзопланет.

Используя общедоступные данные наблюдений, будут построены модели, предсказывающие наличие планеты. При этом могут использоваться данные любого метода обнаружения, и количество используемых методов обнаружения не ограничено.

Желаемым результатом проекта было создание модели машинного обучения для прогнозирования наличия или отсутствия экзопланет, вращающихся вокруг заданных звезд. Был доступен любой источник данных, и не было ограничений на объем применяемых моделей.

Почему машинное обучение может оказаться полезным для предсказания присутствия экзопланет?

Экзопланета – это любая планета, не входящая в нашу Солнечную систему. С начала 1990-х годов были обнаружены тысячи экзопланет. Экзопланеты идентифицируются с помощью различных методов, включая, помимо прочего, анализ транзитной кривой блеска, прямые изображения и измерения лучевой скорости. Одной из самых успешных попыток стала миссия «Кеплер», в ходе которой были изучены кривые блеска сотен тысяч звезд и идентифицировано более 2500 планет. Каждый метод обнаружения ориентирован на обнаружение разных типов планет на разном расстоянии от звезд, поэтому для полного исследования пространства экзопланетных параметров необходимы различные методы.

Как показывает миссия «Кеплер», идентификация экзопланет — любым методом — опирается на массивные наборы данных и сигналы, которые могут быть тонкими и шумными. Фактически, первая экзопланета наблюдалась за много лет до того, как она была идентифицирована, потому что исследователи изначально не заметили ее в данных. Неприятным побочным эффектом этой задержки было то, что «первая» обнаруженная экзопланета была объявлена ​​в промежутке времени, несмотря на то, что она наблюдалась спустя годы. Машинное обучение может быть полезным средством для систематического, точного и быстрого определения планет и предотвращения подобных ситуаций.

Методология проекта

Данные

Существует 3 основных типа данных астрономических наблюдений, все они берутся с космических телескопов, таких как миссии NASA Kepler и TESS; к ним относятся: файлы целевых пикселей, кривые блеска и звездная информация в виде табличных данных. В этом проекте использовались кривые блеска, поскольку данные почти в необработанном виде, извлеченные из телескопов, и они находятся в форме, которую можно загрузить в конвейеры машинного обучения с относительно легкой обработкой.

Данные были взяты и объединены из 2-х источников: Таблицы активности объектов интереса Кеплера (KOI) — Сводная таблица, из которых более подробная информация доступна здесь. Это возвращает список всех звезд, которые наблюдала миссия Kepler, но не сами кривые блеска. Для получения самих кривых освещения используется python-пакет Lightkurve.

Обработка данных

Почему необходима обработка данных?

Как видно выше, кривые блеска представляют собой данные временных рядов, где световой поток является переменной, которая изменяется во времени. Эти данные не могут быть легко введены в модели машинного обучения по нескольким причинам: большинство моделей, за исключением нескольких примитивных (таких как K-ближайшие соседи), не могут работать с данными временных рядов разной длины; и то же самое касается NaN, присутствующих в данных. Кроме того, существуют долгосрочные тенденции, возникающие из-за умирающих звезд и других явлений, которые могут повлиять на показания, а также выбросы в данных. Все это означает необходимость обработки данных.

Как обрабатывать данные?

Чтобы получить правильно отформатированные данные, были предприняты 2 подхода.

  • Необработанное представление. Идея этого подхода заключается в том, чтобы взять необработанные кривые освещения и применить самые низкие уровни обработки, которые позволяют вводить их в модели машинного обучения. Это включает в себя удаление выбросов и преобразование кривых в равноотстоящие временные интервалы.

Применение моделей

TSAI

Чтобы иметь возможность применять множество моделей к данным, были выбраны предварительно построенные модели; это связано с дополнительными преимуществами, заключающимися в том, что они, как известно, эффективны для задачи классификации временных рядов, а оценка производительности и вывод были встроены в большинство из них. Они пришли из пакета Python tsai.

Используя tsai, мы провели контрольный тест (была записана только точность проверки) с различными моделями для обоих наборов данных, а затем определили, какие модели применять к наборам данных; это было сделано, поскольку время, необходимое для полного обучения всех этих моделей, было бы значительным с вычислительной точки зрения.

Полностью прикладные модели:

  • Реснет
  • XceptionTime
  • Время начала
  • Преобразователь временных рядов
  • МиниРакета

Тест показал, что модель ResNet будет наиболее многообещающей, однако она не включает производительность преобразователя временных рядов, которая оказалась моделью с лучшими характеристиками тестирования.

Полученные результаты

Последней моделью был преобразователь временных рядов (TST), который был обучен с 1000 эпохами, достигнув точности проверки 87% и точности тестирования 84%, с настройкой гиперпараметров, примененной к частоте отсева.

Основные выводы

Обработка вопросов

Из наблюдаемых результатов становится ясно, что обработка необходима не только для перехода от необработанных входных данных к данным в правильном формате для подачи в модель машинного обучения, но и к применяемому уровню обработки и четкой методологии. имеет первостепенное значение. Для этих данных об экзопланетах ключевой была статья о методах обработки данных для глубокого изучения экзопланет, и этот набор данных рекомендуется для любых будущих проектов.

Мощность графического процессора

Было обнаружено, что даже если уменьшение размера пакета при работе с большими наборами данных выше 500 строк вызовет ошибки «ГП не хватает памяти», поэтому это исследование было ограничено примерно 500 выборками для обоих наборов данных в качестве моделей (особенно для глубокого обучения, как протестировано здесь). ) требуют большого количества образцов, продемонстрированные здесь результаты испытаний весьма многообещающи, даже если точность относительно низка.

Модели имеют значение

Из результатов мы видим, что наиболее подходящей моделью является современная модель преобразователя временных рядов; для задачи классификации временных рядов на таких небольших наборах данных сложность самой модели может быть ограничивающим фактором для получения удовлетворительных результатов.

Заключение

В заключение, этот проект демонстрирует, что машинное обучение является очень многообещающим способом обнаружения экзопланет, в частности, на основе метода кривой блеска; окончательная точность 84% является относительно низкой для типичной модели машинного обучения, но, основываясь на примерно 500 образцах, результаты показывают, что более высокая точность определенно достижима, особенно если учесть, что мы использовали подход глубокого обучения, который обычно требует большого количества образцов.

Весь код этого проекта находится по следующей ссылке: https://gist.github.com/Torus403/b98799102002cf463f49e75fb259665f#file-00-section-0-readme-md

А репозиторий для всего проекта (включая кинематические и табличные подходы) доступен в репозитории ML4Sci EXXA здесь: https://github.com/ML4SCI/EXXA.

Будущая работа и заключительные мысли

  • Расширьте проект, чтобы использовать полный набор данных кривых блеска Kepler из 7000 исследованных звезд, а также проекты K2 и TESS, которые также содержат данные кривых блеска.
  • Расширьте проект до многоклассовой классификации вместо бинарной классификации, как это было сделано.
  • Попробуйте целевые пиксели в качестве источника данных, так как эти данные легко доступны из миссии Kepler.

Я хотел бы поблагодарить моих наставников Сергея Глейзера и Джейсона Терри, а также моего коллегу Махди Булилу за их постоянную поддержку, терпение и руководство во время проекта, а также все сообщество ML4Sci.

И спасибо Google за создание такой замечательной программы!