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

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

Обзор подходов к разработке системы ИИ

Тема искусственного интеллекта ( artificIal intelligence , AI, ИИ) будоражит умы многих начинающих программистов, разработчиков и любителей компьютерных игр. ИИ кажется многим чем-то удивительно сложным, интересным, таинственным. Действительно, ведь технологии ИИ заставляют персонажей игр действовать разумно. Однако в ИИ нет ничего таинственного. За десятилетия развития этой области знаний было разработано огромное количество алгоритмов, применимых в самых разных областях деятельности. И компьютерные игры – лишь сравнительно небольшое поле для технологий искусственного интеллекта.

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

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

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

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

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

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

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

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

На практике находят применение как детерминированные, так и недетерминированные виды ИИ. Обычно они действуют совместно. Например, для выполнения каких-то простых однозначных действий (скажем, при приближении к стене свернуть) могут применяться простые и быстрые детерминированные алгоритмы. В более сложных случаях (например – купить ли акции компании Х учитывая огромное количество параметров, напасть ли на врага, учитывая его возможности, свои возможности, наличие подкрепления и т.д.) – применяются более сложные недетерминированные алгоритмы. Частично детерминированные (например, при приближении к стене персонаж с вероятностью 50% повернет налево, с вероятностью 30% - направо, и с 20% вероятностью развернется и пойдет обратно) так же находят широкое применение в играх.

Реализация алгоритма преследования

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

Создадим новый игровой проект P8_1 на основе проекта P5_1. Будем использовать два объекта – преследователя и жертву. Преследователь будет перемещаться в сторону жертвы со скоростью, на 1 меньше, чем скорость жертвы. Если объекты столкнутся – жертва будет уничтожена.

На рис. 12.1. приведено окно Solution Explorer игрового проекта P8_1.


Рис. 12.1.

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

Using System; using System.Collections.Generic; using Microsoft.Xna.Framework; using Microsoft.Xna.Framework.Audio; using Microsoft.Xna.Framework.Content; using Microsoft.Xna.Framework.GamerServices; using Microsoft.Xna.Framework.Graphics; using Microsoft.Xna.Framework.Input; using Microsoft.Xna.Framework.Net; using Microsoft.Xna.Framework.Storage; namespace P8_1 { ///

/// This is the main type for your game /// public class Game1: Microsoft.Xna.Framework.Game { GraphicsDeviceManager graphics; SpriteBatch spriteBatch; Texture2D txtBackground; Texture2D txtEnemy; Texture2D txtMe; Texture2D txtWall; //Массив для конструирования уровня public int[,] Layer; Rectangle recBackround = new Rectangle(0, 0, 640, 512); Rectangle recSprite = new Rectangle(0, 0, 64, 64); public Game1() { graphics = new GraphicsDeviceManager(this); Content.RootDirectory = "Content"; } protected override void Initialize() { // TODO: Add your initialization logic here Layer = new int { { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 1, 6, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 5, 0 }, { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, }; //Устанавливаем разрешение игрового окна //640х512 graphics.PreferredBackBufferWidth = 640; graphics.PreferredBackBufferHeight = 512; graphics.ApplyChanges(); base.Initialize(); } protected override void LoadContent() { // Create a new SpriteBatch, which can be used to draw textures. spriteBatch = new SpriteBatch(GraphicsDevice); Services.AddService(typeof(SpriteBatch), spriteBatch); txtBackground = Content.Load("background"); txtEnemy = Content.Load("enemy"); txtMe = Content.Load("me"); txtWall = Content.Load("wall"); //Вызываем процедуру расстановки объектов в игровом окне AddSprites(); // TODO: use this.Content to load your game content here } //Процедура расстановки объектов в игровом окне void AddSprites() { //Переменные для временного хранения адреса //объекта-игрока int a = 0, b = 0; //Просматриваем массив Layer for (int i = 0; i < 8; i++) { for (int j = 0; j < 10; j++) { //Если элемент с индексом (i,j) равен 1 - //устанавливаем в соответствующую позицию элемент с //номером 1, то есть - стену if (Layer == 1) Components.Add(new GameObj.Wall(this, ref txtWall, new Vector2(j, i), recSprite)); if (Layer == 5) Components.Add(new GameObj.Enemy(this, ref txtEnemy, new Vector2(j, i), new Rectangle(0, 0, 32, 32))); //Если обнаружен объект игрока - запишем его координаты if (Layer == 6) { a = i; b = j; } } } //Последним установим объект игрока - так он гарантированно //расположен поверх всех остальных объектов Components.Add(new GameObj.Me(this, ref txtMe, new Vector2(b, a), new Rectangle(0, 0, 32, 32))); } protected override void UnloadContent() { } protected override void Update(GameTime gameTime) { base.Update(gameTime); } protected override void Draw(GameTime gameTime) { spriteBatch.Begin(); //выведем фоновое изображение spriteBatch.Draw(txtBackground, recBackround, Color.White); //Выведем игровые объекты base.Draw(gameTime); spriteBatch.End(); } } } Листинг 12.1. Код класса Game1

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

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

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

Теперь о некоторых типичных направлениях ИИ.

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

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

Набор команд

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

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

Я задался вопросом: какое минимальное количество команд необходимо для реализации любого алгоритма? Как оказалось - одна!

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

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

Позаимствовав идеи Олега, для упрощения работы, я разработал команду SumIfJump. Команда содержит четыре операнда: A, B, C, D и выполняет следующее: к ячейке по адресу B прибавляет данные из ячейки по адресу A, если значение получилось больше заданного*, то переходит по адресу C, иначе переходит по адресу D.

Примечание

*В данном случае использовалось 128 - половина от длинны генома.


Когда операнд A обращается к ячейке памяти N0, происходит ввод данных, а когда к ячейке N1, то вывод.

Ниже представлен код SumIfJump на FreePascal (бесплатный аналог Delphi).

Procedure RunProg(s: TData); var a, b, c, d: TData; begin Inc(NStep); if NStep > MaxStep then begin ProgResult:= "MaxStep"; Exit; end; a:= s; b:= s + 1; c:= s + 2; d:= s + 3; a:= Prog[a]; b:= Prog[b]; c:= Prog[c]; d:= Prog[d]; if a = 0 then begin ProgResult:= "Input"; Exit; end; if a = 1 then begin ProgResult:= "Output"; Exit; end; Prog[b] := Prog[b] + Prog[a]; if Prog[b] < ProgLength div 2 then RunProg(c) else RunProg(d); end;
SumIfJump реализует самомодифицируемый код. Может выполнять любые алгоритмы, доступные на обычном языке программирования. Код легко изменяется и выдерживает любые манипуляции.

Простая задача

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

Бот выдает случайное число, а ИИ должен считать данные и дать ответ. Если число больше среднего (от диапазона случайных чисел), ИИ должен выдать число меньше среднего и наоборот.

Геном нашего ИИ состоит из 256 ячеек со значениями от 0 до 255. Каждое значение - это и память, и код, и адрес. Количество шагов выполнения кода ограничено 256. Операнды читаются друг за другом.

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

Популяция и отбор

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

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

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

Эволюция


Между значимыми событиями проходили тысячи смен поколений. Программа была запущена в несколько потоков на Core i7. Вычисления заняли около 15 минут.

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

Заключение

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

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

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

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

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

Как сказал, проводя аналогичный эксперимент, блогер

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

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

Аналогичные исследования, проведенные в Лаборатории эволюционного искусственного интеллекта в Университете Вайоминга и Корнеллского университета, произвели довольно много оптических иллюзий для искусственного интеллекта. Эти психоделические образы абстрактных узоров и цветов ни на что не похожи для людей, но быстро распознаются компьютером в виде змей или винтовок. Это говорит о том, как ИИ может смотреть на что-то и не видеть объект, либо видеть вместо него что-то другое.

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

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

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

До чего могут дойти мошенники в один прекрасный день? Самоуправляемый автомобиль, обманутый наклейкой на знак «стоп», является классическим сценарием, который был придуман экспертами в этой области. Дополнительные данные могут помочь порнографии проскочить через безопасные фильтры. Другие могут попытаться увеличить количество чеков. Хакеры могут подправить код вредоносного программного обеспечения, чтобы ускользнуть от органов правопорядка.

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

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

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

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

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

Что же со всем этим делать? «Единственный способ полностью избежать этого - создать идеальную модель, которая будет всегда правильной», говорит Лоуд. Даже если мы смогли бы создать искусственный интеллект, который превзошел бы людей во всех отношениях, мир все еще может подсунуть свинью в неожиданном месте.

Алгоритмы машинного обучения обычно оценивают по их точности. Программа, которая распознает стулья в 99% случаев, будет явно лучше, чем та, которая распознает 6 стульев из 10. Но некоторые эксперты предлагают другой способ оценки возможности алгоритма справиться с атакой: чем жестче, тем лучше.

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

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

Искусственный интеллект – технология, которую мы точно заберём с собой в будущее.

Рассказываем, как он работает и какие крутые варианты применения нашел.

😎 Рубрика «Технологии» выходит каждую неделю при поддержке re:Store .

Что представляет собой искусственный интеллект

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

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

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

Если программа просто достаёт значения из базы по определённым правилам, она не наделена ИИ. Если же система после обучения создаёт программы, методы и документы, решая определённые задачи, она обладает ИИ.

Как создать систему искусственного интеллекта

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

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

Основа искусственного интеллекта – обучение, воображение, восприятие и память

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

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

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

В дедуктивном подходе (привет, Шерлок Холмс!) используется опыт экспертов. Он переносится в систему как база знаний. Здесь есть не только наборы данных, но и готовые правила, которые помогают найти решение по условию.

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

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

Почему искусственный интеллект побеждает человека

Прежде всего, потому, что у него ниже вероятность ошибки.

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

Крутые варианты применения искусственного интеллекта

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

Ответ на любой вопрос

Группа исследователей под руководством Дэвида Феруччи разработала суперкомпьютер Watson с вопросно-ответной системой. Система, названная в честь первого президента IBM Томаса Уотсона, может понимать вопросы на естественном языке и искать ответы на них в базе данных.

Watson объединяет 90 серверов IBM p750, в каждом из которых установлено по четыре восьмиядерных процессора архитектуры POWER7. Общий объём оперативной памяти системы превышает 15 ТБ.

В числе достижений Watson – победа в игре «Jeopardy!» (американская «Своя игра»). Он победил двух лучших игроков: обладателя самого большого выигрыша Брэда Раттера и рекордсмена по длине беспроигрышной серии Кена Дженнингса.

Приз Watson – 1 млн долларов. Правда, только в 2014 году в него инвестировали 1 млрд

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

Распознавание лиц

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

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

Даже если вы отрастите бороду или наденете очки, iPhone X вас узнает. Он попросту не учитывает волосяной покров и аксессуары, а анализирует область от виска до виска и от каждого виска до углубления под нижней губой.

Экономия энергии

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

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

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

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

Творчество, ранее доступное лишь человеку, открыто и для ИИ. Так, система, созданная исследователями из Университета Рутгерса в Нью-Джерси и лаборатория AI в Лос-Анджелесе, представила собственный художественный стиль.

А система искусственного интеллекта от Microsoft может рисовать картины по их текстовому описанию. К примеру, если вы попросите ИИ нарисовать «желтую птицу с черными крыльями и коротким клювом», получится что-то вроде этого:

Такие птицы могут и не существовать в реальном мире - просто так их представляет наш компьютер.

Более массовый пример – приложение Prisma, которая создаёт картины из фотографий:

Написание музыки


В августе искусственный интеллект Amper сочинил , спродюсировал и исполнил музыку для альбома «I AM AI» (англ. я - искусственный интеллект) совместно с певицей Тэрин Саузерн.

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

ИИ может написать музыку за несколько секунд

Amper самостоятельно создала аккордовые структуры и инструментал в треке «Break Free». Люди лишь незначительно поправили стиль и общую ритмику.

Ещё один пример – музыкальный альбом в духе «Гражданской обороны», тексты для которого писал ИИ. Эксперимент провели сотрудники «Яндекса» Иван Ямщиков и Алексей Тихонов. Альбом 404 группы «Нейронная оборона» выложили в сеть . Получилось в духе Летова:

Затем программисты пошли дальше и заставили ИИ писать стихи в духе Курта Кобейна. Для четырёх лучших текстов музыкант Роб Кэррол написал музыку, и треки объединили в альбом Neurona. На одну песню даже сняли клип – правда, уже без участия ИИ:

Создание текстов

Писателей и журналистов вскоре также может заменить ИИ. К примеру, системе Dewey «скормили» книги библиотеки проекта «Гутенберг», затем добавили научные тексты из Google Scholar, ранжировав их по популярности и титулованности, а также продажам на Amazon. Кроме того, задали критерии написания новой книги.

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

К чему приведёт имитация роботами с ИИ людей? Футуристы считают, что однажды они станут полноправными членами общества. К примеру, робот София гонконгской компании Hanson Robotics уже получила гражданство в Саудовской Аравии (при этом у обычных женщин в стране такого права нет!).

Когда колумнист «Нью-Йорк Таймс» Эндрю Росс спросил у Софии, обладают ли роботы разумом и самосознанием, та ответила вопросом на вопрос:

Позвольте спросить вас в ответ, откуда вы знаете, что вы человек?

Кроме того, София заявила:

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

А ранее она признавалась, что ненавидит человечество и даже соглашалась уничтожить людей…

Замена лиц в видео

Deepfakes-видео стало массово распространяться по сети. Алгоритмы искусственного интеллекта заменяли лица актёров в фильмах для взрослых на лица звёзд.

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

PornHub уже запретил размещать такие видео

Deepfakes оказались опасной штукой. Одно дело – абстрактная актриса, другое – видео с вами, вашей женой, сестрой, коллегой, которое вполне может использоваться для шантажа.

Биржевая торговля

Группа исследователей из университета Эрлангена-Нюрнберга в Германии разработала ряд алгоритмов, использующих архивные данные рынков для тиражирования инвестиций в режиме реального времени. Одна из моделей обеспечила 73% возврата инвестиций ежегодно с 1992 по 2015 год, что сопоставимо с реальной рыночной доходностью на уровне в 9% в год.

Когда рынок трясло в 2000 и 2008 годах, доходность была рекордной – 545% и 681% соответственно

В 2004 году Goldman Sachs запустил торговую платформу Kensho на базе искусственного интеллекта. На криптовалютных рынках также появляются системы на базе ИИ для торговли на биржах – Mirocana и т.д. Они лучше живых трейдеров, так как лишены эмоций и опираются на чёткий анализ и жесткие правила.

Заменит ли ИИ нас с вами