15 votos

¿Regularización y escalado de características en el aprendizaje en línea?

Digamos que tengo un clasificador de regresión logística. En el aprendizaje por lotes normal, tendría un término regularizador para evitar el sobreajuste y mantener mis pesos pequeños. También normalizaría y escalaría mis características.

En un entorno de aprendizaje en línea, recibo un flujo continuo de datos. Hago una actualización por descenso de gradiente con cada ejemplo y luego lo descarto. ¿Debo utilizar el escalado de características y el término de regularización en el aprendizaje en línea? En caso afirmativo, ¿cómo puedo hacerlo? Por ejemplo, no tengo un conjunto de datos de entrenamiento para escalar. Tampoco tengo un conjunto de validación para ajustar mi parámetro de regularización. En caso negativo, ¿por qué no?

En mi aprendizaje en línea, recibo un torrente de ejemplos continuamente. Para cada nuevo ejemplo, hago una predicción. A continuación, en el siguiente paso temporal, obtengo el objetivo real y realizo la actualización por descenso de gradiente.

9voto

ripper234 Puntos 39314

El proyecto de código abierto conejo vowpal incluye una implementación de SGD en línea que se mejora mediante el cálculo sobre la marcha (en línea) de 3 factores adicionales que afectan a las actualizaciones de peso. Estos factores pueden activarse/desactivarse mediante sus respectivas opciones de línea de comandos (por defecto, los tres están activados, la opción --sgd las desactiva todas, es decir, vuelve al SGD "clásico").

Las 3 opciones de mejora de SGD son:

  • --normalized actualizaciones ajustadas a la escala de cada característica
  • --adaptive utiliza gradiente adaptativo (AdaGrad) (Duchi, Hazan, Singer)
  • --invariant actualizaciones conscientes de la importancia (Karampatziakis, Langford)

Juntos, garantizan que el proceso de aprendizaje en línea realice una compensación/ajuste automático de 3 vías para:

  • escalado por características (valores grandes frente a pequeños)
  • decaimiento de la tasa de aprendizaje por característica en función de la importancia de la característica
  • ajuste de la tasa de aprendizaje adaptativo por característica para la prevalencia/raridad de la característica en los ejemplos

El resultado es que no hay necesidad de prenormalizar o escalar diferentes características para que el alumno sea menos sesgado y más eficaz.

Además, conejo vowpal también implementa la regularización en línea mediante el descenso de gradiente truncado con las opciones de regularización:

  • --l1 (Norma L1)
  • --l2 (norma L2)

Mi experiencia con estas mejoras en múltiples conjuntos de datos fue que mejoraron significativamente la precisión del modelo y suavizaron la convergencia cuando cada una de ellas se introdujo en el código.

He aquí algunos artículos académicos para más detalles relacionados con estas mejoras:

2voto

Nick Russo Puntos 51

Este artículo describe una técnica de regularización en línea que aplican a varios algoritmos, incluida la regresión logística: http://ai.stanford.edu/~chuongdo/papers/proximal.pdf

1voto

JanithaR Puntos 141

Sí, ciertamente necesita regularización... también ayuda al descenso del gradiente (e inicializar la tasa de aprendizaje a 1/C).

véase, por ejemplo, el documento SGD-QN http://leon.bottou.org/papers los papeles de bottou

no has explicado realmente lo que entiendes por aprendizaje en línea: por ejemplo, ¿obtienes un valor objetivo por cada punto? No sé cómo incorporarías... la búsqueda de C ... Supongo que tendrías múltiples clasificadores con diferentes términos de regularización y realizarías un seguimiento del error de predicción (antes de actualizar los pesos).

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