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

Математик Дмитрий Ветров о машинном обучении, третьем поколении нейронных сетей и компьютерном зрении

В настоящее время теория и практика машинного обучения переживают настоящую «глубинную революцию», вызванную успешным применением методов deep learning, представляющих собой третье поколение нейронных сетей. В отличие от классических (второго поколения) нейронных сетей 80–90-х годов прошлого века, новые парадигмы обучения позволили избавиться от ряда проблем, которые сдерживали распространение и успешное применение традиционных нейронных сетей. Сети, обученные с помощью алгоритмов глубинного обучения, не просто превзошли по точности лучшие альтернативные подходы, но и в ряде задач проявили зачатки понимания смысла подаваемой информации (например, при распознавании изображений, анализе текстовой информации и так далее). Наиболее успешные современные промышленные методы компьютерного зрения и распознавания речи построены на использовании глубинных сетей, а гиганты IT-индустрии, такие как Apple, Google, Facebook, скупают коллективы исследователей, занимающихся глубинным обучением целыми лабораториями.

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

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

В 2012 году на главной мировой конференции по машинному обучению сотрудники корпорации Google представили нейронную сеть, обученную на базе фотографий flickr, показавшую рекордные результаты по точности классификации фотореалистичных изображений. Среди прочего было отмечено, что выходы некоторых нейронов допускали интерпретацию и являлись высокоуровневыми фильтрами, дававшими отклик на лица людей, морды котов и так далее. На этом основании ряд наблюдателей сделали вывод о том, что отдельные нейроны в нейронной сети способны выучивать разнотипные закономерности в данных, настраиваясь каждый на свой тип закономерности. На самом деле в современных алгоритмах обучения нейронных сетей нигде не используется факт индивидуальной настройки отдельных нейронов на закономерности определенного рода. Более того, такая интерпретируемая «специализация» никак в ходе обучения сети не поощряется, поэтому трудно ожидать, что отдельные нейроны окажутся более специфичны, чем случайная комбинация их выходов. При передаче сигнала по нейронной сети на вход каждому нейрону очередного слоя подается линейная комбинация выходов нейронов с предыдущего слоя, что примерно соответствует эксперименту, проведенному авторами статьи, в котором они брали случайные линейные комбинации выходов нейронов одного слоя. Более того, в работах последних лет, например, по так называемым экстремально рандомизированным случайным лесам (extremely randomized random forest), было показано, что применение случайных пороговых решающих правил к большому количеству случайных линейных комбинаций признаков объекта дает результаты, близкие к результатам, полученным после применения продвинутых и трудоемких методов машинного обучения. Главное, чтобы обучающая выборка была большого размера и линейных комбинаций было достаточно много. Так что полученный авторами статьи результат можно рассматривать как некоторый аналог того, что было получено несколькими годами ранее для случайных лесов. Поскольку нейронная сеть всегда использует линейные комбинации выходов нейронов, нет никаких оснований ожидать, что разнотипные закономерности будут «расщепляться» по отдельным нейронам: никакого информационного выигрыша от этого не будет. Разумеется, можно попробовать модифицировать процедуру обучения, добавив туда явное требование расщепления по нейронам (например, применив вариации метода независимых компонент), но это уже совсем другая история.

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

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

Дмитрий Ветров

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

 

материал с postnauka.ru