Как и зачем исследовать логику нейросетей
Прогресс в машинном обучении, достигнутый за последнее десятилетие, подарил нам как множество новых возможностей, так и неочевидные проблемы: модели машинного обучения стали настолько сложными и большими, что понять логику их действий все труднее. Вместе с Yandex Research, который проводит исследования машинного обучения мирового уровня, рассказываем, как разработчики изучают современные ML-алгоритмы — и почему это стоит делать, даже если они работают хорошо.
Медиа охотно говорят про успехи машинного обучения в самых разных сферах: от обработки фотографий до диагностики рака. Но несмотря на очевидный прогресс, это всё ещё очень молодая область, фундаментальные задачи которой нам только предстоит решить. В чём они заключаются и каким может быть их решение, мы расскажем в «Есть задача» — совместном проекте Yandex Research и N + 1.
Нейросети на слуху последние несколько лет. Может показаться, что это новый тип алгоритмов. Отчасти так оно и есть: многие архитектуры нейросетей, успевшие стать классическими, появились лишь несколько лет назад. Но идея повторить в машине принцип работы нейронных сетей была реализована на самой заре машинного обучения.
В конце 1950-х годов Фрэнк Розенблатт описал и реализовал «в железе» перцептрон — простейшую архитектуру искусственных нейросетей, которая заложила основу для современных нейросетей (а многослойные перцептроны широко применяются до сих пор).
Розенблатт показал работу перцептрона, обучив его распознавать знаки и символы, что для 1958 года было серьезным успехом. Но, пожалуй, главное достижение и следствие этого заключалось в укреплении идеи, что для создания машины инженеру не нужно вручную прописывать набор правил — они могут родиться сами в виде весов во время обучения.
В дальнейшем ученые придумывали все новые и новые архитектуры моделей машинного обучения, причем не только нейросетевые. И хотя математические операции внутри моделей по отдельности оставались понятными, их количество и взаимное влияние усложняло анализ работы алгоритмов.
Старший исследователь Yandex Research Андрей Малинин объясняет: «Представьте огромный часовой механизм размером с небоскреб, внутри которого крутятся миллиарды шестеренок размером в ноготь — все красиво крутится, но ничего не понятно. Мы можем посмотреть на какой-то локальный кусочек с парой шестеренок, и вроде ясно, как в нем все работает, но неясно, как это встраивается в механизм в целом».
В 2012 году в развитии машинного обучения наметился прорыв, связанный с нейросетью AlexNet. Это сверточная нейросеть для классификации изображений из датасета ImageNet, в котором содержится более 15 миллионов изображений объектов, разбитых на 22 тысячи категорий. Задача бенчмарка ImageNet — определить класс объекта на фотографии. AlexNet удалось выиграть соревнования ImageNet 2012 года, причем с большим отрывом от ближайшего конкурента: частота ошибок при определении пяти самых вероятных объектов составила 15,3 процента против 26,2 у алгоритма со второго места.
Такой успех можно объяснить несколькими причинами. Во-первых, разработчики улучшили архитектуру нейросети, использовав в качестве функции активации редкую для того времени и повсеместно применяемую сейчас ReLU. Во-вторых, хотя это была большая нейросеть, состоявшая из 650 тысяч нейронов и имевшая 60 миллионов параметров, разработчики нашли способ ускорить ее обучение. Они сумели распараллелить обучение сети на два графических процессора. Это была не первая работа, в которой нейросети предлагали обучать на графических процессорах, но, вероятно, первый заметный пример, который показал другим исследователям, что ограничения по вычислительной мощности, сдерживавшие развитие этой области, можно обойти. А значит, размеры моделей и обучающих датасетов можно смело увеличивать.
Спустя шесть лет исследователи из OpenAI проанализировали ключевые работы в области нейросетей и показали, что именно с AlexNet в 2012 году начался рост затрачиваемой на обучение вычислительной мощности. Если раньше она удваивалась каждые два года, следуя закону Мура, то с 2012 года удвоение происходило уже каждые 3–4 месяца. Благодаря такой четкой временной границе OpenAI предложила называть период после 2012 года «современной эрой».
Вместе с увеличением размера нейросетей менялись и подходы к обучению. Стало набирать популярность обучение без учителя на неразмеченных данных.
Хороший пример такого подхода — нейросети GPT, разработанные в OpenAI. Это модели генерации текста, задача которых сводится к предсказанию следующего слова в предложении. Это позволяет писать большие тексты, которые выглядят как результат работы человека, а не машины. Разработчики GPT решили уйти от обучения на ограниченных датасетах с размеченными текстами к самообучению на гигантском объеме самых разных текстов из интернета: GPT-3 обучили на 570 гигабайт текстов. Это позволило модели выучить структуру языка, после чего ее можно быстро дообучить для конкретной задачи, например генерации стихов в стиле любимого поэта, показав всего несколько примеров, а не собирая новый большой датасет.
Подход OpenAI оказался настолько успешным, что творения GPT-3 зачастую сложно отличить от текстов, написанных человеком, а свои реализации этого подхода стали использовать в коммерческих продуктах многие IT-гиганты, в том числе и Яндекс.
В 2015 году интернет наполнился «кислотными» картинками, сгенерированными нейросетью DeepDream от Google, которая превращала обычные фотографии в нечто странное. Примеры таких изображений можно посмотреть в галерее, собранной N + 1. За этим, казалось бы, развлекательным контентом стоял важный эксперимент: исследователи попытались заглянуть внутрь нейросети, чтобы понять, на какие особенности изображений она обращает внимание при работе.
Исходная DeepDream (позже так стали называть и сам подход, заложенный авторами) представляла собой сверточную нейросеть для классификации изображений. Ее обучали стандартным способом: показывали фотографии и классы, постепенно меняя параметры, чтобы она выдавала корректный класс на данное ей изображение. В процессе обучения слои нейросети формировали представление о важных визуальных признаках тех или иных объектов. Каждый слой отвечает за свою часть: первые запоминают детали, а последние смотрят на крупные объекты.
Разработчики DeepDream решили повернуть процесс в обратную сторону. В этом режиме нейросеть изменяла входное изображение, усиливая признаки, которые она в нем распознала, чтобы повысить уверенность распознавания соответствующего класса. К примеру, если показать ей облако, напоминающее животное, с каждой итерацией нейросеть будет модифицировать фотографию так, чтобы сходство усиливалось. На выходе получается странное изображение, которое визуализирует, как нейросеть представляет себе объект этого класса. Это позволяет исследователям понять, на какие признаки объектов модель обращала внимание в процессе обучения, чтобы при необходимости поменять выборку данных. Причем визуализировать можно даже работу конкретных слоев, чтобы еще более подробно изучить внутренности модели.
Заглядывать в «черный ящик» ученым необходимо по разным причинам. «Кому-то интересно узнать, на основании чего модель совершает предсказания, и сделать из этого более фундаментальные выводы, а кому-то хочется улучшить надежность и прозрачность существующих систем, применяемых нами каждый день», — объясняет исследователь Yandex Research Максим Рябинин.
Есть и другие способы визуализировать процесс принятия решения в нейросетях, работающих с изображениями. Например, построение карты значимости: на базе входного изображения создается тепловая карта, на которой отмечены ключевые для распознавания регионы. Как и в случае с DeepDream, это позволяет объяснить, как алгоритм пришел к выводу о том, что на изображении находится тот или иной объект.
Еще один примечательный метод объяснения работы «черного ящика» разработали в 2016 году ученые из Вашингтонского университета. Метод LIME основан на идее, что объяснить поведение модели типа «черный ящик» можно не заглядывая внутрь, а наблюдая только за тем, как выходные данные зависят от входных.
В модель, которую нужно проверить, загружаются незначительно измененные варианты одних и тех же данных, например отредактированное изображение или текст, после чего записываются ее реакции. Параллельно с этим LIME создает модель, которая ведет себя так же, как и «черный ящик», но основана на более интерпретируемой архитектуре. Например, это может быть метод дерева решений, при котором каждое из них появляется в результате бинарного выбора на основе конкретных признаков. Это позволяет определить важные для модели признаки, даже если у исследователя нет доступа к ее «внутренностям».
Сделать модели более понятными изнутри не так просто, а вот их измерения снаружи освоены гораздо лучше. Для этого в машинном обучении существуют бенчмарки — наборы данных и метрики, позволяющие поставить разные алгоритмы в одинаковые условия и оценить их эффективность.
Одним из первых крупных бенчмарков был ImageNet, о котором мы рассказывали выше. Создатели описывали его как самый широкий и полный набор данных в мире изображений. С этим трудно поспорить: ImageNet содержал в 100 раз больше изображений и в 20 раз больше классов, чем аналогичные датасеты. Бенчмарк предназначался для моделей компьютерного зрения, распознающих образы на фотографиях: кошки, автомобили, деревья и тому подобное.
За ImageNet стояла простая идея: если мы хотим получить машину с человеческим (а в идеале — сверхчеловеческим) зрением, нам нужно научить ее понимать мир вокруг. В то время, когда компьютерное зрение не было развито так, как сейчас, эта идея работала. Но по мере того, как алгоритмы развиваются и глубже входят в нашу повседневную жизнь, на первый план выходят более узкие и применимые на практике задачи, и возникает потребность в новых бенчмарках и датасетах.
Прогресс в машинном обучении диктует потребность в новых бенчмарках во многом потому, что в некоторых сферах алгоритмы развиваются слишком быстро.
В 2018 году американские и британские исследователи представили бенчмарк GLUE — General Language Understanding Evaluation, оценка общего понимания языка. Цель авторов — подстегнуть создание универсальных языковых моделей, которые смогут выполнять разные задачи по работе с текстом. В бенчмарке есть девять задач, в том числе оценка смысловой равнозначности предложений, понимание взаимоотношений между предложениями и ответ на вопрос после прочтения абзаца. Помимо датасетов и метрик авторы GLUE запустили платформу для оценки работы моделей и список лучших среди них.
Казалось бы, GLUE — отличный бенчмарк для оценки понимания языка моделями машинного обучения. Но его релиз совпал с взрывным прогрессом в языковых моделях и ростом популярности нейросетей типа трансформер, основанных на механизме внимания и способных фокусироваться на важных фрагментах текста. В результате уже через год лучшая модель в списке лидеров обогнала по качеству работы человека: ее совокупный результат на девяти задачах составил 88,4 против 87,1 у людей. Стало ясно, что в этих задачах машины либо уже побеждают людей, либо близки к этому.
Тогда авторы GLUE разработали бенчмарк SuperGLUE, который включает восемь задач — шесть новых и две самые сложные из исходного GLUE: RTE, в которой алгоритму нужно понять, вытекает ли смысл одного текста из другого, и WSC, в которой машина должна разобраться в смысловой неоднозначности предложения.
Как и многие другие бенчмарки, GLUE изначально «заточен» под английский язык. И если для классификатора изображений вполне можно обойтись переводом разметки датасета, то для чисто языковых и не самых простых языковых задач этот подход дает больше ошибок и казусов. Через год после выхода англоязычного SuperGLUE российские исследователи запустили аналогичный бенчмарк, задания в котором по большей части не просто переведены на русский, а подобраны с нуля с учетом специфики языка.
Прогресс последних лет в машинном обучении был сосредоточен на эффективности работы моделей машинного обучения, и это дало свои плоды. Но алгоритмы важны не сами по себе. Конечная цель любой разработки в этой области — научить машину помогать людям, облегчать и улучшать их жизнь.
По мере того как машинное обучение применяли все шире, стало очевидно, что алгоритмы не всегда работают так, как хотелось бы, даже если по основным метрикам они показывают превосходные результаты. В исходной статье с описанием GPT-3 исследователи признали, что при генерации предложений алгоритм иногда использует оскорбительные и неполиткорректные выражения. Объяснить каждое такое решение невозможно, когда речь идет об алгоритме со 175 миллиардами параметров, обученном на сотнях гигабайт данных.
Есть и сферы, где цена ошибки алгоритма может быть гораздо выше. Например, в конце марта ЕС одобрил полностью автономный алгоритм выявления аномалий на рентгеновских снимках легких — это значит, что системе больше не требуется надзор и проверка со стороны опытного врача. В этом случае возможность понять, в чем заключается ошибка, если она возникнет, критически важна. Кроме того, способность заглянуть внутрь модели позволяет убедиться, что алгоритм действительно решает поставленную задачу, а не просто приспособился к обучающей выборке.
«Тот факт, что алгоритм как-то работает, не означает, что он работает как ожидается в интересных нам условиях. — отмечает Максим Рябинин. — К примеру, модель классификации рентгеновских снимков может ориентироваться на пометки врачей, а не на их фактическое содержание, если окажется, что в обучающих данных вся информация, нужная для предсказания, содержится в этих пометках».
По мнению Андрея Малинина, бенчмарки будут развиваться в сторону оценки большого ряда свойств моделей. «Обобщение на смещенных и не смещенных выборках, оценка того, насколько их предсказания справедливы, как часто модели сильно ошибаются, насколько они безопасны, и так далее — перечисляет он. — В идеале, модели должны оцениваться в контексте их итогового применения, а не на фиксированном наборе данных».
В мире машинного обучения, где два-три года — это целая эпоха, усилия можно запросто свести к погоне за эффективностью, иначе можно отстать от коллег и конкурентов. Однако постепенно разработчики и исследователи приходят к выводу, что для долгосрочного развития важно, чтобы эффективность шла рука об руку с прозрачностью алгоритмов. Это снизит опасения людей и позволит использовать машинное обучение даже в самых чувствительных областях.
О том, как обучаются нейросети и почему нам трудно (но важно) понимать, как они принимают решения, смотрите в мультфильме «Что мы знаем о том, как "думают" нейросети?»