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