Установите нейронную сеть с метками разной величины
Я тренирую многоцелевую регрессионную модель с DNN (глубокая нейронная сеть) с релу в качестве функций активации. Данные обучения и оценки из разных категорий имеют разную величину, некоторые колеблются от 1 до 1000, некоторые колеблются от 1 до 10 миллиардов. Я использую функцию потерь, которая (ln (prediction+1) - ln (label+1))^2
так как среднеквадратическая потеря может легко сделать потерю бесконечностью. Категориальная особенность закодирована как вложение.
Я могу обучить DNN с приличной точностью, если данные обучения и оценки относятся к одной категории, хотя их метки также имеют разную величину, и, хотя разные выходные данные DNN также имеют разный порядок величины. Некоторые из целей довольно редки. Я думаю, что есть еще возможности для улучшения этих моделей. Также я не переоцениваю эти модели, то есть у обучения и eval есть подобные точности.
Однако моя проблема заключается в том, что, когда я обучаю DNN данными более чем одной категории, точность для каждой категории становится намного хуже, чем в их собственном DNN.
Мне интересно, что я должен сделать, чтобы улучшить мою модель, которая имеет все в качестве входных данных. Могу ли я сначала сделать прогнозирование величины, а затем использовать величину в качестве входа для второго DNN, чтобы предсказать фактическое значение?
Я попытался предсказать логарифм меток, которые не сработали. Я предполагаю, что одна из причин в том, что некоторые цели редки. Я на самом деле также использую вспомогательный выход в этом случае, чтобы предсказать, будет ли он равен нулю или нет - все еще не лучше.