【问题标题】:Pattern recognition on sphere (HEALPY based)球体上的模式识别(基于 HEALPY)
【发布时间】:2017-04-02 13:16:57
【问题描述】:

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

在这种情况下,一项特定任务是计算球体表面上的斑点(见附件image)。对于这个特定的任务,正确的数字是 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 细胞或直接在球体上使用卷积网络?

谢谢!

【问题讨论】:

    标签: tensorflow keras image-recognition pattern-recognition healpy


    【解决方案1】:

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

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

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

    (这应该是评论,但我没有代表。)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-08-10
      • 1970-01-01
      • 1970-01-01
      • 2012-09-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多