27 votos

¿Todos los algoritmos de aprendizaje automático separan los datos linealmente?

Soy un entusiasta de la programación y el aprendizaje automático. Hace sólo unos meses empecé a aprender sobre programación de aprendizaje automático. Al igual que muchos que no tienen una formación en ciencias cuantitativas, también empecé a aprender sobre ML jugando con los algoritmos y conjuntos de datos en el paquete ML ampliamente utilizado (caret R).

Hace un tiempo leí un blog en el que el autor habla sobre el uso de la regresión lineal en ML. Si no recuerdo mal hablaba de que todo aprendizaje automático al final utiliza algún tipo de "regresión lineal" (no estoy seguro de si utilizaba este término exacto) incluso para problemas lineales o no lineales. Aquella vez no entendí lo que quería decir con eso.

Según tengo entendido, el aprendizaje automático para datos no lineales consiste en utilizar un algoritmo no lineal para separar los datos.

Este era mi pensamiento

Digamos que para clasificar datos lineales utilizamos la ecuación lineal $y=mx+c$ y para datos no lineales utilizamos una ecuación no lineal, por ejemplo $y=sin(x)$

enter image description here

Esta imagen está tomada del sitio web sikit learn de support vector machine. En SVM utilizamos diferentes núcleos para ML propósito. Así que mi pensamiento inicial fue kernel lineal separa los datos utilizando una función lineal y RBF kernel utiliza una función no lineal para separar los datos.

Pero entonces vi esto blog donde el autor habla de las redes neuronales.

Para clasificar el problema no lineal en la subparcela izquierda, la red neuronal transforma los datos de tal manera que al final podemos utilizar la separación lineal simple para los datos transformados en la subparcela derecha

enter image description here

Mi pregunta es si todos los algoritmos de aprendizaje automático utilizan al final una separación lineal para la clasificación (conjunto de datos lineal/no lineal).

26voto

David Puntos 41

La respuesta es No. user20160 tiene una respuesta perfecta, añadiré 3 ejemplos con visualización para ilustrar la idea. Tenga en cuenta que estos gráficos pueden no ser útiles para ver si la "decisión final" está en forma lineal, pero le dan una idea sobre tree, boosting y KNN.

Empezaremos con los árboles de decisión. Con muchas divisiones, se trata de un límite de decisión no lineal. Y no podemos pensar que todas las divisiones anteriores son "transformaciones de características" y hay una línea de decisión final al final.

Otro ejemplo es el modelo boosting, que agrega muchos "clasificadores débiles" y el límite de decisión final no es lineal. Se puede pensar que es un código/algoritmo complicado para hacer la predicción final.

Por último, piense en K Nearest Neighbors (KNN). Tampoco es una función de decisión lineal en la capa final. Además, en KNN no hay "transformaciones de características".

Aquí hay tres visualizaciones en espacio 2D (Árbol, Boosting y KNN de arriba a abajo). La verdad sobre el terreno son 2 espirales que representan dos clases, y el subtrazado de la izquierda son las predicciones del modelo y el subtrazado de la derecha son los límites de decisión del modelo.

Tree decision boundary

Boosting decision boundary

KNN decision boundary


EDITAR: Respuesta de @ssdecontrol en esta entrada ofrece otra perspectiva.

Depende de cómo definimos la "transformación .

Cualquier función que divida los datos en dos partes puede transformarse en un modelo lineal de esta forma, con un intercepto y una única entrada (un indicador de en qué "lado" de la división se encuentra el punto de datos). Es importante tener en cuenta la diferencia entre una función de decisión y un límite de decisión.

21voto

throwaway Puntos 18

Algunos algoritmos utilizan un hiperplano (es decir, una función lineal) para separar los datos. Un ejemplo destacado es la regresión logística. Otros utilizan un hiperplano para separar los datos tras una transformación no lineal (por ejemplo, las redes neuronales y las máquinas de vectores de soporte con núcleos no lineales). En este caso, el límite de decisión es no lineal en el espacio de datos original, pero lineal en el espacio de características al que se trasladan los datos. En el caso de las SVM, la formulación del kernel define implícitamente este mapeo. Otros algoritmos utilizan múltiples hiperplanos de división en regiones locales del espacio de datos (por ejemplo, los árboles de decisión). En este caso, el límite de decisión es lineal a trozos (pero no lineal en su conjunto).

Sin embargo, otros algoritmos tienen límites de decisión no lineales y no están formulados en términos de hiperplanos. Un ejemplo destacado es la clasificación k vecinos más cercanos. Los clasificadores conjuntos (por ejemplo, los producidos por boosting o bagging de otros clasificadores) suelen ser no lineales.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X