Назад
69

Negative learning

69

Введение

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

Один из методов борьбы с этой проблемой — Negative Learning.

“Обучение наоборот”

Обычно мы обучаем нейросеть так, чтобы она предсказывала правильные ответы. Как мы это делаем? Показываем ей фотографию и говорим: “Это лейбл кошки”.

В этом случае мы используем cross entropy loss:

\( L(p,y)=-\sum_{}{ylogp} \)

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

Авторы этой статьи подумали: “А почему бы не сделать все наоборот?”. Действительно, можно же обучить нейросеть и сказать ей: “Это лейбл не собаки” или “Это лейбл не хомяка”, если на картинке изображена кошка. Мы просто возьмем \( y \) из нашего датасета и заменим его на случайный \( \overline{y} \). Но тогда нам придется изменить лосс-функцию. Как это сделать? Вместо \( p \) взять \( 1-p \).

\( L(p,y)=-\sum_{}{\overline{y}log(1-p)} \)

И все готово 😉

В итоге в коде обучения нужно только:

  1. Поменять лосс-функцию;
  2. Добавить сэмплирование \( \overline{y} \).

Генерировать новый \( \overline{y} \)​ лучше каждый раз для того, чтобы передавать в нейросеть как можно больше информации.

Positive Learning vs Negative Learning

Как часто мы ошибаемся?

В случае обычного обучения (назвовем его PL, или Positive learning), если доля неверных лейблов \( n \), то мы будем ошибаться с вероятностью \( n \).

В случае NL, или Negative Learning мы ошибемся с очень малой долей вероятности. Давайте представим: у нас все те же n всех лейблов неправильно размечены + у нас всего \( C \) классов.

Итак, в начале мы смотрим на y. Есть вероятность ошибки \( n \) и вероятность не ошибиться \( 1-n \). Но нам нужно знать, какова вероятность ошибки при выборе \( \overline{y} \).

Если наш лейбл \( y \) верный, то и \( \overline{y} \) будет верным.

Будем считать так: если наш лейбл yy неверный, то любой из оставшихся равновероятно будет верным.

Следовательно, если наш лейбл \( y \) неверный, то вероятность ошибиться с \( \overline{y} \) будет равна \( \frac{1}{C-1} \).

Тогда итоговая вероятность ошибки будет равна \( \frac{n}{C-1} \).

Если мы возьмем шумный на 30% датасет с 10 классами, то при PL мы будем ошибаться в 30% случаев, а при NL — только в \( \frac{0.3}{9} ≈ 0.03=3\% \) случаев (чем больше классов, тем реже мы будем ошибаться).

В то же время для того, чтобы передать тот объем информации, который есть в одном сэмпле при PL, например, ”это не кот”, нужно пройтись по всем другим классам (всего их \( C-1 \)) и сказать: ”это не собака”, …, “это не хомяк”.

А что с качеством?

В оригинальной статье авторы исследовали обучения на датасете cifar10 с 30% зашумленных лейблов в тренировочной выборке.

В результате при PL нейросеть на трейне показывала хороший результат, а в тестовой выборке часто ошибалась. Вероятно, это произошло потому, что она нашла закономерности, которых на самом деле нет. А вот при NL качество на тесте было получше. Более того, оно было даже лучше, чем на трейне. Объясняется это тем, что на трейне мы оценивали нейросеть на “чистых” + “грязных” лейблах, а на тесте были только “чистые”.

Рисунок 1. Два графика: loss (a) и accuracy (b)

“Изюминка” NL

А еще NL имеет интересное преимущество. Давайте посмотрим на распределение уверенности в лейблах у нейросетей, обученных с помощью PL и NL:

Рисунок 2. Два графика: распределение уверенности для PL (a) и NL (b). Синим обозначены “чистые” лейблы, оранжевым — “грязные”

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

В то же время при NL у нас меньшая уверенность, но зато на “грязных” метках мы абсолютно не уверены в ответе!

Selective NL и Selective PL

PL на “чистых” данных является более быстрым и точным методом, так как нам нужно сделать меньше шагов, чтобы передать нужный объем информации.

Но, к сожалению, после одного шага NL нейросеть еще не до конца уверена в “чистых” лейблах.

Авторы статьи предложили добавить после стадии NL еще одну для того, чтобы сильнее разделить уровень уверенности нейросети на “чистых” и “грязных” лейблах.

  • Selective NL.

Эта стадия позволяет увеличить уверенность нейросети на “чистых” данных.

Эта стадия позволяет увеличить уверенность нейросети на “чистых” данных.

Мы просто продолжаем наше обучение на негативных метках, но только на уверенных лейблах. Авторы брали лейблы, на которых сетка выдает уверенность больше \( \frac{1}{C} \). Напомним, что такие лейблы, в основном, “чистые” [см. рисунок 2 (b)].

  • Selective PL.

Если посмотреть на рисунок 3 (с), то можно заметить: предсказания нейросети на “грязных” метках уже совсем неуверенные. Именно сейчас мы можем перейти к более точному и быстрому PL, но уже только на “чистых” данных — на тех данных, на которых сетка выдает уверенность больше 0.50.5.

Рисунок 3. Два графика: распределение уверенности после Selective NL (с) и Selective PL (d). Синим обозначены “чистые” лейблы, оранжевым — “грязные”

Рисунок 4. График accuracy. Обратите внимание: он растет на каждой стадии

Последний штрих

Для получения более эффективных результатов авторы предложили следующий пайплайн:

  1. NL→Selective NL→Selective PL
  2. Обучение нейросети только на тех данных, в которых нейросеть с шага a уверена. Использование полученной нейросети для разметки данных, в которых нейросеть не уверена.
  3. Объединение этих данных и обучение финальной нейросети.
Рисунок 5. Финальный пайплайн
Рисунок 6. Сравнение финального пайплайна с другими подходами. Symm и Asymm — методы зашумления датасета. В первом случае просто берется случайный лейбл, во втором — шум более реалистичен, а данные зашумляются на основе знания, какие лейблы можно перепутать (например, TRUCK и AUTOMOBILE)

Заключение

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

Добавление в арсенал инструментов Selective NL и Selective PL позволяет в разы улучшить качество предсказаний, а применение всего пайплайна дает нам возможность получить SOTA результаты.

Телеграм-канал

DeepSchool

Короткие посты по теории ML/DL, полезные
библиотеки и фреймворки, вопросы с собеседований
и советы, которые помогут в работе

Открыть Телеграм

Увидели ошибку?

Напишите нам в Telegram!