Почему преобразование данных в пространство пространственных объектов, в котором классы являются линейно разделимыми, приводит к переобучению?


10

Я прочитал в своей книге (статистическая классификация паттернов по Уэббу и Уайли) в разделе о SVM и линейно неразделимых данных:

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

Почему преобразование данных в пространство пространственных объектов, в котором классы являются линейно разделимыми, приводит к переобучению и плохой способности к обобщению?

Ответы:


8

У @ffriend есть хороший пост об этом, но, вообще говоря, если вы преобразуетесь в пространство пространственных объектов и обучаетесь оттуда, алгоритм обучения «вынужден» учитывать особенности более высокого пространства, даже если они могут не иметь ничего делать с исходными данными, и не предлагать никаких прогностических качеств.

Это означает, что вы не будете правильно обобщать правила обучения при обучении.

Возьмем интуитивно понятный пример: предположим, вы хотите предсказать вес по росту. У вас есть все эти данные, соответствующие весу и высоте людей. Допустим, что в целом они следуют линейным отношениям. То есть вы можете описать вес (W) и рост (H) как:

W=mHb

где - это наклон вашего линейного уравнения, а - это y-перехват, или, в данном случае, W-перехват.бmb

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

Теперь допустим, что вы взяли эти 2-мерные данные и преобразовали их в пространство более высокого измерения. Таким образом, вместо только вы также добавляете еще 5 измерений: , , , и .H 2 H 3 H 4 H 5 HH2H3H4H5H2+H7

Теперь вы идете и находите коэффициенты полинома, чтобы соответствовать этим данным. То есть вы хотите найти коэффициенты для этого многочлена, который «наилучшим образом соответствует» данным:ci

W=c1H+c2H2+c3H3+c4H4+c5H5+c6H2+H7

Если вы сделаете это, какую линию вы бы получили? Вы получите тот, который очень похож на дальний правый сюжет @ffriend. Вы перегрузили данные, потому что вы «заставили» свой алгоритм обучения учитывать полиномы более высокого порядка, которые не имеют ничего общего с чем-либо. Биологически говоря, вес зависит только от роста линейно. Это не зависит от или любых глупостей более высокого порядка.H2+H7

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


6

Допустим, мы пытаемся найти функцию, которая аппроксимирует набор 2D точек на плоскости, используя линейную регрессию (что, по сути, во многом похоже на то, что делает SVM). На 3 изображениях ниже красные крестики представляют собой наблюдения (данные обучения), а 3 синие линии представляют уравнения с различной степенью полинома, используемого для регрессии.

введите описание изображения здесь

Первое изображение генерируется линейным уравнением. Как видите, он отражает точки довольно плохо. Это называется подгонкой , потому что мы дали алгоритму обучения слишком малую «степень свободы» (полином слишком малой степени). Второе изображение намного лучше - мы использовали многочлен второй степени, и это выглядит довольно хорошо. Однако, если мы еще больше увеличим «степень свободы», мы получим 3-е изображение. Синяя линия проходит через кресты, но вы верите, что эта линия действительно описывает зависимость? Я так не думаю. Да, на обучающем множестве ошибка обучения (расстояние между крестиками и линией) очень мала, но если мы добавим еще одно наблюдение (скажем, из реальных данных), наиболее вероятно, что ошибка для него будет намного больше, чем если бы мы использовали уравнение из второго образ. Этот эффект называется переоснащениемxxx2x3, Короче говоря, вы делите свои данные, скажем, на 10 частей, берете 9 из них для обучения и 1 для проверки. Если ошибка в наборе проверки намного выше, чем в наборе поездов, значит, у вас перегруз. Большинство алгоритмов машинного обучения используют некоторые параметры (например, параметры ядер в SVM), которые позволяют преодолеть переоснащение. Также, одним из популярных ключевых слов здесь является регуляризация - модификация алгоритма, которая напрямую влияет на процесс оптимизации, буквально говоря, что «не следуйте за данными обучения слишком близко».

Кстати, я не уверен, что DSP является подходящим сайтом для подобных вопросов, возможно, вам будет интересно посетить CrossValidated .


Это было - украдено - позаимствовано из видео лекций Эндрю Нг по машинному обучению. Если только вы не доктор Нг. В таком случае, вы ищете аспиранта для своей лаборатории? (Лекции можно найти на coursera.com для тех из вас, кто заинтересован)
CyberMen

@CyberMen: он был украден с images.google.com :) Но да, нотация очень похожа на нг. И я бы определенно предложил его курс (и другие статьи) для введения в машинное обучение.
друг

Я думаю, что DSP - подходящее место для подобных вопросов, по крайней мере, среди других сайтов SE.
Гигили

2

Вы читали дальше?

В конце раздела 6.3.10:

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

что приводит нас к разделу 6.3.3:

« Приемлемые ядра должны быть выражены как внутренний продукт в пространстве признаков, что означает, что они должны удовлетворять условию Мерсера»

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


Я читаю «4.2.5 Машины опорных векторов», как я уже сказал, я не знаю, о каком разделе 6 вы говорите. Поскольку абзац после того, что я упомянул в вопросе, не имеет к этому никакого отношения, я подумал, что лучше спросить его здесь.
Гигили

Извините, я перепутал это со статистическим распознаванием паттернов также от Уэбба, который я сейчас ищу и который имеет те же главы.
Сигрлами
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.