1

Мне нужно выполнить некоторую работу с Q Learning, о парне, который должен перемещать мебель вокруг дома (это в основном это). Если дом достаточно мал, я могу просто иметь матрицу, которая представляет действия/награды, но по мере увеличения размера дома, которого будет недостаточно. Поэтому вместо этого я должен использовать для этого какую-то функцию обобщения. Мой учитель предлагает использовать не один, а несколько, поэтому я мог бы их сравнить и так далее. Что вы, ребята, рекомендуете?Функции обобщения для Q-Learning

Я слышал, что для этой ситуации люди используют машины поддержки поддержки, а также нейронные сети. Я не нахожусь внутри поля, поэтому не могу сказать. Раньше у меня был опыт работы с Neural Networks, но SVM кажется гораздо более сложным. Есть ли другие методы, которые я должен искать? Я знаю, что они должны быть похожими на них, но мне нужно что-то для начала.

Благодаря

+0

Надеюсь, вы не против пометки как домашнее задание. Упоминание «учителя» заставляет меня думать, что это уместно. – spender

ответ

2

Подобно тому, как освежителя терминологии, в Q-обучения, вы пытаетесь узнать Q-функции, которые зависят от состояния и действия:

Q(S,A) = ???? 

Стандартная версия Q-обучение, как описано в большинстве классов, говорит вам, что для каждого S и A вам нужно узнать отдельное значение в таблице и сообщить вам, как выполнять обновления Bellman, чтобы сходиться к оптимальным значениям.

Теперь скажем, что вместо таблицы вы используете другой аппроксиматор функции. Например, попробуем попробовать линейные функции. Возьмите свою (S, A) пару и подумайте о наборе функций, которые вы можете извлечь из них. Одним из примеров признака является «Я рядом со стеной», другой - «Будет ли действие помещать объект рядом со стенкой» и т. Д. Количество этих функций f1 (S, A), f2 (S, A),. ..

Теперь, попытайтесь изучить функцию Q в виде линейной функции от этих функций

Q(S,A) = w1 * f1(S,A) + w2*f2(S,A) ... + wN*fN(S,A) 

Как вы должны научиться веса вес? Ну, так как это домашнее задание, я дам вам подумать об этом самостоятельно.

Однако, как подсказка, скажем, что у вас есть K возможных состояний и M возможных действий в каждом состоянии. Допустим, вы определили функции K * M, каждый из которых является индикатором того, находитесь ли вы в определенном состоянии и собираетесь предпринять конкретное действие. Так

Q(S,A) = w11 * (S==1 && A == 1) + w12 * (S == 1 && A == 2) + w21 * (S==2 && A==3) ... 

Теперь, обратите внимание, что для любой пары состояние/действие, только одна функция будет 1, а остальное будет 0, так что Q (S, A) будет равен соответствующий вес, и вы, по существу, изучение таблицы. Итак, вы можете думать о стандарте, Q-обучение в таблице, как о специальном случае обучения с этими линейными функциями. Итак, подумайте о том, что делает обычный алгоритм Q-обучения, и что вы должны делать.

Надеемся, вы найдете небольшую базу функций, значительно меньшую, чем K * M, что позволит вам хорошо представлять ваше пространство.

+0

Еще раз. Только знаю, что я понимаю Q-Learning достаточно хорошо, чтобы понять ваш ответ! Есть ли какое-то место, на котором я могу смотреть, более подробно объясняет это ваше объяснение? Благодаря! –

+1

Я подозреваю, что Рассел и Норвиг (искусственный интеллект: современный подход) должны иметь материал на нем, но я точно не помню. Посмотрите http://inst.eecs.berkeley.edu/~cs188/fa09/lectures.html и, в частности, лекцию от 10/6 – bsdfish

Смежные вопросы