Supongamos que se intenta minimizar la función objetivo mediante el número de iteraciones. Y el valor actual es $100.0$ . En un conjunto de datos dado, no hay "errores irreducibles" y se puede minimizar la pérdida a $0.0$ para sus datos de entrenamiento. Ahora tienes dos maneras de hacerlo.
-
La primera forma es "gran tasa de aprendizaje" y pocas iteraciones. Supongamos que se puede reducir la pérdida en $10.0$ en cada iteración, entonces, en $10$ iteraciones, se puede reducir la pérdida a $0.0$ .
-
La segunda forma sería "ritmo de aprendizaje lento" pero con más iteraciones. Supongamos que se puede reducir la pérdida en $1.0$ en cada iteración y necesitas $100$ iteración para tener 0,0 de pérdida en sus datos de entrenamiento.
Ahora piense en esto: ¿son los dos enfoques iguales? y si no es así, ¿cuál es mejor en contexto de optimización y contexto de aprendizaje automático ?
En literatura de optimización Los dos enfoques son los mismos. Como ambos convergen a la solución óptima . Por otra parte, en aprendizaje automático No son iguales. Porque en la mayoría de los casos no hacemos la pérdida en el conjunto de entrenamiento para $0$ lo que provocará un sobreajuste.
Podemos pensar en el primer enfoque como una "búsqueda de cuadrícula de nivel grueso", y en el segundo como una "búsqueda de cuadrícula de nivel fino". El segundo enfoque suele funcionar mejor, pero necesita más potencia de cálculo para más iteraciones.
Para evitar el sobreajuste, podemos hacer diferentes cosas, la primera forma sería restringir el número de iteraciones, supongamos que estamos utilizando el primer enfoque, limitamos el número de iteraciones a 5. Al final, la pérdida para los datos de entrenamiento es $50$ . (BTW, esto sería muy extraño desde el optimización punto de vista, lo que significa que podemos mejorar en el futuro nuestra solución / no es convergente, pero decidimos no hacerlo. En la optimización, normalmente añadimos explícitamente restricciones o términos de penalización a la función objetivo, pero no solemos limitar el número de iteraciones).
Por otro lado, también podemos utilizar el segundo enfoque: si establecemos una tasa de aprendizaje pequeña, por ejemplo, reducimos $0.1$ pérdida para cada iteración, aunque tengamos un gran número de iteraciones digamos $500$ iteraciones, todavía no hemos minimizado la pérdida para $0.0$ .
Por eso, una tasa de aprendizaje pequeña equivale a "más regularizaciones".
Este es un ejemplo de la utilización de diferentes tasas de aprendizaje en un dato experimental utilizando xgboost
. Por favor, compruebe los dos siguientes enlaces para ver lo que hace eta
o n_iterations
medio.
Parámetros del reforzador de árboles
XGBoost Control overfitting
Para el mismo número de iteraciones, digamos $50$ . Una tasa de aprendizaje pequeña es un "infraajuste" (o el modelo tiene un "alto sesgo"), y una tasa de aprendizaje grande es un "sobreajuste" (o el modelo tiene una "alta varianza").
PS. La evidencia de un ajuste insuficiente es que tanto el conjunto de entrenamiento como el de prueba tienen un gran error, y la curva de error para el entrenamiento y la prueba están cerca el uno del otro. El signo de sobreajuste es que el error del conjunto de entrenamiento es muy bajo y el del conjunto de prueba es muy alto, las dos curvas están muy alejadas entre sí.