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

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

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

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

Этап планирования структуры

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

В основе иерархии классов среды обитания ИИ было положено несколько пар классов:

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

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

Для работы нужна была какая-то конкретная не сложная игровая концепция. И в качестве такой была выбрана концепция игры Pack-Man , ввиду простого набора правил.

Сразу же были выделены дополнительные подклассы Объектов и Субъектов игры:

  • субъект Пакман – тот самый Packman;
  • объекты Фрукта – те, что для поесть Пакману;
  • субъекты Привидение – те, для которых в игре создан Пакман.

Этап планирования работ

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

Были сразу же выделены следующие этапы реализации:

  1. Создание классов обеспечивающих функционирование мира, в котором будет жить искусственный интеллект (классы Мир, Ключевая точка и Путь);
  2. Отрисовка Мира и заодно создание основы функционала для визуализации данных.
  3. Создания класса Объект, его взаимодействий со средой.
  4. Создание первого экземпляра Объекта, а именно Фрукты и ее отрисовка.
  5. Создание дополнения функционала для Объекта, что бы превратить его в Субъект.
  6. Создание экземпляра Пакман. Отрисовка. Добавление правил в игру.
  7. Разработка кода взаимодействия с пользователем, организация работы системы в «реальном масштабе времени».
  8. Реализация алгоритма поиска кратчайшего пути. Соединение его с управлением Пакмана и автоматическим изменением его состояния Миром во времени.
  9. Создание экземпляра Привидение. Отрисовка. Добавление правил в игру.
  10. Улучшение системы по мелочам.
  11. Получение удовольствия.
С этим планом я приступил к работе.

Реализация

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

Этапы №3 и №4 тоже особого труда не вызывали – Фрукта не бегала, не вредничала, а только лежала и отрисовывалась.

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

Этап 6 Проблемы с появлением экземпляра Пакмана как нестранно не начались. Просто появился экземпляр типа Субъект, а так же отрисовка на дисплее в нужной координате кружочка. И еще были добавлены правила поедания Фрукты.

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

Приключения начались на этапе №8 , где выполнялась реализация алгоритма поиска кратчайшего пути. Функция поиска кратчайшего пути представляла собой модифицированный алгоритм Ли , адаптированный к динамическим массивам и структурам графа. Основные сложности были при написании кода, где реализован был обратный ход. Для уменьшения количества перестраиваний структуры графа при перемещении экземпляров Объектов Объекты были сделаны не как узловые Ключевые точки, соединенные Путями, а как Ключевые точки, принадлежащие к Пути. Имея на момент написания статьи работающий код, до сих пор не уверен в правильности выбранного решения. Что проще: то ли перестраивать локально граф Мира и заодно маршруты Субъектов, которые перемещаются через измененные фрагменты графа или просто размещать классы Субъектов и Объектов на неизменяемом графе Путей.

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

Наконец на этапе №9 было добавлено первое Привидение. Точка назначения была всегда координата Пакмана. Использовалась уже написанная функция поиска кратчайшего пути, которая вызывалась постоянно 24 раза в 1 секунду. После генерации списка действий движение Привидения осуществлялось системой (Миром) автоматически.

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

Затем были добавлены несколько Привидений, которые настырно преследовали Пакмана.

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

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

На этом собственно остановился и спокойно перевел дух.
В завершение были достроены декоративные элементы: «Конец игры» (съедение Пакмена), подсчитывание очков (количества съеденных Фрукт), «Завершение уровня» (съедение всех Фруктов).

Итоги мучений.

Несмотря на большое количество пролитого пота и крови были достигнуты сравнительно небольшие результаты: для дальнейших изысканий реализована основа Мира, в котором живет интеллект простейшего хищника типа паук. По видимости дальше необходимо создать модификацию существующего алгоритма ИИ для реализации поведения «Жертвы» (в рамках игры – это убегающие от Пакмана Фрукты), а также комбинированного ИИ («Хищник-жертва»), что позволит сделать бот Пакмана, а затем не тратить силы на «поиграть», а только с удовольствием наблюдать на метания в пробирке этого «Колобка».

Посмотреть воочию, что вышло можно « » (исполняемый файл для Win32)*. Обратите внимание на тумблер «Режим матрицы». При его включении можно видеть, как система принимает решения, и почувствовать себя немного Нео. К сожалению, додумался его сделать на 10-м этапе, для лучшего понимания работы ИИ. Если бы сделал ранее, потратил меньше время на отладку алгоритма поиска кратчайших путей.

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

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

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

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


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

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

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

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

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

В работе по интеграции эмоций в ИИ стоит выделить два направления, которые очень тесно связаны. Во-первых, определение эмоций человека по его лицу, жестикуляции и так далее (Affective computing). Это направление, которое очень интенсивно развивается в Соединенных Штатах под руководством Розалинд Пикард в MIT Media Lab. В 1997 году Пикард опубликовала свою книгу Affective Computing, послужившую отправной точкой исследований. В ее лаборатории проводятся интересные эксперименты: участники закрепляют камеры перед собой, с некой периодичностью снимают выражения лиц и одновременно собирают данные в динамике: проводимость кожи, пульс, давление и так далее, ассоциируя эмоциональную реакцию и показания нательных датчиков.

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


Головной мозг человека потребляет примерно 20 Ватт, как лампочка. Последняя симуляция работы 1% головного мозга, проведенная в японском Институте RIKEN в 2013 году, потребовала 250 суперкомпьютеров. Это достаточно серьезный успех. Однако на борту каждого суперкомпьютера находилось 80 000 процессоров, которые потребляли гораздо больше чем 20 Ватт. И при этом симуляция примерно в тысячу раз медленнее реальной работы головного мозга. Пока эффективность явно не на стороне вычислительных систем. Это говорит о том, что нам нужна новая компьютерная архитектура. На ее создание нацелен проект BRAIN: правительство США выделяет $300 млн в год для воспроизведения человеческого мозга в виде микросхем и программного обеспечения.

На сегодняшний день создана нейробиологически инспирированная не-фон-Неймановская архитектура TrueNorth (фон-Неймановская - архитектура обычных компьютеров). Она закладывает основы для нового пути развития вычислительных систем: воссоздания нейронных сетей не с помощью программного обеспечения, а в виде микросхем, «железа». Новые микросхемы моделируют до миллиона нейронов. Специалисты из IBM пошли дальше: они уже создали материнскую плату, в которой собрали массив 4х4, всего 16 млн нейронов.

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

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

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

Максим Таланов
кандидат технических наук, руководитель Лаборатории Машинного Понимания Казанского федерального университета, преподаватель Университета Иннополис
forbes.ru

Комментарии: 1

    Сэм Харрис

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

    Михаил Бурцев

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

    Виталий Дунин-Барковский

    Как смоделировать мозг? Постижим ли человеческий мозг? Как алгоритмизировать сознание? И можно ли скопировать его на неорганический носитель? Ответы на эти вопросы помогает найти Виталий Дунин-Барковский, доктор физико-математических наук, профессор, заведующий отделом нейроинформатики Центра оптико-нейронных технологий НИИСИ РАН.

    Иван Иванчей

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

    Горбань А. Н.

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

    Евгений Путин

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

    Впервые был достигнут масштаб, соответствующий человеческому мозгу - 530 миллиардов нейронов и 137 триллионов синапсов. Симуляция происходила в 1542 раза медленнее реального времени. В ней были задействованы все 1 572 864 ядер и полтора петабайта памяти.

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

    Сергей Марков

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

    Сергей Марков

    Гамбургский счет

    В 1950 году английский ученый Алан Тьюринг в статье "Вычислительные машины и разум" задался вопросом: "Может ли машина понимать человека?". Так родился знаменитый тест Тьюринга, в котором компьютер пытался обмануть людей. Но как компьютер понимает человека и чего он пока понять не может? Об этом по гамбургскому счету мы решили спросить специалиста в области машинного обучения, директора информационных технологий компании "Activebusinesscollection" Сергея Маркова.

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

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

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

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

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

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

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

Первое, что мы с вами сделаем это определим, что такое интеллект.

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

В первую очередь интеллект – это способность обучаться и воображать .

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

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

  1. Чем чаще он слышит слово в разных контекстах, тем быстрее он его запомнит. Слово, которое он произнесет первым скорее всего будет – «мама».
    «Мама тебя любит»
    «Мамочка тебе ручки помоет»
    «Мама тебя целует»
    «А где мама?»
    Обучение происходит за счет избыточности данных.
  2. Чем больше каналов поступления информации задействовано, тем эффективнее обучение:
    ребенок слышит: «Мама тебя любит».
    ребенок видит улыбку мамы.
    ребенок чувствует тепло исходящее от мамы.
    ребенок чувствует вкус и запах маминого молока.
    ребенок говорит «Мама».
  3. Ребенок не сможет воспроизвести слово сразу правильно. Он будет пытаться, пробывать. «М», «Ма», «Мам», «М» … «Мама». Обучение происходит в действии, каждая следующая попытка корректируется пока не получим результат. Метод проб и ошибок. Очень важно получение обратной связи из реальности.
  4. Не воспитывайте своих детей, все равно они будут похожи на вас. Ребенок стремится быть похожим на окружающих его людей. Он подражает им и учится у них. Это один из механизмов моделирования личности, о котором мы поговорим более подробно в следующих статьях.

Какова же роль воображения?

Представьте себе, что вы едите на автомобиле по незнакомой трассе. Проезжаете знак ограничения скорости 80 км/ч. Едите дальше, и видите еще один знак ограничения скорости, но он забрызган грязью и его практически не разобрать. Вы передвигаетесь со скоростью 95 км/ч. Что будете делать? Пока вы принимали решение из-за кустов выглянул сотрудник полиции, и вы увидели лучезарную улыбку на его лице. В голове у вас мгновенно достроился «образ знака», и вы поняли почему тут стоит полицейский, и что вам срочно нужно нажать тормоз. Вы сбрасываете скорость до 55 км/ч, улыбка с лица полицейского мгновенно пропадает, и вы едите дальше.

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

Воображение – это моделирование ситуации на произвольных условиях.

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

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

Вам не кажется, что определяя интеллект мы упустили из виду какие-то важные компоненты или забыли о чем-то рассказать?

Да, мы упустили из виду восприятие, и забыли рассказать про память.

Представьте себе, что вы смотрите в глазок и видите часть буквы:

Что это за буква?

Может быть «К»?

Конечно нет, это же японский иероглиф «вечность».

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

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

Образ – субъективное видение реального мира, воспринимаемого при помощи органов чувств (каналов поступления информации).

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

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

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

Память служит для хранения образов и их взаимосвязей .

А воображение – это способность достраивать незавершенный образ .

Для обобщения приведем еще один эксперимент из мира животных:

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

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

Средства для решения проблемы (завершения образа), всегда имелись в наличии, но возникновение решения требовало преобразования имеющихся образов (требовалось обучиться с помощью воображения). Шимпанзе необходимо было представить себе (умственно перечислить все возможные варианты): «что будет если я возьму палку», «а что будет если…» и наиболее вероятные предположения проверить на практике, попробовать и получить обратную связь, опять вообразить, попробовать, получить обратную связь и так далее до тех пор, пока мы не завершим образ(научимся).

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

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

  • Пересечение избыточной информации из разных информационных каналов создает образ.
  • Обучение – это преобразование информационных потоков в информационное поле.
  • Информационное поле(память) – хранение образов и их взаимосвязей.
  • Воображение – …
    – «Уважаемый читатель, дострой образ воображения самостоятельно, используя избыточную информацию из своего жизненного опыта и этой статьи».
  • Интеллект – это способность обучаться и воображать.

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

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

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

Искусственный интеллект создал нейросеть 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. Возьмите из нужного коробка любой камешек. Можно закрыть глаза или кинуть монетку, главное — действовать наугад.
Если камень белый — нейросеть решает взять две спички. Если чёрный — одну. Положите камешек рядом с коробком, чтобы не забыть, какой именно «нейрон» принимал решение. После этого ходит человек — и так до тех пор, пока спички не закончатся.

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

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

Источники: