Распознавание образов на сфере (на основе HEALPY)

Я использую Tensorflow и Keras. Есть ли возможность добиться правильного распознавания образов для изображений на поверхности сферы? Я использую (Healpy framework) для создания своих карт неба, на которых должно работать распознавание образов. . Проблема в том, что эти карты неба Healpy представляют собой одномерные массивы numpy, поэтому компактный подшаблон может быть разбросан по этому массиву 1d. Это на самом деле довольно сложно изучить для базового алгоритма машинного обучения (я думаю о сверточной глубокой сети).

Конкретной задачей в этом контексте будет подсчет капель на поверхности сферы (см. прикрепленное изображение). Для этой конкретной задачи правильным числом будет 8. Итак, я создал 10000 карт неба (настройки Healpy: nside=16, что соответствует npix=3072), каждая со случайным количеством капель от 0 до 9 (таким образом, 10 возможностей). Я попытался решить эту проблему с помощью массива 1d Healpy и простой сети Feed Forward:

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 (как оно отображается на сфере), а не только массива 1d. В этом случае можно использовать сверточную сеть (Convolution2d) и работать как при обычном распознавании изображений. Любые идеи, как правильно отображать здоровые ячейки в 2d-массиве или с помощью сверточной сети непосредственно на сфере?

Спасибо!


person Marcus    schedule 18.11.2016    source источник


Ответы (1)


Это сложный способ решения относительно простой задачи, которая беззастенчиво двумерна!

Если объекты, которые вы ищете, так же заметны, как и на вашем рисунке, создайте 2-мерную карту для данных, а затем установите порог для ряда пороговых уровней: самые высокие пороги выбирают самые яркие объекты. Подойдет любая непрерывная проекция, такая как Айтофф или Хаммер, а чтобы устранить проблемы с краями, используйте повороты проекции. Сегментированные проекции, такие как Healpix, хороши для хранения данных, но не обязательно идеальны для анализа данных.

Если карта имеет плохой сигнал-шум, так что вы ищете объекты во мраке шума, то требуется некоторая изощренность, может быть, даже какой-то нейросетевой алгоритм. Однако вы можете взглянуть на анализ данных Планка о скоплениях галактик Сюняева-Зельдовича, самый ранний из которых, возможно, https://arxiv.org/abs/1101.2024 (Документ VIII). Последующие статьи уточняют и дополняют это.

(Это должен был быть комментарий, но мне не хватает представителя.)

person JonesTheAstronomer    schedule 16.12.2016