Скользящий контроль
Материал из MachineLearning.
м |
|||
Строка 1: | Строка 1: | ||
- | '''Скользящий контроль''' или '''кросс-проверка''' или '''кросс-валидация''' (cross-validation, CV) — процедура эмпирического оценивания [[Обобщающая способность|обобщающей способности]] алгоритмов [[обучение по прецедентам| | + | '''Скользящий контроль''' или '''кросс-проверка''' или '''кросс-валидация''' (cross-validation, CV) — процедура эмпирического оценивания [[Обобщающая способность|обобщающей способности]] алгоритмов, [[обучение по прецедентам|обучаемых по прецедентам]]. |
+ | |||
Фиксируется некоторое множество разбиений исходной выборки на две подвыборки: ''обучающую'' и ''контрольную''. | Фиксируется некоторое множество разбиений исходной выборки на две подвыборки: ''обучающую'' и ''контрольную''. | ||
- | Для каждого разбиения выполняется настройка алгоритма по обучающей подвыборке | + | Для каждого разбиения выполняется настройка алгоритма по обучающей подвыборке, |
- | + | затем оценивается его средняя ошибка на объектах контрольной подвыборки. | |
- | + | ''Оценкой скользящего контроля'' называется средняя по всем разбиениям величина ошибки на контрольных подвыборках. | |
- | ''Оценкой скользящего контроля'' называется | + | |
Если выборка независима, то средняя ошибка ''скользящего контроля'' даёт несмещённую оценку вероятности ошибки. | Если выборка независима, то средняя ошибка ''скользящего контроля'' даёт несмещённую оценку вероятности ошибки. | ||
- | Это выгодно отличает её от средней ошибки на обучающей выборке, которая может оказаться смещённой (оптимистически заниженной) оценкой, что связано с [[Переобучение|явлением переобучения]]. | + | Это выгодно отличает её от средней ошибки на обучающей выборке, которая может оказаться смещённой (оптимистически заниженной) оценкой вероятности ошибки, что связано с [[Переобучение|явлением переобучения]]. |
- | + | ||
+ | ''Скользящий контроль'' является стандартной методикой тестирования и сравнения алгоритмов [[классификация|классификации]], [[регрессия|регрессии]] и [[прогнозирование|прогнозирования]]. | ||
== Определения и обозначения == | == Определения и обозначения == | ||
Строка 31: | Строка 32: | ||
<tex>n=1,\ldots,N</tex> — номер разбиения. | <tex>n=1,\ldots,N</tex> — номер разбиения. | ||
- | Для каждого | + | Для каждого разбиения ''n'' строится алгоритм |
<tex>a_n = \mu(X^m_n)</tex> | <tex>a_n = \mu(X^m_n)</tex> | ||
и вычисляется значение функционала качества | и вычисляется значение функционала качества | ||
Строка 39: | Строка 40: | ||
<tex>CV(\mu,X^L)=\frac1N \sum_{n=1}^N Q (\mu(X^m_n), X^k_n).</tex> | <tex>CV(\mu,X^L)=\frac1N \sum_{n=1}^N Q (\mu(X^m_n), X^k_n).</tex> | ||
</center> | </center> | ||
+ | |||
+ | Различные варианты скользящего контроля отличаются видами функционала качества и способами разбиения выборки. | ||
=== Доверительное оценивание === | === Доверительное оценивание === | ||
Строка 49: | Строка 52: | ||
</center> | </center> | ||
- | '''Утверждение.''' | + | '''Утверждение 1.''' |
+ | Если разбиения осуществлялись случайно, независимо и равновероятно, | ||
+ | то с вероятностью <tex>\eta= \frac{t}{N+1}</tex> | ||
+ | значение случайной величины <tex>Q(a(X^m),X^k)</tex> | ||
+ | не превосходит <tex>Q^{(N-t+1)}</tex>. | ||
+ | |||
+ | '''Следствие 1.''' | ||
+ | Значение случайной величины <tex>Q(a(X^m),X^k)</tex> | ||
+ | не превосходит <tex>Q^{(N)}</tex> | ||
+ | с вероятностью <tex>\eta= \frac{1}{N+1}</tex>. | ||
+ | |||
+ | В частности, для получения верхней оценки с надёжностью 95% достаточно взять <tex>N=20</tex> разбиений. | ||
+ | |||
+ | '''Утверждение 2.''' | ||
Если разбиения осуществлялись случайно, независимо и равновероятно, то с вероятностью | Если разбиения осуществлялись случайно, независимо и равновероятно, то с вероятностью | ||
<tex>\eta= \frac{2t}{N+1}</tex> | <tex>\eta= \frac{2t}{N+1}</tex> | ||
Строка 57: | Строка 73: | ||
<tex>\bigl[ Q^{(t)},Q^{(N-t+1)} \bigr]</tex>. | <tex>\bigl[ Q^{(t)},Q^{(N-t+1)} \bigr]</tex>. | ||
- | '''Следствие.''' | + | '''Следствие 2.''' |
Значение случайной величины | Значение случайной величины | ||
<tex>Q(a(X^m),X^k)</tex> | <tex>Q(a(X^m),X^k)</tex> | ||
Строка 65: | Строка 81: | ||
<tex>\eta= \frac{2}{N+1}</tex>. | <tex>\eta= \frac{2}{N+1}</tex>. | ||
- | + | В частности, для получения двусторонней оценки с надёжностью 95% достаточно взять | |
<tex>N=40</tex> разбиений. | <tex>N=40</tex> разбиений. | ||
- | |||
- | |||
- | |||
'''Параметрические оценки''' доверительного интервала основаны на априорном предположении о виде распределения случайной величины <tex>Q(a(X^m),X^k)</tex>. | '''Параметрические оценки''' доверительного интервала основаны на априорном предположении о виде распределения случайной величины <tex>Q(a(X^m),X^k)</tex>. | ||
Строка 78: | Строка 91: | ||
Следовательно, случайная величина | Следовательно, случайная величина | ||
<tex>Q(a(X^m),X^k)</tex> | <tex>Q(a(X^m),X^k)</tex> | ||
- | описывается не биномиальным распределеним, а смесью биномиальных распределений. | + | описывается не биномиальным распределеним, а (неизвестной) смесью биномиальных распределений. |
- | + | Аппроксимация смеси биномиальным распределением может приводить к ошибочному сужению доверительного интервала. | |
+ | |||
== Разновидности скользящего контроля == | == Разновидности скользящего контроля == | ||
Строка 91: | Строка 105: | ||
=== Случайные разбиения === | === Случайные разбиения === | ||
Разбиения <tex>n=1,\ldots,N</tex> выбираются случайно, независимо и равновероятно из множества всех <tex>C_L^k</tex> разбиений. | Разбиения <tex>n=1,\ldots,N</tex> выбираются случайно, независимо и равновероятно из множества всех <tex>C_L^k</tex> разбиений. | ||
- | Именно для этого случая | + | Именно для этого случая справедливы приведённые выше оценки доверительных интервалов. |
- | {{S|На практике}} | + | {{S|На практике}} эти оценки, как правило, без изменений переносится и на другие способы разбиения выборки. |
=== Контроль на отложенных данных (hold-out CV) === | === Контроль на отложенных данных (hold-out CV) === | ||
Строка 134: | Строка 148: | ||
Каждый раз выборка случайным образом разбивается на ''q'' непересекающихся блоков. | Каждый раз выборка случайным образом разбивается на ''q'' непересекающихся блоков. | ||
Преимущество этого способа в том, что увеличивается число разбиений. | Преимущество этого способа в том, что увеличивается число разбиений. | ||
+ | |||
+ | === Стратификация === | ||
+ | ''[[Стратификация]] выборки'' — это способ уменьшить разброс (дисперсию) оценок скользящего контроля, в результате чего получаются более узкие доверительные интервалы и более точные (tight) верхние оценки. | ||
+ | |||
+ | Стратификация заключается в том, чтобы заранее поделить выборку на части (страты), и при разбиении на обучение длины ''m'' и контроль длины ''k'' гарантировать, что каждая страта будет поделена между обучением и контролем в той же пропорции <tex>m:k</tex>. | ||
+ | |||
+ | ''Стратификация классов'' в задачах [[классификация|классификации]] означает, что каждый класс делится между обучением и контролем в пропорции <tex>m:k</tex>. | ||
+ | |||
+ | ''Стратификация по вещественному признаку''. Объекты выборки сортируются согласно некоторому критерию (например, по одному из [[признак]]ов), и контрольная выборка составляется из объектов с номерами | ||
+ | <tex>\bigl\lfloor \tfrac{(i-1)L}{k-1}+1 \bigr\rfloor,\; i=1,\ltots,k</tex>. | ||
== Скользящий контроль в задачах прогнозирования == | == Скользящий контроль в задачах прогнозирования == |
Версия 22:23, 10 апреля 2008
Скользящий контроль или кросс-проверка или кросс-валидация (cross-validation, CV) — процедура эмпирического оценивания обобщающей способности алгоритмов, обучаемых по прецедентам.
Фиксируется некоторое множество разбиений исходной выборки на две подвыборки: обучающую и контрольную. Для каждого разбиения выполняется настройка алгоритма по обучающей подвыборке, затем оценивается его средняя ошибка на объектах контрольной подвыборки. Оценкой скользящего контроля называется средняя по всем разбиениям величина ошибки на контрольных подвыборках.
Если выборка независима, то средняя ошибка скользящего контроля даёт несмещённую оценку вероятности ошибки. Это выгодно отличает её от средней ошибки на обучающей выборке, которая может оказаться смещённой (оптимистически заниженной) оценкой вероятности ошибки, что связано с явлением переобучения.
Скользящий контроль является стандартной методикой тестирования и сравнения алгоритмов классификации, регрессии и прогнозирования.
Содержание |
Определения и обозначения
Рассматривается задача обучения с учителем.
Пусть — множество описаний объектов, — множество допустимых ответов.
Задана конечная выборка прецедентов .
Задан алгоритм обучения — отображение , которое произвольной конечной выборке ставит в соответствие функцию (алгоритм) , аппроксимирующую неизвестную целевую зависимость.
Задан функционал , оценивающий качество алгоритма по конечной выборке прецедентов .
Процедура скользящего контроля
Выборка разбивается различными способами на две непересекающиеся подвыборки: , где — обучающая подвыборка длины m, — контрольная подвыборка длины , — номер разбиения.
Для каждого разбиения n строится алгоритм и вычисляется значение функционала качества . Среднее арифметическое значений по всем разбиениям называется оценкой скользящего контроля:
Различные варианты скользящего контроля отличаются видами функционала качества и способами разбиения выборки.
Доверительное оценивание
Кроме среднего значения качества на контроле строят также доверительные интервалы.
Непараметрическая оценка доверительного интервала. Строится вариационный ряд значений , :
Утверждение 1. Если разбиения осуществлялись случайно, независимо и равновероятно, то с вероятностью значение случайной величины не превосходит .
Следствие 1. Значение случайной величины не превосходит с вероятностью .
В частности, для получения верхней оценки с надёжностью 95% достаточно взять разбиений.
Утверждение 2. Если разбиения осуществлялись случайно, независимо и равновероятно, то с вероятностью значение случайной величины не выходит за границы доверительного интервала .
Следствие 2. Значение случайной величины не выходит за границы вариационного ряда с вероятностью .
В частности, для получения двусторонней оценки с надёжностью 95% достаточно взять разбиений.
Параметрические оценки доверительного интервала основаны на априорном предположении о виде распределения случайной величины . Если априорные предположения не выполняются, доверительный интервал может оказаться сильно смещённым. В частности, если предположения о нормальности распределения не выполнены, то нельзя пользоваться стандартным «правилом двух сигм» или «трёх сигм». Джон Лангфорд в своей диссертации (2002) указывает на распространённую ошибку, когда правило двух сигм применяется к функционалу частоты ошибок, имеющему на самом деле биномиальное распределение. Однако биномиальным распределением в общем случае тоже пользоваться нельзя, поскольку в результате обучения по случайным подвыборкам вероятность ошибки алгоритма оказывается случайной величиной. Следовательно, случайная величина описывается не биномиальным распределеним, а (неизвестной) смесью биномиальных распределений. Аппроксимация смеси биномиальным распределением может приводить к ошибочному сужению доверительного интервала.
Разновидности скользящего контроля
Возможны различные варианты скользящего контроля, отличающиеся способами разбиения выборки.
Полный скользящий контроль (complete CV)
Оценка скользящего контроля строится по всем разбиениям. Это число становится слишком большим уже при , поэтому полный скользящий контроль используется либо в теоретических исследованиях, либо в тех редких случаях, когда для него удаётся вывести эффективную вычислительную формулу. Например, такая формула известна для метода k ближайших соседей, что позволяет эффективно выбирать параметр k. На практике чаще применяются другие разновидности скользящего контроля.
Случайные разбиения
Разбиения выбираются случайно, независимо и равновероятно из множества всех разбиений. Именно для этого случая справедливы приведённые выше оценки доверительных интервалов. На практике эти оценки, как правило, без изменений переносится и на другие способы разбиения выборки.
Контроль на отложенных данных (hold-out CV)
Оценка скользящего контроля строится по одному случайному разбиению.
Этот способ имеет существенные недостатки:
- Приходится слишком много объектов оставлять в контрольной подвыборке. Уменьшение длины обучающей подвыборки приводит к смещённой (пессимистически завышенной) оценке вероятности ошибки.
- Оценка существенно зависит от разбиения, тогда как желательно, чтобы она характеризовала только алгоритм обучения.
- Оценка имеет высокую дисперсию, которая может быть уменьшена путём усреднения по разбиениям.
Контроль по отдельным объектам (leave-one-out CV)
Является частным случаем полного скользящего контроля при .
Это, пожалуй, самый распространённый вариант скользящего контроля. Преимущества LOO в том, что каждый объект ровно один раз участвует в контроле, а длина обучающих подвыборок лишь на единицу меньше длины полной выборки.
Недостатком LOO является большая ресурсоёмкость, так как обучаться приходится раз. Некоторые методы обучения позволяют достаточно быстро перенастраивать внутренние параметры алгоритма при замене одного обучающего объекта другим. В этих случаях вычисление LOO удаётся заметно ускорить.
Контроль по q блокам (q-fold CV)
Выборка случайным образом разбивается на q непересекающихся блоков одинаковой (или почти одинаковой) длины :
Каждый блок по очереди становится контрольной подвыборкой, при этом обучение производится по остальным блокам. Критерий определяется как средняя ошибка на контрольной подвыборке:
Это компромисс между LOO, hold-out и случайными разбиениями. С одной стороны, обучение производится только q раз вместо L. С другой стороны, длина обучающих подвыборок, равная с точностью до округления, не сильно отличается от длины полной выборки L. Обычно выборку разбивают случайным образом на 10 или 20 блоков.
Контроль по T×q блокам (T×q-fold CV)
Контроль по q блокам (q-fold CV) повторяется T раз. Каждый раз выборка случайным образом разбивается на q непересекающихся блоков. Преимущество этого способа в том, что увеличивается число разбиений.
Стратификация
Стратификация выборки — это способ уменьшить разброс (дисперсию) оценок скользящего контроля, в результате чего получаются более узкие доверительные интервалы и более точные (tight) верхние оценки.
Стратификация заключается в том, чтобы заранее поделить выборку на части (страты), и при разбиении на обучение длины m и контроль длины k гарантировать, что каждая страта будет поделена между обучением и контролем в той же пропорции .
Стратификация классов в задачах классификации означает, что каждый класс делится между обучением и контролем в пропорции .
Стратификация по вещественному признаку. Объекты выборки сортируются согласно некоторому критерию (например, по одному из признаков), и контрольная выборка составляется из объектов с номерами .
Скользящий контроль в задачах прогнозирования
...а также динамического обучения и обучения с подкреплением
Недостатки скользящего контроля
- Задачу обучения приходится решать N раз, что сопряжено со значительными вычислительными затратами.
- Оценка скользящего контроля предполагает, что алгоритм обучения уже задан. Она ничего не говорит о том, какими свойствами должны обладать «хорошие» алгоритмы обучения, и как их строить. Такого рода подсказки дают только теоретические оценки обобщающей способности.
- Попытка использовать скользящий контроль для обучения, в роли оптимизируемого критерия, приводит к тому, что он утрачивает свойство несмещённости, и снова возникает риск переобучения.
Применения скользящего контроля
На практике скользящий контроль применяется для оптимизации некоторых критически важных параметров, как правило, определяющих структуру или сложность используемой модели алгоритма, и имеющих относительно небольшое число возможных значений. Примеры:
- Выбор модели алгоритмов из небольшого множества альтернативных вариантов
- Оптимизация параметра регуляризации
- Оптимизация ширины окна в методах парзеновского окна, ближайшего соседа, ядерного сглаживания
- Оптимизация числа нейронов в скрытом слое многослойной нейронной сети
- Выбор информативного набора признаков
- Редукция решающего дерева
- Структурная минимизация риска
Теоретические оценки
Ссылки
Литература
- Эфрон Б. Нетрадиционные методы многомерного статистического анализа. — М: Финансы и статистика. — 1988.
- Langford J. Quantitatively Tight Sample Complexity Bounds. — Carnegie Mellon Thesis. — 2002. — 124 с.
- Kohavi R. A Study of Cross-Validation and Bootstrap for Accuracy Estimation and Model Selection. — 14th International Joint Conference on Artificial Intelligence, Palais de Congres Montreal, Quebec, Canada. — 1995. — С. 1137-1145.
- Mullin M., Sukthankar R. Complete Cross-Validation for Nearest Neighbor Classifiers. — Proceedings of International Conference on Machine Learning. — 2000. — С. 1137-1145.