Можно ли в Q-Learning с приближением функции избежать функций ручной работы?
У меня мало знаний по машинному обучению, поэтому, пожалуйста, прости меня, если мой вопрос кажется глупым.
Исходя из того, что я прочитал, лучшим алгоритмом обучения без подкрепления на данный момент является Q-Learning, где каждому состоянию, паре действий в мире агента присваивается значение q, а в каждом состоянии действие с наибольшим Значение q выбрано. Затем значение q обновляется следующим образом:
Q (s, a) = (1-α) Q (s, a) + α (R (s, a, s ') + (max_a' * Q (s ', a'))), где α - это обучение темп.
По-видимому, для задач с высокой размерностью число состояний становится астрономически большим, что делает невозможным хранение таблицы q-значений.
Таким образом, практическая реализация Q-Learning требует использования аппроксимации Q-значения посредством обобщения состояний или функций. Например, если агент был Pacman, то функции будут:
- Расстояние до ближайшей точки
- Расстояние до ближайшего призрака
- Пакман в туннеле?
И затем вместо q-значений для каждого отдельного состояния вам нужно будет иметь только q-значения для каждого отдельного объекта.
Итак, мой вопрос:
Может ли обучающий агент подкрепления создавать или генерировать дополнительные функции?
Некоторое исследование я сделал:
Этот пост упоминает метод iFDD Герамифарда
- http://www.icml-2011.org/papers/473_icmlpaper.pdf
- http://people.csail.mit.edu/agf/Files/13RLDM-GQ-iFDD+.pdf
это способ "обнаружения зависимостей функций", но я не уверен, что это генерация функций, так как в статье предполагается, что вы начинаете с набора бинарных функций.
Еще одна статья, которую я нашел в связи с этим, - " Игра Atari с глубоким усилением обучения", которая "извлекает функции высокого уровня с использованием ряда архитектур нейронных сетей".
Я перечитал статью, но все еще должен уточнить / полностью понять их алгоритм. Это то, что я ищу?
Спасибо
1 ответ
Похоже, вы уже ответили на свой вопрос:)
Генерация функций не является частью алгоритма Q-learning (и SARSA). В процессе, который называется предварительная обработка, вы можете использовать широкий спектр алгоритмов (из которых вы показали некоторые) для создания / извлечения функций из ваших данных. Комбинация различных алгоритмов машинного обучения приводит к гибридным архитектурам, и это термин, который вы можете использовать при исследовании того, что лучше всего подходит для вашей проблемы.
Вот пример использования функций с SARSA (который очень похож на Q-learning). Полезны ли приведенные вами документы для вашего сценария, вам придется решать самостоятельно. Как всегда в машинном обучении, ваш подход сильно зависит от проблем. Если вы занимаетесь робототехникой и вам сложно определить отдельные состояния вручную, нейронная сеть может оказаться полезной. Если вы можете думать об эвристике самостоятельно (как в примере с pacman), то вам, вероятно, она не понадобится.