Технологии

Как устроены нейронные сети, и могут ли они захватить человечество

12064
Автор:
Ксения Камынина
26 декабря 2016 10:02
6+
Как устроены нейронные сети, и могут ли они захватить человечество
Ликбез по технологии, которую вы должны понимать, живя в 21 веке.

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

Почему о нейросетях заговорили в 2016 году?


Фото, обработанное нейросетью в приложении Prisma

Разработкой искусственных нейросетей учёные занимаются уже около 70 лет, и в сфере профессионалов, они никого не удивляют. Но с появлением более быстрых машин и больших баз данных произошёл прорыв в этой области. Обучение — самая ресурсозатратная часть в разработке нейронной сети. Для этого требуются, например, миллионы наборов входных данных и мощные машины — раньше ничего такого не было. А сейчас есть и общедоступный массив размеченных картинок (ImageNet), и видеокарты с высокой производительностью, и технологии ускоренного обучения. Кроме того, широкую огласку нейронные сети получили благодаря предобученным прототипам, которые позволили на их базе создавать приложения и сервисы без глубокой подготовки. Это, например, PrismaMSQRDMlvchdeepart.io для массового рынка — которые захватили Instagram и в принципе познакомили обычных людей с термином «нейронные сети». Свою долю внесли и шуточные проекты, вроде альбома «Нейронная оборона» и твиттер-бота, который с помощью нейросети распознаёт, что находится на фото: кот или хлеб. И, конечно, интерес к этой области со стороны таких гигантов, как Google, Microsoft и Яндекс, которые также весь 2016 год много говорили о нейросетях и делали интересные продукты, вроде экспериментов с Google Translate или алгоритма AlphaGo, который обыграл в го чемпиона Европы. Освещение в СМИ и медиа вывело нейронные сети в эпицентр всеобщего внимания, которое подпитывалось ещё и доступностью: вот они — нейросети и deep learning алгоритмы, здесь и сейчас, они работают и мы ими пользуемся, не являясь специалистами в этой области. Это будущее, которое уже наступило.

 

Андрей Сорокин

архитектор программного обеспечения DataArt,
кандидат физико-математических наук


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

Допустим, есть задача: распознать рукописные цифры от 0 до 9. Разные люди пишут их по-разному: может отличаться размер и форма, у кого-то в цифре «7» перечёркнута ножка, кто-то использует петельку в цифре «2», а кто-то не замыкает линию в цифре «8». Если человек посмотрит на рукописное число, то, скорее всего, без труда сможет его прочитать, независимо от того, в какой стране родился и как сам привык писать. Эта задача кажется предельно простой, равно как и мысль о том, что легко создать программу, которая будет анализировать изображения рукописных цифр без участия человека и «читать» их. Но это не так.

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

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

0 = 1
1 = 0
2 = 0
3 = 0
4 = 1
5 = 0
6 = 1
7 = 0
8 = 2
9 = 1

Напротив каждой цифры — количество замкнутых контуров, содержащихся в ней. Это не даёт возможности уникального распознавания, но позволяет выделить как минимум три класса цифр: без контуров (1, 2, 3, 5, 7), содержащих один контур (0, 4, 6, 9), два контура (8). Так единственная компонента в признаке позволяет осуществить достаточно грубое сравнение, но в дальнейшем это может значительно упростить решение задачи распознавания. Можно придумать множество способов выделения отдельных компонент признака: соотношение высоты и ширины объекта, относительное положение центра масс, соотношение длин отрезков, проведённых между отдельными точками. Чем их больше, тем точнее будет распознавание, если эти признаки позволяют различать классы.

Заключительный этап — классификация признаков. В нашем примере классов объектов ровно 10 — столько же, сколько и цифр от 0 до 9. Эти классы и их количество нам известны (хотя это и не всегда так в задачах распознавания образов). Чтобы понять, что за цифра представлена на изображении, необходимо взять набор чисел — признаков, полученных на предыдущем этапе обработки, и использовать классификатор — алгоритм или метод, позволяющий установить соответствие признака некоторому классу. Именно он делает вывод о том, что, например, набор из ста признаков объекта соответствует цифре 6, а значит, она на изображении.

 

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

Ещё проще на примере «Кот или хлеб»

Предыдущее
Следующее
1 фото из 4

Что из себя представляют нейросети?

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

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

 

Как они обучаются?

Обучение с учителем. В этом случае сети подаются на вход данные из некоторого обучающего набора. В нашем примере это признаки объектов, которые преобразуются в интенсивность сигналов входных нейронов. Затем сигналы суммируются и активируют скрытые нейроны. Этот процесс повторяется слой за слоем, пока не будет достигнут выходной слой нейросети. Сигналы нейронов можно трактовать как ответ на некий вопрос, например, о принадлежности изображения какому-то классу. Если это ответ правильный, то переходят к следующему образцу, в противном случае происходит процесс обратного распространения ошибки. Это можно трактовать так: учитель поставил свою оценку за этот ответ, и нужно выучить новое правило. Если параметры нейросети подобраны верно, то, обработав достаточное количество обучающих образцов на входе, нейросеть становится способна классифицировать незнакомые объекты. В нашем примере можно собрать изображения чисел от 0 до 9, написанные множество раз и разными людьми. Это будет обучающий набор. Он делится на две части: одна используется для обучения классификатора, а вторая — контрольный набор — для проверки качества работы классификатора и для вычисления ошибок.

Обучение без учителя. При поступлении нового образца данных нейросеть пытается найти наиболее «похожий» образец из ранее обработанных и «объединяет» своё представление о целой группе образцов. Если встречается что-то действительно уникальное, это можно трактовать как выделение сетью нового кластера. Здесь никто не контролирует результат. Это используется для грубой оценки структуры данных. То есть мы показали сети 10000 изображений рукописных цифр, она сказала, что примерно может разбить их на 20-30 различных типов объектов. Верно ли это? Возможно верно, она уловила закономерности почерка и особенности написания цифр. Можем ли мы использовать это на практике? Не всегда, всё-таки чтобы распознать цифры, нам надо ограничить фантазию классификатора 10 классами цифр. Обучение без учителя используется для поиска зависимостей в больших объёмах необработанных и несистематизированных данных. Например, в медицине. Есть огромное число особенностей каждого пациента: уровень сахара в крови, артериальное давление, рост, вес, возраст, вредные привычки, наследственные болезни. Вручную выявлять закономерности очень сложно и трудоёмко. А так — анализ данных подскажет, что можно связывать сердечно-сосудистые заболевания с приёмом некоторого лекарства, и тому подобное.

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

Обучение с подкреплением. Оно применяется для создания «интеллектуальных агентов» — программ, способных самостоятельно принимать решения в некотором замкнутом окружении. Это программы-автопилоты, системы управления дронами и манипуляторами промышленных роботов, разнообразные боты. Нейросети для таких задач часто называют DQN (Deep Q-Network), подразумевая что такая сеть учится максимизировать некоторую функцию «вознаграждения» (Quality function), которая отображает параметры среды и возможные действия на некоторую величину «награды». Особенно хорошие результаты DQN-агенты показывают в компьютерных играх. Среда там полностью виртуальная, и существует дешевый способ обучения агентов через игры с самими с собой. Со взаимодействием с физическим миром всё сложнее, но прогресс в этой области всё же вызывает беспокойство у многих людей. Например, Стивен Хокинг считает, что алгоритмы могут в скором времени вытеснить людей из многих привычных специализаций, не связанных с творческим и интеллектуальным трудом. И эффект от этого будет настолько велик, что потребует пересмотра экономического уклада современного общества.

 

Как нейросети пишут музыку и картины?


Картина, написанная нейронной сетью в MIT Computer Science and AI Laboratory Google

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

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

 

Что умеют делать нейросети уже сейчас?

  • Диагностировать заболевания сельскохозяйственных культур и других растений по фото с точностью до 99,35%. Что очень ценно для аграрного сектора, особенно в развивающихся странах, где нет специальных лабораторий и необходимых специалистов.

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

  • Создавать 3D портрет по одной 2D фотографии. Эта технология значительно проще сканирования и используется для моделирования виртуальной и дополненной реальности.

  • Сочинять песни по фото. Разработчики из университета Торонто создали нейросеть, которой можно показать снимок, а она в режиме реального времени напишет мелодию и слова.

  • Делать из чёрно-белых снимков цветные. Это заслуга американской компании Algoritmia, разработавшей одноименный сервис. А тут можно посмотреть 10 культовых чёрно-белых снимков, обработанных в Algoritmia.

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

  • Распознавать речь по губам лучше человека. Да, почти как в фильме «2001 год: Космическая одиссея». Это удалось сделать Разработчикам из Оксфордского университета.

  • Экономить на счетах. Специалисты Google использовали нейросеть для оптимизации энергоэффективности своих дата-центров, что поможет им за несколько лет сэкономить сотни миллионов долларов.

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

  • Писать музыку, сценарии и даже картины, которые уходят на аукционе по 8000 долларов. Можно послушать альбом «Нейронной обороны» или хоралы, написанные нейросетью за Баха. А на Vimeo есть короткометражка, снятая по сценарию нейронной сети.

  • Превращать фотографии в картины и автоматически редактировать их. Вы, конечно, слышали об этих сервисах —  PrismaMSQRDMlvchdeepart.io и так далее.

  • Имитировать речь человека достаточно реалистично. В Google DeepMind создали алгоритм для синтеза человеческой речи — WaveNet. Звучит он не так идеально, как в фильме «Она» со Скарлетт Йоханссон, но более чем убедительно.

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

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

     

Их можно научить предсказывать будущее?

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

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

 

Нейросети могут захватить человечество?

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

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

Благодарим за помощь в подготовке материла также компанию DataArt в Воронеже и ведущего специалиста Дениса Шипилова.

Фото: @edraderphotography, nut-code-monkey.blogspot.ru, MIT Computer Science and AI Laboratory Google, glowingpython.blogspot.ru, скриншоты из фильма «Из машины»

Интеллектуальный партнёр

Поделиться: