Семь мифов в области исследований машинного обучения

Для тех, кому лень читать всё: предлагается опровержение семи популярных мифов, которые в области исследований машинного обучения часто считаются истинными, по состоянию на февраль 2019. Данная статья доступна на сайте ArXiv в виде pdf [на английском языке].

Миф 1: TensorFlow – это библиотека для работы с тензорами.
Миф 2: Базы данных изображений отражают реальные фотографии, встречающиеся в природе.
Миф 3: Исследователи МО не используют проверочные наборы для испытаний.
Миф 4: В обучении нейросети используются все входные данные.
Миф 5: Для обучения очень глубоких остаточных сетей требуется пакетная нормализация.
Миф 6: Сети с вниманием [attention] лучше свёрточных [convolution].
Миф 7: Карты значимости – надёжный способ интерпретации нейросетей.

А теперь — подробности.

Миф 1: TensorFlow – это библиотека для работы с тензорами
На самом деле, это библиотека для работы с матрицами, и эта разница весьма существенна.

В работе Computing Higher Order Derivatives of Matrix and Tensor Expressions. Laue et al. NeurIPS 2018 авторы демонстрируют, что их библиотека автоматического дифференцирования, основанная на реальном тензорном исчислении, имеет гораздо более компактные деревья выражений. Дело в том, что тензорное исчисление использует индексные обозначения, что позволяет одинаково работать с прямым и обратным режимом.

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

Рассмотрим перемножение матриц C=AB. У нас есть для прямого режима и для обратного. Чтобы правильно выполнить перемножение, нужно точно соблюдать порядок и использования переносов. Для человека, занимающегося МО, с точки зрения записи это выглядит запутанно, а с точки зрения вычислений это лишняя нагрузка для программы.

Другой пример, менее тривиальный: c=det(A). У нас есть для прямого режима и для обратного. В данном случае очевидно невозможно использовать дерево выражений для обеих режимов, учитывая, что они состоят из разных операторов.

В целом, то, как TensorFlow и другие библиотеки (к примеру, Mathematica, Maple, Sage, SimPy, ADOL-C, TAPENADE, TensorFlow, Theano, PyTorch, HIPS autograd) реализовали автоматическое дифференцирование, приводит к тому, что для прямого и обратного режима строятся разные и неэффективные деревья выражений. Тензорное счисление обходит эти проблемы, благодаря коммутативности перемножения из-за индексной записи. Подробности того, как это работает, см. в научной работе.

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

В первой задаче проводилась оптимизация квадратичной функции xT Ax. Во второй вычислялась логистическая регрессия, в третьей – факторизация матрицы.

На CPU их метод оказался на два порядка быстрее таких популярных библиотек, как TensorFlow, Theano, PyTorch, и HIPS autograd.

На GPU они наблюдали ещё большее ускорение, на целых три порядка.

Следствия:

Вычисление производных для функций второго или более высокого порядка при помощи текущих библиотек глубокого обучения слишком дорого с вычислительной точки зрения. Сюда входят вычисления общих тензоров четвёртого порядка типа гессианов (к примеру, в MAML и ньютоновской оптимизации второго порядка). К счастью, квадратичные формулы встречаются в глубоком обучении нечасто. Однако они часто встречаются в «классическом» машинном обучении – SVM, метод наименьших квадратов, LASSO, гауссовские процессы, и т.п.

Миф 2: Базы данных изображений отражают реальные фотографии, встречающиеся в природе
Многим нравится думать, что нейросети научились распознавать объекты лучше людей. Это не так. Они могут опережать людей на базах избранных изображений, например, ImageNet, но в случае распознавания объектов с реальных фотографий из обычной жизни они определённо не смогут обогнать обычного взрослого человека. Всё потому, что выборка изображений в текущих наборах данных не совпадает с выборкой всех возможных изображений естественным образом встречающихся в реальности.

В довольно старой работе Unbiased Look at Dataset Bias. Torralba and Efros. CVPR 2011., авторы предложили исследовать искажения, связанные с набором изображений в двенадцати популярных базах, выяснив, можно ли обучить классификатор определять набор данных, из которого было взято данное изображение.

Шансы случайно угадать правильный набор данных составляют 1/12 ≈ 8%, сами же учёные справлялись с задачей с успешностью > 75%.

Они обучили SVM на гистограмме направленных градиентов (HOG) и обнаружили, что классифкатор справлялся с задачей в 39% случаев, что значительно превышает случайные попадания. Если бы мы повторили этот эксперимент сегодня, с самыми передовыми нейросетями, мы бы наверняка увидели увеличение точности работы классификатора.

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

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

Авторы также определили ценность каждого набора данных, измерив, насколько хорошо классификатор, обученный на одном наборе, работает с изображениями из других наборов. По этой метрике наименее предвзятыми оказались базы LabelMe и ImageNet, получив оценку 0,58 по методу «валютной корзины». Все значения получились меньшими единицы, что означает, что обучение на другом наборе данных всегда приводит к ухудшению эффективности. В идеальном мире без предвзятых наборов некоторые числа должны были превысить единицу.

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

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

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

Каковы последствия этого жульничества?

Авторы работы Do CIFAR-10 Classifiers Generalize to CIFAR-10? Recht et al. ArXiv 2018 исследовали этот вопрос, создав новый проверочный набор для CIFAR-10. Для этого они сделали выборку изображений из Tiny Images.

Они выбрали CIFAR-10 потому, что это один из наиболее часто используемых наборов данных в МО, второй по популярности набор в NeurIPS 2017 (после MNIST). Процесс создания набора данных для CIFAR-10 также хорошо описан и прозрачен, в крупной базе Tiny Images есть достаточно много подробных меток, благодаря чему можно воспроизвести новый проверочный набор, минимизировав распределительный сдвиг.

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

В целом, лучше работающие модели показывали меньшее падение точности по сравнению с хуже работающими. Это приятно, поскольку из этого следует, что потеря обобщаемости модели из-за жульничества, по крайней мере, в случае с CIFAR-10, уменьшается в процессе того, как сообществе изобретает улучшенные методы и модели МО.

Миф 4: В обучении нейросети используются все входные данные
Принято считать, что данные – это новая нефть, и что чем больше у нас данных, тем лучше мы сможем обучить модели для глубокого обучения, которые сейчас неэффективны по образцам [sample-inefficient] и перепараметризированы [overparametrized].

В работе An Empirical Study of Example Forgetting During Deep Neural Network Learning. Toneva et al. ICLR 2019 авторы демонстрируют значительную избыточность в нескольких распространённых наборах небольших изображений. Удивительно, но 30% данных из CIFAR-10 можно просто убрать, не изменив точность проверки на значительную величину.


Гистограммы забываний из (слева направо) MNIST, permutedMNIST и CIFAR-10.

Забывание случается, когда нейросеть неправильно классифицирует изображение в момент времени t+1, в то время как в момент времени t ей удалось правильно классифицировать изображение. Течение времени измеряется обновлениями SGD. Чтобы отслеживать забывания, авторы запускали свою нейросеть на небольшом наборе данных после каждого обновления SGD, а не на всех примерах, имеющихся в базе. Примеры, не подверженные забыванию, называются незабываемыми примерами.

Они обнаружили, что 91.7% MNIST, 75.3% permutedMNIST, 31.3% CIFAR-10 и 7.62% CIFAR-100 составляют незабываемые примеры. Интуитивно это понятно, поскольку увеличение разнообразия и сложности набора данных должно заставлять нейросеть забывать больше примеров.

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

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

30% данных CIFAR-10 можно удалить, не влияя на точность проверок, а удаление 35% данных приводит к небольшому падению точности проверок на 0,2%. Если выбрать 30% данных случайным образом, то их удаление приведёт к значительной потери точности проверки в 1%.

Сходным образом из CIFAR-100 можно убрать 8% данных без падения точности проверки.

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

Последствия:

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

Миф 5: Для обучения очень глубоких остаточных сетей требуется пакетная нормализация
Долгое время считалось, что «обучение глубокой нейросети для прямой оптимизации только для контролируемой цели (к примеру, логарифмической вероятности правильной классификации) при помощи градиентного спуска, начиная со случайных параметров, работает плохо».

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

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

В недавней работе Fixup Initialization: Residual Learning Without Normalization. Zhang et al. ICLR 2019 было показано, что возможно обучить сеть с 10 000 слоёв используя чистый SGD, не применяя никакой нормализации.

Авторы сравнили обучение остаточной нейросети для различных глубин на CIFAR-10 и обнаружили, что, хотя стандартные методы инициализации не работали для 100 слоёв, методы Fixup и пакетная нормализация добились успеха с 10 000 слоёв.

Они провели теоретический анализ и показали, что «градиентная нормализация определённых слоёв ограничивается числом, бесконечно возрастающим с глубокой сети», что является проблемой взрывных градиентов. Для предотвращения этого используется Foxup, ключевая идея которого состоит в масштабировании весов в m слоёв для каждой из остаточных ветвей L в количество раз, зависящее от m и L.

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

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

Миф 6: Сети с вниманием лучше свёрточных
В сообществе исследователей МО набирает популярность идея, что механизмы «внимания» превосходят по возможностям свёрточные нейросети. В работе Vaswani и коллег отмечено, что «вычислительные затраты на отделяемые свёртки равны комбинации слоя с самовниманием [self-attention layer] и точечного перематывающего слоя [point-wise feed-forward layer]».

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

Авторы работы Pay Less Attention with Lightweight and Dynamic Convolutions. Wu et al. ICLR 2019 ставят под сомнение параметрическую эффективность и действенность самовнимания при моделировании дальнодействующих зависимостей, и предлагают новые варианты свёрток, частично вдохновлённых самовниманием, более эффективные с точки зрения параметров.

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

Подобные трюки делают легковесные и динамические свёртки на несколько порядков эффективнее стандартных неразделяемых свёрток.

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

Миф 7: Карты значимости – надёжный способ интерпретации нейросетей
Хотя существует мнение о том, что нейросети – это чёрные ящики, было сделано огромное множество попыток их интерпретации. Наиболее популярными из них служат карты значимости, или другие сходные методы, назначающие оценки важности особенностям или обучающим примерам.

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

В работе Interpretation of Neural Networks is Fragile. Ghorbani et al. AAAI 2019 авторы показывают, что могут ввести неуловимое изменение в картинку, которое, тем не менее, исказит её карту значимости.

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

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

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

Последствия:

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

Оставить комментарий