|
最近,我们通过训练神经网络来分析 NASA开普勒太空望远镜的数据并准确识别最有希望的行星信号,发现了两颗系外行星。虽然这只是对约 700 颗恒星的初步分析,但我们认为这是使用机器学习发现系外行星的成功概念验证,更广泛地说,这是使用机器学习在各种科学学科(例如医疗保健、量子化学和聚变研究)中取得有意义进展的另一个例子。今天,我们很高兴发布用于处理开普勒数据、训练神经网络模型和对新候选信号进行预测的代码。我们希望此版本将成为为其他 NASA 任务开发类似模型的有用起点,例如K2(开普勒的第二次任务)和即将到来的凌日系外行星勘测卫星任务。除了宣布发布我们的代码外,我们还想借此机会更深入地研究我们的模型的工作原理。行星搜寻入门首先,让我们考虑一下如何使用开普勒望远镜收集的数据来检测行星的存在。下面的图称为光变曲线,它显示了恒星的亮度(由开普勒光度计测量)随时间的变化。当行星经过恒星前方时,它会暂时阻挡部分光线,这会导致测量到的亮度降低,然后不久后再次增加,从而导致光变曲线出现“U 形”下降。
开普勒太空望远镜的光变曲线呈现“U 形”下降,表明有一颗凌日系外行星。
然而,其他天文和仪器现象也会导致恒星测量亮度下降,包括双星系统、星斑、开普勒光度计受到的宇宙射线撞击以及仪器噪声。
第一条光变曲线呈“V 形”,这说明一个非常大的物体(即另一颗恒星)从开普勒正在观察的恒星前方经过。第二条光变曲线包含两个亮度降低的地方,这表明这是一个双星系统,其中有一颗亮星和一颗暗星:较大的亮度下降是由于较暗的恒星从较亮的恒星前方经过,反之亦然。第三条光变曲线是许多其他非行星信号中的一个例子,在这些信号中,恒星的测量亮度似乎有所降低。
为了在开普勒数据中搜索行星,科学家使用自动化软件(例如开普勒数据处理管道)检测可能由行星引起的信号,然后手动跟进以确定每个信号是行星还是误报。 为了避免被太多无法处理的信号淹没,科学家对自动检测设置了一个截止值:信噪比高于固定阈值的检测被认为值得进行后续分析,而低于阈值的所有检测都被丢弃。 即使有这个截止值,检测数量仍然非常惊人:到目前为止,已经手动检查了 30,000 多个检测到的开普勒信号,其中约 2,500 个已经验证为真正的行星!
也许你会想:信噪比截止是否会导致一些真正的行星信号被遗漏? 答案是肯定的!但是,如果天文学家需要手动跟进每次探测,那么降低阈值就不值得了,因为随着阈值降低,误报率会迅速增加,实际的行星探测会变得越来越少。然而,有一个诱人的诱因:一些像地球一样的潜在宜居行星可能就隐藏在传统探测阈值以下,它们体积相对较小,围绕相对较暗的恒星运行——开普勒数据中可能有未被发现的宝藏!
机器学习方法
Google Brain 团队将机器学习应用于各种各样的数据,从人类基因组到草图再到形式数理逻辑。考虑到开普勒望远镜收集的海量数据,我们想知道如果使用机器学习来分析一些以前未探索过的开普勒数据,我们可能会发现什么。为了找到答案,我们与德克萨斯大学奥斯汀分校的Andrew Vanderburg合作,开发了一个神经网络来帮助在低信噪比探测中寻找行星。
我们训练了一个卷积神经网络(CNN) 来预测给定的开普勒信号由行星引起的概率。我们之所以选择 CNN,是因为它们在其他具有空间和/或时间结构的问题上非常成功,例如音频生成和图像分类。
幸运的是,我们有 30,000 个开普勒信号,这些信号已经由人工手动检查和分类。我们使用了其中大约 15,000 个信号的子集(其中大约 3,500 个被验证为行星或强大的行星候选者)来训练我们的神经网络,以区分行星和误报。我们网络的输入是同一条光变曲线的两个独立视图:一个广角视图,允许模型检查光变曲线上其他位置的信号(例如,双星引起的次级信号);一个放大视图,使模型能够仔细检查检测到的信号的形状(例如,区分“U 形”信号和“V 形”信号)。
训练完模型后,我们会研究它学到的有关光变曲线的特征,看它们是否符合我们的预期。我们使用的一项技术(最初在本文中提出)是系统地遮挡输入光变曲线的小区域,以查看模型的输出是否发生变化。如果对模型决策特别重要的区域被遮挡,输出预测将会改变,但遮挡不重要的区域不会产生显著影响。下面是双星的光变曲线,我们的模型正确预测它不是行星。以绿色突出显示的点是在被遮挡时最能改变模型输出预测的点,它们恰好对应于表示双星系统的次级“倾角”。当这些点被遮挡时,模型的输出预测从~0% 的行星概率变为~40% 的行星概率。因此,这些点是模型拒绝该光变曲线的原因之一,但模型也使用了其他证据 - 例如,放大中心的主倾角会显示它实际上是“V 形”,这也表明它是一个双星系统。
寻找新行星
在对模型的预测充满信心后,我们通过在 670 颗恒星的小集合中搜索新行星来测试其有效性。我们之所以选择这些恒星,是因为已知它们有多颗行星围绕其运行,并且我们相信其中一些恒星可能拥有尚未探测到的其他行星。重要的是,我们允许搜索包括低于天文学家之前考虑的信噪比阈值的信号。正如预期的那样,我们的神经网络将大多数这些信号作为虚假检测拒绝,但少数有希望的候选者脱颖而出,包括我们新发现的两颗行星:Kepler-90 i 和 Kepler-80 g。
找到您自己的行星!
让我们看看今天发布的代码如何帮助(重新)发现行星Kepler-90 i 。第一步是按照代码主页上的说明训练模型。下载并处理来自开普勒望远镜的数据需要一段时间,但一旦完成,就可以相对较快地训练模型并对新信号进行预测。 寻找新信号来显示模型的一种方法是使用一种名为盒最小二乘(BLS) 的算法,该算法搜索亮度的周期性“盒状”下降(见下文)。 BLS 算法将检测“U 形”行星信号、“V 形”双星信号和许多其他类型的假阳性信号来显示模型。 BLS 算法有各种免费的软件实现,包括VARTOOLS和LcTools。 或者,您甚至可以用肉眼寻找候选行星凌日,例如Planet Hunters。
BLS 算法在开普勒 90 恒星的光变曲线中检测到低信噪比检测。该检测周期为 14.44912 天,持续时间为 2.70408 小时(0.11267 天),从 2009 年 1 月 1 日 12:00 后 2.2 天开始(开普勒望远镜发射年份)。
要通过我们训练的模型运行这个检测到的信号,我们只需执行以下命令:
python 预测.py --kepler_id=11442793 --period=14.44912 --t0=2.2
--duration=0.11267 --kepler_data_dir=$HOME/astronet/kepler
--output_image_file=$HOME/astronet/kepler-90i.png
--model_dir=$HOME/astronet/model
该命令的输出为prediction = 0.94,这意味着模型有 94% 的把握认为该信号是一颗真正的行星。当然,这只是发现和验证系外行星的整个过程中的一小步:模型的预测并不能证明这一点。验证该信号为真正的系外行星需要天文学专家进行大量的后续工作——有关详细信息,请参阅我们论文的第 6.3 和 6.4 节。在这个特定案例中,我们的后续分析证实该信号是一颗真正的系外行星,现在它被称为 Kepler-90 i!
我们在这里的工作还远未完成。我们只搜索了开普勒观测到的 200,000 颗恒星中的 670 颗——谁知道当我们将我们的技术应用于整个数据集时会发现什么。不过,在我们这样做之前,我们想对我们的模型进行一些改进。正如我们在论文中所讨论的那样,我们的模型在拒绝双星和仪器误报方面还不如一些更成熟的计算机启发式方法那么好。我们正在努力改进我们的模型,现在它是开源的,我们希望其他人也能这样做!如果你想了解更多,Chris在本周机器学习和人工智能
的最新一集中讨论了他的工作。
|
|