Я работаю над регрессионной сетью keras, которая принимает около 60 входных переменных и выводит 35 переменных. Как для входа, так и для выхода, около половины переменных находятся в диапазоне ±10, тогда как другая половина переменных находится в пределах 100 000. Таким образом, существует большая разница в величине, но я хочу, чтобы все входы/выходы рассматривались как одинаково важные. Таким образом, в настоящее время я выполняю масштабирование как входных, так и выходных данных по максимальному среднему, так что каждое распределение вводится с нулевым значением и в диапазоне [-1,1]:
xi' = (xi - среднее(X)) / max(|X|).
Это означает, что мне нужно сохранить максимальное и среднее значения для каждой входной и выходной переменных. Затем, во время тестирования или прогнозирования, мне приходится перезагрузить эти максимальные и средние значения, чтобы масштабировать входные данные, а затем отменить масштабирование прогнозов, которые дает моя модель.
Мне интересно, есть ли какой-нибудь способ «встроить» это масштабирование, чтобы мне не приходилось повторно загружать максимальные и средние значения. Например, я видел этот пост, где они создали слой для минимального и максимального масштабирования. Насколько я понимаю, довольно легко создать слой, который масштабирует входные данные, но есть ли способ заставить модель обучаться с масштабированными целями, но возвращать немасштабированные прогнозы? Альтернативно, не трачу ли я время на масштабирование результатов и стоит ли мне попробовать тренироваться на немасштабированных целях?