还记得谷歌发现的两颗系外行星吗?他们用的TF代码开源了!

2018 年 3 月 9 日 AI前线 谷歌大脑
 
作者:谷歌大脑高级软件工程师 Chris Shallue
编译 & 编辑:Debra
AI 前线导读: 大家还记得谷歌发现的两颗系外行星 Kepler-80 g 和 Kepler-90 i 吗?好消息来了,3 月 8 日,谷歌大脑官博宣布开源了发现这两颗行星的算法代码!

更多干货内容请关注微信公众号“AI 前线”,(ID:ai-front)

谷歌大脑通过训练神经网络来分析美国宇航局利用开普勒空间望远镜收集的数据,并准确地定位到最准确的行星信号,发现了两颗系外行星。尽管这只是对 700 多颗恒星的初步分析,但他们认为这成功验证了使用机器学习来发现系外行星的方向是正确的,也证明了使用机器学习在各学科中取得重大成果的可能性,如在医疗保健、量子化学和聚变研究等领域。

今天,我们很高兴地发布用来处理开普勒数据、训练神经网络模型,并对新候选信号进行预测的代码① 。我们希望这个开源代码可以为开发其他类似模型,如 NASA 的 K2(开普勒的第二个任务 ②)和即将进行的 Transiting Exoplanet Survey Satellite 任务 ③打响第一炮。除了发布代码外,我们还希望借此机会让大家深入了解这一模型的工作原理。

搜索行星的第一步

首先,我们来想想应该如何使用开普勒望远镜收集的数据来检测行星的存在。下面的曲线被称为光线曲线,它显示了恒星的亮度(由开普勒光度计测量)随着时间的推移发生的变化。当一颗行星经过恒星前方时,恒星的亮度会因为被暂时遮挡了光线而降低,之后不久亮度增加,导致光线曲线呈“U 形”。

 

来自开普勒空间望远镜的光线曲线带有一个“U 形”的凹陷,这表示一颗经过恒星的系外行星。

然而,其他天文现象和仪器问题也可能导致测得的恒星亮度降低,包括双星系统④、恒星点⑤、开普勒光度计上的宇宙射线点击和仪器噪声 ⑥。

 

第一个光线曲线呈“V”形,这表示一个非常大的物体(即另一颗恒星)在开普勒观测的恒星前经过。第二条光线曲线包含两个亮度下降的地方,这表示一个包含一颗较明亮和一颗较暗淡恒星的双星系统:较大的凹陷是由暗淡的恒星经过较亮的恒星引起的,反之亦然。第三个光线曲线是许多来自其他非星球的信号,星球的亮度下降。

为了在开普勒数据中搜索行星,科学家们使用自动化软件(例如开普勒数据处理管道)来检测可能从行星发出的信号,然后手动跟踪以确定每个信号是行星还是误报。为了避免信息过多,科学家们对自动检测设置一个截断点:那些信噪超过固定阈值的被认为值得后续跟踪,而低于阈值的所有检测结果都被丢弃。即使有这个截断点,检测到的信号数量仍然浩如烟海:到目前为止,已经有超过 30,000 个检测到的开普勒信号被手动检测过,其中约有 2500 个被验证为真正的行星!

也许你想知道:这个截断点会不会导致真正的信号被过滤掉?答案是肯定的!然而,如果天文学家需要手动跟踪每次检测,降低阈值似乎得不偿失,因为随着阈值的降低,假信号的检测率会迅速增加,这让侦测到真正的行星变得遥遥无期。然而,还有一个非常诱人的事实:一些潜在的可居住的行星,比如地球,它相对较小,在相对较暗的恒星周围的轨道上运行,但它可能就隐藏在传统检测方法的阈值以下,这就是说可能还有宝石隐藏在开普勒数据中仍未被发现!

机器学习的方法

谷歌大脑团队将机器学习应用于各种数据,从人类基因组、图案到数学逻辑。考虑到开普勒望远镜收集的数据数量巨大,我们想知道如果使用机器学习来分析一些以前未开发的开普勒数据,可能会发现什么。为了找到答案,我们与德州大学奥斯汀分校的 Andrew Vanderburg 合作开发了一个神经网络来进行低信噪比行星检测。

 

我们训练了卷积神经网络(CNN)来预测给定的开普勒信号是由行星引起的概率。我们选择 CNN 是因为它们在空间和 / 或时间结构的其他问题上非常成功,例如音频生成和图像分类。

幸运的是,其中 30,000 个开普勒望远镜收集到的信号已经过人工手动检测和分类。我们使用了大约 15,000 个这些信号的子集,其中约 3,500 个是经过验证的行星或是极有可能是行星的信号,以训练神经网络区分行星与误报信号。我们网络的输入是同一光线曲线的两个不同视图:一个为宽视图,可以让模型检查光线曲线上其他地方的信号(例如,由双星形成的次级信号),一个为放大视图,它使模型能够仔细检查检测到的信号的形状(例如,将“U 形”信号与“V 形”信号区分开来)。

经过训练模型,我们就可以研究光线曲线的特征,看它们是否与我们的预期相符。我们使用的一种技术(最初在本论文中提出⑦) 是系统地遮挡住输入光线曲线的一小部分区域,以查看模型输出是否改变。对模型决策特别重要的区域被遮挡,会改变输出预测,但遮挡不重要的区域不会产生显著影响。下图表示来自一个双星系统的光线曲线,我们的模型正确地预测了它不是行星。以绿色突出显示的点是在被遮挡时模型输出预测改变最大的点,它们完全对应于双子星系统的第二个“凹陷”曲线图。当这些点被遮挡时,模型的输出预测这是一颗行星的概率从 0%变为 40%。因此,这些点是模型排除这条光线曲线的部分原因,但该模型也用了其他证据,例如,放大凹陷处可以看到表它实际上是“V 形”,这也是双星系统的特征。

寻找新行星

当我们对模型的预测能力充满信心了,我们就在 670 颗恒星中搜索新行星来测试其有效性。我们之所以选择这些恒星,是因为我们已经知道它们有多个轨道行星,我们相信其中一些恒星可能拥有尚未被发现的更多行星。重要的是,我们还将之前天文学家认为低于信噪比标准的信号纳入搜索范围之内。正如预期的那样,我们的神经网络将这些信号中的绝大多数视作虚假信号而拒绝检测,但少数候选对象却显示出强烈的行星特征,包括我们新发现的两颗行星:开普勒 90 i 和开普勒 80 g⑧。

找到你自己的星球!

让我们来看看今天发布的代码是如何帮助(重新)发现行星开普勒 -90 i 的。第一步是按照代码主页上⑨ 的说明来训练模型。从开普勒望远镜下载和处理数据需要一段时间,但一旦完成,训练模型和预测新信号的速度会相对加快。一种找到显示模型新信号的方法是使用被称为Box Least Squares(BLS)⑩的算法,该算法可以搜索光线曲线中的周期性“盒形”凹陷(见下图)。 BLS 算法将检测“U 形”行星信号,“V 形”双星信号以及许多其他类型的假正信号以形成该模型。 BLS 算法可以在多种可用的软件上实现,包括VARTOOLS⑪和 LcTools⑫。 另外,你甚至可以通过肉眼来寻找候选行星运动,就像 Planet Hunters⑬ 一样。

 

BLS 算法检测到的 Kepler 90 行星光线曲线中的低信噪比信号。检测时间为 14.44912 天,持续时间为 2.70408 小时(0.11267 天),自 2009 年 1 月 1 日 12:00(开普勒望远镜发射之年)开始后的第 2.2 天开始。

使用训练好的模型检测到此信号,我们只需执行以下命令:

python predict.py --kepler_id = 11442793 --period = 14.44912 --t0 = 2.2
--duration = 0.11267 --kepler_data_dir = $ HOME / astronet / kepler
--output_image_file = $ HOME / astronet / 开普勒 90i.png
--model_dir = $ HOME / astronet / model

命令的输出是预测 = 0.94,这意味着该模型认为这个信号有 94% 的可能是来自真实的行星。当然,这只是发现和验证系外行星的整个过程中的一小步,验证此信号是来自真正的系外行星的过程需要专业天文学家进行重要的后续工作——详情请参阅论文第 6.3 和 6.4 节⑭。 在此情况下,我们的后续分析验证了这个信号是来自一个真正的系外行星,现在叫做 Kepler-90 i!

然而,我们的工作还远没有结束。我们仅在开普勒观测到的 20 万颗星中搜索了其中 670 颗恒星——谁知道将来我们的技术能够使用所有数据集时我们会发现什么。在做到这一点之前,我们需要改进模型。正如我们在论文中所说,我们的模型还不能像更成熟的计算机启发式那样排除来自双星和仪器问题导致的假信号。我们正在努力改进我们的模型,并将之开源,同时希望能有更多的人也能这样做!

看到这里,大家是不是按捺不住自己蠢蠢欲动的心了?方法近在眼前,赶紧行动起来,发现属于自己的那颗星吧!

原文链接

https://research.googleblog.com/2018/03/open-sourcing-hunt-for-exoplanets.html

参考链接:

https://github.com/tensorflow/models/tree/master/research/astronet

②https://www.nasa.gov/feature/ames/nasas-k2-mission-the-kepler-space-telescopes-second-chance-to-shine/

③https://tess.gsfc.nasa.gov/

④https://en.wikipedia.org/wiki/Binary_star

⑤https://en.wikipedia.org/wiki/Starspot

⑥https://en.wikipedia.org/wiki/Cosmic_ray

⑦https://arxiv.org/abs/1311.2901

⑧https://www.nasa.gov/press-release/artificial-intelligence-nasa-data-used-to-discover-eighth-planet-circling-distant-star

⑨https://github.com/tensorflow/models/tree/master/research/astronet

⑩https://arxiv.org/abs/astro-ph/0206099

⑪https://www.astro.princeton.edu/~jhartman/vartools.html

⑫https://sites.google.com/a/lctools.net/lctools/lctools-product-description

⑬https://www.planethunters.org/

⑭http://iopscience.iop.org/article/10.3847/1538-3881/aa9e09/meta




如果你想看到更多这类文章,请点个赞再走!

登录查看更多
0

相关内容

最新《自动微分手册》77页pdf
专知会员服务
99+阅读 · 2020年6月6日
抢鲜看!13篇CVPR2020论文链接/开源代码/解读
专知会员服务
49+阅读 · 2020年2月26日
【Google AI】开源NoisyStudent:自监督图像分类
专知会员服务
54+阅读 · 2020年2月18日
程序猿的终极噩梦,祖传代码,一动,修半年!
九章算法
4+阅读 · 2018年12月20日
用 TensorFlow 目标检测 API 发现皮卡丘!
AI研习社
5+阅读 · 2018年6月4日
Google 开源机器学习算法;2018 年 SO 数据库调查
技术最前线
4+阅读 · 2018年3月14日
谷歌开源语义图像分割模型DeepLab-v3+ | 附代码
你见过马化腾17年前写的代码吗?
互联网it观察
5+阅读 · 2017年7月3日
Continual Unsupervised Representation Learning
Arxiv
7+阅读 · 2019年10月31日
Arxiv
3+阅读 · 2018年3月2日
Arxiv
8+阅读 · 2018年2月23日
Arxiv
3+阅读 · 2017年12月18日
VIP会员
Top
微信扫码咨询专知VIP会员