Итак, мы рассмотрели различные методы оценки модели (Часть 2) и уже рассмотрели основные понятия, необходимые (Часть 1).

Теперь давайте перейдем к последнему разделу истории — Техникам выбора модели.

Резюме: необходимость гиперпараметра

  • Как указано в этой статье, гиперпараметры(например, количество эпох, параметр регуляризации и т. д.) — это переменные, которые используются алгоритмом обучения для вычислить лучшие параметры модели. Они должны быть заданы априори и внешне экспериментатором.
  • Гиперпараметры не регулируются каким-либо фиксированным протоколом или алгоритмом. Экспериментатор или специалист по обработке и анализу данных должны тщательно изучить данные методом пробного срабатывания, чтобы найти подходящее значение для этих переменных.
  • Теперь следует отметить, что по мере изменения значений гиперпараметров мы получаем новое проявление модели. Таким образом, процесс поиска лучшей модели среди всех этих моделей называется выбором модели.
  • Выбор модели — это не что иное, как процесс оптимизации гиперпараметров. Поскольку мы выбираем соответствующие гиперпараметры, это косвенно означает, что мы изучаем значения гиперпараметров, которые помогут алгоритму найти наилучшие параметры модели, в чем и заключается весь смысл подбора модели!

Методы выбора модели

3-сторонний метод блокировки

  • Мы уже изучили отличный метод Holdout. Можно ли расширить его идею и для выбора модели? Посмотрим.
  • В методе Holdout мы делили набор данных на 2 части — обучающую и тестовую. Это сделано для того, чтобы мы могли иметь с собой какие-то невидимые данные априори, по которым мы могли бы позже оценить производительность нашей модели.
  • Что, если мы еще раз разделим набор поездов на 2 части — набор поездов и набор проверки. Этот набор Train будет использоваться для подбора нашей модели (как обычно), а тестовый набор будет тем, по которому мы будем оценивать производительность подобранной модели (также как обычно). Но для чего предназначена эта проверка?
  • Этот Проверочный набор фактически используется для выбора наилучшей модели. Используя проверочный набор, мы оптимизируем гиперпараметры, тем самым выбирая наиболее подходящие значения, которые дают нам наилучшие параметры модели (и, следовательно, наилучшую производительность модели). Мы запустим алгоритм с различными значениями гиперпараметров и оценим производительность модели (с учетом всех этих значений) на проверочном наборе. Значения, при которых мы получаем наибольшую производительность, будут выбраны в последнюю очередь.
  • Таким образом, мы сравниваем оценки производительности модели и выбираем лучшие значения гиперпараметров, которые способствуют максимальной производительности.
  • Позже мы объединяем набор поездов и набор проверки, чтобы устранить любое пессимистическое смещение (вызванное отсутствием набора данных). Мы снова подгоняем модель, используя этот объединенный набор и полученные значения гиперпараметров.
  • Наконец, мы оцениваем производительность модели, используя тестовый набор, хранящийся отдельно.
  • При желании мы можем объединить поезд, проверку и тестовый набор вместе, чтобы получить максимально доступный набор данных.

k-Fold Cross-Validation (CV)метод

  • Можно сказать, что это самый известный метод выбора модели, когда у нас дефицит набора данных.
  • Основная идея заключается в следующем:
    Дайте возможность протестировать каждый пример данных.
  • Процедура псевдокода выглядит следующим образом:
    Для kколичество итераций:
    ** Шаг 1: Разделите набор данных на k частей. Оставьте одну часть для тестирования и объедините оставшиеся k-1 частей для обучения.
    ** Шаг 2: Подберите модель, используя объединенный обучающий набор и любой подходящий алгоритм обучения.
    ** Шаг 3.После подбора модели оцените ее производительность по сравнению с набором автономных тестов и рассчитайте показатель точности производительности.
    ** Шаг 4.Сохраните этот показатель точности.
  • После kитераций вычислите окончательную точность как среднее значение всех сохраненных оценок точности.

  • k-Fold CV кажется похожим на метод Repeated Holdout, но на самом деле разница между ч/б k-Fold CV и Метод Repeated Holdout заключается в том, что в первом подходе наборы тестов никогда не перекрываются, тогда как во втором они могут время от времени перекрываться. Как мы знаем, k-Fold CV обещает, что каждая точка данных станет точкой тестирования, таким образом, он также отличается от простого метода Holdout, где из-за для одной итерации все точки данных не имеют возможности пройти тестирование.
  • Два особых случая k-Fold CV:
    ** 2-Fold CV:Это эквивалентно простому методу Holdout,поскольку k=2. Но есть загвоздка; его следует выполнить дважды, чередуя обучающий и проверочный наборы во второй итерации.
    ** Перекрестная проверка без исключения (LOOCV):Когда k=n, то есть нет. складок установлено как нет. обучающих примеров, то он называется LOOCV. Это может быть дорогостоящим в вычислительном отношении, если размер обучающей выборки очень велик. Предположим, что у нас есть тысяча точек данных в обучающем наборе. Тогда в LOOCV количество итераций будет равно 1000, и на каждой итерации будет 1 тестовая точка и 999 обучающих точек данных. Это также является причиной того, что LOOCV имеет очень высокую дисперсию, но очень низкое смещение; поскольку имеется не дефицит обучающего набора (таким образом, смещение удалено), а явный дефицит невидимых/тестовых данных, ровно 1 контрольная точка (введена высокая дисперсия).
    Если мы посмотрим на блок-схему (выше), мы можем понять LOOCV совершенно ясно. Он иллюстрирует метод LOOCV с обучающим набором размера 4.
  • Ниже представлена ​​реализация некоторых общих тенденций перекрестной проверки k-Fold:

  • Опытным путем было показано, что наилучшее значение для k равно 10 («наилучшее значение»). Однако необходимо учитывать размер набора данных.

  • Выбор модели с помощью k-Fold CV:
    ** Шаг 1:
    Подобно методу трехстороннего удержания, разделите набор данных на две части: обучающий набор и тестовый набор. Далее разделите набор поездов на наборы для обучения и проверки.
    ** Шаг 2.Попробуйте различные значения гиперпараметров. Для каждой конфигурации гиперпараметров примените метод k-Fold CV к тренировочному набору, подберите модель и проверьте ее производительность на проверочном наборе. Это приведет к множеству моделей и оценок производительности. Наконец, выберите значения гиперпараметров, которые дают наилучшую модель.
    ** Шаг 3. Использование той настройки гиперпараметра, которая дала наилучший результат в k-Свернуть CV вышеописанную процедуру, объединить поезд и проверочный набор и, наконец, подобрать модель, используя этот объединенный набор поездов с полученными значениями гиперпараметров и параметров модели.
    ** Шаг 4.Теперь выполните оценку модели по независимому тестовому набору, сохраненному в Шаг 1.
    ** Шаг 5:
    При необходимости объедините полный тестовый набор с обучающим набором, чтобы избежать пессимистического смещения, и подгоните окончательную модель к полному доступному набору данных.

Резюме

  • Подходы метода Holdout обычно рассматриваются как K-Fold CV, особенно в современном мире искусственного интеллекта. Почему?
  • Нам все еще не хватает огромного набора данных, но у нас есть достаточное количество данных, например, миллионы и миллиарды из них. И с течением времени новые алгоритмы и подходы к решению задач машинного обучения появляются каждый момент. Например, глубокие нейронные сети, генеративно-состязательные алгоритмы и т. д. Эти алгоритмы предназначены для решения очень сложных задач, поэтому для подбора модели требуется огромное количество времени.
  • Таким образом, мы не можем позволить себе повторять весь набор данных kколичество раз. Оптимизация некоторых из этих моделей занимает даже недели. Таким образом, практически невозможно использовать k-Fold CV для подбора модели с огромным набором данных и сложными алгоритмами.
  • Кроме того, как мы видели, огромные наборы данных теоретически улучшают производительность моделей. Предположим, у нас есть 1 миллион точек данных в наборе данных. Таким образом, в этом случае, если мы разделим набор данных на соотношение 70/30 или 80/20, это вообще не повредит производительности, поскольку у нас будет достаточно точек данных для обучения, чтобы модель соответствовала ее возможностям, а также достаточно тестирование точек данных для надлежащей оценки производительности нашей модели. Таким образом, мы фактически позаботимся о проблеме смещения и дисперсии с помощью больших наборов данных и метода удержания.

Вывод

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

Мы видели различные методы оценки модели, начиная с наивного метода повторной подстановки, который не рекомендуется из-за его переоснащения. Затем мы изучили различные аспекты метода удержания (наиболее рекомендуется для большого набора данных). После этого мы изучили интуицию, стоящую за методом Bootstrap и его вариантом LOOB (Leave One Out Bootstrap). Прекрасная идея создать собственный набор данных с помощью выборки с заменой, но ее следует использовать только с небольшими наборами данных из-за неэффективности вычислений.

Затем мы перешли к критериям выбора модели, где рассмотрели 3-сторонний метод удержания, расширение простого метода удержания для выбора модели. Здесь мы разделяем данные на 3 раздела — набор для обучения, набор для проверки и набор для тестирования. Наконец, мы рассмотрели наиболее многообещающий метод, k-Fold Cross Validation, широко используемый с небольшими наборами данных, поскольку он учитывал любой тип пессимистического уклона, а также проблемы с дисперсией. Но мы также посчитали его недостаткомочень затратным в вычислительном отношении при использовании с большими наборами данных.

Надеюсь, вам всем очень понравилось проходить эту историю, и что она оправдала ваши ожидания. Пожалуйста, поддержите меня любым удобным для вас способом, чтобы у меня было все больше и больше мотивации для прогресса. Спасибо вам всем. Оставайтесь с нами и приятного обучения. 😊

:-}