Pull to refresh

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

Reading time4 min
Views4.2K
Original author: Andrew Ng

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


40. Проблемы обобщения: от обучающей выборки к валидационной


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


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

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


  • 1% ошибки на обучающей выборке
  • 1,5% ошибки для данных, взятых из того же распределения, что и обучающая выборка, но которые алгоритму не показывали при обучении
  • 10% ошибки на валидационной и на тестовой выборках

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


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


Теперь у вас есть четыре выборки данных:


  • Обучающая выборка. Это данные, на которых будет обучаться алгоритм (изображения из Интернета + изображения из мобильного приложения). Эти данные не обязаны иметь такое же распределение, которое для нас является наиболее важным (распределение валидационной и тестовой выборок).
  • Выборка для валидации обучающей: эти данные берутся из того же распределения, что и обучающая выборка (изображения из Интернета + изображения из мобильного приложения). Размер этой выборки обычно меньше, чем размер обучающей выборки; но она должна быть достаточно большой, чтобы позволять оценивать и отслеживать прогресс в обучении нашего алгоритма.
  • Валидационная выборка: эта выборка имеет то же распределение, что и тестовая, и отражает распределение данных, качество работы на котором определит успешность приложения. (Например, изображения из мобильного приложения)
  • Тестовая выборка: ее распределение совпадает с распределением валидационной выборки. (Изображения из мобильного приложения)

Вооружившись этими четырьмя выборками, можно оценить:


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

Большинство рекомендаций из 5-7 глав по выбору размера валидационной выборки также применимы к принятию решения о размере «выборки для валидации обучающей».


41. Выявление смещения, разброса и несоответствия данных


Допустим люди достигают почти идеального качества (ошибка ≈0%) в задаче обнаружения кошек, и, таким образом, оптимальный уровень ошибки для этой задачи составляет около 0%.


Предположим, у нашего алгоритма:


  • Ошибка 1% на обучающей выборке.
  • Ошибка 5% на «выборке для валидации обучающей».
  • Ошибка 5% на валидационной выборке.

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


  • Ошибка 10% на обучающей выборке.
  • Ошибка 11% на «выборке для валидации обучающей».
  • Ошибка 12% на валидационной выборке.

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


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


  • Ошибка 10% на обучающей выборке.
  • Ошибка 11% на «выборке для валидации обучающей».
  • Ошибка 20% на валидационной выборке.

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


image


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


При желании можно заполнить оставшиеся два поля в этой таблице. Можно заполнить поле в верхнем правом углу (качество человека на изображениях, полученных из мобильного приложения), например, попросив некоторых подписчиков разметить изображения из вашего мобильного детектора котов и измерить их ошибку. Можно заполнить следующую клетку в таблице, взяв изображения кошек из мобильного приложения (распределение B) и поместив их небольшую часть в обучающую выборку, чтобы нейронная сеть обучалась на нем тоже. Затем нужно измерить ошибку алгоритма на этом подмножестве данных. Заполнение приведенных двух дополнительных клеток таблицы даст понимание того, как алгоритм отрабатывает на этих двух различными распределениях данных (Распределение A и B).


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


продолжение

Tags:
Hubs:
Total votes 5: ↑5 and ↓0+5
Comments0

Articles