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

22

Soy un entusiasta de la programación y el aprendizaje automático. Hace solo unos meses comencé a aprender sobre programación de aprendizaje automático. Al igual que muchos que no tienen una formación científica cuantitativa, también comencé a aprender sobre ML jugando con los algoritmos y conjuntos de datos en el paquete de 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 recuerdo bien, habló sobre cómo todo el aprendizaje automático al final usa algún tipo de "regresión lineal" (no estoy seguro de si utilizó este término exacto) incluso para problemas lineales o no lineales. Esa vez no entendí lo que quería decir con eso.

Mi comprensión del uso del aprendizaje automático para datos no lineales es usar un algoritmo no lineal para separar los datos.

Este fue mi pensamiento

Digamos que para clasificar los datos lineales usamos la ecuación lineal y para los datos no lineales usamos la ecuación no lineal digamosy=metroX+doy=syonorte(X)

ingrese la descripción de la imagen aquí

Esta imagen está tomada del sitio web sikit learn de la máquina de vectores de soporte. En SVM utilizamos diferentes núcleos para propósitos de ML. Entonces, mi pensamiento inicial fue que el núcleo lineal separa los datos usando una función lineal y el núcleo RBF usa una función no lineal para separar los datos.

Pero luego vi este blog donde el autor habla sobre las redes neuronales.

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

ingrese la descripción de la imagen aquí

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

Eka
fuente
1
Relacionado: stats.stackexchange.com/questions/164048/…
Sycorax dice Reinstate Monica
3
Su modelo no lineal también es lineal. introduce una nueva variable , luego tu problema se convierte en , uno lineal. En este sentido, muchos algos ML son lineales. s = sin ( x ) y = θ 0 + θ 1 specado(X)s=pecado(X)y=θ0 0+θ1s
Aksakal
También me gusta la respuesta de mbq en este hilo. Ayúdame a comprender las máquinas de vectores de soporte .
Andy W

Respuestas:

26

La respuesta es No. user20160 tiene una respuesta perfecta, agregaré 3 ejemplos con visualización para ilustrar la idea. Tenga en cuenta que estas gráficas pueden no ser útiles para que vea si la "decisión final" está en forma lineal, pero le da un poco de sentido sobre el árbol, el impulso y el KNN.

Comenzaremos con los árboles de decisión. Con muchas divisiones, es 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 de refuerzo, que agrega muchos "clasificadores débiles" y el límite de decisión final no es lineal. Puedes pensar que es un código / algoritmo complicado para hacer la predicción final.

Finalmente, piense en K Vecinos más cercanos (KNN). Tampoco es una función de decisión lineal en la capa final. Además, no hay "transformaciones de características" en KNN.

Aquí hay tres visualizaciones en el espacio 2D (Tree, Boosting y KNN de arriba a abajo). La verdad básica es que 2 espirales representan dos clases, y la subtrama izquierda son las predicciones del modelo y la subtrama derecha son los límites de decisión del modelo.

Límite de decisión del árbol

Impulsar el límite de decisión

Límite de decisión KNN


EDITAR: la respuesta de @ ssdecontrol en esta publicación 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 una intercepción y una sola entrada (un indicador de en qué "lado" de la partición está el punto de datos). Es importante tomar nota de la diferencia entre una función de decisión y un límite de decisión.

Haitao Du
fuente
No quiero criticar, pero el impulso parece un poco duro, ¿no? ¿No es posible obtener un resultado más uniforme con diferentes parámetros? Perdón por ser pernicioso, porque considero que todas las explicaciones son muy buenas.
YCR
@YCR Creo que ese es el punto de impulsar donde tienes un límite de decisión aproximado. La aspereza es causada por la agregación de muchos clasificadores débiles (en este ejemplo, son árboles). Pero estoy de acuerdo con usted en que el segundo ejemplo no es un buen modelo, y es demasiado ajustado :)
Haitao Du
1
(+1) Gran visualización (también uso spiralsmucho en mis experimentos). Una sugerencia: trace los límites de decisión como image, y quizás agregue niveles de probabilidad (si está utilizando resultados probabilísticos) con contour.
Firebug
@Firebug gran sugerencia! estos gráficos se generan en una cuadrícula y solo pueden indicarle la etiqueta final. El contorno es mucho mejor.
Haitao Du
Mira mi respuesta aquí: stats.stackexchange.com/a/218578/60613
Firebug
21

Algunos algoritmos usan un hiperplano (es decir, una función lineal) para separar los datos. Un ejemplo destacado es la regresión logística. Otros usan un hiperplano para separar los datos después de una transformación no lineal (por ejemplo, redes neuronales y máquinas de vectores de soporte con núcleos no lineales). En este caso, el límite de decisión no es lineal en el espacio de datos original, sino lineal en el espacio de características en el que se asignan los datos. En el caso de SVM, la formulación del núcleo define esta asignación implícitamente. Otros algoritmos utilizan múltiples hiperplanos de división en regiones locales del espacio de datos (por ejemplo, árboles de decisión). En este caso, el límite de decisión es lineal por partes (pero no lineal en general).

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 de los vecinos más cercanos. Los clasificadores de conjunto (por ejemplo, producidos al aumentar o embolsar otros clasificadores) generalmente no son lineales.

usuario20160
fuente
Neural Network no es un buen ejemplo de una clase de modelo que usa hiperplanos después de una transformación no lineal. La capa de salida puede ser (en muchos casos) una activación sigmoidea, dado que asume las capas anteriores como una transformación no lineal a un espacio de características.
Cagdas Ozgenc
1
@CagdasOzgenc Consideremos el caso de la clasificación binaria y una red con salida sigmoidal, como sugiere. Esto es equivalente a la regresión logística en las activaciones de la capa anterior (el uso de salidas softmax sería equivalente a la regresión logística multinomial). Entonces, el límite de decisión es un hiperplano en el espacio de características. La imagen en la pregunta original muestra un buen ejemplo de esto.
user20160
Entiendo que cuando f (Ax) = 0 yf es uno a uno, simplemente puede hacer f ^ -1 de (Ax) = f ^ -1 (0) => Ax = 0 (o alguna constante c). Entonces, en caso de sigmoide, obtienes un límite de decisión lineal. Básicamente, ¿estamos hablando de casos en los que f no es invertable?
Cagdas Ozgenc
¿Es f la función de activación de la neurona de salida y x la salida de la capa anterior? No estoy seguro de entender lo que estás preguntando.
usuario20160
x es un vector que proviene de las neuronas de la capa anterior, yf es la función de activación de salida.
Cagdas Ozgenc