AI望远镜:人工智能是如何发现“藏在宇宙角落的新星系”的?

举报
Echo_Wish 发表于 2025/07/13 16:43:31 2025/07/13
【摘要】 AI望远镜:人工智能是如何发现“藏在宇宙角落的新星系”的?

AI望远镜:人工智能是如何发现“藏在宇宙角落的新星系”的?

最近在刷NASA开源数据集的时候,我脑子里突然闪过一个问题:

“我们人类的望远镜已经这么牛了,那AI又能在天文探索里做点啥?”

结果一查——哎哟喂,AI现在在天文学里简直是宇宙猎人,不仅能从百万张模糊的星图里“找出新星系”,还能识别黑洞、预测超新星爆发,甚至连银河系边缘的冷门角落都能“刮地三尺”。

今天,咱们就一块来唠唠这事儿:AI在天文学中到底是怎么“发现新星系”的?


一、为啥靠人眼已经不够了?

过去找新星系靠啥?人眼 + 光学望远镜。科学家一张张看图、测光谱,像刷朋友圈一样翻星图。

但你知道现在光一个银河系的图像数据有多大吗?
👉 上百亿个星体,数PB(千TB)级别的图像与光谱数据

NASA、欧空局(ESA)、斯隆数字巡天(SDSS)等项目每天采集的数据量,大得连天文台都快存不下了。你让人眼一张张看?不现实。

所以,现在很多天文项目已经引入了AI模型来干脏活累活,自动从星图中识别星系、分类星体、判断是否有“异常天体”存在。


二、AI是怎么从“海量星图”中找星系的?

咱别搞那么学术,我们拆成3步看。

Step 1:数据清洗(Astronomy Version of Data Cleaning)

原始星图是这样的:

有光污染、灰尘干扰、摄像头抖动、星体重叠……

所以第一步,要用 AI + 数学算法把图像处理干净,比如:

  • 图像归一化
  • 降噪滤波(Gaussian Blur)
  • 亮度增强
  • 星体标注

🔧 用 Python 写一个简单的预处理示例:

import cv2
import numpy as np
from matplotlib import pyplot as plt

# 读取星图图像
img = cv2.imread("galaxy_sample.jpg", cv2.IMREAD_GRAYSCALE)

# 高斯模糊 + 自适应直方图均衡
blur = cv2.GaussianBlur(img, (5, 5), 0)
equalized = cv2.equalizeHist(blur)

# 显示对比
plt.subplot(1,2,1); plt.imshow(img, cmap='gray'); plt.title('原始图')
plt.subplot(1,2,2); plt.imshow(equalized, cmap='gray'); plt.title('处理后')
plt.show()

就像美图秀秀前后对比一样,AI在“洗”图像方面还是有两把刷子的。


Step 2:AI模型识别星系轮廓(卷积神经网络上场)

星系不像你拍月亮那种清清楚楚,很多星系模模糊糊,像一滩牛奶洒在宇宙背景布上。AI识别就得靠 CNN(卷积神经网络) 来提取特征。

比如著名的 Galaxy Zoo 项目就用 CNN 来分类不同类型的星系:螺旋、椭圆、不规则……

一个简单的 PyTorch 模型示意如下:

import torch.nn as nn
import torch.nn.functional as F

class GalaxyClassifier(nn.Module):
    def __init__(self):
        super(GalaxyClassifier, self).__init__()
        self.conv1 = nn.Conv2d(1, 32, kernel_size=5)
        self.conv2 = nn.Conv2d(32, 64, kernel_size=5)
        self.fc1 = nn.Linear(64*20*20, 512)
        self.fc2 = nn.Linear(512, 3)  # 3类星系

    def forward(self, x):
        x = F.relu(self.conv1(x))
        x = F.max_pool2d(x, 2)
        x = F.relu(self.conv2(x))
        x = F.max_pool2d(x, 2)
        x = x.view(-1, 64*20*20)
        x = F.relu(self.fc1(x))
        x = self.fc2(x)
        return F.log_softmax(x, dim=1)

数据集训练好了之后,新星系的图像一丢进去,模型就能给出“这是个螺旋星系”,甚至进一步标注“可能是新发现的,置信度97%”。


Step 3:异常检测模型 = “AI版哥白尼”

你以为识别完分类就完了?不——AI最牛的地方在于:它能发现“不正常”的星体,也就是可能的新发现!

举个例子,天文学家曾用孤立森林(Isolation Forest)算法,从一堆正常的星系中找到了一组形状奇怪的光晕,结果发现那是新类型的星系合并现象

用 Scikit-learn 模拟一下异常检测:

from sklearn.ensemble import IsolationForest
import pandas as pd

# 假设我们有星体亮度、红移值等数据
df = pd.read_csv("galaxy_features.csv")

clf = IsolationForest(contamination=0.01)
df['anomaly'] = clf.fit_predict(df[['brightness', 'redshift']])

# 输出可能的新星系
new_discoveries = df[df['anomaly'] == -1]
print(new_discoveries)

你没看错,就是这么朴素的算法,发现了不止一次被后续天文研究证实的新天体。


三、AI与天文结合,已经不仅是“助手”,而是“探索者”

以前我们总觉得,AI是工具,用来“协助科学家”分析数据的。
但今天,AI已经逐渐变成了宇宙探索中的“第一发现者”

像谷歌 DeepMind 和 NASA 合作的项目,就实现了通过AI先筛选出“可能存在系外行星”的信号,然后再由人类科学家进一步验证,效率翻倍。

2023年,有研究团队用 AI 重新分析了开普勒望远镜的数据,居然从里面挖出了一颗“漏网”的类地行星(Kepler-1649c)!这事搁以前,靠人眼真是打灯笼都找不到!


四、AI让天文更亲民:你也可以“探索宇宙”!

别以为这些事离你很远,其实 NASA、ESA、SDSS 这些机构的星图、光谱数据都是开源的!

只要你懂点 Python、会点模型训练,哪怕你是个学生、爱好者,也能用代码望向星辰。


✨ 写在最后:让AI帮我们仰望星空,也探索自己

我常说一句话:

“AI不会取代浪漫,但它能让浪漫触手可及。”

我们探索宇宙,其实是在寻找自己存在的意义。而AI让这段旅程变得不那么孤独。它既是放大镜,也是指南针。

所以,下次你看到一张星空图时,不妨想一想:这其中,有多少光点,其实是AI先发现的?

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。