Все ли алгоритмы машинного обучения разделяют данные линейно?

22

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

Некоторое время назад я прочитал блог, в котором автор рассказывает об использовании линейной регрессии в ML. Если я правильно помню, он говорил о том, что в конце концов все машинное обучение использует своего рода «линейную регрессию» (не уверен, использовал ли он этот точный термин) даже для линейных или нелинейных задач. Тогда я не поняла, что он имел в виду.

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

Это было мое мышление

Скажем, для классификации линейных данных мы использовали линейное уравнение а для нелинейных данных мы используем нелинейное уравнение, скажем, y = s i n ( x )Yзнак равномИкс+сYзнак равноsяN(Икс)

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

Это изображение взято с сайта sikit learn машины опорных векторов. В SVM мы использовали разные ядра для целей ML. Таким образом, я изначально думал, что линейное ядро ​​разделяет данные, используя линейную функцию, а ядро ​​RBF использует нелинейную функцию для разделения данных.

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

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

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

Мой вопрос заключается в том, все ли алгоритмы машинного обучения в конечном итоге используют линейное разделение для классификации (линейный / нелинейный набор данных)?

Eka
источник
1
Связано: stats.stackexchange.com/questions/164048/…
Sycorax сообщает восстановить Monica
3
грех(Икс)sзнак равногрех(Икс)Yзнак равноθ0+θ1s
Мне также нравится ответ mbq в этой теме: Помогите мне разобраться с машинами опорных векторов .
Энди Ш

Ответы:

26

Ответ №. User20160 имеет идеальный ответ, я добавлю 3 примера с визуализацией, чтобы проиллюстрировать идею. Обратите внимание, что эти графики могут быть не полезны для вас, чтобы увидеть, если «окончательное решение» в линейной форме, но дать вам некоторое представление о дереве, бустинге и KNN.

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

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

Наконец, подумайте о K ближайших соседей (KNN). Это также не линейная решающая функция на конечном уровне. кроме того, в KNN нет «трансформации функций».

Вот три визуализации в 2D-пространстве (дерево, повышение и KNN сверху вниз). Основная истина состоит в том, что 2 спирали представляют два класса, и левый подпункт - это предсказания модели, а правый подпункт - границы принятия решения из модели.

Граница дерева решений

Усиление границы решения

Граница решения КНН


РЕДАКТИРОВАТЬ: ответ @ ssdecontrol в этом посте дает другую перспективу.

Это зависит от того, как мы определяем «трансформацию» .

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

Haitao Du
источник
Я не хочу критиковать, но повышение кажется немного грубым, нет? Разве нельзя получить более плавный результат с другими параметрами? Извините, что был привередлив, потому что я нахожу все объяснения очень хорошими.
YCR
@YCR Я думаю, что это точка повышения, где у вас есть грубая граница решений. Шероховатость вызвана агрегацией многих слабых классификаторов (в данном примере это деревья). Но я согласен с вами, что второй пример не является хорошей моделью, и это переоснащение :)
Haitao Du
1
(+1) Отличная визуализация (я также часто spiralsиспользую в своих экспериментах). Предложение: нанесите на карту границы решения как image, и возможно добавьте уровни вероятности (если вы используете вероятностные результаты) с contour.
Firebug
@ Firebug отличное предложение! эти сюжеты генерируются в виде сетки и могут сообщить вам только окончательную метку. Контур намного лучше.
Haitao Du
Посмотрите на мой ответ здесь: stats.stackexchange.com/a/218578/60613
Firebug
21

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

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

user20160
источник
Нейронная сеть не является хорошим примером модельного класса, который использует гиперплоскости после нелинейного преобразования. Выходной слой может быть (во многих случаях) сигмовидной активацией, если принять предыдущие слои в виде нелинейного преобразования в пространство объектов.
Кагдас Озгенц
1
@CagdasOzgenc Давайте рассмотрим случай бинарной классификации и сети с сигмоидальным выходом, как вы предлагаете. Это эквивалентно логистической регрессии на активациях предыдущего уровня (использование выходов softmax будет эквивалентно полиномиальной логистической регрессии). Таким образом, граница принятия решения - это гиперплоскость в пространстве признаков. Картинка в оригинальном вопросе показывает хороший пример этого.
user20160
Я понимаю, что когда f (Ax) = 0 и f один к одному, вы можете просто сделать f ^ -1 из (Ax) = f ^ -1 (0) => Ax = 0 (или некоторую константу c). Таким образом, в случае сигмоида, вы получаете линейную границу решения. В основном мы говорим о случаях, когда f не обратимо?
Кагдас Озгенц
Является ли f функцией активации выходного нейрона и x выходом предыдущего слоя? Не уверен, что я понимаю, что вы спрашиваете.
user20160
x - вектор, исходящий из нейронов предыдущего слоя, а f - функция активации выхода.
Кагдас Озгенц