Нейросеть

НейросетьНейросеть (также "нейронная сеть" или "искусственная нейронная сеть" (англ. "Neural Network")) – математическая и кибернетическая модель, имитирующая работу реальной сети нервных клеток живого организма. Создаваться нейросеть может как лишь в виде программной реализации, так и в виде целого программно-аппаратного комплекса.

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

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

Зачем нужны нейронные сети

Нейросеть Зачем нужны нейронные сети
Язык:Русский
Формат:
Обновлено:2018-01-21
Автор:





Зачем нужны нейронные сети

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

Думаю, практически все видели фантастический блокбастер "Терминатор". Суть его сводится к тому, что некая "разумная" сеть под названием "Скайнет" взбунтовалась против людей, решив захватить мир при помощи массированной ядерной атаки и разного рода роботов (собственно, терминаторов).

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

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

Чтобы понять что такое искусственная нейросеть, нужно иметь представление о реальной биологической нейронной сети. Если упрощённо, то структурной единицей её является нейрон (в ИНС его называют ещё перцептроном), который может принимать и передавать по своим отросткам (коротким дендритам или длинным аксонам) нервные импульсы.

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

Нейрон, строение

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

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

Собака Павлова

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

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

Здесь уместно привести аналогию с изучением детьми букв алфавита. Если показать, скажем, букву "А" взрослому, он её сразу узнает, поскольку имеет уже предварительный опыт её опознания. Ребёнок же, который только учит буквы, должен для начала увидеть различные варианты начертания буквы "А" и сопряжения её с другими буквами, прежде чем научится безошибочно её определять.

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

Варианты буквы А

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


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

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

  1. Программные. Полностью виртуальные сети, реализованные на программном уровне и выполняющиеся на обычном ПК или сервере.
  2. Программно-аппаратные. Нейросети, которые управляются специальным ПО, но для получения данных или вывода их используют специфическое аппаратное обеспечение Например, искусственные рецепторы, фотодатчики и т.п.
  3. Аппаратные (или аналоговые). Сети, которые используют в качестве нейронов не программный код, а реальные микропроцессоры или иные устройства приёма-передачи сигналов. Полностью аппаратными были нейросети уже прошлого ХХ века. Сегодня чаще используются именно программно-аппаратные решения.

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

Пример обучения программной нейросети

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

Нейросеть для обработки фото Ostagram

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

Протез руки с нейросетью

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

Визуализация структуры нейросетей

Снабжённые собственной памятью, такие процессоры (IPU – сокр. от Intelligent Processor Unit) смогут в разы ускорить выполнение различных расчётов, даже в сравнении с используемыми нынче решениями на базе плат видеоускорения с графическими процессорами (GPU).

Популярные сервисы с нейросетями

На самом деле нейросети уже совсем рядом с нами! Крупные поисковые гиганты такие как Гугл и Яндекс используют их как для улучшения алгоритмов поисковой выдачи, так и для некоторых отдельных сервисов, вроде переводчика Google Translate или новомодного голосового помощника Алиса от Яндекса. Однако, есть и более узкоспециализированные сервисы и приложения, которые используют нейросети в различных областях науки и искусства.

Нейросети в изобразительном искусстве

Фактически именно с изобразительного искусства, а точнее с фотообработки, и начался в прошлом году информационный бум вокруг нейросетей. В AppStore и Google Play появилось уже упомянутое нами приложение Prisma. С тех пор у него появилось довольно много подражателей, которые превращают фотографии пользователей в оригинальные картины. Однако, нейросети умеют не только стилизовать фото, но и самостоятельно рисовать, дорисовывать или угадывать Ваши рисунки!

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

Сервис рисования аватаров MakeGirlsMoe

Очень большое распространение получили также нейросети, которые дорисовывают Ваши "художества". Например, из кривых каляк-маляк мышью нейросеть Neural Doodle может создать вполне приличные картины в стиле известных художников-импрессионистов. А, например, простенький онлайн-сервис Pix2Pix превращает Ваши каракули в котов :)

Рисование кота в Pix2Pix

Много различных разработок на базе нейросетей есть у уже упомянутого Гугла. Для экспериментов с ними даже создан отдельный сайт AIExperiments. Среди всех сервисов мне лично приглянулась небольшая игра под названием QuickDraw. Вам даётся задание за 20 секунд нарисовать что-то, а искусственный интеллект попытается за это время по незавершённому рисунку угадать, что Вы пытаетесь изобразить:

QuickDraw

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

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

Algorithmia

Нейросети в музыке

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

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

Mubert

Другим примером более функционального музыкального ПО на базе нейросети может стать сервис Flow-Machines. Этот сервис позволяет создавать композиции преимущественно в стилях джаз, латина и бродвейский поп. Вам нужно лишь задать последовательность аккордов, а нейросеть сама создаст на них гармоничную мелодию. Единственный недостаток, в данный момент публичная регистрация на сервисе не работает, поэтому "пощупать" что к чему у меня, увы, не получилось :(

Зато генератор музыки Amper Music доступен всем и работает весьма сносно! В бесплатной версии Вы можете генерировать треки в стилях хип-хоп, саундтрек к фильмам, рок, фолк или поп 90-х. Из настроек доступен выбор настроения, темпа, длительности, тональности и набора инструментов для будущей композиции:

Amper Music

Нейросети в других отраслях

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

Для специалистов в области сайтостроения и дизайна в качестве интересных и полезных инструментов можно назвать сервисы uKit AI, Everypixel и Logojoy. Первый сервис позволяет получить кликабельный современный шаблон для сайта – отличное решение для тех, кто решился на редизайн. Второй предлагает нам инструмент для поиска изображений с возможностью фильтрации по различным параметрам и одновременной оценки привлекательности картинки для пользователя. Последний, как видно из названия, позволяет генерировать логотипы:

Logojoy

Кстати, в данный момент ведётся активное обучение нейросети под названием Pix2Code, которая призвана облегчить (а то и вовсе заменить) работу верстальщика сайтов. Задача данной сети – генерация функционального кода сайта на HTML и CSS по предоставленному макету в формате JPEG.

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

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

Выводы

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

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

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







Полезный совет:


Система проверки ошибок от Mistakes.ru