¿Aprendizaje en línea versus fuera de línea?

38

¿Cuál es la diferencia entre el aprendizaje fuera de línea y en línea ? ¿Es solo una cuestión de aprender sobre todo el conjunto de datos (sin conexión) versus aprender de forma incremental (una instancia a la vez)? ¿Cuáles son ejemplos de algoritmos utilizados en ambos?

grifo
fuente

Respuestas:

26

El aprendizaje en línea significa que lo está haciendo cuando entran los datos. Fuera de línea significa que tiene un conjunto de datos estático.

Entonces, para el aprendizaje en línea, usted (típicamente) tiene más datos, pero tiene limitaciones de tiempo. Otra arruga que puede afectar el aprendizaje en línea es que sus conceptos pueden cambiar con el tiempo.

Supongamos que desea crear un clasificador para reconocer el correo no deseado. Puede adquirir un gran corpus de correo electrónico, etiquetarlo y entrenar a un clasificador en él. Esto sería aprendizaje fuera de línea. O bien, puede tomar todo el correo electrónico que ingresa a su sistema y actualizar continuamente su clasificador (las etiquetas pueden ser un poco complicadas). Esto sería aprendizaje en línea.

usuario549
fuente
77
Sí, y una pequeña aclaración es que los algoritmos de aprendizaje en línea, al menos como se estudió en Machine Learning, suponen principalmente que su capacidad para almacenar ejemplos es muy limitada en comparación con el tamaño del conjunto de datos. En el caso más limitante, solo puede ver un ejemplo a la vez, y luego debe olvidarlo después de haberlo utilizado para actualizar su clasificador.
Harlan
8

El término "en línea" está sobrecargado y, por lo tanto, causa confusión en el dominio del aprendizaje automático.

Lo contrario de "en línea" es el aprendizaje por lotes. En el aprendizaje por lotes, el algoritmo de aprendizaje actualiza sus parámetros después de consumir todo el lote, mientras que en el aprendizaje en línea, el algoritmo actualiza sus parámetros después de aprender de 1 instancia de entrenamiento. El mini aprendizaje por lotes es el punto medio entre el aprendizaje por lotes en un extremo y el aprendizaje en línea en el otro extremo.

Además, "cuándo" entran los datos, o si pueden almacenarse o no, es ortogonal al aprendizaje en línea o por lotes.

Se considera que el aprendizaje en línea es más lento para converger a un mínimo, en comparación con el aprendizaje por lotes. Sin embargo, en los casos en que todo el conjunto de datos no cabe en la memoria, el uso del aprendizaje en línea es una compensación aceptable.

shark8me
fuente
No creo que esto sea cierto. Lo que describe es el algoritmo de optimización de descenso de gradiente estocástico (o en línea) que se puede utilizar para la configuración de problemas en línea o fuera de línea.
danijar
Creo que "a medida que entran los datos" se refiere a algoritmos en línea y fuera de línea en.wikipedia.org/wiki/Online_algorithm Creo que los OP definidos para el aprendizaje en línea claramente hacen esta distinción. Algos en línea -> procesar a medida que ingresan los datos. Aprendizaje en línea -> actualizar el modelo subyacente progresivamente durante el entrenamiento.
gokul_uf
4

Aprendizaje en línea (también llamado aprendizaje incremental ): consideramos una sola presentación de los ejemplos. En este caso, cada ejemplo se usa secuencialmente de la manera prescrita por el algoritmo de aprendizaje, y luego se descarta. Los cambios de peso realizados en una etapa determinada dependen específicamente solo del ejemplo (actual) que se presenta y posiblemente del estado actual del modelo. Es el procedimiento natural para reglas que varían en el tiempo donde los ejemplos pueden no estar disponibles de una vez.

Aprendizaje fuera de línea : los cambios de peso dependen de todo el conjunto de datos (entrenamiento), que define una función de costo global. Los ejemplos se usan repetidamente hasta que se logra la minimización de esta función de costo.

FrankyBravo
fuente