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

В первой половине 2016 года мир услышал о множестве разработок в области нейронных сетей - свои алгоритмы демонстрировали Google (сеть-игрок в го AlphaGo), Microsoft (ряд сервисов для идентификации изображений), стартапы MSQRD, Prisma и другие.

В закладки

Редакция сайт рассказывает, что из себя представляют нейронные сети, для чего они нужны, почему захватили планету именно сейчас, а не годами раньше или позже, сколько на них можно заработать и кто является основными игроками рынка. Своими мнениями также поделились эксперты из МФТИ, «Яндекса», Mail.Ru Group и Microsoft.

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

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

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

Руководитель направления «Поиск Mail.ru» в Mail.Ru Group Андрей Калинин отмечает, что нейронные сети способны решать такие же задачи, как и другие алгоритмы машинного обучения, разница заключается лишь в подходе к обучению.

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

Директор программ технологического сотрудничества Microsoft в России Влад Шершульский замечает, что сейчас нейросети применяются повсеместно: «Например, многие крупные интернет-сайты используют их, чтобы сделать реакцию на поведение пользователей более естественной и полезной своей аудитории. Нейросети лежат в основе большинства современных систем распознавания и синтеза речи, а также распознавания и обработки изображений. Они применяются в некоторых системах навигации, будь то промышленные роботы или беспилотные автомобили. Алгоритмы на основе нейросетей защищают информационные системы от атак злоумышленников и помогают выявлять незаконный контент в сети».

В ближайшей перспективе (5-10 лет), полагает Шершульский, нейронные сети будут использоваться ещё шире:

Представьте себе сельскохозяйственный комбайн, исполнительные механизмы которого снабжены множеством видеокамер. Он делает пять тысяч снимков в минуту каждого растения в полосе своей траектории и, используя нейросеть, анализирует - не сорняк ли это, не поражено ли оно болезнью или вредителями. И обрабатывает каждое растение индивидуально. Фантастика? Уже не совсем. А через пять лет может стать нормой. - Влад Шершульский, Microsoft

Заведующий лабораторией нейронных систем и глубокого обучения Центра живых систем МФТИ Михаил Бурцев приводит предположительную карту развития нейронных сетей на 2016-2018 годы:

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

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

Почему нейронные сети стали так популярны именно сейчас

Учёные занимаются разработкой искусственных нейронных сетей более 70 лет. Первую попытку формализовать нейронную сеть относят к 1943 году, когда два американских учёных (Уоррен Мак-Каллок и Уолтер Питтс) представили статью о логическом исчислении человеческих идей и нервной активности.

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

Трудоёмкая и длительная часть процесса разработки нейронной сети - её обучение. Для того, чтобы нейронная сеть могла корректно решать поставленные задачи, требуется «прогнать» её работу на десятках миллионов наборов входных данных. Именно с появлением различных технологий ускоренного обучения и связывают распространение нейросетей Андрей Калинин и Григорий Бакунов.

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

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

Каковы объёмы рынка нейронных сетей

«Очень легко посчитать. Можно взять любую область, в которой используется низкоквалифицированный труд, - например, работу операторов колл-центров - и просто вычесть все людские ресурсы. Я бы сказал, что речь идет о многомиллиардном рынке даже в рамках отдельной страны. Какое количество людей в мире задействовано на низкоквалифицированной работе, можно легко понять. Так что даже очень абстрактно говоря, думаю, речь идет о стомиллиардном рынке во всем мире», - говорит директор по распространению технологий «Яндекса» Григорий Бакунов.

По некоторым оценкам, больше половины профессий будет автоматизировано – это и есть максимальный объём, на который может быть увеличен рынок алгоритмов машинного обучения (и нейронных сетей в частности).- Андрей Калинин, Mail.Ru Group

«Алгоритмы машинного обучения - это следующий шаг в автоматизации любых процессов, в разработке любого программного обеспечения. Поэтому рынок как минимум совпадает со всем рынком ПО, а, скорее, превосходит его, потому что становится возможно делать новые интеллектуальные решения, недоступные старому ПО», - продолжает руководитель направления «Поиск Mail.ru» в Mail.Ru Group Андрей Калинин.

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

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

Способности собственных нейронных сетей демонстрировали и Google (технология AlphaGo выиграла у чемпиона в го; в марте 2016 года корпорация продала на аукционе 29 картин, нарисованных нейросетями и так далее), и Microsoft (проект CaptionBot , распознающий изображения на снимках и автоматически генерирующий подписи к ним; проект WhatDog , по фотографии определяющий породу собаки; сервис HowOld , определяющий возраст человека на снимке и так далее), и «Яндекс» (в июне команда встроила в приложение «Авто.ру» сервис для распознавания автомобилей на снимках; представила записанный нейросетями музыкальный альбом; в мае создала проект LikeMo.net для рисования в стиле известных художников).

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

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

«В первую очередь это делается для того, чтобы показать возможности технологии. Другой причины, на самом деле, нет. Если речь идёт о Prisma, то понятно, для чего это делали они. Ребята построили некоторый пайплайн, который позволяет им работать с картинками. Для демонстрации этого они избрали для себя довольно простой способ создания стилизаций. Почему бы и нет? Это просто демонстрация работы алгоритмов», - говорит Григорий Бакунов из «Яндекса».

Другого мнения придерживается Андрей Калинин из Mail.Ru Group: «Конечно, это эффектно с точки зрения публики. С другой стороны, я бы не сказал, что развлекательные продукты не могут быть применены в более полезных областях. Например, задача по стилизации образов крайне актуальна для целого ряда индустрий (дизайн, компьютерные игры, мультипликация - вот лишь несколько примеров), и полноценное использование нейросетей может существенно оптимизировать стоимость и методы создания контента для них».

Основные игроки на рынке нейронных сетей

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

Среди основных игроков рынка Калинин упоминает Google и её подразделение Google DeepMind, создавшее сеть AlphaGo, и Google Brain. Собственные разработки в этой области есть у Microsoft - ими занимается лаборатория Microsoft Research. Созданием нейронных сетей занимаются в IBM, Facebook (подразделение Facebook AI Research), Baidu (Baidu Institute of Deep Learning) и другие. Множество разработок ведётся в технических университетах по всему миру.

Директор по распространению технологий «Яндекса» Григорий Бакунов отмечает, что интересные разработки в области нейронных сетей встречаются и среди стартапов. «Я бы вспомнил, например, компанию ClarifAI . Это небольшой стартап, сделанный когда-то выходцами из Google. Сейчас они, пожалуй, лучше всех в мире умеют определять содержимое картинки». К таким стартапам относятся и MSQRD, и Prisma, и другие.

В России разработками в области нейронных сетей занимаются не только стартапы, но и крупные технологические компании - например, холдинг Mail.Ru Group применяет нейросети для обработки и классификации текстов в «Поиске», анализа изображений. Компания также ведёт экспериментальные разработки, связанные с ботами и диалоговыми системами.

Созданием собственных нейросетей занимается и «Яндекс»: «В основном такие сети уже используются в работе с изображениями, со звуком, но мы исследуем их возможности и в других областях. Сейчас мы много экспериментов ставим в использовании нейросетей в работе с текстом». Разработки ведутся в университетах: в «Сколтехе», МФТИ, МГУ, ВШЭ и других.

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

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

С чего всё началось

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

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

Как же работает нейросеть?

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

Какими бывают нейронные сети и что они умеют

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

Свёрточные нейросети

Нейроны делятся на группы, каждая группа вычисляет заданную ей характеристику. В 1993 году французский учёный Ян Лекун показал миру LeNet 1 - первую свёрточную нейронную сеть, которая быстро и точно могла распознавать цифры, написанные на бумаге от руки. Смотрите сами:

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

Рекуррентные нейросети

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

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

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

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

Комбинированные нейросети (свёрточные + рекуррентные)

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

Нейросети постоянно самообучаются. Благодаря этому процессу:

1. Skype внедрил возможность синхронного перевода уже для 10 языков. Среди которых, на минуточку, есть русский и японский - одни из самых сложных в мире. Конечно, качество перевода требует серьёзной доработки, но сам факт того, что уже сейчас вы можете общаться с коллегами из Японии по-русски и быть уверенными, что вас поймут, вдохновляет.

2. Яндекс на базе нейронных сетей создал два поисковых алгоритма: «Палех» и «Королёв». Первый помогал найти максимально релевантные сайты для низкочастотных запросов. «Палех» изучал заголовки страниц и сопоставлял их смысл со смыслом запросов. На основе «Палеха» появился «Королёв». Этот алгоритм оценивает не только заголовок, но и весь текстовый контент страницы. Поиск становится всё точнее, а владельцы сайтов разумнее начинают подходить к наполнению страниц.

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

4. У Google Inbox с помощью нейросетей осуществляется ответ на сообщение. Развитие технологий идет полный ходом, и сегодня сеть уже изучает переписку и генерирует возможные варианты ответа. Можно не тратить время на печать и не бояться забыть какую-нибудь важную договорённость.

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

6. Facebook активно работает над DeepText AI - программой для коммуникаций, которая понимает жаргон и чистит чатики от обсценной лексики.

7. Приложения вроде Prisma и Fabby, созданные на нейросетях, создают изображения и видео:

Colorize восстанавливает цвета на чёрно-белых фото (удивите бабушку!).

MakeUp Plus подбирает для девушек идеальную помаду из реального ассортимента реальных брендов: Bobbi Brown, Clinique, Lancome и YSL уже в деле.


8.
Apple и Microsoft постоянно апгрейдят свои нейронные Siri и Contana. Пока они только исполняют наши приказы, но уже в ближайшем будущем начнут проявлять инициативу: давать рекомендации и предугадывать наши желания.

А что ещё нас ждет в будущем?

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

Аграрный сектор

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

Медицина

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

Маркетинг

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

Ecommerce

Ecommerce будет внедрён повсеместно. Уже не потребуется переходить в интернет-магазин по ссылке: вы сможете купить всё там, где видите, в один клик. Например, читаете вы эту статью через несколько лет. Очень вам нравится помада на скрине из приложения MakeUp Plus (см. выше). Вы кликаете на неё и попадаете сразу в корзину. Или смотрите видео про последнюю модель Hololens (очки смешанной реальности) и тут же оформляете заказ прямо из YouTube.

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

P. S. Зинаида Фолс - нейронная сеть Яндекса, пишущая стихи. Оцените произведение, которое машина написала, обучившись на Маяковском (орфография и пунктуация сохранены):

« Это »

это
всего навсего
что-то
в будущем
и мощь
у того человека
есть на свете все или нет
это кровьа вокруг
по рукам
жиреет
слава у
земли
с треском в клюве

Впечатляет, правда?

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

Краткое описание феномена

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

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

Основными элементами такой сети являются:

  1. Искусственные нейроны - элементарные, связанные между собой единицы;
  2. Синапс - соединение, которое служит для отправки-получения данных между нейронами;
  3. Сигнал - информация, подлежащая передаче.

Сверточные нейронные сети

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

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

Экскурс в историю

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

  • Первая вычислительная модель пороговой логики на основе математики и алгоритмов была построена Уорреном Маккалоком и Уолтером Питттсом в 1943 году;
  • В конце 1940-х годов Дональд Хебб разработал механизм нейронной пластичности и тем самым заложил правила обучения автоматов;
  • 1954 годом датируется первое применение теоретических открытий в работе ЭВМ. Элисон Кларк использовал для этих целей обычный калькулятор;
  • Фрэнк Розенблатт в 1958 году разработал алгоритм распознавания образов и математическую нотацию к нему;
  • В конце 1960-х научный интерес к проблематике заметно угас ввиду невозможности его применения на аппаратных мощностях того времени;
  • Кибернетики вернулись к нейронным сетям лишь в начале 1980-х: появилась система с механизмом обратной связи, разработаны алгоритмы самообучения и заложены основы дисциплины data mining;
  • К 2000-м вычислительная мощность ЭВМ выросла настолько, что позволила реализовать самые смелые чаяния кабинетных ученых. Широкое распространение получили программы распознавания голоса, компьютерного зрения и т. д.

Нейронная сеть Хопфилда

В 1982 году американский ученый Джон Хопфилд описал новый вид вычислительной системы, которая теперь носит его имя. Среди ее характерных особенностей:

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

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

Основные ограничения и проблемы

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

  1. Требуются значительные затраты времени на сбор подходящей информации и последующее обучение машины. В первую очередь касается робототехники;
  2. Ни одна из существующих ныне систем не способна решить фундаментальные математические проблемы (задача коммивояжера и факторизация больших чисел);
  3. Высокая сложность создания, настройки и обслуживания систем. Для этого требуются специалисты с очень высокой квалификацией, оплачивать услуги которых могут позволить себе только очень крупные корпорации;
  4. Для эффективной работы необходимо наличие высокопроизводительных ферм ЭВМ и программного обеспечения. Проблема постепенно решается благодаря увеличению аппаратной мощности графических процессоров: с 1991 по 2015 годы она возросла в миллион раз.

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

Рекуррентные нейронные сети

Если соединения между блоками образуют ориентированный цикл (начинаются и заканчиваются на одной и той же вершине графа), то речь идет о рекуррентной нейронной сети :

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

Благодаря особенностям конструкции сеть используется для решения широкого круга задач:

  • Распознавание вербальных и текстовых данных;
  • В то же время, понимание смысла текста затруднено: машина «видит» лишь визуальную картинку без привязки к качественным характеристикам;
  • РНН в настоящее время используется в системах автоматизированного перевода текста (например, Яндекс.Переводчик).

Если в XX веке умнейшие люди планеты занимались проектированием ракет, то ныне объектом приложения их интеллектуального потенциала являются нейронные сети. Что это, сложно сегодня не знать, ведь о достижении в этой области трубят ведущие СМИ на каждом шагу. Самые известные примеры: голосовой помощник Apple Siri, онлайн-переводчик Google Translate, поисковый движок Яндекса «Палех». И это только начало на пути к полноценному искусственному интеллекту.

Видео про устройство нейронных сетей

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

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

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

Экскурс в биологию

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

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

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

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

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

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

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

Что внутри?

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

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

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

Машинное обучение

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

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

Однако в некоторых случаях «неправильные учебники» могут свести на нет все старания разработчиков. Скудный набор однообразных картинок приведет к тому, что программа попросту «зазубрит» нужные определения для каждого изображения и не будет анализировать его мельчайшие детали. Специально для таких целей существует база MNIST (Mixed National Institute of Standards and Technology). Она включает в себя десятки стандартизированных образцов рукописных цифр на изображениях размером 28х28 пикселей.

MNIST полностью открыта для использования, каждый желающий разработчик может проверить работоспособность своей нейронной сети по базе. Кроме MNIST можно воспользоваться базой ImageNet от Стэнфордского университета. Она включает в себя около 14 млн. изображений разного формата.

Виды нейронных сетей

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

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

Цель и сфера применения

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

  • Классификация – распределение большого массива данных исходя из определенных параметров. Например, программа может решить, кому из клиентов банка выдавать кредит, основываясь на их платежеспособности и кредитной истории;
  • Прогнозирование – предсказание исхода событий с некой долей вероятности. Например, сколько будет стоить пакет акций на фондовом рынке;
  • Распознавание – выявление определенных объектов на фото или видео. Простейший пример – автоматическое определение лица в камере смартфона.

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

Более того, даже творчество можно поставить на поток. Усилиями разработчиков «Яндекса» появился первый музыкальный альбом «404», записанный нейронной сетью. Альбом стал первым сборником несуществующей группы Нейронная Оборона, основанной на стиле текстов Егора Летова.

ИНС могут стать отправной точкой для дальнейшего развития ассистентов вроде Siri или Cortana. Уже сейчас такие системы могут поддержать простой разговор и ответить на нужный запрос пользователя. Сервис Deep Dream, запустивший бум вокруг нейронных сетей в 2016 году является побочным продуктом от разработчиков Google. На примере обработанных им фотографий можно представить, как машина видит то или иное изображение своим «мозгом». Конечно, пока неразборчивые сплетения больше похожи на негативное воздействие психоделических наркотиков. Тем не менее это уже первый серьезный шаг на пути к полноценному искусственному интеллекту.

Соответственно, нейронная сеть берет на вход два числа и должна на выходе дать другое число - ответ. Теперь о самих нейронных сетях.

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


Нейронная сеть - это последовательность нейронов, соединенных между собой синапсами. Структура нейронной сети пришла в мир программирования прямиком из биологии. Благодаря такой структуре, машина обретает способность анализировать и даже запоминать различную информацию. Нейронные сети также способны не только анализировать входящую информацию, но и воспроизводить ее из своей памяти. Заинтересовавшимся обязательно к просмотру 2 видео из TED Talks: Видео 1 , Видео 2). Другими словами, нейросеть это машинная интерпретация мозга человека, в котором находятся миллионы нейронов передающих информацию в виде электрических импульсов.

Какие бывают нейронные сети?

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

Для чего нужны нейронные сети?

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

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

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

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

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

Что такое нейрон?

Нейрон - это вычислительная единица, которая получает информацию, производит над ней простые вычисления и передает ее дальше. Они делятся на три основных типа: входной (синий), скрытый (красный) и выходной (зеленый). Также есть нейрон смещения и контекстный нейрон о которых мы поговорим в следующей статье. В том случае, когда нейросеть состоит из большого количества нейронов, вводят термин слоя. Соответственно, есть входной слой, который получает информацию, n скрытых слоев (обычно их не больше 3), которые ее обрабатывают и выходной слой, который выводит результат. У каждого из нейронов есть 2 основных параметра: входные данные (input data) и выходные данные (output data). В случае входного нейрона: input=output. В остальных, в поле input попадает суммарная информация всех нейронов с предыдущего слоя, после чего, она нормализуется, с помощью функции активации (пока что просто представим ее f(x)) и попадает в поле output.


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

Что такое синапс?


Синапс это связь между двумя нейронами. У синапсов есть 1 параметр - вес. Благодаря ему, входная информация изменяется, когда передается от одного нейрона к другому. Допустим, есть 3 нейрона, которые передают информацию следующему. Тогда у нас есть 3 веса, соответствующие каждому из этих нейронов. У того нейрона, у которого вес будет больше, та информация и будет доминирующей в следующем нейроне (пример - смешение цветов). На самом деле, совокупность весов нейронной сети или матрица весов - это своеобразный мозг всей системы. Именно благодаря этим весам, входная информация обрабатывается и превращается в результат.

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

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


В данном примере изображена часть нейронной сети, где буквами I обозначены входные нейроны, буквой H - скрытый нейрон, а буквой w - веса. Из формулы видно, что входная информация - это сумма всех входных данных, умноженных на соответствующие им веса. Тогда дадим на вход 1 и 0. Пусть w1=0.4 и w2 = 0.7 Входные данные нейрона Н1 будут следующими: 1*0.4+0*0.7=0.4. Теперь когда у нас есть входные данные, мы можем получить выходные данные, подставив входное значение в функцию активации (подробнее о ней далее). Теперь, когда у нас есть выходные данные, мы передаем их дальше. И так, мы повторяем для всех слоев, пока не дойдем до выходного нейрона. Запустив такую сеть в первый раз мы увидим, что ответ далек от правильно, потому что сеть не натренирована. Чтобы улучшить результаты мы будем ее тренировать. Но прежде чем узнать как это делать, давайте введем несколько терминов и свойств нейронной сети.

Функция активации

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

Линейная функция


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

Сигмоид


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

Гиперболический тангенс


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

Тренировочный сет

Тренировочный сет - это последовательность данных, которыми оперирует нейронная сеть. В нашем случае исключительного или (xor) у нас всего 4 разных исхода то есть у нас будет 4 тренировочных сета: 0xor0=0, 0xor1=1, 1xor0=1,1xor1=0.

Итерация

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

Эпоха

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


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

Ошибка

Ошибка - это процентная величина, отражающая расхождение между ожидаемым и полученным ответами. Ошибка формируется каждую эпоху и должна идти на спад. Если этого не происходит, значит, вы что-то делаете не так. Ошибку можно вычислить разными путями, но мы рассмотрим лишь три основных способа: Mean Squared Error (далее MSE), Root MSE и Arctan. Здесь нет какого-либо ограничения на использование, как в функции активации, и вы вольны выбрать любой метод, который будет приносить вам наилучший результат. Стоит лишь учитывать, что каждый метод считает ошибки по разному. У Arctan, ошибка, почти всегда, будет больше, так как он работает по принципу: чем больше разница, тем больше ошибка. У Root MSE будет наименьшая ошибка, поэтому, чаще всего, используют MSE, которая сохраняет баланс в вычислении ошибки.


Root MSE



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

Задача

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

Данные: I1=1, I2=0, w1=0.45, w2=0.78 ,w3=-0.12 ,w4=0.13 ,w5=1.5 ,w6=-2.3.

Похожие статьи

© 2024 alc56.ru. Компьютерные подсказки - Alc74.