Введение. Как искусственный интеллект используется в реальном бизнесе Внедрение искусственного интеллекта

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

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

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


Наглядное представление набора правил, управляющих привидениями в игре Pac-Man, где стрелки представляют принимаемые «решения»

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

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

Конечные автоматы в качестве ИИ

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


Схема состояний в типичном конечном автомате, стрелки представляют возможные изменения состояния

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

Адаптивный ИИ

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

Предсказание

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

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

Восприятие и поиск путей

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

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

Как ИИ воспринимает окружающий мир

Зрение

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

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

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

  1. Рассчитайте вектор между агентом и нужным объектом путем вычитания положения цели из положения агента.
  2. Вычислите угол между этим вектором и направлением взгляда агента.
  3. Если абсолютное значение угла превышает заданный угол поля зрения агента, то ваш агент не видит объект.
В более сложных играх нужно учитывать, что игрок или другие объекты могут находиться за каким-либо укрытием. Для таких игр может потребоваться построить бегущие лучи (так называемый метод ray casting), чтобы узнать, не загорожена ли возможная цель чем-либо. Построение бегущих лучей - это математический способ проверить, пересекается ли луч с какими-либо объектами, начиная с одной точки и двигаясь в заданном направлении. Если хотите узнать, как именно это делается на конкретном примере, ознакомьтесь со статьей Одна голова хорошо, а две лучше .

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

Слух

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

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

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

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

Базовая функциональность, необходимая для придания вашим агентам зрения и слуха, может использоваться и для имитации других органов чувств. Например, обоняния. (Возможность отслеживания игроков интеллектуальными агентами по запаху существует в современных играх, таких как Call of Duty 4*). Добавление обоняния в игру не вызывает особенных трудностей: достаточно назначить каждому игровому объекту отличительный номер запаха и его интенсивность. Интенсивность запаха определяет два фактора: радиус запаха и силу запаха следа, который остается позади. Активные объекты игроков часто отслеживают свои предыдущие положения по ряду причин. Одной из таких причин может быть использование объектов с запахом. С течением времени сила запаха следа уменьшается, след «остывает». Когда данные агента о запахе изменяются, он должен проверить наличие запаха точно так же, как наличие звука (с учетом радиуса и препятствий). Успешность обоняния вычисляется на основе интенсивности запаха и силы обоняния агента: эти значения сравниваются с объектом и его следом.
Осязание в играх поддерживается изначально, поскольку в любой игре уже есть система автоматической обработки столкновений объектов. Достаточно добиться того, чтобы интеллектуальные агенты реагировали на события столкновений и повреждения.

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

Временные объекты

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

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

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

Укрытие

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


Художники из Penny Arcade* сатирически описывают проблему ИИ противника и укрытий

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


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

Навигация ИИ

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

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

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

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

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

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

Поиск путей

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

Поиск путей можно считать уже давно и успешно решенной проблемой в разработке игр. Даже в таких старых играх, как первая версия легендарной игры Starcraft* (Blizzard Entertainment*), огромные количества игровых объектов могли определять пути движения по крупным и сложным картам.

Для определения путей движения используется алгоритм под названием A* (произносится э-стар). С его помощью можно находить оптимальный путь между двумя любыми точками в графе (в данном случае - на карте). Простой поиск в Интернете выдает чистый алгоритм, использующий крайне «понятные» описательные термины, такие как F, G и H. Сейчас я попробую описать этот алгоритм более удобопонятным образом.

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

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

  • Выбираем в списке наиболее подходящий узел.
  • Если этот узел является целью, то все готово.
  • Если этот узел не является целью, добавляем его в список проверенных.
  • Для каждого узла, соседнего с данным узлом.
    • Если этот узел непроходим, игнорируем его.
    • Если этот узел уже есть в любом из списков (проверенных или непроверенных), игнорируем его.
    • В противном случае добавляем его в список непроверенных, указываем текущий узел в качестве родительского и рассчитываем длину пути до цели (достаточно просто вычислить расстояние).
Когда объект достигает поля цели, можно построить путь, отследив родительские узлы вплоть до узла, у которого нет родительского элемента (это начальный узел). При этом мы получаем оптимальный путь, по которому может перемещаться объект.
Этот процесс работает, только когда агент получает приказ или самостоятельно принимает решение о движении, поэтому здесь можно с большой выгодой использовать многопоточность. Агент может отправить запрос в поток поиска пути, чтобы получить обнаруженный путь, не влияя на производительность ИИ. В большинстве случаев система может быстро получить результаты. При загрузке большого количества запросов путей агент может либо подождать, либо, не дожидаясь выдачи путей, просто начать двигаться в нужном направлении (например, по алгоритму «Столкнуться и повернуть»). На очень больших картах можно разделить систему на области и заранее вычислить все возможные пути между областями (или точки маршрута).
В этом случае модуль поиска путей просто находит наилучший путь и немедленно возвращает результаты. Поток карты путей может просто отслеживать изменения на карте (например, когда игрок строит стену), а затем снова запускает проверку путей по мере необходимости. Поскольку этот алгоритм работает в собственном потоке, он может адаптироваться, не влияя на производительность остальной игры.

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

Пример кода

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

/*Get Path will return -1 on failure or a number on distance to path if a path is found, the array pointed to by path will be set with the path in Points*/ int GetPath(int sx,int sy,int gx,int gy,int team,Point *path,int pathlen) { int u,i,p; memset(&Checked,0,sizeof(Checked)); memset(&Unchecked,0,sizeof(Unchecked)); Unchecked.s.x = sx; Unchecked.s.y = sy; Unchecked.d = abs(sx - gx) + abs(sy - gy); Unchecked.p.x = -1; Unchecked.p.y = -1; Unchecked.used = 1; Unchecked.steps = 0;
В приведенном выше фрагменте кода обрабатывается инициализация списка проверенных и непроверенных узлов, а начальный узел помещается в список непроверенных. После этого остаток алгоритма запускается в виде цикла.

Do { u = GetBestUnchecked(); /*add */ AddtoList(Checked,Unchecked[u]); if((Unchecked[u].s.x == gx)&&(Unchecked[u].s.y == gy)) { break; }
Приведенный выше фрагмент кода анализирует узел из списка непроверенных, ближайший к цели. Функция GetBestUnchecked() проверяет расчетное расстояние каждого узла до цели. Если данное поле является целью, цикл разрывается, процесс завершен.

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

/*tile to the left*/ if((Unchecked[u].s.x - 1) >= 0)/*first, make sure we"re on the map*/ { if((IsInList(Unchecked,Unchecked[u].s.x - 1,Unchecked[u].s.y,NULL) == 0)&&(IsInList(Checked,Unchecked[u].s.x - 1,Unchecked[u].s.y,NULL) == 0)) /*make sure we don"t repeat a search*/ { if(TileValid(Unchecked[u].s.x - 1,Unchecked[u].s.y,team)) NewtoList(Unchecked,Unchecked[u].s.x - 1,Unchecked[u].s.y, Unchecked[u].s.x, Unchecked[u].s.y, abs((Unchecked[u].s.x - 1) - gx) + abs(Unchecked[u].s.y - gy), Unchecked[u].steps + 1); } }
В приведенном выше разделе функция анализирует поле слева от текущего узла. Если это поле пока отсутствует в списках «Проверенные» или «Непроверенные», функция попытается добавить его в список. TileValid() - еще одна функция, которую нужно приспособить для игры. Если она передает проверку TileValid() , то она вызовет NewToList() и новое расположение будет добавлено в список непроверенных. В следующих фрагментах кода повторяется этот же процесс, но в других направлениях: справа, сверху и снизу.

/*tile to the right*/ if((Unchecked[u].s.x + 1) < WIDTH)/*first, make sure we"re on the map*/ { if((IsInList(Unchecked,Unchecked[u].s.x + 1,Unchecked[u].s.y,NULL) == 0)&&(IsInList(Checked,Unchecked[u].s.x + 1,Unchecked[u].s.y,NULL) == 0)) /*make sure we don"t repeat a search*/ { if(TileValid(Unchecked[u].s.x + 1,Unchecked[u].s.y,team)) NewtoList(Unchecked,Unchecked[u].s.x + 1,Unchecked[u].s.y, Unchecked[u].s.x, Unchecked[u].s.y, abs((Unchecked[u].s.x + 1) - gx) + abs(Unchecked[u].s.y - gy), Unchecked[u].steps + 1); } } /*tile below*/ if((Unchecked[u].s.y + 1) < HEIGHT)/*first, make sure we"re on the map*/ { if((IsInList(Unchecked,Unchecked[u].s.x ,Unchecked[u].s.y + 1,NULL) == 0)&&(IsInList(Checked,Unchecked[u].s.x,Unchecked[u].s.y + 1,NULL) == 0)) /*make sure we don"t repeat a search*/ { if(TileValid(Unchecked[u].s.x,Unchecked[u].s.y + 1,team)) NewtoList(Unchecked,Unchecked[u].s.x,Unchecked[u].s.y + 1, Unchecked[u].s.x, Unchecked[u].s.y, abs(Unchecked[u].s.x - gx) + abs((Unchecked[u].s.y + 1) - gy), Unchecked[u].steps + 1); } } /*tile above*/ if((Unchecked[u].s.y - 1) >= 0)/*first, make sure we"re on the map*/ { if((IsInList(Unchecked,Unchecked[u].s.x ,Unchecked[u].s.y - 1,NULL) == 0)&&(IsInList(Checked,Unchecked[u].s.x,Unchecked[u].s.y - 1,NULL) == 0)) /*make sure we don"t repeat a search*/ { if(TileValid(Unchecked[u].s.x,Unchecked[u].s.y - 1,team)) NewtoList(Unchecked,Unchecked[u].s.x,Unchecked[u].s.y - 1, Unchecked[u].s.x, Unchecked[u].s.y, abs(Unchecked[u].s.x - gx) + abs((Unchecked[u].s.y - 1) - gy), Unchecked[u].steps + 1); } } memset(&Unchecked[u],0,sizeof(PNode));

Последнее, что осталось сделать в этой итерации, - удалить текущий узел из списка непроверенных. Нет необходимости еще раз анализировать это поле.
} while(1) ;

Заключительный фрагмент кода выстраивает путь из списка проверенных путем возвращения к исходному положению. Путь к исходному расположению всегда можно найти, поскольку каждый узел на пути отслеживает свой родительский узел. Затем возвращается итоговый путь (с помощью ссылки). Функция возвращает длину нового пути.
IsInList(Checked,Unchecked[u].s.x,Unchecked[u].s.y,&u); p = Checked[u].steps; if(path != NULL) { for(i = (p - 1);i >= 0;i--) { path[i].x = Checked[u].s.x; path[i].y = Checked[u].s.y; IsInList(Checked,Checked[u].p.x,Checked[u].p.y,&u); } } return p; }

Тактический и стратегический ИИ

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

Тактический ИИ

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

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

Движение группы: поиск путей

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

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


В игре Overlord рядовые (красного цвета) действуют как одна команда и передвигаются строем по команде игрока (воин в броне)

Управлять строем очень просто, для этого достаточно несколько расширить сферу действий командира группы. Каждый юнит в строю выполняет определенную роль. При построении каждому члену группы назначается место в строю точно так же, как одному из юнитов назначается роль командира группы. Цель каждого юнита - сохранить свое место на относительном расстоянии до других членов группы.
Для примера возьмем рядовых в игре Overlord. Они передвигаются треугольным строем. На рисунке ниже по маршруту должен двигаться только командир группы (обозначенный буквой «С»). Юнит 1 следует за юнитом «С» с такой же скоростью сзади и немного левее. Юнит 2 следит и следует за юнитом 1, двигаясь немного в стороне. Юнит 3 делает то же самое, что и юнит 1, но следует за юнитом 1, а не за командиром. Все члены группы соблюдают этот порядок.


Порядок движения треугольным строем

Тактика групп

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


В игре Enemy Territory Quake Wars компаний Id Software* и Splash Damage, Ltd.* существует пять классов, которые выполняют разные роли в динамике группы

Кроме того, в группе может пригодиться еще один уровень анализа - анализ возможностей каждого члена группы. Командиру важно знать, в каких ситуациях группа может быть эффективна, когда группа получит преимущество, а когда группе следует отступить.
Например, в стратегии реального времени Starcraft* компании Blizzard существуют наземные войска и летающие войска. При этом не все виды наземных войск могут стрелять по летающим войскам. Группе важно знать о наличии такой возможности. Если в группе нет ни одного юнита, способного вести огонь по летающим юнитам, то при обнаружении летающего юнита лучше всего пуститься в бегство. Но если в группе есть юниты, способные поражать летающего противника, даже если таких юнитов и немного, лучше не отступать, а остановиться и обороняться (если в этой группе есть вспомогательные юниты, способные лечить тех, которые ведут огонь по воздушным целям).

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

Стратегический ИИ

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

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

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

Карты ресурсов

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

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

Карты целей

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


Пример карты конфликта при наложении на карту местности. Чем больше красного цвета, тем больше конфликтов

Создание и применение карт

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

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

Наибольшая эффективность ИИ: обработка потоков

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


В игре Starcraft* II компании Blizzard Entertainment одновременно работает ИИ огромного количества юнитов. Лучше всего использовать для этого многопоточную архитектуру

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

Распараллеливание задач

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


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

Характерный пример - звуковая система игрового движка. Звуку не нужно взаимодействовать с другими системами: эта система занимается только одним - воспроизводит звуки и их сочетания по запросу. Функции обмена данными представляют собой вызовы для воспроизведения звуков и остановки воспроизведения. Благодаря этому звуковая система является автономной и идеально подходит для функционального распараллеливания.

В зависимости от потребностей игры может быть множество разных задач, каждой из которых можно предоставить отдельный поток. Здесь мы рассматриваем три такие задачи: поиск путей, стратегический ИИ и собственно система объектов.

Поиск путей

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

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

Стратегический ИИ

Как было упомянуто ранее, хорошо, если система ИИ, управляющая всем ходом игры в целом, будет работать в собственном отдельном потоке. Эта система сможет анализировать игровое поле и отдавать команды различным объектам, которые смогут получать и распознавать эти команды.
Система объектов в собственном потоке будет занята работой по сбору информации для карт решений. Полученная информация будет отправлена в систему стратегического ИИ в виде запросов на обновление карт решений. При обновлении стратегический ИИ будет анализировать эти запросы, обновлять карты решений и принимать решения. При этом не имеет значения, работают ли эти две системы (стратегический ИИ и объекты) синхронно: любая рассинхронизация будет незначительной и не повлияет на решения ИИ. (Речь идет о рассинхронизации в пределах 1/60 секунды, то есть, с точки зрения игрока, реакция ИИ не замедлится ни на один кадр.)

Распараллеливание данных

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


Распараллеливание данных

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

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

Реализация

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

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

  • RequestPath(start, goal) .Эта функция вызывается снаружи системы поиска путей для получения потока. Эта функция выполняет следующие задачи:
    • просматривает список выполненных запросов и определяет, был ли уже найден такой путь (или близкий путь), затем возвращает квитанцию на этот путь;
    • просматривает список активных запросов (если путь не был найден) для поиска этого пути; если путь в нем есть, функция возвращает квитанцию на рассчитываемый путь;
    • создает новый запрос и возвращает новую квитанцию (если поиск по обоим указанным выше спискам не дал результата).
  • CheckPath(«ticket») . Используя квитанцию, эта функция просматривает список выполненных запросов и находит путь, для которого действует данная квитанция. Функция возвращает данные о том, был ли найден такой путь.
  • UpdatePathFinder() .Это управляющая функция, обрабатывающая издержки для потоков поиска путей. Эта функция выполняет следующие задачи.
    • Анализ новых запросов. Возможно одновременное создание разными ядрами нескольких запросов на один и тот же путь. Эта секция удаляет дублирующиеся запросы и назначает несколько квитанций (из разных запросов) одному и тому же запросу.
    • Циклический просмотр активных запросов. Эта функция просматривает все активные запросы и распределяет их по потокам. В начале и в конце каждого цикла код помечается как поток. Каждый поток:
      1. находит запрошенный путь;
      2. сохраняет его в списке готовых путей вместе с назначенными этому пути квитанциями;
      3. удаляет задание из списка активных заданий.

Устранение конфликтов

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

Чтобы избежать конфликтов, можно пометить некоторые части кода как особо важные. При выполнении особо важного кода только один поток сможет получить доступ к этой секции кода в один момент времени. Всем остальным потокам, которые собираются сделать то же самое (получить доступ к той же области памяти), придется подождать. Такое поведение может привести к СЕРЬЕЗНЕЙШИМ проблемам, таким как взаимная блокировка, возникающая, когда несколько потоков блокируют друг друга, препятствуя в получении доступа к памяти. Это решение позволяет избежать взаимной блокировки. Когда фактическая работа потока будет завершена, можно предоставлять доступ к важной области памяти сразу же по доступности без блокирования других секций, которые могут быть необходимы другим потокам.

Синхронизация

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

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

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

Заключение

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

Сегодня самые успешные компании, от Bosch до Starbucks, пользуются разработками на базе Artificial intelligence (AI) для сокращения расходов, повышения прибыли и улучшения производительности.

С точки зрения бизнеса искусственный интеллект – широкое понятие. Сюда входят и машинное обучение, и компьютерное зрение, и прогнозирование, и много чего еще. Благодаря способности обрабатывать данные быстрее и успешнее человеческого мозга AI востребован в разных бизнес-сферах.

Самый очевидный путь применения AI – виртуальные помощники. Siri и Ok Google – не единственные примеры. Набирающие популярность чат-боты – тоже продукт искусственного интеллекта, созданный для помощи клиентам компаний.

Например, в 2017 году The Royal Bank of Scotland запустил Luvo, который с помощью распознавания речи общается с клиентами банка через цифровые устройства и выполняет стандартные операции вроде денежных переводов. Виртуальные помощники – это один из AI инструментов, который пришел, чтобы остаться.

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

AI-системы контроля и мониторинга хорошо подходят и для городской среды. Наиболее простой пример: распознавание автомобильных номеров применяется муниципальными организациями.

Системы мониторинга на базе искусственного интеллекта помогут снизить риски износа и повреждения оборудования и создать подушку безопасности для компании.

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

Так, японская страховая компания Fukoku Mutual Life Insurance установила программу от IBM – Watson Explorer AI. Cистема анализирует данные медполисов, чтобы вычислить размеры выплат. По расчетам Fukoku, внедрение АI позволит увеличить производительность на 30%.

Другой пример: Expedia, крупнейшая в мире онлайн-платформа по планированию путешествий – от бронирования отелей до аренды транспорта – эффективно использует машинное обучение, чтобы составлять индивидуальные рекомендации пользователям портала.

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

«80% всех данных в мире не структурированы», – громко заявляет IBM. В это сложно поверить. Но факт остается фактом – с широким распространением мобильных устройств мы ежедневно генерируем массу цифрового неструктурированного контента: сообщения в мессенджерах, письма, фото и видео. Алгоритмы AI помогают структурировать данные так, чтобы впоследствии их проанализировать. Подобный принцип заложен в основе Siri – неструктурированная разговорная речь, проходя через алгоритм программы, становится структурированной и подвергается дальнейшей обработке.

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

«Через 5–10 лет искусственный интеллект и, в частности, глубинное обучение, позволят роботам выполнять наиболее утомительные и трудоемкие задачи, которые мы делаем ежедневно», – уверен Мэтт Мерфи, директор компании Chime. Ее профиль – умные CRM- системы для агентств недвижимости.

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

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

Искусственный интеллект в будущем

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

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

Есть предположение, что появятся роботы-руководители и даже роботы-CEO – для этого есть все основания, поскольку роботы более объективны и менее чувствительны по сравнению с людьми.

ИИ приведет к значительным сокращениям рабочих мест в ближайшем будущем. Сегодня уже сократили 4000 из 9000 рабочих мест, подлежащих сокращению в соответствии с 5-летним планом, озвученным в конце 2015 года. По словам CEO банка, новые технологии позволят Deutsche сократить в тысячу раз больше рабочих мест, он также полагает, что в целом все компании смогут заменить сотрудников на роботов.

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

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

Где машина заменит человека

1. Пассажиро и грузоперевозки

Развитие ИИ неизбежно повлияет на таксистов, да и вообще на всех перевозчиков. В США прогнозируют, что через 15 лет весь транспорт станет автоматизированным. Самоходные транспортные средства заменят водителей такси и общественного транспорта, операторов экскаватора, дальнобойщиков, шоферов.

Теsla и Google уже год тестируют беспилотные автомобили в США. В Питтсбурге (штат Пенсильвания), а также в Сингапуре беспилотные авто уже начали использовать в качестве такси. А РФ и Финляндия даже ведут переговоры о создании инфраструктуры для беспилотного сообщения между странами.

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

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

Единственное, что пока тормозит повсеместное распространение машин на автопилоте – плохое состояние дорог. Но и это препятствие временное. Не исключено, что вскоре и дороги для машин будут не нужны – они будут летать по воздуху. Компания Terrafugia работает над таким летающим автомобилем с 2013 года, сейчас он проходит тестирование. Полетом в нем также будет управлять компьютерная система – пользователю достаточно лишь указать пункт назначения.

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

2. Производство

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

3. Охранные услуги

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

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

4. Торговля

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

В основе лежит технология Just Walk Out. Она автоматически засекает, когда продукты снимаются с полок и возвращаются на место, и формирует виртуальную корзину. На ее основании сразу после того, как покупатель покинул магазин, ему приходит счет.

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

5. Консультационный бизнес

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

6. Бухгалтерия

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

7. Финансовые услуги

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

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

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

8. Услуги переводчиков

На самом деле, вымиранию этой профессии невольно способствует каждый из нас: каждый раз, когда вы вводите текст в онлайн-переводчик, вы его обучаете. Если вы указываете, что слово в предложении переведено неправильно, компьютер это запоминает. С каждым таким исправлением он учится, а машинный перевод становится все более совершенным. Google начал применять нейросети для перевода в конце 2016 года – количество ошибок в переводах текстов сократилось на 60%.

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

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

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

9. Колл-центры

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

10. Программирование и веб-дизайн

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

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

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

Уже сейчас программисты пишут код не так, как делали программисты еще двадцать лет назад, когда наизусть нужно было помнить все команды. Сейчас программа уже сама предлагает программисту коды, и он выбирает нужные. Это будет и дальше автоматизироваться. Может дойти до того, что человек будет говорить: «Siri, а напиши-ка мне такую-то программу». И Siri напишет.

11. Услуги экскурсоводов

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

Нейронная сеть может дать гораздо больше информации и подстроиться под интересы слушателей. Таргетированный контент сейчас выходит на первое место – по этому алгоритму работает Facebook, показывая то, что интересно, Google и т.д. Система понимает, чем интересуется человек, и преподносит это именно в том ключе, в котором это будет интересно видеть. Живые экскурсоводы останутся, но они станут скорее экзотикой.

12. Армия

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

Здесь нельзя не вспомнить автономную гусеничную машину MAARS (Modular Advanced Armed Robotic System) – это робот. В его арсенале – пулемет, а также слезоточивые, осколочные, фугасные и дымовые гранаты. При этом MAARS способен не только убивать, но и спасать – обезвреживать мины и вытаскивать раненых людей с поля боя.

13. Строительство

Строительство уже частично автоматизировано. Дом уже необязательно строить – его можно напечатать на специальном строительном 3D-принтере. Человек выбирает понравившийся дизайн дома, нажимает одну кнопку и гигантский 3D-принтер печатает необходимые блоки из бетона или другого материала.

Компания WinSun в Китае разрабатывает такие дома с 2014 года. А шанхайский 3D-принтер для печати домов может создать десять зданий из строительных и промышленных отходов. Стоимость производства одного такого дома – не выше $5 тыс. долларов.

14. Производство еды

За массовое производство еды для человека тоже вскоре могут взяться 3D-принтеры. По большому счету в них можно загрузить любые материалы, и почему бы не сделать это и со съедобными продуктами. Компания Natural Machines уже представила подобную разработку. 3D-принтер Foodini позволяет загружать в него до пяти различных ингредиентов – можно задать необходимую программу, и блюдо будет быстро «напечатано».

15. Турагенства

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

16. Космонавтика

Место робототехнике найдется и в космосе. Роботы уже выполняют черную работу на станции. А робот Robonaut2 (R2) от NASA и General Motors уже бороздит просторы земной орбиты. R2 способен работать как внутри МКС, так и в открытом космосе. И ему не нужен для этого громоздкий скафандр. Впоследствии планируется, что R2 высадится на Луну – это безопасно и недорого.

17. Услуги курьеров и почта

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

18. Медицина

Медицина наряду с обороной – лидеры по инвестициям в разработку ИИ.

Так, в Нью-Йоркском Онкологическом центре Memorial Sloan-Kettering внедрили систему автоматической медицинской диагностики с помощью суперкомпьютера Watson. Он определяет диагноз более точно, чем врачи, и подбирает для каждого индивидуального случая оптимальный способ лечения. Точность диагнозов Watson объясняется тем, что он изучил 600 000 медицинских исследований (около 2 млн страниц текста).

Менее сложные заболевания вскоре можно будет диагностировать с помощью мобильного телефона. Лондонский стартап Your.MD совершенствует приложение для устройств iOS и Android, способное выслушивать жалобы человека в текстовом или голосовом режиме и определять его болезнь.

Хирурги-роботы уже проводят операции, на микроуровне сшивают ткани. Вместо накладывания швов врачи сейчас используют роботизированные степлеры. Существуют и роботы-анестезиологи, с 2013 года эти системы разрешены в США. Их использование вместо услуг профессионального анестезиолога на американском рынке позволяет сэкономить от $450 до $1850 в пересчете на одного пациента.

19. Фармацевтика

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

20. Услуги няни

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

21. Образование

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

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

22. Спорт

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

23. Журналистика

Los Angeles Times, Associated Press, Forbes и прочие широко известные СМИ уже сегодня активно используют роботов – они создают оперативные финансовые сводки, результаты спортивных матчей и дают информацию о погоде. Роботы намного быстрее журналистов соберут информацию, выяснят кто, что, когда, где, как и почему, даже опросят экспертов и оформят итоговый информационный материал. Специалисты Narrative Science прогнозируют, что через 15 лет 90% новостных репортажей будут генерироваться автоматически.

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

24. Религия

Частично ИИ уже внедряются в церковь. За примерами далеко ходить не надо: в прошлом году во Львове создали сервис для заказа молитв через Интернет. К тому же уже несколько лет для того, чтобы положить записку в Стену Плача, совсем необязательно ехать в Иерусалим – достаточно лишь оставить свое сообщение в интернет-представительстве святыни.

25. Банки

С начала 2017 года Bank of America открыл в США три полностью автоматизированных отделения. Их площадь в 4 раза меньше обычного, а еще там нет сотрудников. Клиенты пользуются банкоматами и консультируются по видеосвязи с работниками из других отделений. В основном новые офисы банка занимаются ипотекой, оформлением кредитных карт и автокредитов.

Экспериментирует в этом направлении и другой американский банк - Goldman Sachs. Если раньше в головном офисе покупали и продавали акции 600 трейдеров, то сегодня их осталось только двое. Всю работу выполняют программы при поддержке 200 компьютерных инженеров. Платформа по объединению балансов кредитных карт также полностью управляется программным обеспечением.

26. Ресторанный бизнес

В Сан-Франциско и Гонконге открылись мини-кофейни Cafe X, в которых готовят напитки и обслуживают посетителей роботы. Заказ можно сделать в заведении или за его пределами с помощью мобильного приложения. Робот может приготовить 120 порций кофе в час. Тем не менее чистят и заправляют кофейные машины и занимаются обслуживанием компьютерного и программного обеспечения в Cafe X люди.

27. Юриспруденция

Стартап DoNotPay заменил ботами адвокатов: проект помогает пользователям обжаловать уведомления о нарушении правил дорожного движения.

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

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

«Планы у нас достаточно большие, мы таких роботов производим по целому ряду направлений», – рассказал зампред правления Сбербанка Вадим Кулик. В прошлом году глава кредитной организации Герман Греф заявил, что через 5 лет работу в компании потеряют десятки тысяч работающих ныне людей, так как 80% решений будет автоматически принимать искусственный интеллект.

28. Наука

Что же, и такая наука нужна, но в данном случае ученым, «высиживающим» свои трактаты, вполне возможно, в скором времени грозит безработица. Современная техническая база позволяет выполнять эксперименты, систематизировать и обрабатывать результаты, планировать дальнейшие опыты и делать маленькие открытия без участия людей. «Первой ласточкой» стал робот Адам, созданный в Кембридже. Эта машина заменила нескольких лаборантов, она начала трудиться в 2009 году. Уже есть и Ева, изобретающая новые лекарства от малярии в Манчестерском университете. Естественно, она – тоже робот.

29. Шоу-бизнес

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

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

30. Авиация

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

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

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

31. Клининг

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

Перспективы

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

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

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

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

Впрочем, сегодня роботы уже научились создавать произведения искусства. Андрей Карпаты из Стэндфордского университета создал программу, в которую можно загрузить определенные тексты, скажем сонеты Шекспира, и она сама начнет генерировать тексты в той же стилистике. По тому же принципу нейронные сети уже могут рисовать картины в стиле Ван Гога и Пикассо, генерировать музыку а-ля Бах. Есть даже музыкальный альбом «Нейронная оборона», тексты к которому написал робот.

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

Успокаивает тот факт, что робот может повторить, просчитать, скопировать – но не может создать ничего кардинально нового. Пока что компьютерное творчество – это всего лишь подражание.

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

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

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

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

В конце минувшего года ООН опубликовала доклад, согласно которому в ближайшие годы из-за развития технологий более 65% рабочей силы развитых стран лишатся работы. Людей просто заменят роботы и автоматизированные системы управления. Аналитики Bank of America считают, что из-за автоматизации и роботизации в ближайшие 10–15 лет администраторы, чиновники, пекари, мясники, рыбаки и налоговые инспекторы окажутся ненужными. Также машины во многом заменят HR-менеджеров.

В исследовании The Future of Jobs, недавно опубликованном Всемирным экономическим форумом (ВЭФ), уточняется, что рабочие места исчезнут преимущественно в сфере административной работы и реальном секторе, а прибавятся (но значительно меньше) – в интеллектуальных и высокотехнологичных сферах.

В связи с этим в мире всерьез заговорили о необходимости введения безусловного базового дохода, который обеспечил бы население, оставшееся без работы. А основатель Microsoft Билл Гейтс даже предложил брать с роботов, выполняющих человеческую работу, подоходные налоги. «Если, к примеру, человек работает на фабрике и получает $50 тысяч, из его зарплаты делаются отчисления. Если робот делает то же самое, целесообразно с него брать аналогичный налог», – отметил Гейтс.

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

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

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

Интеллект нужно стимулировать

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

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

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

Искусственный интеллект имеет большой потенциал в сфере экономики и бизнеса. ИИ не только избавит пользователей от выполнения рутинный операций или опасных задач, но и позволит намного быстрее анализировать большие объемы данных, принимать решения на основе полученных прогнозов. Более того, роботы найдут широкое применение в автоматизации производства, и это откроет много новых возможностей. Например, такие страны, как Германия, станут более привлекательными для создания производства, ИИ сделает его конкурентоспособным. Экономических причин для аутсорсинга производства в страны с более низкой заработной платой больше не будет. Благодаря более интеллектуальным продуктам, процессам и машинам (Интернет вещей , IoT) появятся новые бизнес-направления.

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

Информация - это ключ

Человеческие когнитивные способности ограничены. Мы не используем даже 80% всей информации, которую получаем. При этом день ото дня этой информации становится все больше. Эпоха Индустрии 4.0 и Интернета вещей увеличит объем мировых данных в 10 раз к 2020 году.

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

Уже 20 лет назад большая часть информации, порядка 80%, в бизнес-контексте была не структурирована. Ситуация до сих пор не изменилась: электронные письма, документы, контент в социальных сетях, веб-сайты, машинные данные, изображения, видео и т.д.

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

Управление информацией является технологически сложной задачей для компаний. Помимо ECM- и ERP-cистем, используются множество других бизнес-приложений, а их содержимое хранится в отдельных базах данных и структурах. Это все влияет на производительность сотрудников предприятий. Кроме того, подобная ситуация осложняет внедрение искусственного интеллекта. ИИ нуждается в данных из разных источников, чтобы учиться и составлять прогнозы, поэтому интеграция информационных систем компании важна стратегически, как никогда ранее.

Контакт с новой технологией

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

Больше никаких пользовательских интерфейсов

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

Скорее всего, первые компании, которые станут работать с ECM-системами на основе ИИ, будут из сферы финансовых услуг, где функции административного персонала заключаются главным образом в обработке информации. Бухгалтерия также имеет дело с огромными объемами данных, при этом их сложность постоянно возрастает из-за новых правовых норм и более строгих требований. Автоматическая обработка входящих счетов уже сегодня заключается в полностью автоматизированном процессе или даже в автоматическом создании проводок при выставлении счетов-фактур.

Искусственный интеллект должен нести пользу и выгоду

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

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

Перевод - Екатерина Михеева, DIRECTUM

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

1. Инвестиции в исследования и инновации

Практические результаты инвестиций в ИИ все еще остаются неясными. Тем не менее, компании понимают, что он может дать очень ценные преимущества, и наращивают усилия в этом направлении. Согласно исследованию McKinsey Global Institute, такие технологические лидеры, как Google и Baidu в 2016 году инвестировали $20-30 млн в проекты, связанные с искусственным интеллектом , причем около 90% этой суммы приходится именно на НИОКР.

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

Почти 80% компаний, согласно опросу Capgemini , благодаря искусственному интеллекту улучшили методы анализа. В частности, юристы JP Morgan смогли сократить время, которое тратится на изучение сделок и тысяч страниц документов, и при этом уменьшилось количество ошибок.

Цель исследований – найти перспективные варианты использования, а затем адаптировать искусственный интеллект к задачам компании. Внедрение искусственного интеллекта ради него самого не должно становиться нормой.

2. Последствия автоматизации труда

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

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

Во многих областях искусственный интеллект не заменит человека . Компании будут создавать комбинированные системы, использующие преимущества обеих вариантов. Например, KLM внедрила искусственный интеллект в качестве модели обслуживания первого уровня. Это сокращает время ожидания клиентов, чей запрос не требует проработки. Благодаря этому у операторов появляется время для решения более сложных задач. Так же поступили в China Merchants Bank .

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

3. Обучение команды

Об инновациях всегда известно слишком мало в момент их появления. Первые пользователи и даже сами создатели тратят массу ресурсов на их освоение, а доход получает тот, кто, отставая на несколько шагов, пользуется уже отлаженной технологией. Совместное исследование BCG и MIT показало, что лидеры большинства отраслей считают, что технологии ИИ будут иметь решающее значение в следующие пять лет. Компании уже начинают осознавать потенциал платформ на базе искусственного интеллекта, 83% опрошенных рассматривает их как стратегическую возможность для роста.

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

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

4. Создание новых рабочих мест для управления ИИ

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

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

5. Сохранение человеческого лица HR-службы

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

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

Перевод с английского.

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

Microsoft представила результаты глобального исследования «Интеллектуальная экономика: трансформация индустрий и общества под влиянием искусственного интеллекта» (Intelligent Economies: AI’s Transformation of Industries and Society)[i], целью которого было выявить отношение бизнеса к технологии ИИ.

Согласно результатам опроса, несмотря на существующие предубеждения, 94% руководителей считают, что эти технологии важны для решения стратегических задач их организаций, причем 37% характеризуют их как «очень важные». Топ-менеджеры уверены, что ИИ в ближайшие годы улучшит многие сферы их бизнеса. В частности, он поможет при внедрении инноваций (89%), привлечении и удержании талантливых сотрудников (85%), а также в развитии продуктов (84%). Причем 27% опрошенных организаций уже внедрили эти технологии в ключевые бизнес-процессы и сервисы, а еще 46% готовят пилотные проекты с их использованием. Также 59% руководителей уверены, что благодаря ИИ вырастет зарплата сотрудников, а 56% связывают с ним повышение уровня занятости в своей стране или отрасли.

Компании наиболее часто используют ИИ для предиктивной аналитики, управления операциями в режиме реального времени, обслуживания клиентов и риск-менеджмента. Наиболее популярная сфера применения при этом различается в зависимости от индустрии: респонденты из розничной торговли чаще указывают обслуживание клиентов (31% по сравнению c 21% в среднем по всем индустриям), а финансовый сектор - выявление мошеннических действий (25% к 16%).

Респонденты уверены в позитивном влиянии ИИ не только на развитие их бизнеса, но и на экономику в целом в течение ближайших 5 лет. Так, по их мнению, он будет способствовать экономическому развитию (90%), повышению продуктивности (86%) и инновационности (84%), а также созданию рабочих мест (69%) в их стране и индустрии.

В оценке успешности внедрений наиболее частым критерием для руководителей является качество работы решения (36%). Затем следуют окупаемость инвестиций (ROI, 32%) и удовлетворенность клиентов (31%). 14% компаний признают, что у них пока нет установленных показателей, позволяющих оценить успех развернутого решения.

Основными сдерживающими факторами при внедрении подобных технологий являются финансовые риски (42%), сложности в развертывании, если организация не имеет необходимых ресурсов (36%), а также трудности, связанные с обучением сотрудников (35%). Тем не менее, компании предпринимают конкретные шаги для разрешения данных проблем: 76% заявили, что подготовлены к рискам, связанным с ИИ, а 71% - что уже разработали политики и правила по его внедрению и контролю.

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

[i] В исследовании приняли участие более 400 руководителей высшего звена из 8 стран: Франции, Германии, Мексики, Польши, Южной Африки, Таиланда, Великобритании и США. Сферы деятельности их компаний включали финансовое обслуживание, здравоохранение и медико-биологическую отрасль, производство, розничную торговлю и государственный сектор.