Шрифт:
Интервал:
Закладка:
Агенты и среда
Центральным понятием современного ИИ является интеллектуальный агент — нечто способное воспринимать и действовать. Агент — это процесс, протекающий во времени, в том смысле, что поток воспринимаемых входных сигналов преобразуется в поток действий. Предположим, например, что рассматриваемый агент — беспилотное такси, везущее меня в аэропорт. Его входной сигнал может включать данные с восьми RGB-камер, делающих 30 кадров в секунду; кадр состоит из, допустим, 7,5 млн пикселей, каждый из которых имеет значение интенсивности изображения в каждом из трех цветовых каналов, что в сумме дает свыше 5 Гб в секунду. (Поток данных от 200 млн фоторецепторов сетчатки еще больше, что отчасти объясняет, почему зрением занимается такая большая часть человеческого мозга.) Такси также получает данные акселерометра 100 раз в секунду плюс данные GPS. Этот колоссальный поток первичной информации преобразуется прямо-таки гигантской вычислительной мощностью миллиардов транзисторов (или нейронов) в последовательное согласованное поведение по управлению автомобилем. Действия такси включают электронные сигналы, подаваемые на руль, тормоза и акселератор 20 раз в секунду. (У опытного водителя-человека вся эта колоссальная деятельность остается по большей части неосознанной: возможно, вы осознаете лишь принятие таких решений, как «обогнать этот медленный грузовик» или «остановиться на заправке», но ваши глаза, мозг, нервы и мышцы постоянно занимаются всей работой.) В случае шахматной программы входные данные — главным образом лишь показания таймера и время от времени уведомление о ходе противника и новом состоянии доски, тогда как действия состоят по большей части в том, чтобы не делать ничего, пока программа думает, и временами выбирать ход и уведомлять о нем противника. У личного цифрового ассистента вроде Siri или Cortana входные данные включают не только акустический сигнал с микрофона (получаемого 48 000 раз в секунду) и ввод тачскрина, но и содержание каждой интернет-страницы, к которой он получает доступ, тогда как действия охватывают речь и демонстрацию материала на экране.
Способ создания интеллектуального агента зависит от характера стоящей перед нами задачи. Это, в свою очередь, зависит от трех вещей: во-первых, от характера среды, в которой будет действовать агент (шахматная доска очень сильно отличается от переполненного шоссе или мобильного телефона); во-вторых, от наблюдений и действий, связывающих агента со средой (например, «Сири» может иметь или не иметь доступ к камере телефона, позволяющей ей видеть); в-третьих, от задачи агента (задача научить противника лучше играть в шахматы очень отличается от задачи выиграть матч).
Приведу лишь один пример того, как агент зависит от всего этого. Если поставлена задача выиграть данную партию, шахматная программа должна учитывать только текущее состояние доски и совершенно не нуждается в памяти о прошлых событиях[55]. Обучающая программа, напротив, должна постоянно обновлять свою модель того, какие нюансы игры в шахматы ученик понимает и какие не понимает, чтобы иметь возможность давать полезные советы. Иными словами, для обучающей программы ум ученика является релевантной частью среды. Более того, в отличие от доски, это та часть среды, которая недоступна для прямого наблюдения.
Характеристики задач, влияющие на конструкцию агента, требуют ответа на следующие вопросы[56]:
• Является ли среда полностью наблюдаемой (как в шахматах, где ввод обеспечивает прямой доступ ко всем релевантным событиям текущего состояния среды) или частично наблюдаемой (как при управлении автомобилем, где поле зрения водителя ограничено, транспортные средства непрозрачны, а намерения других водителей неизвестны)?
• Являются ли среда и действия дискретными (как в шахматах) или фактически непрерывными (как при вождении)?
• Содержит ли среда других агентов (как в шахматах и вождении) или нет (как при поиске кратчайшего маршрута на карте)?
• Являются ли результаты действий, заданные «предписаниями» или «физикой» среды, предсказуемыми (как в шахматах) или непредсказуемыми (как при вождении и прогнозировании погоды), а сами предписания — известными или неизвестными?
• Испытывает ли среда динамическое изменение, вследствие чего время принятия решения жестко ограничено (как при вождении), или не испытывает (как в стратегии оптимизации налогообложения)?
• Каков период времени, для которого производится оценка качества решения в соответствии с задачей? Он может быть очень коротким (как при экстренном торможении), средним (как в шахматах, где матч длится до сотни ходов) или очень длинным (как при доставке меня в аэропорт, что может потребовать сотен тысяч циклов принятия решения, если такси принимает их 100 раз в секунду).
Как видите, эти характеристики порождают ошеломляющее многообразие типов задач. Одно лишь перемножение вышеперечисленных вариантов дает 192 типа. Для всех них можно найти примеры в реальном мире. Некоторые виды задач обычно изучаются вне сферы ИИ: например, разработка автопилота, поддерживающего полет в заданном эшелоне, — это непрерывная динамическая задача с коротким горизонтом — такие обычно решаются в теории автоматического управления.
Очевидно, некоторые типы задач проще других. ИИ достиг большого прогресса в таких задачах, как настольные игры и пазлы, которые являются наблюдаемыми, дискретными, детерминистскими и имеют известные правила. В отношении относительно более простых задач исследователи ИИ разработали общие и достаточно эффективные алгоритмы и достигли глубокого понимания теории. Часто машины в этих случаях превосходят результативность человека. Мы можем сказать, что алгоритм является общим, если имеются математические доказательства того, что он обеспечивает оптимальные или близкие к оптимальным результаты при разумной сложности вычислений во всем классе задач; если он хорошо работает на практике при решении этих типов задач, не требуя каких-либо модификаций под конкретную задачу.
Видеоигры, например StarCraft, несколько сложнее настольных: они включают сотни движущихся частей и временные периоды в тысячи шагов, а доска лишь частично видна в любой момент времени. В каждый момент игрок может иметь выбор по меньшей мере из 1050 ходов; для сравнения: в игре го лишь около 102 ходов[57]. С другой стороны, правила известны, а мир дискретен и включает немного типов объектов. На начало 2019 г. машинные программы были так же хороши, как некоторые профессиональные игроки в StarCraft, но еще не готовы бросить вызов самым лучшим игрокам-людям[58]. Что более важно, требуется немало ориентированных на конкретную задачу усилий, чтобы этого достичь; методы общего назначения для StarCraft не вполне разработаны.