Получение результатов конечного решателя - PullRequest
0 голосов
/ 12 декабря 2011

У меня есть набор данных, который используется для вычисления (приблизительного) параметров нелинейной функции.

Точки необработанных данных разбросаны по времени, и в настоящее время мой решатель может рассчитать наилучший набор параметров, которые моделируют функцию для элементов данных за определенный период времени.Точность приближения функции улучшается, поскольку я включаю больший набор данных.Однако в то же время я не хочу, чтобы элементы данных были слишком старыми, чтобы в значительной степени влиять на приближение функции.Сейчас я планирую использовать элементы данных, которые попадают в заранее заданное окно во времени.Это предопределенное окно будет перемещаться с течением времени, включая новые элементы данных и отбрасывая старые.Однако, чтобы включить или исключить элементы данных, мне всегда нужно начинать процесс с самого начала с измененного набора данных, процесс, который занимает много времени и не подходит для работы в реальном времени.

Проблема, которую я пытаюсьрешить, как включить изучение дополнительных элементов данных в аппроксимированную функцию, не просматривая весь исходный набор данных.Первоначальная идея состоит в том, чтобы взвесить функциональные параметры, извлеченные из каждого подмножества данных, отношением всех элементов данных в подмножестве к общему количеству элементов данных во всех подмножествах.Кто-нибудь может придумать лучший подход?Мы будем благодарны за подсказку о любом возможном решении.

1 Ответ

0 голосов
/ 29 декабря 2011

Заимствуя из некоторых методов временных рядов, один простой (эвристический) подход заключается в использовании экспоненциального сглаживания параметров вашей модели, где вы вычисляете средневзвешенное значение для новых изученных параметров (на основе последних данных) и более старых параметры (значение веса должно быть настроено с использованием некоторого вида перекрестной проверки / тестирования на истории). Обычно это работает довольно хорошо, если отношение сигнал / шум не сильно меняется в новых данных как функция времени.

Другой подход заключается в навязывании «априора» для параметров модели на основе более ранних данных - один из самых простых способов сделать это (не требующий полного байесовского обучения) - это добавить квадратичный штраф к вашей функции потерь, который штрафует для отклонения от более старых значений параметров (с коэффициентом штрафа, настроенным с использованием перекрестной проверки / обратного тестирования). Необходимо соблюдать осторожность, чтобы убедиться, что матрица дисперсии-ковариации более старых параметров модели учитывается при построении штрафа. Это примерно эквивалентно наложению гауссовского априора на основе более старых параметров модели.

...