2

我正在使用 Tensorflow 和 Keras。是否有可能对球体表面的图像进行正确的模式识别?我正在使用(Healpy 框架)来创建模式识别应该在其上工作的天空图。问题是这些 Healpy 天空图是一维 numpy 数组,因此,紧凑的子模式可能分布在这个一维数组上。对于基本的机器学习算法来说,这实际上很难学习(我正在考虑卷积深度网络)。

在这种情况下,一项具体任务是计算球体表面上的斑点(见附图。对于这个特定的任务,正确的数字是 8。所以我创建了 10000 个天空图(Healpy 设置:nside=16 对应于 npix=3072),每个天空图的随机数介于 0 和 9 之间(因此有 10 种可能性)。我试图用一维 Healpy 数组和一个简单的前馈网络来解决这个问题:

model = Sequential()
model.add(Dense(npix, input_dim=npix, init='uniform', activation='relu'))
model.add(Dropout(0.25))
model.add(Dense(10, init='uniform', activation='softmax'))
model.compile(optimizer='adam', loss='categorical_crossentropy', metrics=['accuracy'])

model.fit(skymaps, number_of_correct_sources, batch=100, epochs=10, validation_split=1.-train)

然而,在使用 10,000 个天空图进行训练后,测试集的准确率仅为 38%。我想当提供 Healpy 单元的真实排列(如它出现在球体上)而不是仅提供一维数组时,这将显着增加。在这种情况下,可以使用卷积网络 (Convolution2d) 并像通常的图像识别一样操作。任何想法如何在二维阵列中正确映射 heappy 细胞或直接在球体上使用卷积网络?

谢谢!

4

1 回答 1

0

这是解决一个相对简单的二维问题的艰难方法!

如果您要查找的对象与图中的对象一样突出,请为数据创建 2_d 映射,然后将其阈值设置为一系列阈值级别:最高阈值会挑选出最亮的对象。任何像 Aitoff 或 Hammmer 这样的连续投影都可以,为了消除边缘问题,使用投影的旋转。分段投影,如 Healpix,有利于数据存储,但不一定适合数据分析。

如果地图的信噪比很差,以至于您在噪声中寻找对象,则需要一些复杂性,甚至可能需要一些神经网络算法。但是,您可能会看一下关于 Sunyaev-Zeldovich 星系团的普朗克数据分析,其中最早的可能是https://arxiv.org/abs/1101.2024(论文 VIII)。随后的论文对此进行了改进和补充。

(这应该是评论,但我缺少代表。)

于 2016-12-16T23:54:00.577 回答