Aprendizaje automático en línea

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 9 de noviembre de 2021; las comprobaciones requieren 2 ediciones .

El aprendizaje automático en línea es una técnica de aprendizaje automático en la que los datos están disponibles en orden secuencial y se utilizan para actualizar la mejor predicción para los datos posteriores, realizados en cada paso de entrenamiento. El método es opuesto a la técnica de entrenamiento por lotes, en la que la mejor predicción se genera de una sola vez a partir del conjunto de datos de entrenamiento completo. El aprendizaje en línea es una técnica común utilizada en áreas de aprendizaje automático cuando no es posible entrenar en todo el conjunto de datos, como cuando se necesitan algoritmos que funcionen con memoria externa. El método también se usa en situaciones en las que el algoritmo tiene que adaptar dinámicamente nuevos patrones en los datos o cuando los datos mismos se forman en función del tiempo, por ejemplo, cuandopredicción del precio del mercado de valores . Los algoritmos de aprendizaje en línea pueden ser propensos a interferencias catastróficas , un problema que puede resolverse con un enfoque de aprendizaje paso a paso [1] .

Introducción

En condiciones de aprendizaje supervisado , se entrena una función , donde se considera como el espacio de datos de entrada, y es el espacio de datos de salida, que predice bien sobre los elementos de la distribución de probabilidad conjunta sobre . En realidad, en los entrenamientos nunca se conoce la verdadera distribución. Por lo general, por el contrario, se accede al conjunto de ejemplos de entrenamiento . Bajo estas condiciones , la función de pérdida se da como , tal que mide la diferencia entre el valor predicho y el valor real de . El objetivo ideal es elegir una función , donde hay un espacio de funciones, llamado espacio de hipótesis, tal que la pérdida total sea mínima en algún sentido. Dependiendo del tipo de modelo (estadístico o contradictorio), se pueden desarrollar diferentes conceptos de pérdida que conducen a diferentes algoritmos de aprendizaje.

Una visión estadística del aprendizaje en línea

En los modelos de aprendizaje estadístico, se supone que la muestra de prueba se extrae de la distribución real y el objetivo del aprendizaje es minimizar el "riesgo" esperado.

El paradigma general en esta situación es evaluar la función minimizando el riesgo empírico o minimizando el riesgo empírico regularizado (típicamente usando la regularización de Tikhonov ). La elección de la función de pérdida aquí produce varios algoritmos de aprendizaje bien conocidos, como mínimos cuadrados regularizados y máquinas de vectores de soporte . Un modelo puramente en línea en esta categoría estaría entrenando solo en nuevas entradas , el mejor predictor actual y alguna información almacenada adicional (que generalmente tiene requisitos de memoria independientes del tamaño de los datos). Para muchas configuraciones de problemas, como los métodos de kernel no lineales , el verdadero aprendizaje en línea no es posible, aunque se pueden usar formas híbridas de aprendizaje en línea con algoritmos recursivos, donde se permite que el valor dependa de todos los puntos de datos anteriores . En este caso, los requisitos de memoria ya no se pueden limitar porque se deben mantener todos los puntos anteriores, pero la solución puede tomar menos tiempo para calcularse con nuevos puntos de datos agregados que las técnicas de aprendizaje por lotes.

Una estrategia común para hacer frente a este problema es el aprendizaje por lotes pequeños, en el que se procesan pequeños lotes de puntos de datos en un momento dado, y esto puede verse como aprendizaje pseudo-en línea para un número total mucho menor de puntos de entrenamiento. La técnica de minilotes se utiliza iterando sobre los datos de entrenamiento para obtener una versión optimizada de algoritmos de aprendizaje automático de memoria externa, como el descenso de gradiente estocástico . Cuando se combina con la retropropagación, este es actualmente el método de entrenamiento de facto para las redes neuronales artificiales .

Ejemplo: mínimos cuadrados lineales

Los mínimos cuadrados lineales se utilizan aquí para explicar varias ideas de aprendizaje en línea. Las ideas son lo suficientemente generales como para ser aplicables a otros entornos, como otras funciones de pérdida convexa.

Aprendizaje por lotes

En un entorno supervisado con una función de pérdida cuadrática , el objetivo es minimizar la pérdida empírica

, dónde .

Sea una matriz de datos y sea una matriz de valores objetivo después de la llegada de los primeros puntos de datos. Suponiendo que la matriz de covarianza es invertible (de lo contrario, se debe realizar un procedimiento similar a la regularización de Tikhonov), la mejor solución del método de mínimos cuadrados está dada por la igualdad

.

Ahora el cálculo de la matriz de covarianza tomará tiempo, la inversión de matriz tomará tiempo y la multiplicación de matriz tomará tiempo, lo que da el tiempo total . Si hay un total de puntos en el conjunto de datos y necesita volver a calcular la solución después de que llega cada punto de datos , el enfoque natural tendrá una complejidad completa . Tenga en cuenta que si la matriz está almacenada, la actualización en cada paso solo requiere agregar , lo que lleva tiempo, lo que reduce el tiempo total a , pero requiere espacio de almacenamiento adicional [ 2] .

Aprendizaje en línea: mínimos cuadrados recursivos

Los mínimos cuadrados recursivos consideran un enfoque en línea para los mínimos cuadrados. Se puede demostrar que con la inicialización y la solución del método de mínimos cuadrados lineales se puede calcular de la siguiente manera:

El algoritmo iterativo anterior se puede probar por inducción en [3] . La prueba también muestra que . Se pueden considerar mínimos cuadrados recursivos en el contexto de filtros adaptativos (ver Mínimos cuadrados recursivos ).

La complejidad de los pasos de este algoritmo es , que es más rápida que la complejidad de aprendizaje por lotes correspondiente. La memoria requerida para cada paso para almacenar la matriz es aquí una constante . Para el caso en que no sea reversible, se considera una versión regularizada de la función de pérdida . Entonces es fácil mostrar que el mismo algoritmo funciona con , y las iteraciones continuas dan [2] .

Método de descenso de gradiente estocástico

Si la igualdad

Reemplazado por

o en , esto se convierte en un algoritmo de descenso de gradiente estocástico. En este caso, la complejidad de los pasos de este algoritmo se reduce a . El requisito de memoria en cada paso es una constante .

Sin embargo, el tamaño del paso para resolver el problema de minimización del riesgo esperado debe elegirse con cuidado, como se explicó anteriormente. Eligiendo el tamaño del paso de amortiguamiento , se puede probar la convergencia de la iteración promedio . Estos ajustes son un caso especial de optimización estocástica , un problema de optimización muy conocido [2] .

Descenso de gradiente estocástico incremental

En la práctica, es posible realizar varios pases de gradiente estocástico sobre los datos. El algoritmo resultante se denomina método de gradiente incremental y corresponde a la iteración

La principal diferencia con el método de gradiente estocástico es que aquí se elige decidir qué punto de entrenamiento se visita en el paso . Tal secuencia puede ser aleatoria o determinista. El número de iteraciones se desacopla así del número de puntos (cada punto se puede ver más de una vez). Puede demostrarse que el método del gradiente incremental proporciona una minimización empírica del riesgo [4] . Las técnicas incrementales pueden tener ventajas cuando se considera la función objetivo como la suma de muchos elementos, por ejemplo, como un error empírico de un conjunto de datos muy grande [2] .

Métodos nucleares

Los núcleos se pueden usar para extender los algoritmos anteriores a modelos no paramétricos (o modelos en los que los parámetros forman un espacio de dimensión infinita). El procedimiento correspondiente ya no estará realmente en línea y en su lugar almacenará todos los puntos de datos, pero el método sigue siendo más rápido que la fuerza bruta. Esta discusión se limita al caso de pérdida cuadrática, aunque puede extenderse a cualquier función de pérdida convexa. Se puede demostrar por inducción directa [2] que cuando a es una matriz de datos, a es la salida después de los pasos del algoritmo de descenso de gradiente aleatorio, entonces

donde y la secuencia satisface las relaciones recurrentes

y

Tenga en cuenta que aquí está el kernel estándar en , y la función predictiva tiene la forma

.

Ahora, si introducimos un núcleo común y representamos la función de predicción como

,

entonces la misma prueba muestra que la minimización por mínimos cuadrados de la función de pérdida se obtiene reemplazando la recursividad anterior con

La expresión anterior requiere recordar todos los datos a actualizar . La complejidad de tiempo total para la recursividad, si se calcula para el -ésimo punto de datos, es , donde es el costo de calcular el kernel en un par de puntos [2] . Luego, el uso del kernel permite el movimiento desde un espacio de parámetros de dimensión finita a un espacio posiblemente de dimensiones infinitas representado por el kernel , en lugar de recurrir al espacio de parámetros , cuya dimensión es la misma que el tamaño del conjunto de datos de entrenamiento. En general, este enfoque es una consecuencia del teorema de representación [2] .

Aprendizaje progresivo

El aprendizaje progresivo es un modelo de aprendizaje efectivo que se demuestra en el proceso de aprendizaje de las personas. Este proceso de aprendizaje es continuo, proveniente de la experiencia directa. La técnica de aprendizaje progresivo en el aprendizaje automático puede aprender nuevas clases o etiquetas dinámicamente sobre la marcha [5] . Si bien el entrenamiento en línea puede entrenar nuevas muestras de datos que ingresan secuencialmente, no pueden entrenar nuevas clases de datos . El paradigma de aprendizaje de aprendizaje progresivo es independiente del número de restricciones de clase y puede enseñar nuevas clases conservando el conocimiento de las clases anteriores. Sin embargo, si se encuentra una nueva clase (que no ocurre naturalmente), el clasificador se reconstruye automáticamente y los parámetros se calculan de tal manera que se conserva el conocimiento previo. Esta técnica es adecuada para aplicaciones del mundo real donde a menudo se desconoce el número de clases y se requiere aprendizaje en línea a partir de datos en tiempo real.

Optimización convexa en línea

La optimización convexa en línea [6] es un esquema de decisión general que utiliza la optimización convexa para obtener algoritmos eficientes. El esquema es una repetición múltiple de las siguientes acciones:

Para

El objetivo es minimizar el "arrepentimiento" o la diferencia entre la pérdida total y la pérdida en el mejor punto fijo en retrospectiva. Como ejemplo, considere el caso de la regresión lineal de mínimos cuadrados en línea. Aquí el peso de los vectores proviene de un conjunto convexo y la naturaleza devuelve una función de pérdida convexa . Tenga en cuenta que se envía implícitamente con .

Sin embargo, algunos problemas de predicción en línea no pueden encajar en el esquema de optimización convexo en línea. Por ejemplo, en la clasificación en línea, el área de predicción y las funciones de pérdida no son convexas. En tales escenarios, se utilizan dos técnicas simples de reducción de casos convexos: aleatorización y funciones de pérdida sustituta.

Algunos algoritmos simples de optimización convexa en línea:

Sigue al líder

La regla de aprendizaje más simple para un ensayo es elegir (en el paso actual) la hipótesis que tiene la menor pérdida entre todas las rondas anteriores. Este algoritmo se llama  " Seguir al líder " y simplemente da una vuelta :

Este método se puede considerar entonces como un algoritmo codicioso . Para el caso de la optimización cuadrática en línea (donde la función de pérdida es ), se puede demostrar que el límite de "arrepentimiento" crece a medida que . Sin embargo, no se pueden obtener límites similares para el algoritmo de seguimiento del líder para otras familias de modelos importantes como para la optimización lineal en línea. Para obtenerlos, se agrega regularización al algoritmo.

Siguiendo a un líder regularizado

Esta es una modificación natural del algoritmo de seguimiento de líderes que se utiliza para estabilizar las decisiones de seguimiento de líderes y obtener mejores límites de arrepentimiento. Se elige una función de regularización y se realiza el entrenamiento en la ronda t de la siguiente manera:

Como caso especial, considere el caso de la optimización lineal en línea, es decir, cuando la naturaleza devuelve funciones de pérdida de la forma . También deja . Supongamos que se elige la función de regularización para algún número positivo . Entonces se puede demostrar que la iteración de minimizar el "arrepentimiento" se convierte en

Tenga en cuenta que esto se puede reescribir como , que se ve exactamente como el método de descenso de gradiente en línea.

Si S es un subespacio convexo , S debe proyectarse, lo que da como resultado una regla de actualización modificada

El algoritmo se conoce como proyección perezosa porque el vector acumula gradientes. Esto también se conoce como el algoritmo de promedio doble de Nesterov (o método de promedio doble subgradiente [7] ). En este escenario, las funciones de pérdida lineal y el "arrepentimiento" de regularización cuadrática se limitan a , y luego el "arrepentimiento" promedio tiende a 0 .

Descenso de subgradiente en línea

El límite de "arrepentimiento" para las funciones de pérdida lineal se ha demostrado anteriormente . Para generalizar el algoritmo a cualquier función de pérdida convexa, la función subgradiente se usa como una aproximación lineal alrededor de , lo que conduce al algoritmo de descenso de subgradiente en línea:

Iniciar un parámetro

Para

  • Hacemos una predicción usando , lo obtenemos de la naturaleza .
  • Elegir
  • Si , haz una actualización
  • Si , proyecte gradientes acumulativos a ie

Puede usar el algoritmo de descenso de subgradiente en línea para obtener los límites de "arrepentimiento" para la versión en línea de la máquina de vectores de soporte para la clasificación, que usa una función de pérdida lineal por partes

Otros algoritmos

Los algoritmos de seguimiento de líder con regularización cuadrada conducen a algoritmos de gradiente proyectados perezosamente, como se describió anteriormente. Para usar el enfoque anterior para cualquier función convexa y regularizadores, se puede usar el descenso de espejo en línea. La regularización óptima en una función lineal por partes se puede obtener para funciones de pérdida lineal, lo que lleva al algoritmo AdaGrad . Para la regularización euclidiana, se puede demostrar que el límite de "arrepentimiento" es igual y se puede mejorar para funciones de pérdida estrictamente convexas y exp-cóncavas.

Interpretaciones del aprendizaje en línea

El paradigma de aprendizaje en línea tiene diferentes interpretaciones según la elección del modelo de aprendizaje, cada una con una calidad diferente de predicciones de secuencias de características . Para la discusión, usamos el algoritmo de descenso de gradiente estocástico. Como se señaló anteriormente, la recursividad del algoritmo viene dada por la igualdad

La primera interpretación considera el método de descenso del gradiente estocástico como una aplicación al problema de minimización del riesgo esperado definido anteriormente [8] . Además, en el caso de un flujo de datos infinito, dado que se supone que las instancias se muestrean a partir de una distribución independiente e igualmente distribuida , las secuencias de gradiente en la iteración anterior son muestras independientes e igualmente distribuidas de la estimación del gradiente estocástico de riesgo esperado y, por lo tanto, uno puede aplicar los resultados de complejidad para el método de descenso de gradiente estocástico para restringir la desviación , donde es el minimizador [9] . Esta interpretación también es válida para conjuntos de entrenamiento finitos. Aunque los gradientes ya no serán independientes al iterar sobre los datos, se pueden obtener resultados de complejidad en casos especiales.

La segunda interpretación se aplica al caso de un conjunto de entrenamiento finito y considera el algoritmo de descenso de gradiente estocástico como un representante del descenso de gradiente incremental [4] . En este caso, uno puede mirar el riesgo empírico:

Dado que los gradientes en iteraciones de descenso de gradiente incremental son estimaciones estocásticas del gradiente , esta interpretación está relacionada con el método de descenso de gradiente estocástico, pero se aplica a la minimización empírica del riesgo en lugar del riesgo esperado. Debido a que esta interpretación se trata del riesgo empírico en lugar del riesgo esperado, los pases múltiples sobre los datos son perfectamente válidos y, de hecho, conducen a límites de varianza estrechos , donde .

Implementaciones

  • Vowpal Wabbit : un sistema de aprendizaje en línea rápido, de código abierto y de memoria externa con un conjunto de técnicas de aprendizaje automático compatibles, con ponderación de importancia y una selección de varias funciones de pérdida y algoritmos de optimización. El sistema utiliza un truco hash para limitar el tamaño del conjunto de funciones, independientemente del tamaño de los datos de entrenamiento.
  • scikit-learn : proporciona una implementación fuera de memoria de algoritmos para

Véase también

Notas

  1. La interferencia catastrófica es la tendencia de las redes neuronales artificiales a olvidar repentinamente por completo todo lo que la red ha sido entrenada para hacer antes.
  2. 1 2 3 4 5 6 7 Rosasco, Poggio, 2015 .
  3. Yin, Kushner, 2003 , pág. 8–12.
  4. 12 Bertsekas , 2011 .
  5. Venkatesan, Meng Joo, 2016 , pág. 310–321.
  6. Hazán, 2015 .
  7. Dolgopolik, 2016 .
  8. Botto, 1998 .
  9. Kushner, Yin, 1997 .

Literatura

  • León Bottou. Algoritmos en línea y aproximaciones estocásticas // Aprendizaje en línea y redes neuronales . - Prensa de la Universidad de Cambridge, 1998. - ISBN 978-0-521-65263-6 .
  • Rosasco L., Poggio T. Capítulo 7 - Aprendizaje en línea // Aprendizaje automático: un enfoque de regularización . MIT-9.520 Apuntes de clase. - 2015. - (Manuscrito).
  • Harold J. Kushner, G. George Yin. Algoritmos de Aproximación Estocástica y Aplicaciones. - Nueva York: Springer-Verlag, 1997. - ISBN 0-387-94916-X .
    • Harold J. Kushner, G. George Yin. Aproximación Estocástica y Algoritmos Recursivos y Aplicaciones. - 2ª ed. - Nueva York: Springer-Verlag, 2003. - ISBN 0-387-00894-2 .
  • Elad Hazán. Introducción a la optimización convexa en línea . — Fundamentos y Tendencias® en Optimización, 2015.
  • Rajasekar Venkatesan, Er Meng Joo. Una nueva técnica de aprendizaje progresivo para la clasificación multiclase // Neurocomputación. - 2016. - T. 207 . -doi : 10.1016/ j.neucom.2016.05.006 . -arXiv : 1609.00085 . _
  • El método de Dolgopolik MV Nesterov para minimizar funciones convexas. — 2016.
  • Harold J. Yin, G. George Kushner. Aproximación estocástica y algoritmos y aplicaciones recursivos. - Segundo. - Nueva York: Springer, 2003. - ISBN 978-0-387-21769-7 .
  • Bertsekas DP Métodos de gradiente incremental, subgradiente y proximal para la optimización convexa: una encuesta // Optimización para el aprendizaje automático. - 2011. - Edición. 85 .

Enlaces