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

Что такое сглаживание меток?

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

p_k: вероятность того, что модель присвоит k-му классу
w_k: веса и смещения последнего слоя
x: вектор, содержащий активации предпоследнего слоя.

Затем мы используем кросс-энтропию в качестве функции потерь и пытаемся минимизировать ее, чтобы максимизировать логарифмическую вероятность.

Хорошо, хорошо! Что с этим не так?
Проблема в жестких мишенях. Модель должна выдавать большое значение logit для правильной метки. Он способствует тому, что различия между самым большим логитом и всеми остальными становятся большими, и это в сочетании с ограниченным градиентом снижает способность модели к адаптации, в результате чего модель слишком уверена в своих прогнозах. Это, в свою очередь, может привести к переоборудованию.

Так вы говорите, что жесткие цели - это плохо?
Это зависит от обстоятельств! Если ваш мотив - только максимизировать вероятность, тогда неплохо иметь твердые цели, и мы убедились, что это тоже работает. Но если ваш мотив - построить надежную модель, которая может хорошо обобщать, тогда да!

Дай угадаю, сглаживание меток решит эту проблему, верно? Покажи мне, как!
Да! Мы вводим параметр сглаживания α и модифицируем цели следующим образом:

Теперь, вместо минимизации кросс-энтропии с жесткими целями yk, мы минимизируем ее, используя эти мягкие цели.

Что происходит, когда вы применяете сглаживание этикеток?

Помните, что происходит, когда мы обучаем сеть с жесткими целями? Как мы уже обсуждали выше, logit правильного класса намного больше, чем любой из неправильных logit. Мало того, неправильные логиты сильно отличаются друг от друга. Обучение сети сглаживанию меток помогает избежать этих двух проблем. Как?

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

Для доказательства этого свойства авторы предложили схему визуализации, которая состоит из следующих шагов:

  1. Выберите три класса
  2. Найдите ортонормированный базис плоскости, пересекающий шаблоны этих трех классов.
  3. Спроецируйте активации предпоследнего слоя из этих трех классов на эту плоскость.

Так много болтовни! Покажи мне результаты, извините, «визуализация» .. да!

Если вы внимательно посмотрите на визуализацию выше, вы заметите, что:

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

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

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

Неявная калибровка модели

В этой статье уже было доказано, что современные нейронные сети плохо откалиброваны и слишком самоуверенны, несмотря на то, что имеют лучшую производительность, чем лучше откалиброванные модели из прошлого. Ожидаемая ошибка калибровки (ECE) использовалась для демонстрации этого в исходной статье. Чтобы уменьшить ECE, мы обычно используем температурное масштабирование, метод, при котором логиты масштабируются перед применением softmax.

А теперь самое интересное. Если мы применяем сглаживание этикеток, нам не требуется масштабирование температуры для калибровки. При сглаживании этикеток модели имеют тенденцию к самокалибровке. Конечно, вам нужно искать оптимальное значение α, значение по умолчанию 0,1 работает очень хорошо в большинстве случаев.

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

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

Я убежден! Но у меня к вам вопрос. Теперь у нас есть две вещи: масштабирование температуры и сглаживание этикеток. Могу я настроить оба? Я ожидаю, что это приведет к превосходной производительности. Ха!

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

Хорошо. Это был важный момент. Я бы потратил дни на этот эксперимент. Все, что вы объяснили, говорит в пользу сглаживания этикеток, но тут же должен быть какой-то подвох, верно? Скажи мне!

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

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

Заключение

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

Внедрение и экспериментирование - это одно, действительно важно, понимаете ли вы, почему и когда.

использованная литература

  1. Https://arxiv.org/pdf/1906.02629v1.pdf
  2. Https://arxiv.org/pdf/1512.00567.pdf
  3. Https://arxiv.org/pdf/1503.02531.pdf