Как сделать искусственный интеллект

Обновлено: 08.07.2024

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

Предыдущие статьи вы можете найти по ссылкам

Сегодня мы с вами займёмся боевой системой и врагами.

Сцена

Для начала мы, уже зная как создаются сцены, создадим уровень, в котором будем воевать с нашими врагами. Создаём сцену — я назвал её Level_02, наполняем декорациями, и добавляем модели врагов.
В качестве модели врага я снова буду использовать рыцарей. Поставлю одного, дам ему имя Enemy_01, а после полной настройки добавлю его в папку Prefabs, и уже оттуда буду использовать полностью готовых рыцарей-врагов. Делаю это потому, что нет желания ставить несколько врагов, а после каждого по-отдельности настраивать. Лень — наш главный двигатель!


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

Приступим к настройке вражины! Создаю новый Animator Controller и даю ему название Enemy! Туда мы добавляем три состояния: покоя, ходьбы и удара. Так как анимации удара у нас не было, беру её с mixamo и добавляю в проект. Прописываем все транзисторы и даём названия Bool -> eWalk и eHit. Приставку Е я использую для понимания, что они принадлежат Enemy (можно этого и не делать, но мне так удобнее). Получаем такую картину:


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


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

Создаём пустой объект GameObject — > Create Empty, выставляем ему значения Transform такие же, как и у нашего Enemy_01, после переименовываем пустой объект в Enemy и добавляем в него объект Enemy_01. Должно получиться вот так:


Больше Enemy_01 мы трогать не будем и займемся настройкой объекта Enemy. Добавляем ему компонент NavMeshAgent — это позволит нашему ИИ передвигаться по нашей сцене. После очередной кучи материала из интернета, я всё же запустил правильную работу ИИ, и заставил его смотреть на меня и атаковать, когда я нахожусь на достаточном расстоянии от него.

using System.Collections;
using System.Collections.Generic;
using System.Security.Cryptography;
using UnityEngine;
using UnityEngine.AI;
using UnityEngine.UI;

public class Enemy: MonoBehaviour

public float DistanceToWalk;
public float DistanceToHit;
public float curDistance;
public GameObject Player;
public Animator anim;
public bool eWalk;
public bool eHit;
public float Hit;
public float DelayBetweenAnim;
public float DelayeHit;
UnityEngine.AI.NavMeshAgent _agent;

// Start is called before the first frame update
void Start()
_agent = GetComponent ();
>

// Update is called once per frame
void Update()
float distance = Vector3.Distance(Player.transform.position,transform.position);
curDistance = distance;
if (distance > DistanceToWalk)
return;
>

Сразу скажу, что в строке Player мы добавляем объект нашего игрока (у вас он может иметь другое имя), а в строке Anim — добавляем анимацию из объекта Enemy_01 (и снова у вас она может иметь иное название), в зависимости от имен ваших объектов. Пора проверить как оно работает!

За счет строки curDistance мы видим на каком расстоянии мы находимся от нашего Enemy, и пока мы находимся дальше 20, как и было прописано в настройках, ИИ не реагирует, но стоит приблизиться, как он сразу же начинает двигаться в нашу сторону, а когда подходит достаточно близко, начинает атаковать. Я считаю, что всё работает.

Значит пора и нашему персонажу научиться бить по врагам! Добавляем в Animator Controller анимацию удара, протягиваем транзисторы, Bool будет называться punch. Дописываем пару строк в скрипт Move и тестируем!

Теперь когда я нажимаю на пробел, у меня проигрывается анимация удара, а как только отпускаю — прекращается. Немного криво, но мы и не пытаемся сделать реалистичную игру =) Что же, давайте поместим оружие в руку, а то биться воображением не всегда выходит удачно =)

Интерактивные предметы

Покопавшись в папке с префабами, я обнаружил нужный мне меч, его мы уже использовали для квеста, а сейчас он нам послужит по своему прямому назначению. Добавляю его в сцену, переименовываю в Sword и создаю пустой объект GameObject -> Create Empty, назову его Weapon. За счет того, что у меня персонаж с пальцами, я могу сразу добавить к пальцам меч, но буду использовать пустой объект, прикрепляю его к пальцам, после переношу в него Sword, и обнуляю позицию. Меч точно встаёт в руку.


Проделываем ту же процедуру с Enemy. Я сразу вкладываю меч в руку, немного корректирую положение, и смотрю на результат.


Всё отлично работает, теперь мы машем мечами как в любом фильме про рыцарей =). На этом я закончу сегодняшнюю статью, а продолжение будет еще интересней: наконец перейдём к убийству мобов, получению уровней, и интерфейсу!

Заключение

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

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

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

Есть и другие определения, например: искусственный интеллект (ИИ, англ. Artificial intelligence, AI) — наука и технология создания интеллектуальных машин, особенно интеллектуальных компьютерных программ[2]. Так же ИИ определяют как область компьютерной науки (информатики), специализирующаяся на моделировании интеллектуальных и сенсорных способностей человека с помощью вычислительных устройств[3].

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

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

Материал подготовили эксперты компании Hey Machine Learning.

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

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

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

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

Мы в Hey Machine Learning работаем с ИИ-фреймворками ежедневно, поэтому решили написать для вас статью о десяти самых известных из них. На основе собственного использования выделили их положительные и отрицательные стороны, а также добавили информацию о самом эффективном их применении. В первую часть обзора вошли Tensorflow, PyTorch, Keras, Darknet и XGBoost.

TensorFlow — это комплексная платформа для машинного обучения с открытым исходным кодом. Она была разработана командой Google Brain как продолжение закрытой системы машинного обучения DistBelief, однако в ноябре 2015 года компания передумала и открыла фреймворк для свободного доступа.

Как и большинство фреймворков глубокого обучения, TensorFlow имеет API на Python поверх механизма C и C ++, что ускоряет его работу.

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

Платформа предоставляет интуитивно понятные высокоуровневые API-интерфейсы, например Keras, с быстрым выполнением, что обеспечивает немедленную итерацию модели и простую отладку. За счёт мультиплатформенности решение позволяет обучать и разворачивать модели в облаке и локально, независимо от используемого пользователем языка.

Если вам необходимо запустить модель машинного обучения на смартфоне или IoT-устройстве, то вам пригодится среда глубокого обучения с открытым исходным кодом TensorFlow Lite. Когда нужно создать и обучить МО-модель на JavaScript, а после развернуть её в браузере или на Node.js, то можно воспользоваться библиотекой TensorFlow.js.

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

Однако фреймворк не лишён недостатков. Компания Google известна своей любовью к созданию собственных стандартов, что коснулось и фреймворка. Например, если во время работы с TensorFlow в коде вылетает ошибка, то фреймворк не покажет пользователю конкретную строчку, спровоцировавшую её.

Почему так? Это связано с особенностью API TensorFlow, где все операции выполняются через класс tf.Session. В программировании есть две основные парадигмы — императивная и декларативная. В TensorFlow используется второй подход.

Рассмотрим очень грубый пример:

Если думаете, что c = 6, то спешу вас огорчить. На самом деле оно равно:

Это значит, что из-за декларативного подхода, вы не умножаете 2 * 3, а объявляете операцию, которая умножает 2 * 3.

Чтоб получить 6, необходимо выполнить операцию умножения чисел через сессию:

Теперь рассмотрим пример посложнее: сделаем вход не константным и будем использовать поэлементное умножение матриц.

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

Теперь даём на вход вектор из двух элементов и из трёх.

validArgumentError (see above for traceback): Incompatible shapes: [2] vs. [3] [[node mul_3 (defined at :4) = Mul[T=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:GPU:0"](_arg_Placeholder_3_0_0/_7, _arg_Placeholder_4_0_1/_9)]] [[<> = _Recv[client_terminated=false, recv_device="/job:localhost/replica:0/task:0/device:CPU:0", send_device="/job:localhost/replica:0/task:0/device:GPU:0", send_device_incarnation=1, tensor_name="edge_7_mul_3", tensor_type=DT_FLOAT, _device="/job:localhost/replica:0/task:0/device:CPU:0"]()]]

Ничего непонятно, но очень интересно.

Всё потому, что ошибка — внутри сессии.

Конечно, есть способы обезопасить себя от подобного, однако, например, в PyTorch такое вообще не возможно.

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

Из-за подобного поведения с памятью могут возникнуть проблемы в работе. Предположим, что в одном проекте множество различных моделей, одни из которых написаны на PyTorch, а другие — на TensorFlow. Если изначально мы создадим TensorFlow-модель и не ограничим её, то она использует всю видеопамять при том, что ей необходимо всего 0,5 ГБ, и в итоге на PyTorch-модели попросту не хватит места.

  • Отличный фреймворк для создания нейронных сетей, которые будут работать в продакшене.
  • Берёт на себя оптимизацию ресурсов для вычислений.
  • Огромное комьюнити.
  • За счёт популярности выше вероятность, что проблему, подобную вашей, уже решили.
  • Сложен в использовании и освоении.
  • Недружелюбный.
  • Необходимо постоянно контролировать используемую видеопамять.
  • Имеет свои стандарты.
  • Плохая документация.
  • У вас всегда есть пять способов решить задачу, но три из них deprecated, один не работает, а тот, который работает, — не задокументирован.

Проекты, которые используют фреймворк TensorFlow:

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

PyTorch — это среда машинного обучения на языке Python с открытым исходным кодом, обеспечивающая тензорные вычисления с GPU-ускорением. Она была разработана компанией Facebook и представлена в октябре 2016 года, а открыта для сторонних разработчиков — в январе 2017 года. Фреймворк подходит для быстрого прототипирования в исследованиях, а также для любителей и небольших проектов.

За счёт глубокой интеграции фреймворка с кодом C++ разработчики могут программировать на C и C++ с помощью API-расширения на основе FFI для Python.

В отличие от TensorFlow, PyTorch менее гибок в поддержке различных платформ. Также в нём нет родных инструментов для визуализации данных, но есть сторонний аналог, называемый tensorboardX.

Однако, снова же, в отличие от TensorFlow, если при работе с PyTorch вылетает ошибка, то это конкретная недоработка в коде и система выделит вам именно ту строчку, которая её спровоцировала.

Также при развёртке сетей на GPU PyTorch самостоятельно займёт только необходимую видеопамять.

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

Проекты, которые используют фреймворк PyTorch:

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

Keras — открытая среда глубокого обучения, написанная на Python. Она была разработана инженером из Google Франсуа Шолле и представлена в марте 2015 года.

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

Keras работает поверх TensorFlow, CNTK и Theano и предоставляет интуитивно понятный API, который, по мнению наших инженеров, пока что является лучшим в своём роде.

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

Deeplearning4j использует Keras в качестве своего Python API и позволяет импортировать модели из Keras, а также через Keras из Theano и TensorFlow.

  • Удобен в использовании.
  • Лёгок в освоении.
  • Быстроразвивающийся фреймворк.
  • Хорошая документация.
  • Встроен в TF.

Проекты, которые используют фреймворк Keras:

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

Darknet — это фреймворк с открытым исходным кодом, написанный на языке C с использованием программно-аппаратной архитектуры параллельных вычислений CUDA. Он быстрый, лёгкий и удобный в использовании. Также Darknet поддерживает вычисления на базе CPU и GPU.

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

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

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

  • Кроме задач с обнаружением больше нигде не используется.
  • Не рекомендуется для больших проектов.
  • Плохая документация.

Проекты, которые используют фреймворк Darknet:

    — нейронная сеть для обнаружения объектов в режиме реального времени. — компактная нейронная сеть для обнаружения объектов.

XGBoost — это фреймворк с открытым исходным кодом, который предлагает систему градиентного бустинга для C++, Java, Python, R, Julia. Он разработан для обеспечения высокой эффективности, гибкости и портативности.

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

Изначально это был исследовательский проект Тяньцзи Чена и Карлоса Гестрина в составе Distributed [Deep] Machine Learning Community, но позже он был расширен и представлен публике на конференции SIGKDD в 2016 году, где произвёл фурор.

После своей презентации фреймворк лидировал в соревнованиях Kaggle и до сих пор остаётся фаворитом для решения большинства задач на платформе.

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

Фреймворк совместим с операционными системами Windows, Linux и OS X, а также поддерживает кластеры AWS, Azure и Yarn, хорошо работает с Flink, Spark.

Так всё же, какой фреймворк к какой задаче лучше всего применить?

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

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

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

Darknet подходит для небольших проектов. Хорошо работает в задачах обнаружения.

XGBoost может использоваться для решения задач регрессии, классификации, упорядочивания и пользовательских задач на предсказание.

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

Поверхностно, keras это надстройка над tf. А не отдельный фреймворк. Это как jquery для js.

только js это не фреймворк

Полностью согласен. Тока хотел тоже самое написать:)

Теоретически вы правы, однако на практике дела обстоят немного иначе.

Например, в Mac OS X фреймворк - это просто библиотеки, упакованные в пакет.

Keras действительно является надстройкой и, кстати, не толькоTensorFlow, но и CNTK и Theano. Он может считаться фреймворком, так как используется для создания полноценных решений типа Mask R-CNN и face_classification.

Также, когда дело касается решения задач распознавания изображений и машинного перевода, Keras всегда рассматривают как альтернативу TensorFlow и PyTorch, так как он удобен в использовании, лёгок в освоении и имеет хорошую документацию.

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

Оглавление

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

Введение: краткое описание искусственного интеллекта

picture1 460x295 - Учебник по искусственному интеллекту

AnalytixLabs – ведущий институт аналитики данных, который специализируется на обучении частных лиц и корпораций с целью получения отраслевых знаний о науке о данных и связанных с ней аспектах. Его возглавляют выпускники McKinsey, IIT, IIM и FMS, обладающие большим практическим опытом. Находясь в секторе образования в течение достаточно длительного времени и имея широкую клиентскую базу, AnalytixLabs очень помогает молодым соискателям сделать карьеру в области Data Science.

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

blog 03 2 1 1536x960 1 460x295 - Учебник по искусственному интеллекту

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

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

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

blog 04 2 1 1536x1382 1 768x691 - Учебник по искусственному интеллекту

1961: Хотя создание лаборатории искусственного интеллекта Массачусетского технологического института было важной вехой, которой даже предшествовала работа, проделанная Аланом Тьюрингом над ранними формами компьютеров в 1940-х годах, предложение Исаака Азимова о трех законах робототехники в 1950 году и последующее развитие Однако первая основанная на ИИ программа для игры в шашки, написанная Кристофером Стрейчи в

1951, 1961 годах, стала первой широкомасштабной реализацией ИИ, когда на заводах General Motors были внедрены роботы для облегчения работы на сборочных линиях.

1974: Стэнфордская лаборатория искусственного интеллекта представляет беспилотный автомобиль – Stanford Cart, способный обнаруживать препятствия на своем пути и маневрировать, не задевая объекты, стоящие на его пути. Однако окончательный вид получен только к 1979 году.

1974 – 1979: Первая AI Winter поражает развитие AI в основном из-за нехватки памяти или вычислительной мощности, доступной в то время. Государственные инвестиции в ИИ падают, и общий интерес также падает в академическом мире.

1983: Программа XCON (eXpert CONfigure) (ранний тип компьютера с экспертной системой на основе правил, разработанный в 1978 году для помощи в заказе компьютеров VAX компании DEC) достигает своего пика в 2500 правил и принимается огромным количеством корпораций по всему миру. Мир. Таким образом, XCON становится первой широко используемой компьютерной системой, которая интегрирует методы искусственного интеллекта для решения реальных проблем, таких как выбор компонентов на основе требований клиентов.

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

1995: ALICE, вдохновленная ELIZA, разработана Ричардом Уоллесом, но гораздо более продвинута из-за доступности всемирной паутины.

1997: Зепп Хохрайтер и Юрген Шмидхубер разработали методику долговременной памяти (LSTM) для распознавания почерка и речи. В том же году IBM разрабатывает программу Deep Blue для игры в шахматы и обыгрывает Гарри Каспарова, чемпиона мира по шахматам, на широко разрекламированном мероприятии.

1998 – 2000: По всему миру разрабатывается множество роботов. В 1998 году Furby был разработан как первая собака-робот. В 1999 году Sony разработала роботизированную собаку AIBO. В 2000 году Синтия Бризил из Массачусетского технологического института разработала Kismet для распознавания человеческих эмоций, а в том же году компания Honda разработала ASIMO. как человекоподобный робот, способный взаимодействовать с людьми и доставлять подносы в рестораны.

2004: DARPA признало потенциал искусственного интеллекта и запускает задачу по разработке автономных транспортных средств (хотя никто не побеждает в соревновании).

2009: Google начинает проект по разработке беспилотного автомобиля.

2010: Наука повествования началась, когда студенческий проект разработал свой прототип Stats Monkey, который автоматически пишет спортивные истории на основе широко доступных данных.

2011: Компьютерная программа Watson от IBM выигрывает популярное шоу Jeopardy. Гонка по созданию самого сложного виртуального помощника начинается с того, что многие помощники становятся популярными, такие как Facebook M, Microsoft Cortona, Apple Siri и Google Now.

2015: Илон Маск и другие известные личности жертвуют 1 миллиард долларов на Open AI.

2016: компания Google Deep Mind Technologies разработала AlphaGo, побеждая чемпиона Кореи по го Ли Седола. В том же году Стэнфорд выпускает отчет AI 100, посвященный 100-летним усилиям по изучению ИИ и прогнозированию того, как он повлияет на людей.

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

Favorite

В закладки

Герои будущего. Как работает искусственный интеллект

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

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

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

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

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

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


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

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

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


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

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

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


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

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

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

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


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

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


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

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

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


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

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

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

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


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

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

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

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

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


Ведущий автор работы Сяодон Хе отметил:

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

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


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

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

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

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

Игра в шахматы


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

Более того: AlphaZero не проиграла ни одной из 100 турнирных партий

AlphaZero – улучшенная версия AlphaGo Zero. Она 100 раз подряд обыграла знаменитую систему AlphaGo, которой удалось одержать победу над сильнейшим из игроков-людей.

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

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

После этого AlphaZero потратил восемь часов и превзошел AlphaGo в го. А потом ещё ща два часа разгромил программу Elmo, которая раньше считалась неоспоримым чемпионом по игре в сёги (японскую стратегическую настольную игру).

Медицина

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

Ещё одно интересное решение – Wave Clinical Platform от ExcelMedical. Система следит за жизненными показателями пациента и предупреждает врачей за шесть часов до его возможной скоропостижной смерти. Платформа системно анализирует информацию и рассчитывает риски неблагоприятного исхода.

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


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

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

ИИ отличал речевые паттерны пациентов с психозом от фраз здоровых людей

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

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

Имитация человека


Роботы, наделённые искусственным интеллектом, уже могут имитировать человеческую мимику. К примеру, Facebook AI lab разработала интеллектуального анимированного бота и обучила его на сотнях записей видеозвонков Skype.

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

Ещё один важный момент – наделение ИИ моралью. Чтобы обучить систему человеческим моральным нормам, исследователи из Массачусетского технологического института создали Moral Machine.

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


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

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

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

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

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

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

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

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

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

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


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

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

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


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

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

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

Favorite

В закладки

Читайте также: