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

339 lines
39 KiB
TeX
Raw Permalink Normal View History

\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}