Я пытаюсь работать над классификацией нейронных сетей (с 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.Любая идея или совет?
Спасибо за вашу помощь, Филипп