В этой статье рассматривается содержание, обсуждаемое в модуле Методы регуляризации курса Глубокое обучение, и все изображения взяты из одного и того же модуля.

Смещение – компромисс между дисперсией:

Допустим, у нас есть данные об игрушках, и ниже представлено их представление:

Мы знаем, что между вводом 'x' и выводом 'y' существует некоторая истинная связь, которую мы не знаем на практике, но для приведенного выше случая, поскольку мы взяли данные об игрушках от самих себя, скажем, мы знаем истинную связь, которая существует между 'x' и 'y'.

Наша работа в ML/DL заключается в аппроксимации отношения между 'x' и 'y' с помощью функции. Итак, мы собираемся сделать два приближения: одно простое, где мы аппроксимируем отношение между 'x' и 'y' как линейную функцию, а другое - сложный (на основе количества параметров, а также из-за формы функции), где мы аппроксимируем отношение между 'x' и 'y' как многочлен степени 25.

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

В простом случае модель будет выглядеть так:

И очевидно, чему здесь научилась модель, единственный способ минимизировать ошибку — это построить линию так, чтобы в среднем она была ближе ко всем точкам. Если мы нарисуем линию так, как она выделена желтым цветом на изображении ниже:

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

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

Для сложной модели график будет выглядеть так:

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

Давайте посмотрим, что произойдет, если мы обучим обе модели (как простую, так и сложную) на разных подмножествах обучающих данных.

Предположим, что у нас есть 1000 точек данных, все из которых перемешаны, и мы случайным образом берем 100 точек данных и обучаем модель для этих 100 точек, и мы повторяем это несколько раз.

Итак, для простой функции, поскольку мы знаем, что наша модель является линейной, график будет выглядеть так (линия на графике ниже, кривая — это фактическое/истинное отношение, которое существует между входом и выходом):

Если мы снова возьмем случайным образом около 100 точек, обучим модель и построим ее график, это будет выглядеть так:

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

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

Если мы проведем тот же эксперимент со сложной моделью, мы получим следующие результаты:

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

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

Смещение и отклонение:

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

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

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

Смещение — это разница между ожидаемым значением модели и истинным значением.

Давайте возьмем значение 'x' как 90 градусов, истинный результат будет равен 1, так как истинная функция - это функция sine, которая даст значение как 1 для ввода как 90 градусов. . Теперь мы попробовали, скажем, 25 моделей, используя разные подмножества обучающих данных, среднее значение выходных данных каждой из этих 25 моделей для одних и тех же входных данных, скажем, 90 градусов, в этом случае называется ожидаемым значением модель.

Итак, мы пытаемся увидеть, насколько наши прогнозы далеки от истинных прогнозов, независимо от того, сколько моделей мы пробуем.

Зеленая линия на изображении ниже — это среднее значение всех простых моделей (среднее значение всех линий), которые мы пробовали:

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

Если мы проделаем то же самое со сложной моделью и построим ее среднее значение, это будет выглядеть как синяя кривая (синяя кривая — это среднее значение, скажем, 25 кривых/моделей, которые мы получили после обучения нашей сложной модели на разных подмножествах обучающих данных) в ниже изображения, и видно, что среднее значение или ожидаемое значение близко к истинному значению.

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

Дисперсия:

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

Второе ожидание на самом деле является ожиданием по всем тренировочным точкам, которые мы собираемся пройти.

У нас есть ввод 'x', истинный вывод, соответствующий этому вводу, и прогнозируемый вывод, соответствующий этому вводу. Если мы усредним все прогнозируемые выходные данные по разным моделям (которые мы получаем путем обучения с использованием разных подмножеств обучающих данных) для заданного ввода, это будет ожидаемое значение модели для этого ввода. Давайте назовем это ожидаемое значение "a". Прогнозируемые выходные данные для разных моделей для одних и тех же входных данных будут просто "a1", "a2", "a3",….. >вплоть до 'an', тогда у нас есть дисперсия как среднее значение суммы квадратов разницы между прогнозируемым значением каждой модели с ожидаемым/значением по всем моделей.

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

То же самое, если мы делаем со сложной моделью, все прогнозируемые результаты будут сильно отличаться друг от друга, так как каждая из кривых будет сильно отличаться, они будут предсказывать очень разные значения на основе параметров, которые они определяют. выучил. Теперь любой отдельный прогноз будет далек от среднего прогнозируемого значения по всем моделям, и это именно то, что фиксирует дисперсия. Итак, это означает, что для сложной модели дисперсия будет высокой.

Интуитивно также дисперсия означает разброс, и если мы посмотрим на разброс, все эти кривые разбросаны и сильно отличаются друг от друга, они будут очень далеки от средней кривой, которую мы получаем, которая является синей кривой на ниже сюжет:

Ошибка теста из-за высокой дисперсии и высокого смещения:

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

Что нас волнует, так это ошибка теста.

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

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

Посмотрим, как обстоит дело со сложной моделью, имеющей высокую дисперсию.

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

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

На изображении выше показано, как выглядят ошибка обучения и ошибка теста по мере увеличения сложности модели. Синяя линия на изображении выше относится к ошибке обучения, а красная линия соответствует ошибке теста.

По мере увеличения сложности модели ошибка обучения снижается, но ошибка теста все равно остается высокой для сложной модели.

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

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