Скользящий контроль

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
(Новая: '''Скользящий контроль''' или '''кросс-проверка''' или '''кросс-валидация''' (cross-validation, CV) — процедура эмпири...)
Строка 1: Строка 1:
-
'''Скользящий контроль''' или '''кросс-проверка''' или '''кросс-валидация''' (cross-validation, CV) — процедура эмпирического оценивания [[Обобщающая способность|обобщающей способности]] алгоритмов [[обучение по прецедентам|обучения по прецедентам]].
+
'''Скользящий контроль''' или '''кросс-проверка''' или '''кросс-валидация''' (cross-validation, CV) — процедура эмпирического оценивания [[Обобщающая способность|обобщающей способности]] алгоритмов [[обучение по прецедентам|обучения по прецедентам]], которая заключается в следующем.
-
 
+
-
Процедура ''скользящего контроля'' заключается в следующем.
+
Фиксируется некоторое множество разбиений исходной выборки на две подвыборки: ''обучающую'' и ''контрольную''.
Фиксируется некоторое множество разбиений исходной выборки на две подвыборки: ''обучающую'' и ''контрольную''.
Для каждого разбиения выполняется настройка алгоритма по обучающей подвыборке
Для каждого разбиения выполняется настройка алгоритма по обучающей подвыборке
-
и вычисляется функционал качества (обычно средняя ошибка или частота ошибок) на контрольной подвыборке.
+
и вычисляется функционал качества по контрольной подвыборке.
-
''Оценка скользящего контроля'' определяется как среднее по всем разбиениям значение функционала качества на контроле.
+
Обычно функционал качества определяется как средняя ошибка или частота ошибок.
 +
''Оценкой скользящего контроля'' называется среднее (по всем разбиениям) значение функционала качества на контрольных подвыборках.
-
Средняя ошибка на обучающей выборке, как правило, является смещённой (оптимистически заниженной) оценкой вероятности ошибки, что связано с [[Переобучение|явлением переобучения]].
+
Если выборка независима, то средняя ошибка ''скользящего контроля'' даёт несмещённую оценку вероятности ошибки.
-
{{S|В то же время}}, значение средней ошибки по ''скользящему контролю'' является несмещённой оценкой вероятности ошибки (если выборка независима).
+
Это выгодно отличает её от средней ошибки на обучающей выборке, которая может оказаться смещённой (оптимистически заниженной) оценкой, что связано с [[Переобучение|явлением переобучения]].
-
Поэтому скользящий контроль широко используется для эмпирического оценивания [[Обобщающая способность|обобщающей способности]].
+
Фактически, ''скользящий контроль'' признан стандартной методикой тестирования и сравнения алгоритмов [[классификация|классификации]], [[регрессия|регрессии]] и [[прогнозирование|прогнозирования]].
-
{{S|Де факто}} ''скользящий контроль'' признан стандартной методикой тестирования и сравнения алгоритмов [[классификация|классификации]], [[регрессия|регрессии]] и [[прогнозирование|прогнозирования]].
+
== Определения и обозначения ==
== Определения и обозначения ==
-
 
Рассматривается задача [[Обучение с учителем|обучения с учителем]].
Рассматривается задача [[Обучение с учителем|обучения с учителем]].
Строка 26: Строка 23:
Задан функционал <tex>Q(a,X^m)</tex>, оценивающий качество алгоритма <tex>a</tex> по конечной выборке прецедентов <tex>X^m</tex>.
Задан функционал <tex>Q(a,X^m)</tex>, оценивающий качество алгоритма <tex>a</tex> по конечной выборке прецедентов <tex>X^m</tex>.
-
Процедура ''скользящего контроля'' заключается в следующем.
+
=== Процедура скользящего контроля ===
Выборка <tex>X^L</tex> разбивается <tex>N</tex> различными способами на две непересекающиеся подвыборки:
Выборка <tex>X^L</tex> разбивается <tex>N</tex> различными способами на две непересекающиеся подвыборки:
<tex>X^L = X^m_n \cup X^k_n</tex>,
<tex>X^L = X^m_n \cup X^k_n</tex>,
где
где
-
<tex>X^m_n</tex> — обучающая подвыборак длины <i>m</i>,
+
<tex>X^m_n</tex> — обучающая подвыборка длины <i>m</i>,
-
<tex>X^k_n</tex> — контрольная подвыборак длины <tex>k=L-m</tex>,
+
<tex>X^k_n</tex> — контрольная подвыборка длины <tex>k=L-m</tex>,
<tex>n=1,\ldots,N</tex> — номер разбиения.
<tex>n=1,\ldots,N</tex> — номер разбиения.
-
Для каждого <i>n</i>-го разбиения строится алгоритм <tex>a_n = \mu(X^m_n)</tex>
+
Для каждого <i>n</i>-го разбиения строится алгоритм
-
и вычисляется значение <tex>Q_n = Q (a_n, X^k_n)</tex>.
+
<tex>a_n = \mu(X^m_n)</tex>
 +
и вычисляется значение функционала качества
 +
<tex>Q_n = Q (a_n, X^k_n)</tex>.
Среднее арифметическое значений <tex>Q_n</tex> по всем разбиениям называется ''оценкой скользящего контроля'':
Среднее арифметическое значений <tex>Q_n</tex> по всем разбиениям называется ''оценкой скользящего контроля'':
-
<center><tex>CV(\mu,X^L)=\frac1N \sum_{n=1}^N Q (\mu(X^m_n), X^k_n).
+
<center>
-
</tex></center>
+
<tex>CV(\mu,X^L)=\frac1N \sum_{n=1}^N Q (\mu(X^m_n), X^k_n).</tex>
 +
</center>
 +
 
 +
=== Доверительное оценивание ===
 +
Кроме среднего значения качества на контроле строят также доверительные интервалы.
-
=== Доверительный интервал ===
 
'''Непараметрическая оценка''' [[доверительный интервал|доверительного интервала]].
'''Непараметрическая оценка''' [[доверительный интервал|доверительного интервала]].
Строится вариационный ряд значений <tex>Q_n = Q (a_n, X^k_n)</tex>, <tex>n=1,\ldots,N</tex>:
Строится вариационный ряд значений <tex>Q_n = Q (a_n, X^k_n)</tex>, <tex>n=1,\ldots,N</tex>:
-
<center><tex>Q^{(1)} \leq Q^{(2)} \leq \cdots \leq Q^{(N)}.
+
<center>
-
</tex></center>
+
<tex>Q^{(1)} \leq Q^{(2)} \leq \cdots \leq Q^{(N)}.</tex>
 +
</center>
'''Утверждение.'''
'''Утверждение.'''
Строка 63: Строка 66:
Таким образом, для получения двусторонней оценки с надёжностью 95% достаточно взять
Таким образом, для получения двусторонней оценки с надёжностью 95% достаточно взять
-
<tex>N=39</tex> разбиений.
+
<tex>N=40</tex> разбиений.
 +
 
 +
Обычно интерес представляет односторонняя верхняя оценка; в таком случае достаточно взять
 +
<tex>N=20</tex> разбиений.
'''Параметрические оценки''' доверительного интервала основаны на априорном предположении о виде распределения случайной величины <tex>Q(a(X^m),X^k)</tex>.
'''Параметрические оценки''' доверительного интервала основаны на априорном предположении о виде распределения случайной величины <tex>Q(a(X^m),X^k)</tex>.
Строка 73: Строка 79:
<tex>Q(a(X^m),X^k)</tex>
<tex>Q(a(X^m),X^k)</tex>
описывается не биномиальным распределеним, а смесью биномиальных распределений.
описывается не биномиальным распределеним, а смесью биномиальных распределений.
-
Биномиальное распределение является лишь аппроксимацией, хотя, несомненно, более точной, чем нормальное.
+
Биномиальное распределение является лишь его аппроксимацией.
-
 
+
-
{{UnderConstruction|Подпись=[[Участник:Vokov|К.В.Воронцов]] 20:13, 7 апреля 2008 (MSD)}}
+
== Разновидности скользящего контроля ==
== Разновидности скользящего контроля ==
 +
Возможны различные варианты скользящего контроля, отличающиеся способами разбиения выборки.
 +
 +
=== Полный скользящий контроль (complete CV) ===
 +
Оценка скользящего контроля строится по всем <tex>N=C_L^k</tex> разбиениям.
 +
Это число становится слишком большим уже при <tex>k>2</tex>, поэтому полный скользящий контроль используется либо в теоретических исследованиях, либо в тех редких случаях, когда для него удаётся вывести эффективную вычислительную формулу. Например, такая формула известна для метода <i>k</i>&nbsp;ближайших соседей, что позволяет эффективно выбирать параметр&nbsp;<i>k</i>.
 +
{{S|На практике}} чаще применяются другие разновидности скользящего контроля.
 +
 +
=== Случайные разбиения ===
 +
Разбиения <tex>n=1,\ldots,N</tex> выбираются случайно, независимо и равновероятно из множества всех <tex>C_L^k</tex> разбиений.
 +
Именно для этого случая получены оценки доверительных интервалов.
 +
{{S|На практике}} методика оценивания доверительных интервалов часто без изменений переносится на другие способы разбиения выборки.
 +
 +
=== Контроль на отложенных данных (hold-out CV) ===
 +
Оценка скользящего контроля строится по одному случайному разбиению.
 +
 +
Этот способ имеет существенные недостатки:
 +
# Приходится слишком много объектов оставлять в контрольной подвыборке. Уменьшение длины обучающей подвыборки приводит к смещённой (пессимистически завышенной) оценке вероятности ошибки.
 +
# Оценка существенно зависит от разбиения, тогда как желательно, чтобы она характеризовала только алгоритм обучения.
 +
# Оценка имеет высокую дисперсию, которая может быть уменьшена путём усреднения по разбиениям.
 +
 +
=== Контроль по отдельным объектам (leave-one-out CV) ===
 +
Является частным случаем полного скользящего контроля при <tex>k=1</tex>.
 +
 +
Это, пожалуй, самый распространённый вариант скользящего контроля.
 +
Преимущества LOO в том, что каждый объект ровно один раз участвует в контроле, а длина обучающих подвыборок лишь на единицу меньше длины полной выборки.
 +
 +
Недостатком LOO является большая ресурсоёмкость, так как обучаться приходится <tex>L</tex> раз.
 +
Некоторые методы обучения позволяют достаточно быстро перенастраивать внутренние параметры алгоритма
 +
при замене одного обучающего объекта другим.
 +
{{S|В этих}} случаях вычисление LOO удаётся заметно ускорить.
 +
 +
=== Контроль по ''q'' блокам (''q''-fold CV) ===
 +
Выборка случайным образом разбивается на ''q'' непересекающихся блоков одинаковой (или почти одинаковой) длины <tex>k_1,\ldots,k_q</tex>:
 +
<center>
 +
<tex>X^L = X^{k_1}_1 \cup\cdots\cup X^{k_q}_q,</tex>&nbsp;&nbsp;&nbsp;&nbsp;
 +
<tex>k_1+\dots+k_q = L.</tex>
 +
</center>
 +
Каждый блок по очереди становится контрольной подвыборкой, при этом обучение производится по остальным <tex>q-1</tex> блокам.
 +
Критерий определяется как средняя ошибка на контрольной подвыборке:
 +
<center>
 +
<tex>CV(\mu,X^L)=CV(\mu,X^L)=\frac1q \sum_{n=1}^q Q \bigl( \mu(X^L\setminus X^{k_n}_n), X^{k_n}_n \bigr).</tex>
 +
</center>
 +
 +
Это компромисс между LOO, hold-out и случайными разбиениями.
 +
{{S|С одной}} стороны, обучение производится только {{S|<i>q</i> раз}} {{S|вместо <i>L</i>}}.
 +
{{S|С другой}} стороны, длина обучающих подвыборок, равная <tex>L\frac{q-1}q</tex> с точностью до округления, не сильно отличается от длины полной {{S|выборки <i>L</i>}}.
 +
Обычно выборку разбивают случайным образом на 10 или 20 блоков.
 +
 +
=== Контроль по ''T''×''q'' блокам (''T''×''q''-fold CV) ===
 +
Контроль по ''q'' блокам (''q''-fold CV) повторяется ''T'' раз.
 +
Каждый раз выборка случайным образом разбивается на ''q'' непересекающихся блоков.
 +
Преимущество этого способа в том, что увеличивается число разбиений.
 +
 +
== Скользящий контроль в задачах прогнозирования ==
 +
...а также динамического обучения и обучения с подкреплением
 +
 +
== Недостатки скользящего контроля ==
 +
# Задачу обучения приходится решать ''N'' раз, что сопряжено со значительными вычислительными затратами.
 +
# Оценка скользящего контроля предполагает, что алгоритм обучения <tex>\mu</tex> уже задан. Она ничего не говорит о том, какими свойствами должны обладать «хорошие» алгоритмы обучения, и как их строить. Такого рода подсказки дают только теоретические оценки обобщающей способности.
 +
# Попытка использовать скользящий контроль для обучения, в роли оптимизируемого критерия, приводит к тому, что он утрачивает свойство несмещённости, и снова возникает риск [[переобучение|переобучения]].
-
== Скользящий контроль в задачах прогнозирования, динамического обучения и обучения с подкреплением ==
+
== Применения скользящего контроля ==
 +
На практике скользящий контроль применяется для оптимизации некоторых критически важных параметров, как правило, определяющих структуру или сложность используемой модели алгоритма, и имеющих относительно небольшое число возможных значений.
 +
Примеры:
 +
* [[Выбор модели]] алгоритмов из небольшого множества альтернативных вариантов
 +
* Оптимизация параметра [[регуляризация|регуляризации]]
 +
* Оптимизация ширины окна в методах [[Метод парзеновского окна|парзеновского окна]], [[Метод ближайшего соседа|ближайшего соседа]], [[Ядерное сглаживание|ядерного сглаживания]]
 +
* Оптимизация числа нейронов в скрытом слое [[Многослойный персептрон|многослойной нейронной сети]]
 +
* [[Селекция признаков|Выбор информативного набора признаков]]
 +
* [[Редукция решающего дерева]]
 +
* [[Структурная минимизация риска]]
== Теоретические оценки ==
== Теоретические оценки ==
Строка 86: Строка 159:
== Литература ==
== Литература ==
 +
# {{книга
 +
|автор = Эфрон Б.
 +
|заглавие = Нетрадиционные методы многомерного статистического анализа
 +
|издание = М: Финансы и статистика
 +
|год = 1988
 +
}}
 +
# {{книга
 +
|автор = Langford J.
 +
|заглавие = Quantitatively Tight Sample Complexity Bounds
 +
|ссылка = http://citeseer.ist.psu.edu/langford02quantitatively.html
 +
|издание = Carnegie Mellon Thesis
 +
|год = 2002
 +
|страниц = 124
 +
}}
 +
# {{книга
 +
|автор = Kohavi R.
 +
|заглавие = A Study of Cross-Validation and Bootstrap for Accuracy Estimation and Model Selection
 +
|ссылка = http://citeseer.ist.psu.edu/kohavi95study.html
 +
|издание = 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
 +
|ссылка = http://citeseer.ist.psu.edu/309025.html
 +
|издание = Proceedings of International Conference on Machine Learning
 +
|год = 2000
 +
|страницы = 1137-1145
 +
}}
{{stub}}
{{stub}}
[[Категория:Машинное обучение]]
[[Категория:Машинное обучение]]

Версия 22:10, 7 апреля 2008

Скользящий контроль или кросс-проверка или кросс-валидация (cross-validation, CV) — процедура эмпирического оценивания обобщающей способности алгоритмов обучения по прецедентам, которая заключается в следующем. Фиксируется некоторое множество разбиений исходной выборки на две подвыборки: обучающую и контрольную. Для каждого разбиения выполняется настройка алгоритма по обучающей подвыборке и вычисляется функционал качества по контрольной подвыборке. Обычно функционал качества определяется как средняя ошибка или частота ошибок. Оценкой скользящего контроля называется среднее (по всем разбиениям) значение функционала качества на контрольных подвыборках.

Если выборка независима, то средняя ошибка скользящего контроля даёт несмещённую оценку вероятности ошибки. Это выгодно отличает её от средней ошибки на обучающей выборке, которая может оказаться смещённой (оптимистически заниженной) оценкой, что связано с явлением переобучения. Фактически, скользящий контроль признан стандартной методикой тестирования и сравнения алгоритмов классификации, регрессии и прогнозирования.

Содержание

Определения и обозначения

Рассматривается задача обучения с учителем.

Пусть X — множество описаний объектов, Y — множество допустимых ответов.

Задана конечная выборка прецедентов X^L = (x_i,y_i)_{i=1}^L \subset X\times Y.

Задан алгоритм обучения — отображение \mu, которое произвольной конечной выборке X^m ставит в соответствие функцию (алгоритм) a:\:X\to Y, аппроксимирующую неизвестную целевую зависимость.

Задан функционал Q(a,X^m), оценивающий качество алгоритма a по конечной выборке прецедентов X^m.

Процедура скользящего контроля

Выборка X^L разбивается N различными способами на две непересекающиеся подвыборки: X^L = X^m_n \cup X^k_n, где X^m_n — обучающая подвыборка длины m, X^k_n — контрольная подвыборка длины k=L-m, n=1,\ldots,N — номер разбиения.

Для каждого n-го разбиения строится алгоритм a_n = \mu(X^m_n) и вычисляется значение функционала качества Q_n = Q (a_n, X^k_n). Среднее арифметическое значений Q_n по всем разбиениям называется оценкой скользящего контроля:

CV(\mu,X^L)=\frac1N \sum_{n=1}^N Q (\mu(X^m_n), X^k_n).

Доверительное оценивание

Кроме среднего значения качества на контроле строят также доверительные интервалы.

Непараметрическая оценка доверительного интервала. Строится вариационный ряд значений Q_n = Q (a_n, X^k_n), n=1,\ldots,N:

Q^{(1)} \leq Q^{(2)} \leq \cdots \leq Q^{(N)}.

Утверждение. Если разбиения осуществлялись случайно, независимо и равновероятно, то с вероятностью \eta= \frac{2t}{N+1} значение случайной величины Q(a(X^m),X^k) не выходит за границы доверительного интервала \bigl[ Q^{(t)},Q^{(N-t+1)} \bigr].

Следствие. Значение случайной величины Q(a(X^m),X^k) не выходит за границы вариационного ряда \bigl[ Q^{(1)},Q^{(N)} \bigr] с вероятностью \eta= \frac{2}{N+1}.

Таким образом, для получения двусторонней оценки с надёжностью 95% достаточно взять N=40 разбиений.

Обычно интерес представляет односторонняя верхняя оценка; в таком случае достаточно взять N=20 разбиений.

Параметрические оценки доверительного интервала основаны на априорном предположении о виде распределения случайной величины Q(a(X^m),X^k). Если априорные предположения не выполняются, доверительный интервал может оказаться сильно смещённым. В частности, если предположения о нормальности распределения не выполнены, то нельзя пользоваться стандартным «правилом двух сигм» или «трёх сигм». Джон Лангфорд в своей диссертации (2002) указывает на распространённую ошибку, когда правило двух сигм применяется к функционалу частоты ошибок, имеющему на самом деле биномиальное распределение. Однако биномиальным распределением в общем случае тоже пользоваться нельзя, поскольку в результате обучения по случайным подвыборкам X^m вероятность ошибки алгоритма a(X^m) оказывается случайной величиной. Следовательно, случайная величина Q(a(X^m),X^k) описывается не биномиальным распределеним, а смесью биномиальных распределений. Биномиальное распределение является лишь его аппроксимацией.

Разновидности скользящего контроля

Возможны различные варианты скользящего контроля, отличающиеся способами разбиения выборки.

Полный скользящий контроль (complete CV)

Оценка скользящего контроля строится по всем N=C_L^k разбиениям. Это число становится слишком большим уже при k>2, поэтому полный скользящий контроль используется либо в теоретических исследованиях, либо в тех редких случаях, когда для него удаётся вывести эффективную вычислительную формулу. Например, такая формула известна для метода k ближайших соседей, что позволяет эффективно выбирать параметр k. На практике чаще применяются другие разновидности скользящего контроля.

Случайные разбиения

Разбиения n=1,\ldots,N выбираются случайно, независимо и равновероятно из множества всех C_L^k разбиений. Именно для этого случая получены оценки доверительных интервалов. На практике методика оценивания доверительных интервалов часто без изменений переносится на другие способы разбиения выборки.

Контроль на отложенных данных (hold-out CV)

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

Этот способ имеет существенные недостатки:

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

Контроль по отдельным объектам (leave-one-out CV)

Является частным случаем полного скользящего контроля при k=1.

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

Недостатком LOO является большая ресурсоёмкость, так как обучаться приходится L раз. Некоторые методы обучения позволяют достаточно быстро перенастраивать внутренние параметры алгоритма при замене одного обучающего объекта другим. В этих случаях вычисление LOO удаётся заметно ускорить.

Контроль по q блокам (q-fold CV)

Выборка случайным образом разбивается на q непересекающихся блоков одинаковой (или почти одинаковой) длины k_1,\ldots,k_q:

X^L = X^{k_1}_1 \cup\cdots\cup X^{k_q}_q,     k_1+\dots+k_q = L.

Каждый блок по очереди становится контрольной подвыборкой, при этом обучение производится по остальным q-1 блокам. Критерий определяется как средняя ошибка на контрольной подвыборке:

CV(\mu,X^L)=CV(\mu,X^L)=\frac1q \sum_{n=1}^q Q \bigl( \mu(X^L\setminus X^{k_n}_n), X^{k_n}_n \bigr).

Это компромисс между LOO, hold-out и случайными разбиениями. С одной стороны, обучение производится только q раз вместо L. С другой стороны, длина обучающих подвыборок, равная L\frac{q-1}q с точностью до округления, не сильно отличается от длины полной выборки L. Обычно выборку разбивают случайным образом на 10 или 20 блоков.

Контроль по T×q блокам (T×q-fold CV)

Контроль по q блокам (q-fold CV) повторяется T раз. Каждый раз выборка случайным образом разбивается на q непересекающихся блоков. Преимущество этого способа в том, что увеличивается число разбиений.

Скользящий контроль в задачах прогнозирования

...а также динамического обучения и обучения с подкреплением

Недостатки скользящего контроля

  1. Задачу обучения приходится решать N раз, что сопряжено со значительными вычислительными затратами.
  2. Оценка скользящего контроля предполагает, что алгоритм обучения \mu уже задан. Она ничего не говорит о том, какими свойствами должны обладать «хорошие» алгоритмы обучения, и как их строить. Такого рода подсказки дают только теоретические оценки обобщающей способности.
  3. Попытка использовать скользящий контроль для обучения, в роли оптимизируемого критерия, приводит к тому, что он утрачивает свойство несмещённости, и снова возникает риск переобучения.

Применения скользящего контроля

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

Теоретические оценки

Ссылки

Литература

  1. Эфрон Б. Нетрадиционные методы многомерного статистического анализа. — М: Финансы и статистика. — 1988.
  2. Langford J. Quantitatively Tight Sample Complexity Bounds. — Carnegie Mellon Thesis. — 2002. — 124 с.
  3. 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.
  4. Mullin M., Sukthankar R. Complete Cross-Validation for Nearest Neighbor Classifiers. — Proceedings of International Conference on Machine Learning. — 2000. — С. 1137-1145.
Личные инструменты