Categorías
Universitario Videojuego

Modelos no lineales

Como en la práctica la realidad no suele tener la forma de una recta perfecta, aquí empezamos a introducir herramientas que permiten capturar «fronteras de decisión» curvadas, discontinuas y complejas.

Árboles de decisión

Si recordáis lo que es un árbol de decisión en Inteligencia Artificial clásica (los que vemos en la asignatura de Inteligencia Artificial para Videojuegos), aquí se trata de encontrar una manera automática de crear estos árboles a partir de datos.

Para ello se utiliza el algoritmo de árboles de clasificación y regresión (CART, Classification and Regresion Trees) que lo que haces es particionar el espacio de características de forma recursiva mediante reglas ortogonales condicionales (tipo if-then-else), creando hiperplanos paralelos a los ejes.

Como criterios de división se seleccionan variables y puntos de cortes mediante la Impureza de Gini o la Entropía / Ganancia de Información en clasificación, y el MSE en regresión. Seguramente sea interesante ver la historia de los distintos algoritmos que han existido, quizá empezando por CART (1984), luego el dicotomizador iterativo (ID3, Iterative Dichotomiser 3 DE 1986), C4.5 de 1993 y C5.0 de finales de los 90.

Cuando estos árboles crecen sin control tienen una tendencia destructiva que les lleva al sobreajuste (overfitting), por lo que requiere técnicas de poda (pruning) o establecer ciertos límites de profundidad.

Máquinas de vectores de soporte

Las Support Vector Machines (SVM) trabajan haciendo lo que se conoce como una maximización del margen: buscan el hiperplano que no sólo separa las clases, sino que lo hace a la máxima distancia posible de los puntos más cercanos de cada categoría (estos son los llamados «vectores de soporte»).

¿Qué pasa cuando los datos no son separables linealmente en el espacio de características original? Hay un «truco del Kernel» (Kernel Trick) que podemos hacer, que consiste en proyectar los datos implícitamente a una dimensión superior donde sí se pueden trazar fronteras de decisión lineales mediante funciones Kernel (RBF/Gaussiano, Polinomial…).

Vecinos más cercanos

La técnica de los k-vecinos más cercanos o k-NN es una forma de aprendizaje «vago» (lazy learning), ya que no existe una fase formal de entrenamiento que permita generar un modelo abstracto sino que en realidad se memoriza TODO el conjunto de datos de entrenamiento.

Luego, para predecir un nuevo punto y hacer la correspondiente clasificación espacial, se calculan las distancias (pueden ser la euclídea o la manhattan…) a todos los registros memorizados, asignando la etiqueta mayoritaria entre los k vecinos más próximos. Así de simple.

Esta idea es intuitiva y poderosa, pero obviamente no escala bien y no es eficiente en tiempo de ejecución si tenemos un conjunto de datos enorme o si el espacio tiene muchas dimensiones (la llamada «maldición de la dimensionalidad»).

Vecindad y regresión no lineal

El método de regresión por vecindad (k-NN Regressor) es un método de regresión no lineal y no paramétrico extremadamente simple: cuando nos llega una nueva muestra y queremos predecir su valor, buscamos los k vecinos más cercanos, tomamos sus valores conocidos y calculamos la media (o media ponderada por distancia). Más que aprendizaje o modelización de una función es, como decíamos, pura memorización.

Por otro lado, el método de regresión no lineal mediante Splines no busca vecinos, sino que el algoritmo intenta construir una curva suave (de tipo Spline) que pase cerca de los datos. Frente a los saltos abruptos de un árbol individual, enfoques como este generan funciones no lineales continuas y curvas más «suaves» y adaptadas a regiones locales del espacio de características.

Más información

Para complementar es recomendable consultar otros documentos.