Мне немного сложно ответить без контекста или примера. Когда вы говорите «другие оптимизаторы на основе градиента», подразумеваете ли вы также методы, которые используют производные второго порядка или только методы первого порядка? Насколько я знаю, методы первого порядка более восприимчивы к переменному масштабированию. Вы можете игнорировать информацию второго порядка в WORHP, установив для идентификатора Гессиана (например, вручную или используя диагональную BFGS с par.BFGSrestart == 1
).
В качестве альтернативы вы можете попробовать добавить термин регуляризации к целевой функции. Скажем, вы хотите, чтобы x[i]
был более «жестким», например, несколько ближе к некоторому контрольному значению x_ref
. Вместо масштабирования x[i]
вы можете добавить термин weight * (x[i] - x_ref)^2
к вашей целевой функции с соответствующим весом.