Усиление обучения - Оптимизация веса с учетом результатов - PullRequest
1 голос
/ 25 марта 2011

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

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

Поскольку оценка зависит от всего пути исследования, я не хочу изменять вес в середине исследования. Чтобы протестировать комбинацию весов, я хочу, чтобы смоделированный робот пробежал всю среду с этими весами и получил итоговый результат. Поэтому я могу создать массив данных | w | +1 x n, где | w | количество весов, например, следующее:

w1    w2    w3     w4      score
0.23, 4.30, -0.33, -2.001, 17030
-1.3, 2.03, -10.1, -0.021, 21983
3.65, -1.1, 5.021, 0.2301, 19508
etc...

Мой вопрос: какой алгоритм обучения подкреплению будет лучше для этого? Большая часть того, что я нахожу в литературе и моих исследованиях, связана с классификацией, и, очевидно, многомерная регрессия не сработает. Я также пытался реализовать алгоритм q-learning, но он не работает, так как существует переменное число состояний и действий в зависимости от выбранного пути и структуры среды. Что мне действительно нужно, так это какая-то структура, которая занимает строку за строкой данных и определяет значения весов и их комбинации, которые максимизируют ожидаемый результат. Любая помощь / идеи? Спасибо.

1 Ответ

1 голос
/ 20 апреля 2011

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

Среди соответствующих алгоритмов - генетические алгоритмы, стратегии эволюции или стохастический поиск.Некоторые современные алгоритмы:

, каждый из которых имеет разные вкусы, в зависимости от того, сколько у вас параметров, насколько шумно ваш счет и сколько локальных оптимумов вы ожидаете.

Дляколлекция их реализаций в Python, посмотрите библиотеку PyBrain .

...