Автоматическая настройка параметров - PullRequest
0 голосов
/ 05 августа 2011

У меня есть приложение для обработки аудио, которое принимает входной аудиофайл, обрабатывает его и выплевывает измененный выходной аудиофайл.Это приложение для обработки аудио имеет 10-15 параметров, которые влияют на то, как оно обрабатывает звук, и, следовательно, влияют на содержимое выходного аудиофайла (например, у него может быть другая частотная характеристика, например, громче, тише и т. Д.).Все эти параметры имеют ограниченные диапазоны (например, x0 должен быть <1 и> -1).

Выходной аудиофайл оценивается инструментом, который дает ему оценку.Этот инструмент знает, как должен звучать «идеальный» вывод, и соответствующим образом оценивает выходной файл.Оценка 1,0 означает, что вывод является идеальным, т.е. входной файл был обработан с наилучшим возможным набором параметров.Значение 0 означает, что выходной сигнал полностью неверен.

Таким образом, с 10-15 параметрами с их допустимыми диапазонами комбинации бесконечны!Я буду сидеть здесь, вручную настраивая эти параметры, пока не найду лучшее решение.Я проверил некоторые решатели LP / MIP (CBC, MS Solver Foundation, GKLP), но они используют математическое уравнение в качестве целевой функции ... вы не "подключаете" функцию внешней оценки, насколько я вижу.

Является ли решение для LP / MIP правильным инструментом для настройки параметров?Есть идеи?

Спасибо,

akevan

Ответы [ 3 ]

1 голос
/ 05 августа 2011

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

0 голосов
/ 30 ноября 2012

Вы можете использовать пакет SPOT (язык программирования R). Это позволяет вам находить (почти) оптимальные настройки параметров, используя значительно меньше прогонов, чем грубая сила. Вы можете использовать любой язык программирования для своего кода функции пригодности, SPOT имеет адаптер для этого и предлагает автоматический режим с настройкой по умолчанию (вам не нужно беспокоиться о типах конструкции и моделях прогнозирования). У него крутая кривая обучения, но как только вы поймете основы, он станет мощным инструментом. Здесь - краткое руководство; Глава 2.6 предлагает конкретный пример. Пакет SPOT поставляется с несколькими примерами.

0 голосов
/ 05 августа 2011

Если бы у вас была целевая функция, то да, LP был бы идеальным подходом (и дал бы идеальный ответ);решение будет чисто аналитическим.Но в отсутствие функции кажется, что вы правильно поняли, что проблема становится проблемой целочисленного программирования.У меня меньше знаний о целочисленном программировании, но я считаю, что это также предполагает целевую функцию для решения.Даже с этой функцией целочисленные программы NP-hard .

Так что, похоже, вам придется использовать грубую силу, чтобы обнаружить локальные максимумы, а затем настроить их.Я понимаю, что это именно то, что вы не хотели делать, но это то, что приходит на ум.

...