Сегодня я поделюсь с вами, как диагностировать, имеет ли алгоритм смещение или дисперсию, и как выбрать направление алгоритма оптимизации.
1. Как определить следующий план?
Когда мы разрабатываем алгоритм машинного обучения, такой как линейная регрессия или логистическая регрессия, и алгоритм работает нормально, но эффект не очень хороший, какой метод можно использовать для повышения производительности или точности алгоритма? Или есть способ сообщить нам, какие шаги следует предпринять после разработки алгоритма машинного обучения, прежде чем пытаться выяснить, как повысить производительность, например:
- получить больше обучающих образцов
- попробуй уменьшить количество функций
- попробуй получить больше возможностей
- Попробуйте добавить полиномиальные функции
- попытаться уменьшить степень регуляризации
- попробуй увеличить регуляризацию
- ...
Вышеупомянутые 6 идей можно использовать в качестве вариантов для повышения производительности алгоритма, но какую идею оптимизации мы должны выбрать для алгоритма? Сегодня я поделюсь с вами тем, как оценить алгоритм машинного обучения, также известный какдиагностика машинного обучения, этот метод может сообщить нам явно:Чтобы еще больше повысить производительность алгоритма, какой метод мы должны использовать, чтобы быть более эффективным, увеличить ли количество обучающих наборов, увеличить или уменьшить количество признаков и т. д.
Необходимость использования этого метода может помочь нам сэкономить время, чтобы мы могли более четко определить направление алгоритма оптимизации, чтобы не выбирать случайным образом идеи оптимизации, такие как безголовые мухи, и конечный эффект не будет хорошим.
Во-вторых, набор для обучения, набор для перекрестной проверки, тестовый набор
Прежде чем изучать метод диагностики, необходимо обработать набор обучающих данных.В случае, когда переменных признаков мало, мы можем напрямую нарисовать эффект подгонки гипотетической функции на обучающем наборе, например:
Однако, когда количество признаков настолько велико, что эффект аппроксимации не может быть представлен кривой, для измерения эффекта аппроксимации гипотетической функции необходим другой метод индекса ошибки функции стоимости.По этой причине исходный набор данных должен быть быть разделенным:
- 70% в качестве тренировочного набора
training set
- 30% в качестве тестового набора
test set
Таким образом, у нас есть набор тестовых данных для оценки эффекта модели.Сначала обучите модель на обучающем наборе, а затем используйте тестовый набор для расчета ошибки функции стоимости модели., но модель, которая лучше подходит для обучающей выборки, может быть не в состоянии адаптироваться к новой выборке, поэтому мы разделяем еще однуНабор перекрестной проверки помогает нам выбрать модель для обучения на обучающем наборе., а затем разделите набор данных для этого:
- 60% в качестве тренировочного набора
training set
- 20% в качестве набора перекрестной проверки
cross validation set
- 20% в качестве тестового набора
test set
Затем используйте эти 3 набора данных для обучения или оценки нескольких моделей:
- Обучите модель на тренировочном наборе и рассчитайте ошибку обучения
- Вычислить ошибку перекрестной проверки функции стоимости в наборе перекрестной проверки
- Выберите модель с наименьшей ошибкой перекрестной проверки
- Рассчитайте ошибку обобщения функции стоимости наименьшей модели, выбранной на предыдущем шаге в тестовом наборе.
Вышеупомянутые три ошибки представляют собой функции стоимости ошибки в квадрате, которые рассчитываются только для разных наборов данных:
Далее мы используем кривые для сравнительного анализа на обучающем наборе и наборе перекрестной проверки, чтобы проанализировать существование текущего алгоритма.проблема с высоким смещениемвсе ещепроблема высокой дисперсии.
3. Кривые полиномиальной степени, смещения и дисперсии
Изучив предыдущие блоги, мы уже знаем:
- Проблема высокого смещения: недообучение модели
- Проблема высокой дисперсии: переобучение модели (переоснащение)
С помощью ранее разделенного набора перекрестной проверки обучающего набора мы можем нарисовать полиномиальную кривую ошибки функции степени-стоимости модели, чтобы помочь нам проанализировать, является ли текущая модель недостаточной или чрезмерной для кривой, например следующую кривую:
пожалуйста, объясни:
- По оси абсцисс представлена полиномиальная степень предполагаемой функции (модели).
d
- Ордината представляет ошибку функции стоимости
error
- Представляет ошибку функции стоимости модели в наборе перекрестной проверки.
- Представляет ошибку функции стоимости модели на обучающем наборе.
Из приведенной выше кривой мы можем найти 3 ключевые позиции и их значения:
3.1 Степень полинома d мала
Поскольку количество повторений модели невелико, ошибка подбора обучающего набора и набора перекрестной проверки относительно велика.иОшибки похожи, и они довольно большие.
3.2 Подходит степень полинома d
Когда мы выбираем подходящую модель, ошибки набора тренировок и набора поперечного варианта относительно невелики, и ошибка набора поперечного варианта находится в самой нижней точке, что показывает, что модель, соответствующая текущей полиноменной степени подходит Перекрестная проверка устанавливается лучше всего.
3.3. Степень многочлена d велика
Однако, когда мы продолжим увеличивать полиномиальную степень модели, мы обнаружим, что ошибка обучающего набора продолжает уменьшаться, но вместо этого увеличивается ошибка перекрестной проверки, Это связано с тем, что полиномиальная степень, которую мы выбираем, слишком высока, а модель производит перепроизводство на множестве перекрестной проверки fit, то есть дисперсия слишком велика.
Из вышеизложенных трех ключевых позиций можно сделать следующие выводы:
- иПри аппроксимации: модель недостаточно подобрана, а смещение (Bias) велико
- намного больше, чемКогда: модель переобучена, дисперсия (дисперсия) большая
4. Кривые коэффициента регуляризации, смещения и дисперсии
В дополнение к анализу взаимосвязи между полиномиальной степенью модели и методом отклонения мы также можем проанализировать коэффициент регуляризации, который может помочь нам выбрать подходящий коэффициент регуляризации для предотвращения переобучения.Благодаря предыдущему обучению мы знаем:
- коэффициент регуляризацииСлишком большой: модель склонна к недообучению, а отклонение большое
- коэффициент регуляризацииПодходит: модель хорошо сидит
- коэффициент регуляризацииСлишком мало: модель склонна к переоснащению, а дисперсия велика.
как:
![](Ах ты.OSS-talent-Shenzhen.Aliyun killing.com/blog/multi_… .jpg)
Чтобы проанализировать влияние коэффициента регуляризации на модель, мы также можем выполнить расчет ошибки нескольких групп различных моделей коэффициента регуляризации на трех предыдущих наборах данных:
- существует
training set
Модели, обученные на нескольких наборах различных коэффициентов регуляризации - Соответственно
cross validation set
Рассчитайте ошибку перекрестной проверки функции стоимости для каждой группы на - Выберите модель с наименьшей ошибкой перекрестной проверки
- Поместите модель с наименьшей ошибкой в
test set
Вычислить ошибку обобщения
В процессе мы можем построить график зависимости коэффициента регуляризации от ошибки функции стоимости:
Объясните 3 ключевые позиции на кривой ниже:
4.1 меньше
Поскольку коэффициент регуляризации мал, модель превосходит обучающую выборку, хотя ошибкаМеньше, но ошибка на наборе перекрестной проверкиОн очень большой, потому что переобученная на обучающей выборке модель не может хорошо адаптироваться к неизвестным образцам.
4.2 Подходящее
Когда выбран соответствующий коэффициент регуляризации, ошибка модели как на обучающем наборе, так и на наборе перекрестной проверки мала, чего мы и хотим.
4.3 больше
Когда коэффициент регуляризации велик, модель не может хорошо соответствовать данным на обучающем наборе (недообученность), не говоря уже о проверке ее на наборе перекрестной проверки на неизвестном, поэтому ошибка обоих велика.
Также кратко суммируйте эту кривую:
- когдаНебольшой: ошибка обучающего набора небольшая, ошибка перекрестной проверки большая.
- когдаПостоянно увеличивается: ошибка обучающего набора постепенно увеличивается, в то время как ошибка набора перекрестной проверки сначала уменьшается, а затем увеличивается.
5. Кривая обучения
В дополнение к взаимосвязи между вышеупомянутой степенью полинома, коэффициентом регуляризации и ошибкой, существует также очень важная взаимосвязь, называемая «кривая обучения», которая в основном используется для иллюстрации взаимосвязи между ошибкой перекрестной проверки и ошибкой обучающего набора с количеством образцы , мы можем использовать эту кривую, чтобы определить, есть ли у алгоритма проблема смещения или дисперсии для данного размера выборки.
Мы также анализируем следующие две ошибки функции стоимости:
Мы строим взаимосвязь между этими двумя параметрами и количеством образцов в виде кривой обучения:
Поскольку анализируется связь между количеством отсчетов и этими двумя ошибками, мы обсудим ее в двух случаях.
5.1 Модель имеет проблемы с высоким смещением (недообучение)
Когда модель не подходит, например, степень полинома слишком мала (слишком мало признаков), независимо от того, насколько увеличивается количество выборок, ошибка обучающего набора и ошибка набора перекрестной проверки не уменьшатся сильно, это ситуация показывает, что в нашей модели существует проблема высокого смещения, то есть недообучения:
В этом случае, если вы не используете кривую обучения для анализа, но прямо чувствуете, что я должен добавить больше данных, чтобы эффект подгонки модели был лучше, то выберите неправильное направление оптимизации из кривой См. , независимо от того, сколько выборок вы увеличиваете, ошибка не уменьшается.
5.2 Модель имеет проблемы с высокой дисперсией (переобучение)
Теперь предположим, что у нас есть полиномиальная модель очень высокой степени (много функций), а коэффициент регуляризации мал. Если количество обучающих выборок невелико, она будет соответствовать обучающему набору, что приведет к большой ошибке в наборе перекрестной проверки. (Переоснащение не может хорошо адаптироваться к новым образцам), и когда количество образцов увеличивается, поскольку наша модель имеет достаточно функций, она не будет легко переобуваться, поэтому по мере увеличения числа обучающий набор и набор перекрестной проверки. Ошибка будет уменьшенный:
В двух словах:
- Модели с высоким смещением (недообучение), увеличение размера выборки не обязательно помогает алгоритму.
- Модели с высокой дисперсией (переобучение), увеличение количества выборок может повысить производительность алгоритма.
Здесь тоже только возможные случаи, потому что реальная модель может быть сложной и могут быть какие-то частные случаи.
6. Теперь решите следующий шаг
Узнав, как диагностировать, есть ли у алгоритма проблема смещения или дисперсии, мы можем ответить на вопрос, поставленный в начале статьи, как выбрать направление оптимизации:
- Получите больше обучающих выборок — подходит для моделей с высокой дисперсией
- Попробуйте уменьшить количество функций — подходит для моделей с высокой дисперсией.
- Попробуйте получить больше возможностей - для моделей с высоким смещением
- Попробуйте добавить полиномиальные функции — для моделей с большим смещением
- попытаться уменьшить степень регуляризации- подходит для моделей с большим уклоном
- попробуй увеличить регуляризацию- подходит для моделей с высокой дисперсией
Узнав, как диагностировать проблемы алгоритма, вы сможете выбрать соответствующее направление оптимизации для целенаправленной работы, вместо слепого выбора направления оптимизации, которое в итоге может оказаться бесполезным.
В ПОРЯДКЕ! На сегодня все, увидимся в следующий раз :)