Настройка функции потери нейронной сети для космической физики

Я пытаюсь работать над классификацией нейронных сетей (с python, Keras) для целей космической физики, где я хочу идентифицировать определенные области планет на основе многомерных временных данных. Учитывая мои цели, я хотел бы использовать функцию потерь, которая минимизирует такой параметр: absolute_difference_between_predicted_and_real_class * temporal_distance_to_closest_real_class_change

Точнее: у меня есть 3 класса, соответствующих определенным областям вокруг планет, то есть близкая планетарная среда (класс 1), удар (физическая тонкая граница на границе внутренней среды; класс 2), солнечный ветер (поток частиц из-за Солнца; класс 3).

С классическими алгоритмами у меня есть 2 проблемы: 1) я получаю предсказанные варианты классов, которые физически невозможны, такие как класс 3 => класс 1 или наоборот, и предсказанные классы слишком отличаются от реальных (3 вместо 1 или наоборот, а 2 вместо 1 или 3 менее проблематично для меня); следовательно, я хотел бы ввести absolute_difference_between_predicted_and_real_class в функцию потерь 2) У меня есть значительная неопределенность относительно точного времени изменения класса (3=>2, 2=>1 или наоборот), так что неверно предсказанный переход класса может не быть проблемой, если не слишком далеко от "реального" (но на самом деле всегда неопределенного) перехода; поэтому я хотел бы ввести temporal_distance_to_closest_real_class_change в функцию потерь

Я знаю, что мог бы использовать пост-лечение, но я бы предпочел, если возможно, ввести эти ограничения непосредственно в функцию потери. В принципе, я мог бы написать функцию, которая делает это, но я не знаю, как справиться с ограничениями выводимости и другими, необходимыми для функции потерь. Я также прочитал немного о порядковой классификации, которая соответствовала бы моей проблеме № 1, но не уверен, что не приспособлена к проблеме № 2. Любая идея или совет?

Спасибо за помощь, Филипп

0 ответов

Другие вопросы по тегам