Оценка и выбор модели в машинном обучении

машинное обучение

1. Введение

Когда люди судят о проблемах объективного мира, они часто основывают свои суждения на прошлом.Опытчтобы вести себя. Например, почему вы думаете, что завтра будет хороший день, когда вы видите слегка мокрую дорогу, чувствуете ветер и видите закат? Это потому, что мы видели много подобных ситуаций в нашем жизненном опыте.Посмотрев вышеперечисленные характеристики в первый день, на следующий день обычно хорошая погода.Можете ли вы сказать, что это спелая дыня? Поскольку мы ели и видели много арбузов, мы можем делать довольно правильные выводы, основываясь на характеристиках цвета, корня и удара. Можно видеть, что мы можем делать эффективные суждения, потому что мы накопили большой опыт иЭффективные решения могут быть приняты в новых ситуациях благодаря использованию опыта.

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

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

2 Оценка и выбор модели

2.1 Эмпирическая ошибка и переобучение

Обычно мы относим долю неправильно классифицированных выборок к общему количеству выборок как «частоту ошибок», то есть, если есть выборки в (точность), то есть «точность = 1 — частота ошибок». В более общем смысле мы называем разницу между фактическим прогнозируемым результатом периода обучения и фактическим результатом выборки «ошибкой».Ошибка обучаемого на обучающем наборе называется «ошибкой обучения» или «эмпирической ошибкой», а ошибка на новых выборках называется «ошибкой обобщения».Очевидно, нам нужен учащийся с наименьшей ошибкой обобщения. Однако мы не знаем заранее, как будет выглядеть новая выборка, и на самом деле мы можем попытаться минимизировать эмпирическую ошибку. Во многих случаях мы можем обучить учащегося с небольшой эмпирической ошибкой, который хорошо работает на обучающем наборе, например, даже правильно классифицируя все обучающие образцы, т. е. частота ошибок классификации равна нулю, а точность классификации составляет 100%, но это тот ученик, которого мы хотим? К сожалению, такие ученики не очень хороши в большинстве случаев.

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

Существует много факторов, которые могут привести к переоснащению, наиболее распространенным из которых является то, что способность к обучению слишком сильна, чтобы выучить менее общие признаки, содержащиеся в обучающих выборках, в то время как недостаточное приспособление обычно происходит из-за плохой способности к обучению, вызванной. Недостаточное обучение легче преодолеть, например, расширение ветвей в деревьях решений, увеличение количества периодов обучения в обучении нейронной сети и т. д., в то время как переоснащение вызывает проблемы. Переобучение является ключевым препятствием, с которым сталкивается машинное обучение, и различные алгоритмы обучения должны иметь некоторые меры против переобучения; однако следует признать, что переобучения нельзя полностью избежать, и все, что мы можем сделать, это «смягчить» или уменьшить его риск. Этот момент можно примерно понять так: задачи, с которыми сталкивается машинное обучение, обычно являются NP-сложными или даже более сложными, и эффективный алгоритм обучения должен быть завершен за полиномиальное время, может быть получено оптимальное решение, а это означает, что мы конструктивно доказываем тот «P = NP», поэтому просто верьте, что «P\not =NP», переобучение неизбежно.

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

2.2 Метод оценки

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

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

Однако у нас есть только один, содержащийmнабор примеровD=\{(x_1, y_1), (x_2, y_2), ... , (x_m, y_m)\}​, необходимо обучать и тестировать, как мы можем это сделать? Ответ: поDВыполняется соответствующая обработка для создания обучающего набора из него.Sи тестовый наборT. Несколько распространенных практик описаны ниже.

2.2.1 Метод откладывания

Метод «удержания» напрямую преобразует набор данныхD​ Разделить на два взаимоисключающих набора, один из которых используется в качестве тренировочного набораS, другой в качестве тестового набораTт.е.D=S\cup T,S\cap T=\varnothing. вSПосле обучения модели используйте​Tоценить его тестовую ошибку как оценку ошибки обобщения.

Возьмем в качестве примера задачу бинарной классификации, предположим,Dсодержит 1000 образцов, разделенных наS​ содержит 700 образцов,​Tсодержит 300 образцов, сSПосле обучения, если модельT​В неправильной классификации 90 образцов, тогда частота ошибок ​90/300\times100\%, соответственно, точность1-30\%=70\%.

Следует отметить, что обучение/Разделение тестового набора должно максимально поддерживать согласованность распределения данных и избегать влияния на конечный результат из-за внесения дополнительных смещений в процесс разделения данных. Если вы посмотрите на процесс разделения набора данных с точки зрения выборки, способ выборки, который сохраняет пропорцию классов, часто называют «стратифицированной выборкой». Например,DСтратифицированная выборка для получения70\% обучающий набор образцовSи содержит30\% Образец тестового набораSеслиD​ Содержит 500 положительных примеров и 500 отрицательных примеров, затем стратифицированная выборкаS​ должен содержать 350 положительных примеров, 350 отрицательных примеров иT​ то содержит 150 положительных примеров и 150 отрицательных примеров; если ​S,​TДоля категорий выборки в выборке сильно различается, тогда оценка ошибки будет обусловлена ​​обучением​/Смещение из-за различий в распределении тестовых данных.

Еще одна проблема, о которой следует помнить, заключается в том, что даже на данной тренировке/После коэффициента выборки тестового набора существует еще много способов разделить исходный набор данных.Dразделить. Например, в приведенном выше примере вы можете поставитьDОтсортируйте образцы по , а затем поместите первые 350 положительных примеров в обучающий набор, вы также можете поместить в обучающий набор последние 350 положительных примеров, ... Эти разные деления приведут к разным наборам обучающих тестов и, соответственно, результаты оценки модели будут различаться. Поэтому результаты оценки, полученные при однократном применении метода расстановки, часто не являются устойчивыми и надежными.При использовании метода расстановки обычно используют несколько случайных делений, повторяют экспериментальную оценку и берут среднее значение как результат оценки метода выкладки. Например, выполняется 100 случайных делений, каждый раз генерируя тренировочную/Тестовый набор используется для экспериментальной оценки, и 100 результатов получаются после 100 прогонов, а метод задержки возвращает среднее значение этих 100 результатов.

Кроме того, мы хотим оценить использованиеD​ Производительность обученной модели, но метод откладывания должен разделить обучение/​Тестовая выборка, что приводит к неловкой ситуации: если обучающая выборкаSсодержит подавляющее большинство выборок, обученная модель может быть ближе кDОбученная модель, но из-заTотносительно невелика, результаты оценки могут быть нестабильными и точными; если набор тестовTСодержит больше образцов, обучающий наборSсDРазница еще больше, оцениваемая модель отличается отDОбученные модели могут сильно отличаться друг от друга, что снижает достоверность результатов оценки. Идеального решения этой проблемы не существует, и общепринятой практикой является2/3\sim 4/5 образцы используются для обучения, а оставшиеся образцы используются для тестирования.

2.2.2 Метод перекрестной проверки

«Перекрестная проверка» (перекрестная проверка) в первую очередьDразделен наkВзаимоисключающие подмножества одинакового размера, т.е.D=D_1\cup D_2\cup \cdots \cup D_k,D_i \cap D_j = \varnothing \, (i \not= j) . каждое подмножествоD_iСохраняйте распределение данных как можно более последовательным, т. е. от ​Dполученный методом стратифицированной выборки. Затем каждый раз, когда вы используетеk-1Объединение подмножеств используется в качестве обучающего набора, а оставшееся подмножество используется в качестве тестового набора; таким образом, мы можем получитьkустановить обучающий тестовый набор так, чтобыkвремя обучения и тестирования, окончательный результат - этоkСреднее значение результатов теста. Очевидно, что стабильность и достоверность результатов, оцениваемых методом перекрестной проверки, в значительной степени зависит отkЗначение , чтобы подчеркнуть этот момент, метод перекрестной проверки обычно называют «​kСвернуть перекрестную проверку» (​k- кратная перекрестная проверка).​ Чаще всего используется значение 10, что называется 10-кратной перекрестной проверкой; другие часто используемые значенияkЗначения 5, 20 и т.д.

Аналогично методу удержания, набор данныхDразделен наkЕсть также много способов разделить подмножества. Чтобы уменьшить различия, вносимые различными подразделениями выборки,kПерекрестная проверка фолда обычно повторяется случайным образом с использованием разных разделов.pраз, окончательный результат оценки таковpвремяkСреднее значение результатов кратной перекрестной проверки, например «10-кратная 10-кратная перекрестная проверка», является обычным явлением.

Гипотетический набор данныхDсодержитmобразцы, еслиk=m​, получается частный случай метода перекрестной проверки:Оставить один выход (LOO). Очевидно, что на метод исключения одной выборки не влияет способ деления случайных выборок, поскольку существует только один способ разделить выборки на подмножества.Каждое подмножество содержит одну выборку, а метод исключения одного использует меньше обучающий набор, чем исходный набор данных.В большинстве случаев модель, которая фактически оценивается в методе исключения одного, совпадает с моделью, которая, как ожидается, будет оцениваться.DОбученные модели очень похожи. Таким образом, результаты оценки метода исключения одного часто считаются более точными. Однако у метода исключения есть и свои недостатки: когда набор данных относительно велик, обучениеmВычислительные накладные расходы модели могут быть непосильными (например, если набор данных содержит 1 миллион выборок, необходимо обучить 1 миллион моделей), и это даже без учета параметров алгоритма. Кроме того, исключающие оценки не всегда могут быть более точными, чем другие методы оценки; теорема об отсутствии бесплатного обеда также применима к экспериментальным методам оценки.

2.2.3 Метод самопомощи

То, что мы хотим оценить, это использоватьDобученная модель. Однако в методе исключения и методе перекрестной проверки, поскольку часть выборок зарезервирована для тестирования, обучающая выборка, используемая фактической моделью оценки, меньше, чемDмала, что неизбежно приведет к некоторому смещению оценок из-за разных размеров обучающей выборки. На метод исключения меньше влияет изменение размера обучающей выборки, но вычислительная сложность слишком высока. Есть ли способ уменьшить влияние различных размеров обучающей выборки и в то же время более эффективно выполнять экспериментальную оценку?

Лучшим решением является «самозагрузка», которая напрямую основана на выборке начальной загрузки. Данный содержитmнабор образцовD​, мы сэмплируем его для создания набора данныхD'​: случайным образом из​DВыберите образец из , скопируйте его вD'​, а затем поместить образец обратно в начальный набор данных​, да, образец может быть еще собран в следующем образце; этот процесс повторяетсяmраз, мы получаемmНабор данных выборок, который является результатом начальной выборки. Очевидно,DНекоторые образцы будут вD'появляется много раз в образце, в то время как другая часть образца не появляется. Можно сделать простую оценку, образец находится вmВероятность не попасть в подвыборку равна (1-\frac{1}{m})^{m}​, возьмите лимит, чтобы получить:

\displaystyle { \lim_{x \to \infty}(1-\frac{1}{m})^m \mapsto \frac{1}{e} \approx 0.368 }

То есть путем самовыборки исходный набор данных ​Dо36.8\%образцов, отсутствующих в выборочном наборе данныхD'середина. Таким образом, мы можем поставитьD'используется в качестве тренировочного набора,D\setminus D'используется в качестве тестового набора, так что и модель, которая фактически оценивается, и модель, которая, как ожидается, будет оценена, используютmобучающих выборок, в то время как у нас все еще есть общий объем данных около1/3Образцы, не вошедшие в обучающую выборку, используются для тестирования. Такие результаты испытаний также известны как «оценки вне пакета».

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

2.2.4 Настройка окончательной модели

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

Здесь следует отметить одну вещь: многие параметры алгоритма обучения принимают значения в диапазоне действительных чисел, поэтому невозможно обучить модель для каждой конфигурации параметров. Обычной практикой на практике является выбор диапазона и изменение размера шага для каждого параметра, например, в [0, 0.2]в диапазоне0.05это размер шага, на самом деле нужно оценить 5 значений параметра-кандидата, и, наконец, выбранное значение генерируется из этих 5 значений-кандидатов. Очевидно, что выбранные таким образом значения параметров часто не являются «оптимальными», но это результат компромисса между вычислительными затратами и оценкой производительности, благодаря которому процесс обучения становится возможным. На самом деле, даже после таких компромиссов настройка часто бывает сложной. Можно сделать простую оценку: если предположить, что алгоритм имеет 3 параметра, каждый параметр рассматривает только 5 значений-кандидатов, так что для каждого набора обучения/В тестовом наборе есть 5^2=125Модель необходимо исследовать; многие мощные алгоритмы обучения имеют большое количество параметров, которые необходимо установить, что приведет к огромному проекту настройки параметров, так что во многих прикладных задачах настройка параметров часто оказывает ключевое влияние на окончательную модель. производительности. (Машинное обучение часто включает в себя два типа параметров: один — это параметры алгоритма, также известные как «гиперпараметры», число которых часто находится в пределах 10; другой — это параметры модели, число которых может быть большим, например как большое «глубокое обучение» Модель даже имеет десятки миллиардов параметров; разница между двумя параметрами заключается в том, что первый обычно генерирует модель, вручную устанавливая несколько значений-кандидатов параметров, а второй генерирует несколько моделей-кандидатов посредством обучения, например, нейронная сеть останавливает обучение на разные эпохи).

Данный содержитmнабор образцовD​, в процессе оценки и выбора модели нам нужно отложить часть данных для оценки и тестирования, фактически мы используем только часть данных для обучения модели. Следовательно, после завершения выбора модели алгоритм обучения и конфигурация параметров были выбраны, и в это время следует использовать набор данных.DПереобучите модель. В этой модели используются всеmОбразец, это модель, которую мы, наконец, представляем пользователю.

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