Интеллектуальный агент. Конкретные архитектуры интеллектуальных агентов


Можно предложить немало различных оснований для построения классификаций агентов. Наиболее очевидными являются критерии классификации, связанные с полярными шкалами «естественное – искусственное» и «материальное – виртуальное». По первому критерию, выделяются:

  • натуральные агенты – животное, человек, стада животных, коллективы людей;
  • искусственные агенты – роботы, коллективы автоматов, сложные компьютерные программы.

Согласно второму критерию, все искусственные агенты подразделяются на:

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

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

Важным основанием для классификации служит наличие (отсутствие) у агентов характеристик обучаемости или адаптивности. У обучаемых агентов поведение основано на предыдущем опыте.

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

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

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

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

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

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

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

Характеристики Когнитивные агенты Реактивные агенты
Внутренняя модель внешнего мира Развитая Примитивная
Рассуждения Сложные и рефлексивные рассуждения Простые одношаговые рассуждения
Мотивация Развитая система мотивации, включающая убеждения, желания, намерения Простейшие побуждения, связанные с выживанием
Память Есть Нет
Реакция Медленная Быстрая
Адаптивность Малая Высокая
Модульная архитектура Есть Нет
Состав многоагентной системы Небольшое число автономных агентов Большое число зависимых друг от друга агентов

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

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

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

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

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

Между тем, реактивные агенты, называемые импульсивные , также могут иметь примитивный механизм мотивации, толкающий их на выполнение задачи, например, удовлетворение набора жизненных потребностей. Речь идет о поддержании энергетического баланса или, в более широком плане, об условиях выживания агента. Действие механизма самосохранения у агента характеризуется способностями определения и увеличения расстояния границ своего существования. Побуждению к какому-нибудь действию импульсивного агента основывается на таких факторах, как отклонение некоторой жизненно важной переменной (потребности) от нормы и веса (субъективная важность) этой потребности.

Итак, когнитивные агенты, благодаря их сложности, наличию знаний и способностей к рассуждениям о своем поведении и внешней среде, могут быть более автономными, чем реактивные. Они работают относительно независимо, демонстрируя достаточно гибкое поведение. Но все та же сложность автономных агентов, выливающаяся в способность противиться внешним воздействиям, вызывает определенные трудности при организации их эффективного взаимодействия. Поэтому в составе , включающей только интеллектуальных агентов, как правило, присутствует не более 7 + 2 автономных единиц.

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

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

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

Наконец, еще один вариант классификации, где дополнительно к биологическому и психологическому уровням агентообразования вводится социальный и используются аналогии с триадой «растение – животное – человек». По мнению П. Браспеннинга, реактивных, интенциональных и социальных агентов можно уподобить компонентам этой триады. Агенты, подобные растениям, характеризуются реактивностью, выполнением стереотипных программ и посылкой сообщений другим агентам и в среду. Агенты, подобные животным, способны выбирать цели, строить планы действий и обеспечивать их выполнение. Они координируют свои действия, обмениваясь информацией об индивидуальных предпочтениях или задачах. Наконец, гуманоидные агенты, обладая внутренними моделями других агентов (и способностью к рефлексии), характеризуются социальным (ролевым) поведением. Сложность внутренних моделей зависит от уровня знаний и опыта гуманоидного агента.

Любой специалист, подвизавшийся в области цифровой аналитики или интернет-маркетинга, знает о важности принятия обоснованных решений. Станьте участником любой отраслевой конференции или встречи, загляните в тематический блог, просто почитайте массовую прессу — и вы повсюду услышите и увидите такие предметы обсуждения, как машинное обучение (Machine Learning), искусственный интеллект (Artificial Intelligence, AI) и предиктивный анализ (Predictive Analytics).

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

Не переживайте. В данной статье мы расскажем о простом, но очень сильном понятии — интеллектуальный агент (the Intelligent Agent). Он поможет связать указанные темы со знакомыми инструментами и концептами, такими как сплит-тестирование и оптимизация.

Что значит «интеллектуальный агент»?

Может показаться, что это какой-то независимый актер или некая ответственная за принятие решений персона, перед которой стоит определенная задача. Изначально наш агент, возможно, будет не настолько хорош, как вы ожидали. Но со временем он будет пытаться развить свою производительность в зависимости от своего особого предназначения или цели (их может быть несколько).

Пример: робот-пылесос Roomba


Основная задача этой машины — чистить ваши полы, делая это за как можно меньшее количество времени.

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

Создавая связь между веб-оптимизацией и интеллектуальными агентами (особенно программными агентами, или Software Agents), мы можем приобщиться к методам и идеям из мира искусственного интеллекта и машинного обучения, а затем применить их к проблемам маркетинговой оптимизации.

Рассмотрим основные компоненты данного концепта и его среды, после чего перейдем к более объемным элементам.


Агент, достигая цели, получает статус/награду (State/Reward). Исходы тех или иных возможных действий (Possible Actions) прогнозируются с помощью моделей (Models). Среда (Environment) представляет собой поле деятельности для агента: она подвергается наблюдениям (Observations), над ней производятся действия (Actions)

Во-первых, у нас есть агент (Agent, слева на рисунке) и его среда (Environment, справа). Под средой понимается пространство, в котором агент «живет» и занимается своим делом в попытке достичь поставленных целей.

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

Что такое «цели» и «награды»?

Цели (Goals)— это то, что агент хочет достичь, к достижению чего он прилагает усилия. Достигая цели, агент получает награду (Reward) в зависимости от того, какова ценность этой цели. Это та же идея, что лежит в основе позитивного подкрепления в обучающем процессе. Если, к примеру, цель агента лежит в увеличении онлайн-продаж, наградой может стать объем продаж или процент конверсионных сессий, приведших к покупке.

Исходя из того, что агент имеет ряд целей и разрешенных действий (Actions), его задачей будет изучить, какие действия принимать в каждой ситуации, в которой он окажется — то есть в тех условиях, когда он что-то «видит», «слышит», «чувствует» и т.д.

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

1. Сначала действует:

  • Наблюдает за средой для определения существующей ситуации (можете считать это сбором данных, то есть тем, чем мы обычно занимаемся при веб-аналитике);
  • Дает прогноз, какое из всех возможных действий окажется лучшим;
  • Совершает действие.

2. Затем учится на эффекте, произведенном от этого действия:

  • Снова наблюдает за средой, чтобы увидеть влияние произведенного действия;
  • Оценивает, насколько хорошим или плохим оказалось данное влияние и привело ли оно к цели;
  • Если нет, определяет, приблизило оно к цели или, наоборот, отдалило по сравнению с той ситуацией, что была до совершения действия;
  • Обновляет модель прогнозирования согласно тому, насколько действие продвинуло агента ближе к цели либо отдалило его от нее.

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

Машинное обучение как программный агент, способный обучаться

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

Если выражаться более формально, то можно привести цитату из книги первопроходца в данной области Тома Митчелла (Tom Mitchell, Machine Learning, 1997): «Считается, что компьютерная программа может обучаться на основе опыта в отношении определенного класса задач и критериев качества, если ее производительность при выполнении этих задач, измеренная данными критериями качества, улучшается с ростом опыта».

В данном понимании машинное обучении — это не «просто математика», но фактически процесс обучения с опорой на опыт и среду для улучшения, адаптации и оптимизации действий.

Две задачи интеллектуального агента

Интеллектуальный агент имеет две взаимосвязанные задачи — обучаться и контролировать.

По сути, все инструменты онлайн-тестирования и отслеживания поведения содержат эти два первостепенных компонента:

  • компонент ученика/прогнозиста;
  • компонент контролера.

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

Задача ученика — создание прогнозов реакций среды на действия контролера.

Ученик является своего рода советником контролера: он дает ему рекомендации относительно каждого возможного действия.

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


Для каждого задания нам нужно испробовать все возможные действия и таким образом определить, что работает лучше. Конечно, для получения самого топового успеха действия с наименьшим положительным эффектом должны приниматься как можно реже.

Это рождает внутреннее противоречие между желанием выбирать действия с предсказуемо высокой ценностью и необходимостью пробовать кажущиеся оптимальными, но недостаточно исследованные действия. Данное противоречие, присущее также и работе маркетолога в незнакомой среде, часто имеет отношение к альтернативе «Исследование vs. Эксплуатация» (Explore vs. Exploit). Другими словами, данное противоречие сводится к стоимости отдельной возможности по отношению к ценности обучения (Opportunity Costs to Learn, OCL).

Давая контекст для такой альтернативы, приведем пример со знакомым всем А/Б-подходом к оптимизации.


Сначала обучение. На этапе сбора данных и создания образцов происходит исследование/обучение (Explore/Learn). Далее следует применение изученного: эксплуатация/прибыль (Explore/Earn)

Приложение проводит А/Б-тест, первым делом показывая разным пользователям различные варианты. Этот первоначальный период, во время которого оно собирает информацию о каждом варианте, может считаться периодом исследования (Exploration Period). Затем, после достижения некоторой предопределенной статистической черты, один вариант провозглашается «победителем» и становится встроенной частью пользовательского опыта. Это уже период эксплуатации, так как приложение эксплуатирует полученные знания, чтобы добиться оптимального UX.


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

В случае с А/Б-тестированием оба компонента — и обучения, и контроля — одинаково просты. Способ селекции действий контролером заключается в выборе случайных опций (обычно из равномерного распределения, то есть все действия имеют равные шансы попасть в выборку). Компонент обучения — это отчет по результатам А/Б-тестирования ( или апостериорные вероятности для байесовского критерия).

Чтобы получить пользу от обучения, необходим человек, аналитик, выступающий посредником: опираясь на результаты тестов, он вносит корректировки в политику отбора действий, применяемую контролером. Обычно это означает, что аналитик сам назначает один из протестированных вариантов «победителем» и удаляет все остальные.

Следующим шагом развития будет автоматизация этого процесса с целью устранения необходимости в прямом участии человека (естественно, все еще будет требоваться изучение прогресса аналитиком). Такой метод называется адаптивным динамическим программированием или обучением с подкреплением, для него специфическим типом проблемы будет алгоритм многорукого бандита (Multi-Armed Bandit).

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

Вновь обратимся к А/Б-тестирующему агенту, добавив к нему пользовательские сегменты.


В случае с таргетинговыми агентами среда будет усложняться сегментацией пользователей

Сегментированный агент будет отличаться, поскольку его среда несколько более сложная. Вопреки предыдущему примеру, где агент А/Б-тестирования просто должен был знать о конверсиях (наградах) после принятия решения, теперь ему также необходимо «видеть» и отслеживать пользовательские сегменты.

Таргетинг или тестирование? Неверно поставленный вопрос!

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

Вы можете сказать: «Да это же просто А/Б-тестирование с сегментами, а не предиктивный таргетинг. Настоящий таргетинг использует высшую математику, это совершенно иное».

Это не совсем так.

Взглянем на еще одного таргетингового агента, но в этот раз вместо нескольких пользовательских сегментов имеется группа .


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

Теперь среда состоит из множества отдельных единиц информации, могущих образовать миллионы или даже миллиарды уникальных комбинаций.

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

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

Предиктивный анализ: отбор исследованных пользовательских характеристик для совершения действия


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

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

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

Заключение

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

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

Интеллектуальные агенты.

Введение.

Компьютеры не очень хорошо знают что делать: каждое действие, выполняемое компьютером, должно быть явно ожидаемо, спланировано и запрограммировано программистом. Если компьютер когда-либо попадает в непредвиденную ситуацию, результат обычно не очень хороший – система ломается в лучшем случае, в худшем – гибнут люди. Этот земной факт – основа отношений с компьютерами. Это настолько самоочевидно, что в литературе редко упоминается. И все же это является полнейшим сюрпризом для общения новичков с компьютером.

В большинстве случаев мы рады принимать компьютеры, как покорных, однозначных служащих без воображения. Для многих применений (таких как обработка списков) это вполне приемлемо. Однако, для все увеличивающегося числа приложений, нам требуются системы, которые самостоятельно решают, что они должны делать для того, чтобы удовлетворять целям для которых они созданы. Такие компьютерные системы известны как агенты. Агенты, которые должны работать устойчиво в резко изменяющемся, непредсказуемом или открытом окружении, где очень значительна возможность того, что действие может закончиться неудачей, известны как интеллектуальные агенты или автономные агенты. Вот несколько актуальных примеров применения интеллектуальных агентов:

Когда космический зонд выполняет свой долгий путь от Земли к другим планетам, команде на Земле часто требуется постоянное наблюдение за ходом процесса, и решать как поступать в неожиданных ситуациях. Это дорого, и так как принимать решения надо быстро - не всегда практично. Поэтому, организации, такие как NASA, делают серьезные вложения в создание зондов более автономных, придавая им больше способностей и перекладывая на них часть ответственности.

Поиск ответа в Интернет по особому критерию может быть долгим и утомительным процессом. Так что почему бы не позволить компьютерной программе – агенту – сделать это за нас? Обычно агенту дается запрос, по которому требуется объединить информацию с различных источников в Интернет. Сбой происходит когда какой-либо ресурс недоступен (возможно из-за сбоя сети) или из-за невозможности получения результата.

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

Почему агенты считаются важным новым направлением в концептуализации и реализации некоторых типов программных приложений;

Какие интеллектуальные агенты и как связаны (или не связаны) с другими программными парадигмами – в частности с экспертными системами и объектно-ориентированным программированием;

Основной пропагандируемый подход к конструированию и реализации интеллектуальных агентов, сопутствующие выводы к этим подходам, относящиеся к ним заслуги и трудности, которые может встретить создатель интеллектуальных агентов;

Характеристики основных языков программирования доступных для создания агентов на сегодняшний день.

Эта глава построена следующим образом. Вначале раздел 1.2 описывает, что понимается под термином агент. Раздел 1.3 представляет некоторые абстрактные архитектуры агентов. То есть, несколько основных моделей и свойств агентов обсуждаются без ссылок на то, как они могли бы быть реализованы. В разделе 1.4 обсуждаются конкретные архитектуры агентов. В этом разделе подчеркиваются различные основные пути конструирования агентных систем, которым можно следовать при создании. В том числе архитектуры, основанные на логике, реактивные архитектуры, belief-desire-intention архитектуры и наконец послойной архитектуры для интеллектуальных агентов описаны в деталях. Завершающий раздел 1.5 знакомит с некоторыми прототипами языков программирования агентных систем.

Андрей Иванов / 16.08.2016

Технологии искусственного интеллекта являются неотъемлемой частью индустрии компьютерных игр. С момента появления первой игры пользователям всегда хотелось видеть в лице компьютера сильного и разумного соперника. Решить такую задачу можно за счет наделения игровых компьютерных агентов интеллектуальными способностями, схожими с теми, которыми обладает человек. Иными словами, необходимо использовать специализированные системы игрового искусственного интеллекта.

В данном обзоре мы собрали информацию о специфике применения средств искусственного интеллекта в компьютерных играх. Рассмотрены особенности разработки подобных систем и примеры их практического использования.

Специфика игрового искусственного интеллекта

В настоящий момент, рынок компьютерных игр демонстрирует стабильный и уверенный рост. По данным исследовательского центра Newzoo, уже в этом году объем рынка достигнет $99.6 млрд., что на 8.5% превышает показатели прошлого года. К 2019 году ожидается, что эта цифра приблизится к $120 млрд.


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

Игровой искусственный интеллект несколько отличается от традиционного представления об искусственном интеллекте.Так, все усилия ученых направлены на создание разумной машины, максимально приближенной к человеку. Она должна самообучаться, взаимодействовать с окружающими объектами и даже проявлять эмоции. В играх перед искусственным интеллекта такая задача не стоит. Здесь нет необходимости обучаться за рамками игрового процесса. Достаточно лишь сымитировать правдоподобное поведение компьютерного агента, чтобы сделать игру интересной.

Основные принципы разработки игрового искусственного интеллекта

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

Система на основе правил

Одной из самых простых форм игрового искусственного интеллекта является система на основе правил, в которой поведение игровых агентов определяется заранее заданными алгоритмами. Такие системы наиболее далеки от традиционного понятия искусственного интеллекта. Правила могут как задаваться жестко (например, игровой агент всегда поворачивает в одну сторону), так и основываясь на анализе текущего состояния объектов (например, игровой агент всегда движется за игроком).

Конечные автоматы

Конченые автоматы применяются для создания игровых агентов, которые в течение игры могут обладать различным (конечным) числом состояний. В качестве таких состояний можно задать физические условия, в которых находится объект, его эмоции и т.д. Данные состояния в зависимости от условий игры могут меняться. Примеры возможных состояний игрового агента представлены на рисунке ниже.


Возможные состояния игрового агента. Источник: software.intel.com

Стоит отметить, что под эмоциональным состоянием игрового агента понимается его алгоритм поведения в той или иной ситуации. Эмоциональное состояние не имеет никого отношения к эмоциям искусственного интеллекта.

Адаптивный искусственный интеллект

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

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

Восприятие окружающего мира игровым искусственным интеллектом

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

Зрение

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

Слух

Для создания более интеллектуальных игровых агентов можно наделить их возможностью слышать передвижение игроков. Поскольку каждые действия в компьютерном мире могут сопровождаться определенным уровнем звука, то можно заранее задать тот уровень, по достижению которого игровой агент будет способен обнаружить игрока.

Взаимодействие с временными объектами

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

Укрытие

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

Навигация искусственного интеллекта

Оценив окружающую обстановку и приняв какое-либо решение, игровому агенту нужно понять, каким образом ему двигаться к заданной точке. Для этого можно использовать несколько подходов в зависимости от характера и уровня игры. Наиболее простым является алгоритм «Столкнуться и повернуть», когда агент двигается до тех пор, пока не столкнутся с каким-либо препятствием. Далее движение осуществляется по направлению, используя который агент окажется ближе всего к заданной цели. Такой подход чаще всего применяется в несложных играх. В более сложных играх данных подход несколько модифицируется: игровых агентов можно снабдить памятью, что позволяет им быстрее найти путь к цели.

В ряде стратегических игр у игроков нет времени, пока их войска разбредутся и достигнут цели, используя алгоритм «Столкнуться и повернуть». Здесь активно используются технологии предварительного поиска наиболее оптимальных путей с помощью карты. Поиск путей является уже давно решенной задачей для разработчиков. Даже в такой старой игре, как Starcraft*, выпущенной Blizzard Entertainment, игровые агенты имели возможность находить оптимальные пути движения по крупным и сложным картам.

Практическое применение. Военные тренажеры

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

В последние годы используемые алгоритмы для игрового искусственного интеллекта продолжают активно развиваться. Этому, в частности, способствует увеличение области их применения. Помимо компьютерных игр, игровой искусственный интеллект активно применяется для создания узкоспециализированных военных симуляторов. Военные симуляторы уже давно стали частью системы тренировок Вооруженных сил некоторых стран (США, Великобритания). При разработке подобных систем особую значимость приобретает правдоподобное поведение виртуальных солдат на поле боя.

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

«На сегодняшний день компьютерные игры в жанре action, 3D-shooter, авто-, авиасимуляторы наиболее популярны у молодежи, они позволяют развивать умения и навыки по управлению вооружениями, формируют командный дух, обучают основам тактики, знакомят с тактико-техническими характеристиками вооружения и военной техники» - комментируют свое стремление в военном ведомстве.

В 2015 году в прессу просочилась информация о том, что в России создали самый большой и самый высокотехнологичный полигон - 333-й Центр боевой подготовки, в котором активно применяются военные симуляторы. Был момент, когда этот масштабный проект находился под угрозой срыва. Немецкий концерн, занимающийся созданием данного полигона, в одностороннем порядке разорвал контракт из-за санкционной политики западных властей. Обратившись в суд, Министерство обороны все-таки продолжило проект, проучив закончить все работы отечественным инженерам.

В настоящий момент на обучение в 333-й Центр боевой подготовки приезжают солдаты и офицеры со все России. Пройдя курс обучения продолжительностью 7 месяцев, все они возвращаются в свои части уже готовыми специалистами. За год на полигоне могут пройти обучение около 30 тысяч военных.

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

«Внедрение подобных технологий вполне может быть одной из ступенек подготовки молодого бойца, однако нужно понимать, что, только играя в военные игры на компьютере, ты толком ничему не научишься, нужна реальная практика», - говорит военный эксперт Виктор Мураховский.

Интеллектуальные агенты

Проблематика интеллектуальных агентов и мультиагентных систем (МАС) имеет почти 40-летнюю историю и сформировалась на основе результатов, полученных в рамках работ по распределенному ИИ (DAI), распределенному решению задач (DPS) и параллельному ИИ (PAI). Данная тематика интегрирует достижения в области компьютерных сетей и открытых систем, ИИ и информационных технологий .

Агент – это аппаратная или программная сущность, способная действовать в интересах достижения целей, поставленных перед ним владельцем или пользователем.

Таким образом, в рамках МАС-парадигмы программные агенты рассматриваются как автономные компоненты, действующие от лица пользователя.

Интеллектуальные агенты должны обладать следующими свойствами:

* автономность – способность функционировать без вмешательства со стороны своего владельца и осуществлять контроль внутреннего состояния и своих действий;

* социальное поведение – возможность взаимодействия и коммуникации с другими агентами;

* реактивность – адекватное восприятие среды и соответствующие реакции на ее изменения;

* активность – способность генерировать цели и действовать рациональным образом для их достижения;

* базовые знания – знания агента о себе, окружающей среде, включая других агентов, которые не меняются в рамках ЖЦ агента;

* убеждения – переменная часть базовых знаний, которые могут меняться во времени, хотя агент может об этом не знать и продолжать их использовать для своих целей;

* цели – совокупность состояний, на достижение которых направлено текущее поведение агента;

* желания – состояния или ситуации, достижение которых для агента важно;

* обязательства – задачи, которые берет на себя агент по просьбе других агентов;

* намерения – то, что агент должен делать в силу своих обязательств.

В зависимости от концепций, выбранных для организации МАС, обычно выделяются три базовых класса архитектур:

* архитектуры, которые базируются на принципах и методах работы со знаниями;

* архитектуры, основанные на поведенческих моделях типа «стимул–реакция»;

* гибридные архитектуры.

Архитектуру или агентов, которые используют только точное представление картины мира в символьной форме, и принимают решения на основе формальных рассуждений и использования методов сравнения по образцу, принято определять как делиберативные (1-й подход).

Реактивными называются агенты и архитектуры, в которых функционирование отдельных агентов и всей системы осуществляется по правилам типа «ситуация–действие». При этом под ситуацией понимается потенциально сложная комбинация внутренних и внешних состояний (2-й подход).

Для решения реальных задач используются гибридные архитектуры.

Развитие и внедрение программных агентов было бы невозможно без опыта разработки открытых систем, которые характеризуются свойствами:

* расширяемость/масштабируемость (возможность изменения набора составляющих систем);

* мобильность/переносимость (простота переноса ПС на разные аппаратно-программные платформы);

* интероперабельность (способность к взаимодействию с другими системами);

* дружелюбность, легкая управляемость.

Одним из результатов внедрения концепции открытых систем в практику стало распространение архитектуры «клиент - сервер». В настоящее время выделяются следующие модели клиент-серверного взаимодействия:

· «толстый клиент – тонкий сервер». Серверная часть реализует только доступ к ресурсам, а основная часть приложения находится на клиенте;

· «тонкий клиент – толстый сервер». Модель активно используется в связи с распространением интернет-технологий. Клиентское приложение обеспечивает реализацию интерфейса, а сервер объединяет остальные части приложений.

Мобильные агенты – это программы, которые могут перемещаться по сети. Они покидают клиентский компьютер и перемещаются на удаленный сервер для выполнения своих действий, после чего возвращаются обратно.

Мобильные агенты являются перспективными для МАС, но в настоящее время нет единых стандартов их разработки, нерешенным остается ряд проблем, таких как легальные способы перемещения по сети, верификация агентов (защита от передаваемых по сети вирусов), соблюдение агентами прав частной собственности и сохранение конфиденциальности информации, которой они обладают, перенаселение сети агентами.

С точки зрения разработки и реализации МАС наиболее эффективными системами поддержки распределенных технологий являются DCOM, Java RMI, COBRA.

Основная ценность DCOM – предоставление возможности интеграции приложений, реализованных в разных системах программирования.

Java RMI-приложения обычно состоят из клиента и сервера. При этом на сервере создаются объекты, которые можно передавать по сети, либо методы, доступные для вызова удаленными приложениями, а на клиенте реализуются приложения, пользующиеся удаленными объектами. Отличительной чертой RMI является возможность передачи в сети не только методов, но и самих объектов, что обеспечивает в конечном счете реализацию мобильных агентов.

Основным преимуществом COBRA является интерфейс IDL, унифицирующий средства коммуникации между приложениями.

Агентом является все, что может воспринимать свою среду с помощью датчиков и воздействовать на нее с помощью исполнительных механизмов (человек, робот, программа). Каждый агент может воспринимать собственные действия.

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

В любой конкретный момент времени оценка рациональности действий агента зависит:

От показателей производительности;

Знаний агента о среде, приобретенных ранее;

Действий, которые могут быть выполнены агентом;

Последовательности актов восприятия агента, которые произошли

до настоящего времени.

Рациональный агент должен иметь способность к обучению и быть автономным.

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

Пример 9.1. Проблемная среда водителя такси

Программные агенты (программные роботы, софтботы) существуют в сложных неограниченных проблемных областях. Например, софтбот для управления тренажером, имитирующим пассажирский самолет, морское судно или софтбот, предназначенный для просмотра источников новостей в Интернете и показа клиентам интересующих их сообщений. Интернет представляет собой среду, которая по своей сложности соперничает с физическим миром, а в число обитателей этой сети входит множество искусственных агентов.

Классификация вариантов проблемной среды:

Полностью/частично наблюдаемая: полностью наблюдаемая, если

датчики фиксируют все необходимые данные;

Детерминированная/стохастическая: если следующее состояние

среды определяется текущим и действием агента, то среда

детерминированная;

Эпизодическая/последовательная: в эпизодической среде опыт агента

состоит из неразрывных эпизодов. Каждый эпизод включает в себя

восприятие среды агентом, а затем выполнение одного действия

(распознавание дефектных деталей), в последовательных средах

Агенту следует думать наперед (вождение машины, игра в шахматы);

Статическая/динамическая: если среда может измениться в ходе

принятия агентом решения, то она является динамической;

Дискретная/непрерывная: игра в шахматы - дискретная,

вождение автомобиля – непрерывная;

Одноагентная/многоагентная (мультиагентная): решение кроссворда,

диагностика – одноагентная, игра в шахматы, вождение

автомобиля – многоагентная.

Задача искусственного интеллекта состоит в разработке программы агента, которая реализует функцию агента, отображая восприятия на действия. Предполагается, что программа должна работать в своего рода вычислительном устройстве с физическими датчиками и исполнительными механизмами. Эти компоненты составляют архитектуру агента.

агент = архитектура + программа

Архитектура может представлять собой персональный компьютер или роботизированный автомобиль.

Существуют четыре основных вида программных агентов, которые лежат в основе почти всех интеллектуальных систем:

Простые рефлексивные агенты;

Рефлексивные агенты, основанные на модели;

Агенты, действующие на основе цели;

Агенты, действующие на основе полезности.

Простейшим видом агента является простой рефлексивный агент , который выбирает действия на основе текущего акта восприятия, игнорируя всю остальную историю актов восприятия. Агент – пылесос: решения основаны только на информации о текущем местоположении и о том, содержит ли оно мусор.

Наиболее эффективный способ организации работы в условиях частичной наблюдаемости состоит в том, чтобы агент отслеживал ту часть ситуации, которая воспринимается им в текущий момент. Это означает, что агент должен поддерживать внутреннее состояние, которое зависит от предыстории. Для обеспечения возможности обновления внутренней информации о состоянии среды в программе агента должны быть закодированы знания двух видов. Во-первых, нужна информация о том, как изменяется внешняя среда независимо от агента. Во-вторых, требуется определенная информация о влиянии действий агента на среду. Знания о том, как работает среда, называются моделью мира. Агент, в котором используется такая модель, называется агентом, основанным на модели .

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

Программа агента может комбинировать информацию о цели с информацией о результатах возможных действий. Такие агенты получили название агентов, действующих на основе цели .

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

Структура обучающего агента включает четыре концептуальных компонента.

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

Выбор редакции
В соответствии с п. 2 ст. 73СК РФ ограничение родительских прав возможно по двум основаниям:Если оставление ребенка с родителями (одним...

Учащиеся вузов и техникумов на дневной форме обучения не имеют возможности зарабатывать себе на жизнь из-за нехватки времени. Именно...

Здравствуйте, уважаемые читатели! В налоговом законодательстве нашего государства говорится, что налоговый вычет – это часть доходов...

Земельный налог оплачивается гражданами ежегодно, однако существует небольшая категория лиц, имеющих льготы. Входят ли в их число...
Теперь приступим к приготовлению теста, готовится оно очень просто.Соединяем в подходящей посуде размягченное сливочное масло, 1 куриное...
Для любимой классики нам нужны:*Все овощи взвешиваем после очистки.Свекла - 2 кгМорковь - 2 кгЛук репчатый - 2 кгПомидоры - 2 кгМасло...
В настоящее время трудно представить себе воспитанного и культурного человека, поглощающего ром, как говорится, «с горла». Со временем...
Кижуч – рыба семейства лососевых. Привлекает данная рыба своей серебристой чешуей. В России данную рыбу ловят от Чукотки до Камчатки, в...
Я очень люблю делать слоеный салаты на праздник, т. к. это довольно удобно для меня, ведь такой салат можно сделать накануне, а не...