Para cualquier problema de aprendizaje automático, esencialmente, puede dividir sus puntos de datos en dos componentes: patrón + ruido estocástico .
Por ejemplo, si tuviera que modelar el precio de un apartamento, sabrá que el precio depende del área del apartamento, no. de dormitorios, etc. Por lo tanto, esos factores contribuyen al patrón: más dormitorios generalmente conducirían a precios más altos. Sin embargo, todos los apartamentos con la misma área y no. de las habitaciones no tienen exactamente el mismo precio. La variación en el precio es el ruido.
Como otro ejemplo, considere conducir. Dada una curva con una curvatura específica, hay una dirección óptima de dirección y una velocidad óptima. Cuando observa a 100 conductores en esa curva, la mayoría de ellos estaría cerca de ese ángulo de dirección y velocidad óptimos. Pero no tendrán exactamente el mismo ángulo y velocidad de dirección. De nuevo, la curvatura de la carretera contribuye al patrón para el ángulo y la velocidad de dirección, y luego hay ruido que causa desviaciones de este valor óptimo.
- ¿Cuál es la diferencia entre AI y Machine Learning Nanodegrees en Udacity?
- ¿Quiénes son algunos de los investigadores más notables de Machine Learning en India?
- ¿Cuál sería su consejo para los estudiantes universitarios interesados en IA y que pretenden obtener un título de maestría después de graduarse?
- ¿Es teóricamente posible que la inteligencia artificial tome el control del mundo?
- ¿Una IA nacida de la singularidad sabría sobre el chantaje? ¿Qué sería lo primero que aprende?
Ahora el objetivo del aprendizaje automático es modelar el patrón e ignorar el ruido. Cada vez que un algoritmo intenta ajustar el ruido además del patrón, se sobreajusta.
En la configuración supervisada, normalmente desea hacer coincidir el resultado de una función de predicción con sus etiquetas de entrenamiento. Entonces, en el ejemplo de manejo anterior, desearía predecir con precisión el ángulo de dirección y la velocidad. A medida que agrega más y más variables, como la curvatura de la carretera, el modelo del automóvil, la experiencia del conductor, el clima, el estado de ánimo del conductor, etc., tiende a hacer mejores predicciones sobre los datos de entrenamiento. Sin embargo, más allá de un punto, agregar más variables no ayuda a modelar el patrón, sino que solo intenta ajustar el ruido. Dado que el ruido es estocástico, esto no se generaliza bien para datos invisibles y, por lo tanto, tiene un error de entrenamiento bajo y un error de prueba alto.
Considere el siguiente escenario:
(¿Existe una representación gráfica de la compensación de sesgo-varianza en la regresión lineal?)
El algoritmo izquierdo devuelve la línea de mejor ajuste dados esos puntos, mientras que el algoritmo derecho devuelve el polinomio de mejor ajuste de grado k dados esos n puntos. (k es un número grande, como 10, en este ejemplo).
¿Qué sucede si mueve el punto más bajo hacia arriba por cierta distancia?
La línea en la figura izquierda se vuelve un poco más plana: se mueve un poco hacia arriba a la izquierda y permanece aproximadamente en la misma posición a la derecha. Sin embargo, la curva de la derecha cambia bastante. La caída que ves entre los puntos 1 y 3 puede desaparecer por completo.
Claramente, el algoritmo de la derecha está ajustando el ruido. Como se puede ver en este ejemplo, una forma de reducir el sobreajuste es penalizar artificialmente polinomios de mayor grado . Esto asegura que se seleccione un polinomio de mayor grado solo si reduce el error significativamente en comparación con un modelo más simple, para superar la penalización. Esto es regularización.
Miremos esto de nuevo, ahora con algunos números:
Supongamos que tiene un problema de clasificación y utiliza algún algoritmo estándar que utiliza la regularización, digamos SVM, para la tarea. Deje que el error de entrenamiento que obtenga sea del 15%. Llamemos a esto como Model1
.
Ahora, supongamos que agrego una característica espuria a mi conjunto de datos. Ahora, su vector [math] w [/ math] tendrá una dimensión adicional correspondiente a esta característica. Simplemente observando el error de entrenamiento, tal vez al tener un gran peso distinto de cero para esta función adicional, puede reducir el error de entrenamiento ligeramente, digamos al 14.9%. Llamemos a esto Model2
.
Si ahora regularizo mi función objetivo con un parámetro de regularización razonable, entonces, en realidad, lo que eso significa es que no me importa obtener un error de entrenamiento un poco mayor, si puedo obtenerlo con un [matemático] \ | w \ | [/mates]. Entonces, ahora nuestro problema de optimización nos da un modelo que es idéntico al Model1
en todas las demás dimensiones de [math] w [/ math] y tiene un valor cero para la nueva dimensión. Tenga en cuenta que esto funcionará exactamente como Model1. Llamemos a esto Model3
.
Es fácil ver que Model2
es más “complejo” que los otros dos modelos, porque se ajusta más al ruido en los datos. Desea que su modelo solo se ajuste al patrón en los datos, no al ruido, porque el ruido es estocástico, y usarlo para la toma de decisiones sería perjudicial para el rendimiento en datos no vistos .
Y vemos que la regularización es una forma de evitar el sobreajuste, porque con la regularización adecuada, Model3
sobre Model2
.
Finalmente, aquí hay una explicación más formal:
La mayor parte del aprendizaje automático supervisado se puede ver usando el siguiente marco: tiene un conjunto de puntos de entrenamiento [matemática] (x_i, y_i) [/ matemática] y desea encontrar una función [matemática] f [/ matemática] que “se ajusta bien a los datos”, es decir, [matemáticas] y_i \ aprox. f (x_i) [/ matemáticas] para la mayoría de [matemáticas] i [/ matemáticas]. Esta función debe elegirse con cuidado; si es demasiado simple, [math] y_i \ approx f (x_i) [/ math] puede no ser válida para muchos valores de [math] i [/ math]; Si es demasiado complejo, se ajustará muy bien a los datos (tal vez incluso perfectamente), pero no funcionará bien en datos invisibles.
La forma en que establece esta complejidad de la función elegida es la siguiente: Elija una clase de funciones [matemática] \ matemática {F} [/ matemática] cuya complejidad es más fácil de controlar, y luego encuentre la función [matemática] f \ en \ mathcal {F} [/ math] que funciona mejor en los datos de entrenamiento. Entonces, el problema de controlar la complejidad de [math] f [/ math] se ha reducido al problema de controlar la complejidad de [math] \ mathcal {F} [/ math]. Ahora, dado que no hay una forma directa de encontrar la [matemática] \ matemática {F} [/ matemática] óptima, intente con un grupo de clases de función [matemática] \ matemática {F} _1, \ ldots, \ mathcal {F} _k [/ math], y elige el que mejor se adapte a los datos no vistos. Estas clases [math] \ mathcal {F} _1, \ ldots, \ mathcal {F} _k [/ math] están parametrizadas por cantidades llamadas hiperparámetros, y el proceso de elegir la mejor clase se llama optimización de hiperparámetros.
Tomemos un ejemplo rápido: supongamos que tiene un problema de clasificación. Planea utilizar árboles de decisión para la tarea. La complejidad de los árboles de decisión está determinada por su profundidad. Entonces toma clases de función [matemáticas] T_1, \ ldots, T_k [/ matemáticas], donde [matemáticas] T_i [/ matemáticas] es el conjunto de todos los árboles de decisión de profundidad como máximo [matemáticas] i [/ matemáticas]. Por lo tanto, estas clases de funciones están parametrizadas por el hiperparámetro [math] i [/ math]: solo esta cantidad distingue una clase de la otra. Intenta diferentes valores de [math] i [/ math], ajusta el mejor árbol de profundidad como máximo [math] i [/ math] en los datos de entrenamiento y elige el que tenga un error mínimo en los datos no vistos. Por lo tanto, encontrar el valor (casi) óptimo de [math] i [/ math] es el proceso de optimización de hiperparámetros.
Ahora, en lugar de fijar explícitamente la profundidad del árbol de decisión anterior, y resolver un problema de optimización por separado para todas las profundidades posibles en un rango, toma la clase de todos los árboles de decisión y penaliza cada árbol en proporción a su profundidad (o algún aumento monotónico función de profundidad). Entonces, la cantidad que está tratando de minimizar es una combinación lineal del error de entrenamiento y el término de penalización de profundidad. Cuando el peso del término de penalización de profundidad es lo suficientemente grande, los árboles con grandes profundidades tendrán valores muy grandes del término de penalización y, por lo tanto, se volverán subóptimos, por lo que está buscando efectivamente el espacio [matemática] T_1 [/ matemática]; cuando el peso del término de penalización de profundidad es lo suficientemente pequeño, los árboles con gran profundidad no tienen un término de profundidad grande pero tienen errores más bajos que los árboles más pequeños, por lo que está buscando efectivamente el espacio [math] T_k [/ math].
De esta manera, para una ponderación óptima del término de error y el término de profundidad, los árboles con profundidades muy pequeñas se descartan porque tienen un gran error de entrenamiento, y los árboles con gran profundidad se descartan porque tienen un término de profundidad grande. El árbol óptimo está entonces en algún lugar en el medio.
Esta técnica de agregar un “término de complejidad” al término de error para eliminar funciones muy complejas se llama regularización.