Хабрахабр

Перевод книги Эндрю Ына «Страсть к машинному обучению» Главы 20 — 22

предыдущие главы

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

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

Понимание того, что они из себя представляют поможет вам решить — нужно ли добавлять еще данные, так же поможет выбрать тактику по улучшению качества работы классификатора. В машинном обучении присутствуют два главных источника ошибок: систематические и случайные (Variance) (дисперсионные).

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

На текущий момент ошибка вашего классификатора на тренировочной выборке 15%, на валидационной выборке 16%. Предположим, вы надеетесь построить кошачий распознователь, имеющий 5% ошибок. Вы должны сконцентрироваться на других изменениях системы. В таком случае добавление тренировочных данных вряд ли поможет существенно увеличить качество. В действительности, добавление большего количества примеров в вашу тренировочную выборку только усложнит для вашего алгоритма получение хорошего результата на этой выборке (почему так получается будет объяснено в следующих главах).

Качество работы алгоритма на валидационной / тестовой выборках обычно хуже, чем качество его работы на выборке для обучения (на тренировочной выборке). Если доля ваших ошибок на тренировочной выборке составляет 15% (что соответствует точности 85%), но вашей целью является доля ошибок в 5% (95% точность), тогда прежде всего нужно улучшить качество работы вашего алгоритма на тренировочной выборке. Нужно понимать, что те подходы, которые привели вас к точности, не превышающей 85% на примерах, с которыми ваш алгоритм знаком, не позволят получить точность в 95% на примерах, которые этот алгоритм даже не видел.

Мы должны разбить ошибку в 16% на два компонента: Предположим, как указано выше, доля ошибок вашего алгоритма составляет 16% (точность составляет 84%) на валидационной выборке.

  • Первый, доля ошибок алгоритма на тренировочной выборке. В данном примере это 15%. Мы неофициально называть его систематической ошибкой.
  • Второй, насколько хуже алгоритм работает на валидационной (или тестовой) выборке, чем на тренировочной. В нашем примере, на 1% хуже на валидационной выборке, чем на тренировочной. Будем так же неофициально считать его случайной ошибкой алгоритма.

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

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

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

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

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

Идеальный классификатор (например, человек) может достичь превосходного качества выполнения этой задачи. Рассмотрим нашу задачу по классификации кошек.

Предположим, что качество работы нашего алгоритма следующее:

  • Ошибка на тренировочной выборке = 1%
  • Ошибка на валидационной выборке = 11%

Применив определения из предыдущей главы, мы оценим систематическую оценку в 1% и случайную в 10% (=11% — 1%). Какая проблема у этого классификатора? Классификатор имеет очень низкую ошибку на тренировочной выборке, но не может обобщить результаты обучения на валидационную выборку. Таким образом, у нашего алгоритма большая случайная ошибка. Другими словами, мы имеем дело с переобучением (overfitting).

Теперь рассмотрим такую ситуацию:

  • Ошибка на тренировочной выборке = 15%
  • Ошибка на валидационной выборке = 16%

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

Еще рассмотрим такое распределение ошибок:

  • Ошибка на тренировочной выборке = 15%
  • Ошибка на валидационной выборке = 30%

У данного классификатора высокие и систематическая и случайные ошибки: он плохо работает на тренировочной выборке, имея высокую систематическую ошибку, и его качество на валидационной выборке намного хуже, чем на тренировочной, т.е. В этом случае систематическая ошибка 15% и случайная тоже 15%. Данный случай трудно описать в терминах переобучения/недообучения, этот классификатор одновременно и переобучился и недообучился. случайная ошибка тоже большая.

И наконец рассмотрим такую ситуацию:

  • Ошибка на тренировочной выборке = 0.5%
  • Ошибка на валидационной выборке = 1%

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

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

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

Допустим в приведенной задаче по распознаванию речи наш алгоритм достиг следующих результатов:

  • Ошибка на тренировочной выборке = 15%
  • Ошибка на валидационной выборке = 30%

Таким образом, в данном случае у нас не так много возможностей для уменьшения систематической ошибки (улучшения работы алгоритма на тренировочной выборке). Качество работы классификатора на тренировочной выборке уже близко к оптимальному, имеющему долю ошибок в 14%. Однако, не получается обобщить работу этого алгоритма на валидационную выборку, поэтому есть большое поле для деятельности по уменьшению случайной ошибки.

Если оптимальная доля ошибки находится около 0%, тогда ошибка на тренировочной выборке в 15% дает большое пространство для работ по улучшению алгоритма. Этот случай похож на третий пример из предыдущей главы, в которой ошибка на тренировочной выборке так же равна 15% и ошибка на валидационной выборке 30%. Но если оптимальная доля ошибок классификации не может быть ниже 14%, то аналогичная доля ошибок алгоритма на тренировочной выборке (т. При таком предположении, усилия, направленные на уменьшение систематической ошибки в работе алгоритма могут быть весьма плодотворны. в районе 14-15%) говорит о том, что возможности по уменьшению систематической ошибки практически исчерпаны. е.

Продолжим рассматривать приведенный выше пример с распознаванием речи, общая ошибка в 30% на валидационной выборке может быть разложена на следующие составные части (таким же образом можно анализировать ошибки на тестовой выборке): Для задач, в которых оптимальная доля ошибок классификации существенно отличается от нуля, можно предложить более подробную структуризацию ошибок.

  • Оптимальная систематическая ошибка (unavoidable bias): 14%. Представим, мы решили, что даже возможно наилучшая система распознавания речи в мире, будет иметь долю ошибки в 14%. Мы будем говорить об этом, как о «неустранимой» (unavoidable) части систематической ошибки обучающегося алгоритма.
  • Устранимая систематическая ошибка (Avoidable bias): 1%. Эта величина рассчитывается как разница между долей ошибки на тренировочной выборке и оптимальной долей ошибки.

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

  • Случайная ошибка (Variance): 15%. Разница между ошибками на тренировочной выборке и на валидационной выборке

Соотнеся это с нашими прежними определениями, систематическая ошибка и устранимая систематическая ошибка связаны следующим образом:

Систематическая ошибка = Оптимальная систематическая ошибка ( «unavoidable bias» ) + устранимая систематическая ошибка ( «avoidable bias» )

Эти определения отличаются от формальных определений систематической и случайной ошибок, принятых в статистике. замечание автора: Эти определения выбраны для лучшего объяснения, как можно улучшить качество работы обучающегося алгоритма. Технически то, что я определяю, как «Систематическая ошибка» следовало бы назвать «ошибкой, которая заложена в структуре данных, (ее нельзя выявить и устранить)» и «Устранимая систематическая ошибка» нужно определить, как «систематическую ошибку обучающегося алгоритма, которая превышает оптимальную систематическую ошибку».

Устранимая систематическая ошибка (avoidable bias) показывает, насколько хуже качество вашего алгоритма на тренировочной выборке, чем качество «оптимального классификатора».замечание автора

В теории мы всегда можем уменьшить случайную ошибку практически до нуля, тренируясь на достаточно большой тренировочной выборке. Основная идея случайной ошибки (variance) остается прежней. Таким образом любая случайная ошибка является «устранимой» (avoidable) при наличие достаточно большой выборки, поэтому не может быть такого понятия, как «неустранимая случайная ошибка» (unavoidable variance).

Рассмотрим еще один пример, в котором оптимальная ошибка составляет 14% и мы имеем:

  • Ошибка на тренировочной выборке = 15%
  • Ошибка на валидационной выборке = 16%

Таким образом, алгоритм уже работает достаточно хорошо и почти нет резервов для улучшения качества его работы. В предыдущей главе классификатор с такими показателями мы оценивали, как классификатор с высокой систематической ошибкой, в текущих условиях мы скажем, что «устранимая систематическая ошибка» (avoidable bias) составляет 1%, и случайная ошибка составляет порядка 1%. Качество работы данного алгоритма всего на 2% ниже оптимального.

В статистике оптимальную долю ошибки называют так же ошибкой Байеса ( Bayes error rate ). Из этих примеров понятно, что знание величины неустранимой ошибки полезно для принятия решения о дальнейших действиях.

Для задач, с которыми хорошо справляется человек, таких как распознавание изображений или расшифровка аудио клипов, можно попросить асессоров разметить данные, а потом измерить точность человеческой разметки на тренировочной выборке. Как узнать размер оптимальной доли ошибки? Если вы работаете над проблемой, с которой сложно справиться даже человеку (например, предсказать, какой фильм рекомендовать или какую рекламу показать пользователю), в этом случае довольно тяжело оценить оптимальную долю ошибок. Это даст оценку оптимальной доли ошибок.

В разделе «Сравнение с человеческим уровнем качества» (Comparing to Human-Level Performance, главы с 33 по 35), я буду более подробно обсуждать процесс сравнения качества работы обучающегося алгоритма с уровнем качества, которого может достигнуть человек.

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

Читайте дальше!

Продолжение следует...

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»