4

Я подумываю реализовать стратегию обучения для различных типов агентов в моей модели. Честно говоря, я до сих пор не знаю, какие вопросы я должен задать сначала или с чего начать.Реализация обучения усилению в NetLogo (обучение в мультиагентных моделях)

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

Вот как я иду вперед, чтобы сформулировать свою проблему:

  1. агенты имеют и они отслеживают несколько вещей, которые важны для них, и эти показатели различны для разных агентов, например, один агент хочет увеличить. Другой хочет B больше A.
  2. Государства - это точки в жизни агента, которые они Есть несколько вариантов (у меня нет четкого определения для S поскольку они могут произойти несколько раз или вообще не произойти, потому что Агенты перемещаются, и они, возможно, никогда не столкнутся с ситуацией)
  3. Награда - это увеличение или уменьшение показателя, который агенты могут получить от действия в конкретном Государство и агент не знают, какой будет выигрыш, если он выберет другое действие.
  4. Коэффициент усиления не является постоянным, состояния не определены четко, и формальный переход одного состояния в другой отсутствует,
  5. Например, агент может решить поделиться с одним из совместно расположенных агентов (действие 1) или со всеми агентами в одном месте (Действие 2) Если выполняются определенные условия, действие А будет более полезным для этого агента, в то время как в других условиях действие 2 будет иметь более высокую награду; моя проблема в том, что я не видел ни одного примера с неизвестными наградами, так как совместное использование в этом сценарии также зависит от характеристик другого агента (что влияет на условия системы вознаграждения), а в разных состояниях оно будет другим.

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

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

ответ

3

В моей модели нет связи между действием и следующим состоянием, и это заставляет меня задаться вопросом, нормально ли вообще думать об этом в RL.

Это кажется странным. Что делать, если не изменить состояние? Обратите внимание, что агенты не обязательно должны знать, как их действия изменят свое состояние. Точно так же действия могут незначительно изменить состояние (протекторы роботов могут выскользнуть, чтобы они не двигались, когда они пытались). На самом деле некоторые алгоритмы специально разработаны для этой неопределенности.

В любом случае, даже если агенты перемещаются по пространству состояния без какого-либо контроля, он все равно может узнать вознаграждения за разные состояния.Действительно, многие алгоритмы RL включают в себя перемещение по пространству состояний полу-случайным образом, чтобы выяснить, каковы награды.

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

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

Я бы рекомендовал четко определить переменные, определяющие состояние агента. Например, пространство состояний может быть current-patch X internal-variable-value X other-agents-present. В простейшем случае агент может наблюдать все переменные, составляющие их состояние. Однако существуют алгоритмы, которые этого не требуют. Агент должен всегда находиться в состоянии, даже если состояние не имеет значения вознаграждения.

Теперь, касательно неизвестной награды. На самом деле все в порядке. Награда может быть random variable. В этом случае простым способом применения стандартных алгоритмов RL было бы использование переменной expected value при принятии решений. Если распределение неизвестно, тогда алгоритм мог бы просто использовать среднее из полученных ранее вознаграждений.

В качестве альтернативы вы можете включить переменные, которые определяют вознаграждение в определении состояния. Таким образом, если вознаграждение меняется, то оно буквально находится в другом состоянии. Например, предположим, что робот находится над зданием. Ему нужно добраться до верхней части здания перед ним. Если он только продвигается вперед, он падает на землю. Таким образом, это государство имеет очень низкую награду. Однако, если он сначала помещает доску, которая идет от одного здания к другому, а затем движется вперед, вознаграждение изменяется. Чтобы представить это, мы могли бы включить plank-in-place в качестве переменной, чтобы помещать плату на место, фактически изменяя текущее состояние робота и состояние, которое может возникнуть в результате перемещения вперед. Таким образом, сама награда не изменилась; это просто в другом состоянии.

Надеюсь, это поможет!

ОБНОВЛЕНИЕ 2/7/2018: Недавняя поддержка напоминала мне о существовании этого вопроса. За годы, прошедшие с момента его запроса, я действительно нырнул в RL в NetLogo в гораздо большей степени. В частности, я сделал python extension для NetLogo, прежде всего, чтобы упростить интеграцию алгоритмов машинного обучения с моделью. One of the demos расширений обучает коллекцию агентов, используя глубокое Q-обучение по мере запуска модели.

+0

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

+0

Ваш ответ очень помогает, так как я новичок в RL, и я не был уверен, какие вопросы я должен задать себе: D – Marzy

+1

Я рад помогает! Что касается доступности действий: доступные действия должны быть полностью определены государством. Помните, что внутренние переменные могут быть включены в состояние. Итак, если агент предрасположен, чтобы не украсть, то эта предрасположенность является частью состояния, и это действие недоступно. Аналогичным образом, предположим, что агент близок к внешнему агенту и, таким образом, может украсть. Это одно состояние. Теперь предположим, что агент близок к агенту внутри группы и поэтому не может украсть. Это другое состояние. Таким образом, государство определяет, какие действия может предпринять агент. –

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