BMSTU/03-multiagent-intelligent-s...

339 lines
39 KiB
TeX
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

\documentclass{article}
\input{../common-preamble}
\input{../bmstu-preamble}
\input{../fancy-listings-preamble}
\author{Алфимцев Александр Николаевич}
\title{Мультиагентные интеллектуальные системы}
\date{2022-09-05}
\begin{document}
\maketitle
\tableofcontents
\section{Лекция 1}
по числителям
RL, MARL
\section{Лекция 2}
\subsection{Dynamic Programming}
семейство алгоритмов исп для вычисления оптимальных стратегий при условии что имеется идеальная модель окружающей среды в виде MDP. в управлении это решение задачи через решение меньших подзадач.
уравнение оптимальности Беллмана. недостаточно понять в каком мы состоянии, надо ещё понять что делать в этом состоянии. алгоритмы получаются преобразованием уравнений бэллмана в правила поведения.
Весь РЛ можно условно разбить на задачи управления и задачи предсказания.
\begin{enumerate}
\item оценивание стратегии или состояния. оценку мы делаем до некоторого порога и с некоторой точностью, это называется итеративным оцениванием стратегии.
\item важно что за шаг нужно не только поощрять, но и наказывать за неверный выбор
\item теорема получения стратегий. идея в том чтобы понимать не только награду, но и будущие награды на каждом этапе. более оптимальные стратегии должны быть не хуже, чем текущая выбранная стратегия. если мы смогли улучшить стратегию, значит мы можем пересчитать ценности следующих шагов и получить ещё более хорошую стратегию. это называется итерацией по стратегиям
\item стратегия стабилизируется если является жадной для текущей системы ценностей, а ценности стабилизируются когда мы подобрали оптимальную стратегию
\end{enumerate}
не очень хорошо подходит для больших алгоритмов, несмотря на сложность О(н+к). эти методы обычно работают в 100 раз быстрее линейных алгоритмов.
\subsection{monte-carlo}
антагоничны ДП. не говорим о среде, а есть группа методов, которые усредняют опыт. хорошо подходит об эпизодических алгоритмов. в некотором роде инкрементны. термин означает более широкий класс алгоритмов в которых присутствует значимый случайный компонент.
обучается на эпизодах. любое действие это замаскированное обучение. состояния оцениваются также, а потом награды усредняются. чтобы улучшить стратегию мы делаем её жадной относительно текущей ценности.
алгоритм стремится к идеальному алгоритму, но его не достигает. усреднённая оценка нужна для подсчёта совместных действий. Если действие не даёт результата - мы не получим никакой информации.
\subsection{Temporal Difference}
выполняет обновление старой оценки ценностей до новой оценки ценностей. делается для максимизации выгоды от цели. МК всегда стремится толкьо вверх, а ТД может меняться в зависимости от текущих предсказаний.
один из видов - Q-обучение, алгоритм SARSA
Существует проблема переоценки, для решения придумали алгоритм двойного обучения. всё это будет табличное обучение с различными эвристиками. Если есть модель среды мы можем значительно улучшить все возможные решения. но если среда динамическая - это смерть модельных алгоритмов.
Есть возможность решить практическую любую задачу полным перебором древа решений (брутфорс). если мы идём только в глубину - это монтекарло.
\subsection{RL обучение с моделью}
\subsection{Теория игр в мультиагентном обучении с подкреплением}
\begin{itemize}
\item поиска экстремума стратегий
\item
\item
\end{itemize}
Совокупность математических методов нахождения оптимальных стратегий в играх. Под игрой понимается роцесс в котором один или несколько акторов достигают цели. Сточки зрения машинного обучения ТИ это матрица. Дилемма заключённого. Алгоритм может получиться жадным, трусливым, агрессивным, в зависимости от того, какие коэффициенты получатся в таблице взаимодействия агентов. Вопрос выбора стратегии ``довериться или обмануть''. Вступает в силу равновесие Нэша.
РН - это состояние в котором несколько игроков находят действие, и знают, что отклонение не принесёт ни им ни партнёру выгоды, и знают, что если партнёр отклонится - таже не будет достигнут профит. Movie: Beautiful mind.
Замена Q-таблиц - это матрицы (Матричные игры). Стохастические игры - это пространственные методы решения таких задач.
Один из первых алгоритмов - алгоритм частотного максимума Ку-значений, подсчитывал частоту получения максимальной награды при выполнении определённого действия. Помогал найти максимально полезное действие для мультиагентных систем.
Конечный автомат в обучении заменял Ку-обучение, и первая попытка перейти от матриц к стохастическим играм.
Созависимое обучение - первый алгоритм joint action Learning - каждый агент смотрит не на отдельные действия, а на результат именно совместных действий, самый простой - это минимакс. Количество состояний-действий увеличивается экспоненциально от количества агентов. Подход интуитивного решения был возможен к использованию только если не было необходимости кооперации агентов.
Матричная игра - это кортеж (н,а1,...,аи,р1,...,ри) где н - количество агентов, а - множество действий итого агента, р - функция наград итого агента.
Необходимо найти действие, приводящее к макимальной награде. Также применима игра с нулевой суммой. стратегия считается лучшей если совокупность наград лучше чем при предыдущей принятой стратгии. Равновесие Нэша в матричной игре - это множество оптимальных стратегий. В системе оптимальные индивидуальные стратегии приводят к совместному провалу. улучшение результата одного ухудшит результат другого - это оптимальность по Парето. Часто совпадает с равновесием Нэша.
Рациональный алгоритм - способный сходиться к стратегии, отвечающей лучше всего стратегиям других агентов, которые во время обучения сходятся к стационарным стратегиям. Алгоритм обладает свойством сходимости в том случае, если стратегия обучаещегося агента обязательно сходится к стационарной стратегии. Стационарная стратегия это такая стратегия, которая не изменяется со временем.
Если все агенты пришли к стационарной стратегии, то система приходит к MDP. Пространство действий уменьшается со временем, также улучшается стратегия. Алгоритм PHC развили до Win or learn fast WoLF-PHC, алгоритм обладает свойством сходимости, заставляющем учиться быстрее. При добавлении параметра сходимости агенты меняют поведение не более оптимальное.
Марковский процесс принятия решений - это много сотояний и один агент. Стохастические игры - это соединение МДП и матричных игр.
Стохастическая игра - классифицируется на полностью кооперативные, конкурентные, игра с общей суммой. расширяет Ку-обучения. Использование совместных действий агентов. Введение понятия Нэш-Ку - это ожидаемая сумма дисконтированных наград при условии что все агенты следуют равновесной стратегии Нэша. Обновление Ку-значений зависит от действий всех агентов. Матрицы наград получаются после каждого шага суммированием всех матриц всех агентов.
Часто ставят знак равенства между теорией игр и машинным обучением.
\newpage
\section{Нейросетевое обучение мультиагентных систем}
\begin{itemize}
\item IQL - независимое ку-обучение, но не с таблицей, а с нейросетью
\item CDQN - центральное (централизованное) обучение (проигрывает децентрализованным системам).
\item VDN - представитель класса рекуррентных нейросетей.
\item MADDPG - полиси градиент, потом добавили детерминистик итд. максимально прощающая ошибки сеть.
\end{itemize}
Успехи такого обучения связаны с развитием нейросетей. Нейросеть - это простые компьютерные процессоры обработки данных, объединённые по принципу биологической.
Применяются глубокое обучение DL, получается глубокое обучение с подкреплением DRL. для аппроксимации оптимальных стратегий агентов или ценностей нейросети. Мультиагентное обучение применяет несколько приёмов:
\begin{itemize}
\item прямая коммуникация
\item дистилляция стратегий
\item разделение параметров
\item моделирование оппонента
\item и другие
\end{itemize}
Коммуникация между агентами возникла совсем недавно, обычно рассматриваются независимые. Решают задачи координации. Агентов мотивируют к коммуникации. Начинается всё с Табула Раса (ничего незнающих) агентов, и агенты нашли способ общаться (трёхслойный отправитель, четырёхслойный получатель).
Классика мультиагентного обучения - это развитие централизованного обучения - ЦО с децентрализованным исполнением. Информация в таком алгоритме при исполнении удаляется. Агент таким образом может моделировать как поведение врага так и друга (DRON). алгоритм много щадействовал из теории игр, но многое задавалось в ручную. в глубоком обучении всё ещё также применяется табулярное обучение, но стараются минимизировать и заменять на нейросети. Идея толерантности заключается в том, что никакой агент не знает, имеет ли смысл взаимодействовать с другими агентами. Так предлагается исправить проблему затенения действий (сверхобобщение) когда мы не понимаем что делаем, но награда кортежу агентов приходит (ничему не учимся) - это обратная проблема переобучения, стараемся уменьшить шум от неоптимальных стратегий агентов.
недостаток алгоритмов основанных на толерантности - излишний оптимизм. Вводят гистерезис, который позволяет улучшить мультиагентное взаимодействие. гистерезисное обучение позволяет даже деградацию локальной стратегии ради общей награды.
Централизованное обучение подвержено ограничениям, поэтому нужно декомпозировать. Qmix показал себя в этом лучше всего.
\subsection{IQL}
в современных алгоритмах глубокого обучения добавляется нелинейная аппроксимация максимизации функции наград и минимизации функции потерь с помощью нейронной сети. Параметров нейросети намного меньше, чем комбинаций состояний-действий при табличном способе.
Алгоритм независимого глубокого обучения с использованием полносвязной нейронной сети IQN, основан на алгоритме DQN. главные инновации:
\begin{itemize}
\item глубокие нейросети;
\item использование буфера воспроизведения;
\item целевая нейросеть.
\end{itemize}
Основан на алгоритме вычислении ценности. При обучении с подкреплением есть ряд ограничений в доказательной базе и нестабильность обучения. В обучении с учителем есть идеальный вариант, здесь же есть набор из состояний-действий-реакций-сред, на выборке из которого производится обучение. Алгоритм реализует идею независимого обучения, то есть у каждого агента обинаковые нейросети внутри.
\subsection{CDQN}
\section{Эволюционное обучение}
Генетические алгоритмы. Машинное обучение (МО) может быть использовано с оптимизацией, а не только МО и оптимизация сами по себе.
Эволюция - это необратимое развитие за счёт постепенного изменения материи. ЭА могут быть использованы в МО. Алгоритмов довольно много, но иногда их путают с nature-inspired.
\begin{itemize}
\item InGA
\item CoE - КоЭволюция
\end{itemize}
Для мультиагентных задач первый генетический алгоритм обучал за 300 поколений агентов в мире из 1000 измерений.
есть также алгоритм работающий по принципу иммунной системы, удаляя неэффективных агентов специальными клетками-лейкоцитами.
В 2017 алгоритм IS инвариантен к частотности действий, легко распараллеливался, на момент создания был самым эффективным.
Эволюционная теория игр Replicator Dynamics.
\subsection{Нейроэволюция}
Любое обучение где задействуется или нейросеть или генетический алгоритм. В отличие от обучения с учителем нужна только оценка среды в момент времени. Противопоставляют градиентному спуску в глубоком обучении. Функция награды заменяется на фитнес-функцию.
Генетический Алгоритм - это эвристический алгоритм поиска используемый для решения задач оптимизации путём случайного подбора комбинирования и вариации искомых параметров с использованием принципов биологической эволюции.
Если агент воскрешается в следующем поколении то он считается успешным и эволюционирует дальше, если нет то просто умирает. Генетический алгоритм направляется функцией приспособленности в сторону оптимального решения путём назначения истории некоторого оценочного скалярного значения.
\appendix
\setcounter{secnumdepth}{2}
\setcounter{tocdepth}{2}
\section*{Приложения}
\addcontentsline{toc}{section}{Приложения}
\renewcommand{\thesubsection}{\Asbuk{subsection}}
\subsection{Семинар 1 (2022-09-06)}
Expectation-Maximization Algorithm. Алгоритм используется для нахождения оценок максимального правдоподобия параметров там, где модель зависит от ненаблюдаемых скрытых или скрытых переменных
\subsection{Семинар 2 (2022-09-27)}
0.4
Разработка нового мультиагентного окружения
- быть как джим путём максимального переиспользования джима
- стандартизировать своё решение
- сделать универсальный АПИ - много агентов
- агенты могут умирать и создаваться
- в каждом эпизоде среды могут участвовать разные агенты
- удобно для начинающих
- изменяемый апи
описаны бенефиты моделирования окружений для АПИ
описаны проблемы состояния гонки когда например два участника одновременно анализируют среду, один ходит а анализ второго сразу становится неактуальным, это особенно очевидно когда мы находимся в среде преследователя
\subsection{Семинар 3 (2022-10-11)}
Теория игр. Действия можно называть стратегиями
Оценка рациональности аудитории. написать число ближайшее к половине среднего арифместического.
Игра в мафию Ч Мф Мн. Ночь
Мн слева, Мф сверху
\begin{tabular}{|c|c|c|}
\hline
& Мф & Ч \\
\hline
Мн & Ч & Мф \\
\hline
Ч & Мн & = \\
\hline
\end{tabular}
\[S_{Mf} = \{Mn,Ch\}\]
\[S_{Mn} = \{Mf,Ch\}\]
Смысл как в дуэли трёх лиц треугольник A0.9 -- B0.9 -- C0.01; сильные понимают угрозу от сильных и в итоге выигрывает слабейший. Важно, что игры такого рода играются один раз, то есть никакого сетапа быть не может и мы ничего не знаем о решении других участников. По парето доминирует итог, когда оба выигрывают, но это нужна предварительная кооперация. хотя предпочтительное поведение - признаваться.
\textbf{Игра в нормальной форме}
Ограниченное число игроков.
Множество стратегий каждого игрока.
Профиль стратегий - это декартово произведение всех стратегий. (все возможные комбинации всех элементов множества)
\textbf{Доминирующая стратегия.}
Стратегия игрока считается слабо доминирующей, если вне зависимости от того как поступают другие игроки получаемая выгода лучше других вариантов. Рациональные игроки не пользуются стратегиями над которыми идёт доминация. В начальной игре Равновесие Нэша достигается когда все люди напишут единицу. Но вопрос в том, насколько далеко мы предполагаем, что зайдут все остальные. В группе вышло число 12,5.
\textbf{Равновесие Нэша}
Множество игроков
Множество стратегий
Функция выгоды (декартово произведение множества стратегий)
По нэшу доминирует не стратегия, а исход.
Исход называется равновесием Нэша если для любого игрока и для любой стратегии выполняется выгода игрока при выборе стратегии при том что никто не изменит свою стратегию будет больше выгоды любой другой стратегии.
Иногда в Нэша может входить и слабая стратегия (Олигополия Бертрана).
Две фирмы выпускают однородный продукт. фирмы не кооперируют. предельные издержки фирм одинаковые.цена выбирается независимо и одновременно.
Когда мы выбираем продавать по себестоимости - мы выходим в 0 и эта стратегия не лучше любой другой стратегии. Равновесие нэша достигается в точке себестоимости. Олигополия - это неразрешимость в которой компании конкурируют и нацелены на получение прибыли - они работают за себестоимость и не получают выгоды.
\subsection{Семинар 4 (2022-10-25)}
\subsection{Лабораторная работа 1}
\href{https://drive.google.com/drive/folders/1KoUxtNMcKU__8GqzRT-gRPZoTO-Scc-6}{GDrive}
\subsubsection{Введение в обучение с подкреплением}
Считается, что обучение с подкреплением сформировалось из трёх основных направлений:
\begin{enumerate}
\item обучение путём проб и ошибок: торндайк и кошки, павлов и собаки пытались путём системы вознаграждений добиться нужного поведения;
\item задача оптимального управления: динамическое программирование, марковский процесс принятия решений, уравнение Беллмана;
\item обучение на временн\'{ы}х разностях.
\end{enumerate}
Объединение идей было произведено Барто и Саттоном, в 1992 алгоритм впервые победил человека в нарды, были сделаны первые попытки игры в шахматы и го. С 2013 выделяют самый активный рост по четырём направлениям:
\begin{itemize}
\item алгоритмы - backpropagation, CNN, LSTM;
\item вычислитеьные ресурсы - закон Мура, GPU;
\item данные - ImageNet и другие;
\item инфраструктура - Linux, git, AWS, другие облачные решения.
\end{itemize}
Основными толчками к развитию считаются
\begin{itemize}
\item [2012] Deep Learning: AlexNet $\to$ LeNet
\item [2013] Reinforcement Learning (обучение с подкреплением): DQN $\to$ Q-Learning (по сути, ничего нового, наращивается инфраструктура).
\itemо17] DeepMind (побеждает atari, го, шахматы, SC2), OpenAI (создают RL toolkit, побеждают в Dota2, развивают направление robo-hands)
\end{itemize}
\begin{frm}
\textbf{OpenAI Gym} - набор сред для обучения с подкреплением и исследований.
\end{frm}
В 2017 MIT включили обучение с подкреплением в топ10 прорывных технологий, описана проблема конструктивной возможности но программной недостаточности
Обучение бывает:
\begin{itemize}
\item обучение с учителем это отличать одно от другого
\item обучение без учителя это классификация и кластеризация
\item обучение с подкреплением - это некоторый вход в ИИ
\end{itemize}
На примере игры в пинг-понг
\begin{itemize}
\item в обучении с учителем - нужен датасет (по сути, нужно заставить человека играть несколько часов), долго, дорого, ИИ не сможет превзойти человека, потому что человек составляет разметку нейросети, изобрести новое невозможно, есть разметка правильных ответов и готовый датасет;
\item обучение с подкреплением - применяется в задачах где требуется оптимизировать последовательности решений в неопределённых обстоятельствах, нужна только среда для взаимодействий, без разметки, только сигнал для подкрепления - хорошо/плохо.
\end{itemize}
\subsubsection{Агент и окружающая среда}
\begin{itemize}
\item агент взаимодействует со средой получая информацию (наблюдение)
\item отдаёт в среду действие
\item получает от среды ответ (награда или штраф)
\end{itemize}
\noindent Обычно представляют в виде MDP\footnote{Марковский процесс принятия решений (англ. Markov decision process (MDP)) — спецификация задачи последовательного принятия решений для полностью наблюдаемой среды с марковской моделью перехода и дополнительными вознаграждениями. Назван в честь Андрея Маркова, служит математической основой для того, чтобы смоделировать принятие решения в ситуациях, где результаты частично случайны и частично под контролем лица, принимающего решения. \href{https://ru.wikipedia.org/wiki/Марковский_процесс_принятия_решений}{wiki}}
\begin{verbatim}
создаём среду
цикл по эпизодам, для каждого эпизода:
сбрасываем среду (встаём на старт для каждого эпизода)
внутри создаём цикл по шагам, для каждого шага:
агент выбирает действие на основе состояния,
среда ему возвращает награды или шаг done
\end{verbatim}
По сути, единственное, что можно использовать при таком алгоритме - это награды от среды, это позволит получить результат.
В представлении работы агента существуют следующие понятия:
\begin{itemize}
\item накопленная награда, есть как рекурсивное представление $G_{t} = R_{t+1} + G_{t+1}$, так и нерекурсивное $G_{t} = R_{t+1} + R_{t+2} + ...$ то есть мы вычисляем награды в текущем состоянии среды и все потенциально возможные новые награды;
\item policy - стратегия агента, собственно, мозги $А = \pi(S)$
\item value - ценность состояния - математическое ожидание всех будущих накопленных наград $v(s) = \mathbb{E}[G_{t}|S_{t} = s]$. По сути, показывает все будущие награды, но мы не знаем функцию среды, поэтому фактически, перед нами стоит задача восстановления функции ценности среды (сейчас награды нет, но где-то в этой среде она точно есть);
\item дисконтирующий множитель - это $\gamma$ в следующей степени для награды каждого следующего состояния. Так горизонт интереса агента можно регулировать. Обычно, $\gamma = [0,95, 0,99]$ чтобы агент мог смотреть далеко вперёд;
\end{itemize}
Таким образом, MDP - это математическое ожидание от награды на следующем шаге плюс гамма умноженная на накопленную награду следующих шагов, другими словами, ценность это ближайшая награда плюс ценность следующего состояния.
\[v_\pi(S) = \mathbb{E}[R_{t+1} + \gamma v_\pi(S_{t+1} | S_t = s_1A_t \sim\pi(S))] \]
Если мы знаем функцию среды мы можем сразу идти по всем состояниям с наилучшей наградой.
\subsubsection{Q-learning}
Например, мир сетка
\begin{itemize}
\item мир 10х10, 100 клеток;
\item возможны движения в 4х направлениях;
\item динамика детермининрованная - никаких случайностей;
\item награды +1 в центре -1 в некоторых клетках
\item есть препятствия, не преграждающие пути в центр
\end{itemize}
Агент сначала ходит случайно, а потом постепенно формирует сетку с наградами (как вес в нейросети), то есть мы понимаем не только финальную награду, но и то что в награду можно попасть из соседней клетки в которой награды нет. Этот метод основан на Q-обучении.
Q-value - это ценность каждого действия из конкретного состояния
\[ q_\pi(s,a) = \mathbb{E}[R_{t+1} + \gamma q_\pi(S_{t+1}, A_{t+1}) | S_t = s, A_t = a] \]
\[ Q: S \times A \to R \]
Составляется Q-таблица (метод носит название табулярное Q-обучение) в которой с помощью коэффициентов описывается, что будет если из состояния пойти в направлении. Такую таблицу лучше заменить на нейросеть, потому что состояний может быть бесконечно много, а бесконечность хранить в компьютере не очень удобно.
Агент ничего не знает о среде - надо исследовать и в какой-то момент надо начать использовать знания чтобы получать награды, возникает дилемма исследования-использования: Если агент только учится - он никогда не достигнет ценности, если совсем не исследует - не учится, всё время движется только по Q-таблице, не понимает ценности среды. Для решения дилеммы вводится \textbf{эпсилон-жадная стратегия}. $\varepsilon$ это вероятность случайного действия агента. Поскольку $\varepsilon$ постоянно линейно падает то агент постепенно начинает действовать из таблицы, а не случайно исследовать.
Классическое правило Q-обучения
\[ Q_{new}(S_t, a) = Q(S_t,a) + \alpha[r_t + \gamma \max Q(s_{t+1}, a) - Q(s_t, a)] \]
Происходит корректировка ценностей, которая на каждом шаге складывается из текущей оценки плюс скорости обучения [награда за действие А в состоянии $S_t$ плюс дисконтирующий коэффициент, умноженный на максимальную ожидаемую награду в следующем состоянии $S_{t+1}$ минус текущая оценка]
В работе есть строки
\begin{lstlisting}[language=Python,style=PyCodeStyle]
if done and (reward == 0):
reward = -10 # fell into the hole
elif done and (reward == 1):
reward = 100 # goal achieved
else:
reward = -1 # step on ice
\end{lstlisting}
есть среды в которых уже есть такие условиях (например, такси) чтобы агент не слонялся без дела и если закончил без победы мы скажем что он плохо справляется.
В среде FrozenLake есть параметр «скользкий лёд», при котором мы не идём куда приказали, имитируя поведение, будто мы поскользнулись.
\end{document}