Назад в библиотеку

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

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

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

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

2.1. Агенты и варианты среды_

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

с помощью датчиков и исполнительных механизмов

Мы используем термин "is. восприятие для обозначения полученных агентом сенсорных данных в любой конкретный момент времени. "2S. Последовательностью актов восприятия агента называется полная история всего, что было когда-либо воспринято агентом. Вообще говоря, & выбор агентом действия в любой конкретный момент времени может зависеть от всей последовательности актов восприятия, наблюдавшихся до этого момента времени. Если существует возможность определить, какое действие будет выбрано агентом в ответ на любую возможную последовательность актов восприятия, то может быть дано более или менее точное определение агента. С точки зрения математики это равносильно утверждению, что поведение некоторого агента может быть описано с помощью функции агента, которая отображает любую конкретную последовательность актов восприятия на некоторое действие.

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

А 1\

в

&

Последовательность актов восприятия Действие

[A, Clean]

Right

[A, Dirty]

Suck

[В,Clean]

Left

[В,Dirty]

Suck

[А,Сіеал],

[A,Clean]

Right

[ А, Сі еа л ],

[A, Dirty]

Suck

[A,Clean],

[A,Clean],

[A,Clean]

Right

[A,Clean],

,[A,Clean],

[A,Dirty]

Suck

На основании табл. 2.1 можно сделать вывод, что для мира пылесоса можно определять различных агентов, заполняя разными способами правый столбец этой таблицы. Поэтому очевидный вопрос состоит в следующем: "Какой способ заполнения этой таблицы является правильным?" Иными словами, благодаря чему агент

становится хорошим или плохим, интеллектуальным или не соответствующим критериям интеллектуальности? Ответ на этот вопрос приведен в следующем разделе.

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

2.2. Качественное поведение: концепция

рациональности_

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

Показатели производительности

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

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

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

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

Рациональность

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

• Показатели производительности, которые определяют критерии успеха.

• Знания агента о среде, приобретенные ранее.

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

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

С учетом этих факторов можно сформулировать следующее определение рационального агента.

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

Рассмотрим пример простого агента-пылесоса, который очищает квадрат, если в нем имеется мусор, и переходит в другой квадрат, если мусора в нем нет; результаты частичной табуляции такой функции агента приведены в табл. 2.1. Является ли этот агент рациональным? Ответ на этот вопрос не так уж прост! Вначале необходимо определить, в чем состоят показатели производительности, что известно о среде и какие датчики и исполнительные механизмы имеет агент. Примем перечисленные ниже предположения.

• Применяемые показатели производительности предусматривают вознаграждение в одно очко за каждый чистый квадрат в каждом интервале времени в течение "срока существования" агента, состоящего из 1000 интервалов времени.

• "География" среды известна заранее, но распределение мусора и первоначальное местонахождение агента не определены. Чистые квадраты остаются чистыми, а всасывание мусора приводит к очистке текущего квадрата. Действия Left и Right приводят к перемещению агента соответственно влево и вправо, за исключением тех случаев, когда они могли бы вывести агента за пределы среды, и в этих случаях агент остается там, где он находится.

• Единственными доступными действиями являются Left, Right, Suck (всосать мусор) и NoOp (ничего не делать).

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

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

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

Всезнание, обучение и автономность

Необходимо тщательно проводить различие между рациональностью и всезнанием. Всезнающий агент знает фактический результат своих действий и может действовать соответствующим образом; но всезнание в действительности невозможно. Рассмотрим следующий пример: некий господин однажды гуляет в Париже по Елисейским Полям и видит на другой стороне улицы старого приятеля. Вблизи нет никаких машин, а наш господин никуда не спешит, поэтому, будучи рациональным агентом, он начинает переходить через дорогу. Между тем на высоте 10 000 метров у пролетающего самолета отваливается дверь грузового отсека3, и прежде чем несчастный успевает достичь другой стороны улицы, расплющивает его в лепешку. Было ли нерациональным именно то, что этот господин решил перейти на другую сторону улицы? Весьма маловероятно, что в его некрологе написали бы: "Жертва идиотской попытки перейти улицу".

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

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

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

2.3. Определение характера среды_

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

Определение проблемной среды

В приведенном выше исследовании рациональности простого агента-пылесоса нам пришлось определить показатели производительности, среду, а также исполнительные механизмы и датчики агента. Сгруппируем описание всех этих факторов под заголовком проблемная среда. Для тех, кто любит аббревиатуры, авторы сокращенно обозначили соответствующее описание как PEAS (Performance, Environment, Actuators, Sensors — производительность, среда, исполнительные механизмы, датчики). Первый этап проектирования любого агента всегда должен состоять в определении проблемной среды с наибольшей возможной полнотой.