Team2026RedshiftAssessmentInfrastructure
Brief
#
- RAIL 是评估 photo-z 的性能的一个统一的框架,主要分为生成模拟数据(creation)、接入不同 photo-z 方法(estimation)和评估 photo-z 性能(evaluation)三个模块
- 整个 pipeline 用 ceci 中的 stage 管理
- photo-z 方法根据目的分为 estimator/summarizer 等
- 针对单个星系进行估计的 estimator 更多地包含 ML 方法,比如 GPz/FlexZBoost/PZFlow
- 针对星系 population 估计红移分布的 summarizer 中 clustering-z 非常 promising
- estimation 主要涉及两个 PDF 之间进行比较的统计准则,比较值得注意的是 PIT(以及 PIT QQ plot)
Intro
#
- LSST 最终的星系数量将会达到 20b (2e10),这个数目超出了 spectroscopy 的观测能力,尤其是 faint galaxy
- Schmidt 2020 进行了有关 photo-z 的 data challenge 1,发现了一些 photo-z 领域的问题
- 不同算法含有 implicit prior,在输入完全相同的条件下会给出不同的 PDF
- 一些指标存在问题,导致 pathological estimator 得分超过正常的算法
- 对 PDF 的评估需要建立在「真实 PDF」的基础上,需要一个 forward modeling 的框架
- 最终 DESC 修订了 science roadmap,开发 RAIL 以满足 photo-z validation 的需要
- fig1 给出了整个 framework 的所有 component 和 paper section 的对应关系
- 主要的 module 是 creation、estimation 以及 evaluation
Core
#
- RAIL 的底层依赖包括 ceci, qp, tables_io 等
- ceci 是用于管理阶段和流程的框架
ceci.Stage 对应一个独立的操作,具有固定的输入和输出,其 run() 函数不接受任何输入,所有输入由 Stage 提前设定(以满足复现的要求)
- 定义了子类 rail stage 以增强 ceci 在 interactive 环境下的可用性
ceci.Stage 组合起来构成了 ceci.Pipeline(有向无环图 DAG)
- 在 production mode 的基础上增加了 interactive mode 用于探索
- MPI 并行
- ceci 的缺点在于会生成中间文件
- data 以 handle 形式提供,进程可以根据自己需要从数据中读取所需的数据块,而不需要全部加载
- 数据的类型主要包括 table、qp 管理的 PDF 以及某些算法生成的 model
- 一些定义由 tab1 给出,其中需要注意的是 $\vec{p}$ 指的是 photometric data
Creation
#
- 这个步骤的目标是生成 mock catalog,关键点在于提供真实的 PDF
- 由 engine 和 degrader 组成,其中 engine 生成一个理想的测光 catalog,degrader 负责向其中添加不确定性
- engine 分为 modeler 和 creator 两步,前者生成 p (photometry) & z 的联合分布,后者负责从联合分布中采样
- tab2 中列出了三种 engine: FSPS, DSPS 以及 pzflow
- FSPS 是一个广泛使用的 SPS 代码,可以从星系物理属性出发生成模拟的 SED 分布,进一步可以在 LSST filters 下计算每一个波段的 magnitude
- DSPS (D for differentiable) 基于 JAX,相比 fsps 速度更快
- 本身不提供 SPS 模板,RAIL 为其提供了一套来自 FSPS 的模板作为默认
- PZflow 使用 normalizing flow 学习星系在测光和红移的参数空间中的分布(需要提供一个已知红移和测光的 catalog),然后通过在 Gaussian 上采样就可以得到和原始数据分布一致的模拟星系
- degrader 同样列在 tab2 中,分类为 noisifier 以及 selector,后者的原理是通过移除一部分行以模拟不完整的训练样本
- 不同的 degrader 负责不同方面的误差,比如测光误差、spec-z 不完备性、spec-z 错误、blending 问题
- SOM spec selector 的原理是将 spec-z 样本的分布通过 SOM 映射到低维空间中,然后用单元格中的数量对应地挑选子集以匹配 spec-z 的分布/不完备性
- 模拟观测 blending 的方法是用 FoF 寻找近邻 cluster 然后合并,给合并后的天体赋予红移、颜色等属性
Estimation
#
- 一般由一个 inform estimator 和一个 estimation model 组成,前者负责从数据中学习关联,后者负责具体的推断任务
- estimator: 为每一个星系生成一个 PDF
- ML estimator
- CMNN (color-matched Nearest Neighbor) 指的是根据星系的颜色在测试集中寻找最近 neighbor
- citation: Graham 2018
- 距离定义为 Mahalanobis Distance,但是没有相关性,每个颜色的误差由给定星系的测光误差给出
- Mahalanobis Distance 的分布中一定 percent 比例的最近星系被定义为 neighbor
- PDF 表现为 Gaussian 形式,中心和宽度均由 neighbor 的 PDF 决定
- Directional Neighborhood Fitting 是 Euclidean NF 和 Angular NF 的某种混合
- angular NF 指的是在高维空间中用余弦距离来衡量 color closeness,在多波段数据中表现较好
- FlexZBoost 的想法是将条件概率 $p(z|c)$ 表示为一组正交的 basis function 的线性组合,最后机器学习网络只需要给出这些 function 的系数
- basis function 组合的一个缺陷是会在 PDF 中引入一些不真实的 bump
- 最终用通过在验证集上最小化估计误差的方式进行后处理
- 一个优势是可以处理 PDF 非 Gaussian 甚至 multimodal 的情况
- GPz 的原理是 sparse Gaussian Process
- RAIL 中集成的初代版本只能给出 Gaussian 形式的 PDF,原理是将 Gaussian 均值和标准差都表示为 basis function 线性组合,然后用 Gaussian 随机过程来学习其系数
- PZFlow 学习数据的红移、测光空间的分布之后同样可以用于预测给定测光数据的星系的红移 PDF
- 此外还加入了一些 scikit-learn 中的简单方法作为 baseline,包括一个 nearest neighbor estimator 和一个 ML estimator
- template 的基本思想是将测光数据和预先定义的 SED template 进行比较
- BPZ 给出的后验概率等于匹配似然函数(根据 chi2)和 prior 的乘积
- LePHARE 由 C++ 编写并且提供了 Python wrapper,定制化程度很高,除了红移之外还可以给出 stellar mass 和 SFR
- delight 是一种混合方法,原理是从 spec-z 中构建一套经验模板
- DeepDISC 将图像直接作为输入以预测红移
- summarizer: 为某一个星系 population 估算一个整体的 nz 分布,对于 weak lensing 和 cosmology 非常重要
- NZDir 的过程是寻找每一个 spec-z 星系的近邻,叠加得到 population 红移分布
- SOM 方法可以实现数据降维,对 spec-z 和 photo catalog 做同样的处理,最终可以通过 SOM node 中红移分布加权平均(由已知的 spec-z 给出)得到对应 population 的红移分布
- naive method 指的是将所有星系的 PDF 叠起来得到红移分布,对于某些方法可能会高估不确定度
- Yet Another Wizz (YAW) 是一种 clustering redshift 方法
- classifier: 将星系分配到预定义的红移 slice 中,也就是给出一个 int 数字
- 最简单的分类器是根据红移点估计分配,uniform/equal 的区别在于红移间隔均匀/每个红移 bin 内数目相同
- 稍微高级的 classifier 是 random forest,让模型学习从 photometry 到红移 bin 的映射
Evaluation
#
- metrics 分为三个类别:PDF-PDF、PDF-point、point-point
- 比较 PDF 之间偏差的 metrics 需要 creation 阶段可以给出真实 PDF
- 一些常见的比较两个 PDF 之间的差别/距离的统计量包括 CvM、KS、RMSE、KL 散度、Anderson-Darling 等
- CvM 指的是 CDF 差值的平方在 0, 1 之间的积分
- 在没有真实 PDF 可以提供的情况下,一般使用可以体现真实点相对 PDF 的差别的统计量,比如 CDE loss 或者 PIT
- PIT 指的是「算法给出的分布在真实红移处的 CDF value」的分布,理论值应该是 0, 1 之间的均匀分布
- PIT 的分布形状可以给出 photo-z 性能的诊断信息,比如 U-shape 说明不确定性被低估
- RAIL 还提供了 PIT-QQ plot
- 另外一个统计量是 Brier Score
- 点对点的比较比较简单,一般基于相对误差 $\Delta z /(1+z)$,常见统计量包括 IQR 给出的 $\Delta$ 分布的标准差、$\Delta$ 分布中位数作为 bias 的衡量、MAD、outlier rate 等
- 针对 tomography 的指标是 KDE bin overlap 等
Example and tutorials
#
- 位置是 rail repo 下的 example/
- 一个 end to end example 是 golden spike,名字源自 1869 年美国第一条贯通大陆的铁路的最后一颗道钉
- 用 PZFlow 生成一个具有已知红移和测光性质的 mock catalog,基准是 CosmDC2 catalog
- 应用各种 error model(degrader)添加真实噪声(fig4)
- 使用 scikit k-NN、FlexZBoost、BPZ 算法估计红移 PDF
- 另外还有 summarizer 效果的示例
- 最后展示了 RAIL 针对 flexZBoost 给出的结果绘制的 PIT-QQ plot,和 y=x 的 ideal shape 偏离不大
- 其他的 example 包括针对某一个 module 的单独的 tutorial/demonstration,目的是帮助开发者熟悉数据结构和开发工具
- tab4/5 提供了一些 RAIL 中不同算法在内存/速度上的性能表现
Thoughts
#
- photo-z 的参数空间其实很小,对 LSST 来说也只有 6+1 维,所以 normalizing flow 可以很好地学习
- CMNN 和 DNF 的文章都可以去看一下,分别用了 Mahalanobis Distance 以及 Cosine distance
- cosine 的问题是 1,2 颜色和 2,4 颜色的距离将会是 0
- ML 方法普遍比 tempalte 方法年份 newer,这里给出的五种方法年份分别是 18, 16, 17, 22, 24
- clustering redshift 确实可能是 characterization 的最佳方法
- 后续可以参考的地方包括
- 框架是开源的,可以自己进行 photo-z 方法的比较
- RAIL 纳入哪些算法其实体现了「哪些方法效果最好/最流行」的一个可供参考的主观认识
- photo-z 是不考虑位置关联的,但是 cluster finding 有这部分额外的信息
- 数据处理确实应该考虑使用类似 ceci 这样的框架进行管理,并且也确实需要一些针对 interactive 需求的调整和修改