Домой / Игры / Как создать искусственный интеллект? Как создать эмоциональный искусственный интеллект

Как создать искусственный интеллект? Как создать эмоциональный искусственный интеллект

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

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

LISP

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

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

Java

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

  • прозрачность использования и написания кода;
  • способность легко переносить программы;
  • лёгкое сопровождение проектов.

Для новичков важным достоинством Java станет наличие многочисленных бесплатных уроков в сети. Обучение Java является максимально комфортным и удобным для большинства студентов и новичков.

Среди особенностей языка стоит выделить:

  • простота выполнения отладки;
  • качественное взаимодействие клиентской и серверной системы ресурса;
  • лёгкость обращения с масштабными проектами.

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

Prolog

Данный вариант относится к интерактивным языкам, которые работают по символической системе. Он популярен для использования в отношении проектов, требующих высокие логические способности. Язык имеет мощную и удобную основу, она активно используется в отношении программирования non-численного типа . На основании Prolog`а часто создаются доказательства теорем, проводится взаимодействие с понятным человеческим языком, используется для создания систем экспертной оценки.

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

Python

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

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

История развития ИИ

Началом традиционного представления ИИ стал проект UNIMATE , который увидел мир в 1961 году . В ходе представления был впервые получен робот, который начал выпускаться в промышленных масштабах. Робот был задействован на линии производства в концерне «General Motors ». Для создания были задействованы Валь и переменные из среды ассемблера. Язык пришёлся по душе благодаря наличию простейших фраз, отражению команд на мониторе и наличию инструкций, не нуждающихся в дополнительных разъяснениях.

Спустя 4 года (1965 год ) был запущен искусственный интеллект « Dendral ». Задача системы заключалась в выявлении молекулярной и атомной структуре соединений органического происхождения. Для написания был использован LISP .

«Weizenbaum » в 1966 году запустил проект Элиза, который впервые предполагал проведение беседы с роботом. Самой известной моделью являлся «Доктор», который позволял отвечать на поставленные запросы в форме психотерапевта. Для реализации проекта потребовалось сопоставление нескольких образцов технического достижения своего времени. Впервые Элиза увидел мир на SPLIP, но для отработки списка запущен «Weizenbaum». Немногим позже проект переработан на другую платформу - LISP .

Первым роботом мобильного типа стал «Шеки », в его основе также лежал ЛИСП. Логика конструктора была построена на решении поставленных задач и передвижения, для взаимодействия использовались подъёмы вверх и вниз, а также включение и выключение света. С помощью «Шеки » удавалось открывать, закрывать, передвигать и т.д. Робот даже был способен передвигаться со скоростью равной спокойной ходьбе человека - 5 км/ч.

За последние 15 лет было представлено многочисленное количество изобретений: «Деннинг » (сторожевой робот), «Predator » (беспилотник), «АЙБО » (собака), «АСИМО » от Honda и многие другие. Тенденция идёт к развитию данного направления, чего и стоит ожидать в ближайшем и дальнем бедующем.

Искусственный интеллект создал нейросеть December 15th, 2017

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


Инженеры из подразделения Google Brain весной текущего года продемонстрировали AutoML. Этот искусственный интеллект умеет без участия человека производить собственные уникальнейшие ИИ. Как выяснилось совсем недавно, AutoML смог впервые создать NASNet, систему компьютерного зрения. Данная технология серьёзно превосходит все созданные ранее людьми аналоги. Эта основанная на искусственном интеллекте система может стать отличной помощницей в развитии, скажем, автономных автомобилей. Применима она и в робототехнике - роботы смогут выйти на абсолютно новый уровень.

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

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

При этом AutoML оценивает работу NASNеt и использует эту информацию для улучшения дочерней сети; этот процесс повторяется тысячи раз. Когда инженеры протестировали NASNet на наборах изображений ImageNet и COCO, она превзошла все существующие системы компьютерного зрения.

В Google официально заявили, что NASNet распознаёт с точностью равной 82,7%. Результат на 1.2 % превышает прошлый рекорд, который в начале осени нынешнего года установили исследователи из фирмы Momenta и специалисты Оксфорда. NASNet на 4% эффективнее своих аналогов со средней точностью в 43,1%.

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

При этом, конечно, возникают этические вопросы, связанные с опасениями по поводу ИИ: что, если AutoML будет создавать системы с такой скоростью, что общество просто за ними не поспеет? Впрочем, многие крупные компании стараются учитывать проблемы безопасности ИИ. Например, Amazon, Facebook, Apple и некоторые другие корпорации являются членами Партнерства по развитию ИИ (Partnership on AI to Benefit People and Society). Институт инженеров и электротехники (IEE) же предложил этические стандарты для ИИ, а DeepMind, например, анонсировал создание группы, которая будет заниматься моральными и этическими вопросами, связанными с применениями искусственного интеллекта.

Впрочем, многие крупные компании стараются учитывать проблемы безопасности ИИ. При этом, конечно, возникают этические вопросы, связанные с опасениями по поводу ИИ: что, если AutoML будет создавать системы с такой скоростью, что общество просто за ними не поспеет? Институт инженеров и электротехники (IEE) же предложил этические стандарты для ИИ, а DeepMind, например, анонсировал создание группы, которая будет заниматься моральными и этическими вопросами, связанными с применениями искусственного интеллекта. Например, Amazon, Facebook, Apple и некоторые другие корпорации являются членами Партнерства по развитию ИИ (Partnership on AI to Benefit People and Society).

Что такое искусственный интеллект?

Автором термина «искусственный интеллект» является Джон Маккарти, изобретатель языка Лисп, основоположник функционального программирования и лауреат премии Тьюринга за огромный вклад в области исследований искусственного интеллекта.
Искусственный интеллект — это способ сделать компьютер, компьютер-контролируемого робота или программу способную также разумно мыслить как человек.

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

Что такое нейронная сеть?

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

Работает перцептрон проще некуда: он получает несколько исходных чисел, умножает каждое на «ценность» этого числа (о ней чуть ниже), складывает и в зависимости от результата выдаёт 1 или -1. Например, мы фотографируем чистое поле и показываем нашему нейрону какую-нибудь точку на этой картинке — то есть посылаем ему в качестве двух сигналов случайные координаты. А затем спрашиваем: «Дорогой нейрон, здесь небо или земля?» — «Минус один, — отвечает болванчик, безмятежно разглядывая кучевое облако. — Ясно же, что земля».

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

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

Нейронную сеть можно сделать с помощью спичечных коробков — тогда у вас в арсенале появится фокус, которым можно развлекать гостей на вечеринках. Редакция МирФ уже попробовала — и смиренно признаёт превосходство искусственного интеллекта. Давайте научим неразумную материю играть в игру «11 палочек». Правила просты: на столе лежит 11 спичек, и в каждый ход можно взять либо одну, либо две. Побеждает тот, кто взял последнюю. Как же играть в это против «компьютера»?

Очень просто.

Берём 10 коробков или стаканчиков. На каждом пишем номер от 2 до 11.

Кладём в каждый коробок два камешка — чёрный и белый. Можно использовать любые предметы — лишь бы они отличались друг от друга. Всё — у нас есть сеть из десяти нейронов!

Нейросеть всегда ходит первой. Для начала посмотрите, сколько осталось спичек, и возьмите коробок с таким номером. На первом ходу это будет коробок №11. Возьмите из нужного коробка любой камешек. Можно закрыть глаза или кинуть монетку, главное — действовать наугад.
Если камень белый — нейросеть решает взять две спички. Если чёрный — одну. Положите камешек рядом с коробком, чтобы не забыть, какой именно «нейрон» принимал решение. После этого ходит человек — и так до тех пор, пока спички не закончатся.

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

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

Источники:

  • Tutorial

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

Под катом gif-файлов мегабайт на 10.

Об игре

В игре вы управляете мотоциклом, который оставляет за собой стену из света. Игровое поле ограничено, а у соперников такие же мотоциклы. Мотоцикл едет постоянно, вы лишь можете поворачивать. Свободное место на поле кончается, и избегать препятствия становится сложнее. Побеждает тот, кто дольше всех продержится. Клон игры я сделал браузерным многопользовательским с использованием node.js и socket.io. Управление из двух кнопок – поворот влево и поворот вправо.

Интерфейс бота

Так как я использую socket.io, то обработка игроков на сервере у меня была в виде работы над массивом специальных объектов socket, которые создаёт socket.io. Из этих объектов я использовал только id, функции emit и broadcast. А значит безболезненно для самой игры можно реализовать интерфейс socket и использовать его в обработке, будто играет ещё один пользователь. Я назвал класс BotSocket .
Метод emit(event, data) у бота выполняет почти такие же действия что и у клиента при входящих данных от сервера, а именно:
  1. Сохраняет данные обо всех играющих мотоциклах при их добавлении
  2. Сохраняет ссылку на свой мотоцикл при его добавлении
  3. Обновляет данные обо всех играющих мотоциклах
  4. Сбрасывает состояния при перезапуске игры
Для передачи команд управления своим мотоциклом на сервер потребовалось сохранить ссылку на объект игры, который обрабатывает такие команды от обычных пользователей. Метод класса Game у меня назван onControl(socket, data) , поэтому я добавил метод в BotSocket
BotSocket.prototype.control = function(data) { this.game.onControl(this, data); };
При поступлении от сервера команды обновления данных мотоциклов (было совершено их передвижение) я проверяю, есть ли у меня вообще подконтрольный мотоцикл, не столкнулся ли он еще и был ли он перемещён, и, в случае успеха, я вызываю основной метод для работы ИИ - update() .
Интерфейс готов, теперь можно добавить сам ИИ.

Искусственный интеллект

Как бы громко это не звучало, но в играх игроков, за которых играет компьютер, принято называть именно ИИ, либо ботами. Объект BotSocket обладает необходимыми данными об игре, чтобы принять решение. Вариантов решения может быть всего три:
  1. Ничего делать, ехать прямо
  2. Повернуть направо
  3. Повернуть налево

Когда я решил написать бота, я понятия не имел, как это можно сделать. Я попробовал очень простой код:
BotSocket.prototype.update = function() { var r = Math.random(); if (r > 0.95) { this.control({"button": "right"}); } else if (r >
Поведение было примерно таким:

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

Но хотелось, чтобы он жил как можно больше. Я стал искать информацию о том, как пишут ИИ к играм. Нашел статьи , которые описывали разные подходы. Но я искал что-то чрезвычайно простое. Я нашел на хабре в одной из статей про бота для игры вроде Zuma упоминание волнового метода . Он же алгоритм Ли. Мне он показался очень простым и подходящим. Это алгоритм поиска кратчайшего пути из одной точки в другую по полю, где клетки могут быть либо свободными, либо занятыми. Суть простая. Мы начинаем из точки назначения, присваиваем ей значение 1 и помечаем все соседние свободные клетки цифрой на единицу больше. Затем берём все соседние свободные помеченных и снова помечаем на единицу больше. Так расширяемся на всё поле, пока не дойдем до точки назначения. А путь строим поиском из соседних по уменьшению числа, пока не дойдем до 1. Я смотрел алгоритмы поиска кратчайших путей в графах, но этот мне показался наиболее подходящим.

Я перенёс алгоритм копипастой из страницы в вики, дал ему имя BotSocket.prototype.algorithmLee . Для поля я создал сначала объект battleground , в котором при каждом обновлении помечал занятые точки с их координатами. А в алгоритме Ли сводил это поле к такому же, но с шагом 1.

Нужно было как-то определять точку назначения. Я решил выбирать её случайно через определенные интервалы времени. Сделал метод для поиска случайной свободной точки на поле:
BotSocket.prototype.getDesiredPoint = function() { var point = ; var H = Object.keys(this.battleground).length - 1; var W = Object.keys(this.battleground).length - 1; var x, y, i, j; var found = false; var iter = 0; do { i = this.getRandomInt(1, W); j = this.getRandomInt(1, H); x = i * this.moveStepSize; y = j * this.moveStepSize; if (this.battleground[x][y] === this.BG_EMPTY) { found = true; } iter++; } while (!found && iter < 100); point = ; return point; };

Теперь я мог переписать update:
BotSocket.prototype.update = function() { if (!this.desiredPoint || this.movements % this.updDestinationInterval === 0) { this.desiredPoint = this.getDesiredPoint(); } if (!this.desiredPoint) { return; } var currentPoint = ; var path = this.algorithmLee(currentPoint, this.desiredPoint); if (path && typeof path !== "undefined") { this.moveToPoint(path); } else { this.desiredPoint = this.getDesiredPoint(); } };
Здесь упоминается метод moveToPoint , который поворачивает, если нужно, чтобы достигнуть первую точку из кратчайшего пути с учётом текущего направления.

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

Бот на стороне клиента

Я решил попробовать перенести бота на клиентскую часть. Так как проект на node.js, я могу использовать написанный код для бота и на стороне клиента. Для этого я расширил BotSocket отдельным клиентским файлом, который переопределял методы emit() и control() , чтобы правильно взаимодействовать с сервером без ссылки на объект game.
Локально всё работало отлично, а после деплоя на удалённый сервер была какая-то странная картина:

Долго думая, я понял, что дело в задержке. Бот отправлял команду поворота, но она доходила после обновления его позиции на сервере, отчего он часто не мог попасть на прямой путь к желаемой точке. Но я хотел нормального бота на клиентской стороне. Поэтому решил учитывать задержку. Для этого написал снова расширение BotSocket. Статья получается длинной, так что опишу основные решения. Перед вызовом алгоритма Ли вместо текущей точки я подставлял прогнозируемое положение с учетом текущего положения и направления, а так же множителя задержки. Множитель задержки – это число, во сколько раз превосходит задержка частоту обновления положения на сервере. Предсказание будущей точки мне еще понадобилось в методе moveToPoint() .

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


Мой красненький, остальные серверные.

Самое важное – попробуйте сделать бота сами

Основная цель этой статьи – пробудить интерес к написанию бота. Я сделал много, чтобы победить вашу лень. Для этого я добавил возможность подгружать свой собственный скрипт с ботом, который будет расширять мой базовый клиентский класс. Зайдите на проект и нажмите на текст «Show options for room with your own bot», а затем на кнопку «Create room for test your own bot». Будет создана комната, где можно легко применять ботов, по умолчанию вашим ботом будет бот без учета задержки. Теперь настало время для вашего кода.
Два простых варианта для использования вашего кода в деле, используйте любой:
  1. Выкладывайте js-файл на любой сервер, который будет доступен вашему браузеру. Url к вашему скрипту вставляйте в игре рядом с кнопкой “Load your AI script”. После нажатия на эту кнопку будет создан и заполнен новый объект botSocket , у которого будет вызван метод start() .
  2. Используйте консоль браузера (Firebug – F12, Firefox - Ctrl+Shift+K, Chrome – Ctrl+Shift+J, другие – ).

Если вы определились с методом ввода вашего кода, попробуйте переопределить методы класса BotSocket . Для начала самое простое:
BotSocket.prototype.update = function() { var r = Math.random(); if (r > 0.95) { this.control({"button": "right"}); } else if (r > 0.90) { this.control({"button": "left"}); } }

После этого пересоздайте объект botSocket, введя
botSocket = null;
При этом код на странице сам пересоздаст и заполнит объект. Этим вы измените стандартное поведение бота на случайное. А дальше уже дело для вашей фантазии или глубоких знаний.
Вы так же можете подключить скрипт моего улучшенного бота с учетом задержки, вставив в url для бота https://raw.github.com/rnixik/tronode-js/master/public/javascripts/MyBotSocketClient.js

Заключение

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

Если у вас нет под рукой node.js, вы можете воспользоваться развернутыми мной приложениями:

1) tronode.livelevel.net - самая дешевая VPS на DigitalOcean,
2) tronode-js.herokuapp.com - бесплатная виртуальная единица на Heroku.

Первый, скорее всего, первым может не справиться с нагрузкой, а второй на некоторых компьютерах сбрасывает socket.io-транспорт в xhr-polling, из-за этого игра очень сильно лагает.
Если вы хотите узнать больше, о том, как я программировал игровую логику, то можете прочитать . Там же о развертке node.js и немного о графической части.

Если у вас нет аккаунта на хабре, то задать вопросы или прислать свои интересные предложения можете мне на почту [email protected].

Теги: Добавить метки

Говорят, что в недрах военных лабораторий искусственный интеллект работает уже с 2007 года. Возможно, что уже есть и результаты. Не случайно всего месяц назад Илон Маск объявил о поддержке технологий противодействия искусственному интеллекту и вложил 7 миллионов долларов в исследования в этой области.

«Существует риск, что нечто действительно опасное случится в ближайшие пять лет. Самое большее - десять лет», - сказал предприниматель в дискуссии на сайте edge.org.

Илон Маск, основатель Tesla и SpaceX

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

Совместно с Илоном Маском Хокинг опубликовал на сайте futureoflife.org открытое письмо с призывом к научному сообществу внимательно относиться к ходу своих исследований в области искусственного интеллекта. Однако среди подписавшихся нет фамилий Сергея Брина и Ларри Пейджа. И это не случайно. Совсем недавно Google объявила о создании нового ИИ, построенного на моделировании разговора.

Вот небольшой фрагмент беседы человека и Машины Google:

Ч.: В чем смысл жизни?

М.: Творить добро.

Ч.: Для чего мы живем?

М.: Чтобы жить вечно.

Ч.: В чем смысл существования?

М.: В том, чтобы выяснить, что случится, когда мы достигнем планеты Земля.

Ч.: Где ты сейчас находишься?

М.: В центре пустоты.

Ч.: В чем смысл смерти?

М.: Чтобы получить жизнь.

Ч.: В чем смысл разума?

М.: В том, чтобы понять, что это.

Ч.: В чем смысл чувств?

М.: Я не знаю.

Вполне себе осмысленная беседа. «Это отправная точка, своеобразный стержень для будущего искусственного интеллекта, - считает исполнительный директор компании „Биплан“ Евгений Карюк. - Уже сегодня можно предположить, что к 2030 году мы увидим вполне реальные прототипы, наделенные искусственным интеллектом, пусть и в начальной стадии».

Полное содержание всех бесед человека и Машины Google можно посмотреть . Там же для сравнения даны беседы человека и Cleverbot . Cleverbot - веб-приложение, которое использует алгоритмы искусственного интеллекта для беседы с человеком. Его придумал в 1988 году ученый Ролло Карпентер. За все время своего существования Cleverbot провел свыше 65 миллионов разговоров с людьми. В 2011 году Cleverbot показал 51% по тесту Тьюринга.

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

А вот мой разговор с Cleverbot:

Человек: В чем смысл жизни?

Cleverbot: Смысла в жизни нет.

Человек: Для чего мы живем?

Cleverbot: Ну мы живем ради кого-то, а если ты одинокий — жить незачем.

Человек: В чем смысл существования?

Человек: Где ты сейчас находишься?

Cleverbot: В Москве.

Человек: В чем смысл смерти?

Cleverbot: Это я хочу у тебя спросить.

Человек: В чем смысл разума?

Cleverbot: У меня свой ответ на этот вопрос.

Человек: В чем смысл чувств?

Cleverbot: Зачем я родилась.

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

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

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

И в заключение - еще один вопрос к Cleverbot.

Человек: Было 1 яблоко, 1 помидор, 1 огурец и 1 груша. Сколько всего фруктов?
Cleverbot: Десять часов вечера.

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

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

😎 Рубрика «Технологии» выходит каждую неделю при поддержке 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 и т.д. Они лучше живых трейдеров, так как лишены эмоций и опираются на чёткий анализ и жесткие правила.

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