Примеры компромисса смещения дисперсии в глубоком обучении

Вступление

Ааа ... компромисс между смещением и дисперсией ...

Вы, наверное, уже видели множество статей, написанных на эту тему по всему Интернету.

Это не похоже на одно из них.

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

Надеюсь, этот пост восполнит этот пробел.

Вот что я хотел бы рассказать:

  1. Краткое концептуальное понимание смещения и дисперсии
  2. Как могут выглядеть кривые подгонки потерь в разных сценариях
  3. Как это смягчить
  4. Как расставить приоритеты, что нужно смягчить в первую очередь - следует ли в первую очередь снизить систематическую ошибку или дисперсию?

Предвзятость и дисперсия в машинном обучении

Термины «смещение» и «отклонение» на самом деле имеют разное значение в разных отраслях.

В психологии «предвзятость» может относиться к целой группе когнитивных предубеждений! например предвзятость информации, предвзятость подтверждения, предвзятость внимания и т. д.

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

В математике термин «дисперсия» относится к квадрату отклонения от среднего значения.

Однако в контексте машинного обучения это просто относится к тому, узнала ли ваша обученная модель слишком мало (систематическая ошибка) или слишком много (дисперсия).

Проще говоря,

Смещение = простая модель, которая не соответствует данным

наоборот…

Дисперсия = сложная модель, которая не соответствует данным

Итак, как это выглядит концептуально?

Вот как выглядят разные сценарии.

Простите за беспорядочные изогнутые линии ... Я нарисовал их с помощью PowerPoint, ха-ха.

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

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

Пока все хорошо, да?

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

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

Примеры компромисса смещения отклонения

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

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

Низкое смещение и низкая дисперсия

Низкое смещение и высокая дисперсия

Высокое смещение и низкая дисперсия

Высокое смещение и высокая дисперсия

Вы только что видели четыре примера того, как может выглядеть каждая комбинация.

Не могли бы вы сказать, какие из них имеют высокие систематические ошибки или высокие расхождения? На что вы рассчитывали, чтобы сделать свой вывод?

Вот на что я смотрю, чтобы определить предубеждения и расхождения.

Первое, на что я обращаю внимание, - это статистика ошибок подгонки.

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

Если ошибка обучения велика, скажем, 15,39%, то вы можете сказать, что ваша модель недостаточно подогнана или имеет большое смещение.

Я объясню, почему «мог» выделено курсивом позже в этом посте. Здесь есть основополагающее предположение.

Если ошибка проверки велика, допустим, 17,77%, И разница между ошибкой проверки и обучения относительно велика (посмотрите на пробел между строками), тогда можно сказать, что ваша модель слишком подогнана или имеет большой разброс.

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

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

Как смягчить проблему предвзятости и расхождений?

Вот общая схема устранения предвзятости / отклонения в машинном обучении.

В этом случае для ваших проектов глубокого обучения.

Вот конкретный пример того, как помогает регуляризация.

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

Модель перешла от низкого смещения, высокой дисперсии к высокой смещенности, низкой дисперсии.

Другими словами, установив регуляризацию L2 на 0,001, я слишком сильно наказал веса, что привело к недостаточной адаптации модели.

Приоритет усилий по смягчению последствий

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

Однако помните, что я упомянул «мог» курсивом выше и сослался на лежащее в основе предположение.

Пища для размышлений.

На каком основании измеряется ваша предвзятость?

Задумайтесь об этом на мгновение.

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

Итак, каковы исходные данные для предвзятости? Была ли ошибка обучения 15,39% действительно плохой?

Это зависит.

Это наверняка могло быть плохо! Или… возможно, нет.

Основой для сравнения предвзятости является предположение об эффективности выполнения этой конкретной задачи человеком.

Если бы я сказал вам, что задача, над которой я работал, была сложной задачей по распознаванию сущности имени (NER), и люди склонны ошибаться в названиях в 15% случаев.

Потом…

15% против 15,33% - это неплохо!

Я бы даже сказал, что модель подходит!

Модель работает на том же уровне, что и человек.

Теперь напрашивается вопрос.

Как вы измеряете производительность на уровне человека?

Хороший способ - применить стратифицированную выборку к обучающей выборке и закрыть метки. Затем попросите человека или группу людей тщательно промаркировать образцы.

Результатом этой задачи ручной маркировки является ваша работа на человеческом уровне.

А теперь формальности и формальности ...

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

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

Теперь это не так, давайте вернемся к первоначальному вопросу о расстановке приоритетов.

Когда следует сосредоточить внимание на уменьшении систематической ошибки, а не на уменьшении дисперсии?

Анализ ошибок машинного обучения

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

Ниже приведены примеры анализа ошибок машинного обучения.

Это довольно просто понять.

В этом примере смещение, которого можно избежать, выше дисперсии; 4% против 1%.

Следовательно, вашим приоритетом должно быть снижение предвзятости модели.

А теперь давайте немного изменим его.

Что вам следует сделать в первую очередь?

В этом случае дисперсия выше, чем смещение, которого можно избежать; 5% против 1,5%.

В этом случае сосредоточьтесь на сокращении дисперсии.

На этом этапе поста я осветил то, что хотел осветить.

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

Что делать в этом случае?

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

Но обратите внимание, что модель неплохо справляется как с обучающими, так и с проверочными наборами.

Однако на тестовой выборке это не сработало.

Это почему?

Вот несколько вещей, чтобы проверить, случится ли это с вами:

  1. Ваш набор тестов относится к тому же дистрибутиву, что и ваш набор для проверки? Если вы тренируете классификатор кошек, будут ли в вашем тестовом наборе изображения тигров?
  2. Вы переоборудовали свой набор для проверки? Увеличьте размер набора для проверки. Не забудьте также перемешать ваши данные.
  3. Показатель вашей оценки, использованный во время обучения / проверки, не был хорошим индикатором. Вероятно, вам придется изменить метрику.

Могло быть больше причин, но это несколько вещей, которые я бы сделал.

Конечные заметки

Вот краткое изложение того, что вы прочитали:

  1. Я начал с того, что дал вам концептуальное понимание того, что такое предвзятость и отклонения в контексте машинного обучения.
  2. Затем я продемонстрировал четыре реалистичных примера того, как кривые подгонки ошибок будут выглядеть для каждого сценария. Это сделано для того, чтобы вы могли лучше их идентифицировать.
  3. Я также просмотрел типичную блок-схему того, как смягчить проблемы смещения-дисперсии.
  4. Наконец, я представил такие понятия, как производительность на уровне человека, и рассмотрел, как выполняется анализ ошибок.

Ну .. вот и все!

Я искренне надеюсь, что вы извлекли из этого пользу!

До следующего поста, до свидания !!

Предупреждение о спойлере: следующий пост будет длинным. Я много экспериментировал с тем, как изменения в сетях глубокого обучения влияют на результаты прогнозирования, и фиксировал свои результаты. Следите за следующей публикацией! :)

Профиль в LinkedIn: Тимоти Тан