Muy buenas, les saluda Miguel y esta vez les traigo otro nuevo post.
¿Qué define el aprendizaje automático a gran escala? Esta pregunta aparentemente inocente a menudo se responde con petabytes de datos y cientos de GPU. Resulta que el aprendizaje automático a gran escala no tiene mucho que ver con todo eso. En 2013, Léon Bottou dio una clase sobre el tema en el Institut Poincaré. La clase sigue siendo tan relevante hoy como entonces. Esta publicación es un breve resumen de la misma.
Índice
La hipótesis fundamental del aprendizaje automático
La mayor parte del progreso reciente en el progreso del aprendizaje automático ha sido impulsado por el paradigma del aprendizaje mediante el cual entrenamos un modelo ƒ a partir de datos existentes. Estimamos ƒ utilizando un conjunto de entrenamiento y medimos el rendimiento final utilizando el conjunto de prueba. El conjunto de validación se utiliza para determinar los parámetros del modelo.
En la práctica, procedemos tomando dos atajos.
- Error de aproximación: debido a que no podemos buscar en el conjunto infinito de todas las funciones posibles F * en el universo, trabajamos dentro de un subespacio de función F.
- Error de estimación: debido a que se desconoce la distribución real de los datos, no minimizamos el riesgo, sino el riesgo empírico calculado a partir de los datos disponibles.
En términos matemáticos:
donde f ‘es la mejor función dado el conjunto de datos, R estima la pérdida en f, y R * es el riesgo estadístico mínimo (riesgo real).
Esta compensación de aproximación / estimación se refleja bien en el siguiente diagrama. Dada una cantidad finita de datos, podemos intercambiar aproximaciones por estimaciones. A medida que aumenta la complejidad del modelo, el error de aproximación disminuye, pero el error de estimación aumenta (con una cantidad constante de datos). La pregunta, por lo tanto, es: ¿Qué tan complejo de modelo puede permitirse con sus datos?
En el mundo real, tomamos un tercer atajo:
- Error de optimización: encontrar el mínimo exacto de riesgo empírico suele ser costoso. Dado que ya estamos minimizando una función sustituta en lugar de la función ideal en sí, ¿por qué deberíamos preocuparnos por encontrar su mínimo perfecto? Aceptamos, por tanto, encontrar el mínimo dentro de un cierto error ρ, tal que:
Por tanto, el error final se compone de tres componentes: el error de aproximación, el error de estimación y el error de optimización. El problema se convierte en encontrar el espacio funcional óptimo F, el número de ejemplos n y el error de optimización ρ sujeto a restricciones presupuestarias, ya sea en el número de ejemplos n o en el tiempo de cálculo T.Léon Bottou y Olivier Bousquet desarrollan un estudio en profundidad de este compensación en Las ventajas y desventajas del aprendizaje a gran escala.
La diferencia fundamental entre el aprendizaje a pequeña escala y el aprendizaje a gran escala radica en la restricción presupuestaria. El aprendizaje a pequeña escala está limitado por la cantidad de ejemplos, mientras que el aprendizaje a gran escala está limitado por el tiempo de computación.
Esta definición aparentemente simple de aprendizaje automático a gran escala es bastante general y poderosa. Si bien el término a gran escala a menudo genera referencias a petabytes de datos y miles de GPU, los profesionales a menudo se dan cuenta de que estos aspectos son irrelevantes para la restricción subyacente (tiempo de cálculo).
Con esta definición en mente, podría estar trabajando en un conjunto de datos verdaderamente gigantesco como la base de datos completa de Google StreetView y tener acceso a una supercomputadora que le permita iterar extremadamente rápido en el conjunto de datos completo, todavía no estaría haciendo aprendizaje automático a gran escala.
La limitación del tiempo
Al estar limitado por el tiempo, el aprendizaje a gran escala induce compensaciones más complejas que el aprendizaje a pequeña escala. Necesitamos hacer una elección óptima de F, n y ρ dentro de un presupuesto de tiempo dado. Dado que el tiempo es el cuello de botella, solo podemos ejecutar un número limitado de experimentos por día. Por lo tanto, estas elecciones se realizan a menudo al mismo tiempo. Si optamos por disminuir el error de optimización ρ, un presupuesto de tiempo constante nos obliga a reducir la complejidad del modelo o el número de ejemplos, lo que a su vez tiene efectos adversos sobre los errores de estimación y aproximación.
En la práctica, a menudo procedemos muestreando todas las configuraciones posibles y terminamos con un gráfico como el siguiente. La configuración óptima depende del presupuesto de tiempo de cálculo (es decir, diferentes presupuestos de tiempo producen diferentes configuraciones óptimas).
Centrándose en los datos y la tarea
Otra notable diferencia entre el aprendizaje automático a pequeña escala y a gran escala es el enfoque del esfuerzo. Con el aprendizaje automático a pequeña escala, gran parte de la atención se centra en el modelo y los algoritmos. Con el aprendizaje automático a gran escala, el enfoque se desplaza hacia los datos y la tarea. El tiempo dedicado a la tarea y los datos es significativo y, a menudo, mucho más grande de lo previsto.
¿Por qué?
- Los experimentos cuestan más a escala (en hardware y tiempo de ingeniería). Por lo tanto, el costo de trabajar con datos incorrectos o en una tarea incorrecta es mayor. En este contexto, tiene sentido dedicar períodos prolongados de tiempo a discutir la tarea o realizar la limpieza de datos. En realidad, esto no es tan malo. Por alguna razón, siempre me siento cómodo al ver que ingenieros e investigadores discuten extensamente la tarea. Algo en lo profundo de mi ser ingeniero me hace pensar que estas horas de discusión podrían ahorrarnos mucho más tiempo en el futuro. La sarcástica ingeniería de software que dice «semanas de codificación pueden ahorrar horas de planificación» puede traducirse en el mundo del aprendizaje automático en: «semanas de formación pueden ahorrar horas de definición de tareas».
- Los sistemas a gran escala tienden a ser más dinámicos e interactuar con el mundo real. Esto, a su vez, genera más oportunidades para problemas de calidad de los datos, así como preguntas sobre lo que el modelo está tratando de lograr exactamente (por ejemplo, ¿debemos tener en cuenta los efectos de causalidad?).
- Los grandes conjuntos de datos permiten más funciones y modelos más complejos. Más funciones significan más tiempo dedicado a la calidad de los datos. Los modelos más complejos, por otro lado, casi siempre se traducen en resultados inicialmente decepcionantes, seguidos inmediatamente por un cuestionamiento de la tarea que el modelo está tratando de resolver (en lugar de un modelo aún más complejo).
Centrarse en los datos requiere pensar qué tipo de datos es más valioso agregar. Supongamos, por ejemplo, que estamos trabajando en un modelo de clasificación de clases múltiples. Agregar más datos probablemente hará que el modelo sea más preciso. Sin embargo, las mejoras de precisión están sujetas a rendimientos decrecientes. Por otro lado, las mejoras de amplitud no lo son: agregar ejemplos de nuevas clases que nunca antes se vieron podría mejorar el modelo significativamente.
Por lo tanto, es mejor centrarse en consultas cercanas al límite del área conocida (una técnica denominada aprendizaje activo).
Sistemas de aprendizaje de ingeniería a escala
El enfoque típico para resolver un problema complejo en el aprendizaje automático a gran escala es subdividirlo en subproblemas más pequeños y resolver cada uno de ellos por separado. La estrategia de capacitación puede ser (1) capacitación de cada módulo de forma independiente (2) capacitación secuencial (utilice la entrada del módulo ny capacite al módulo n + 1 con ella) o (3) capacitación global. La formación global es más difícil pero a menudo mejor. Formación redes neuronales para vehículos autónomos proporciona un rico ejemplo de formación global a escala. Sin embargo, la capacitación global conlleva una serie de desafíos, como algunos módulos se capacitan más rápido que otros, desequilibrio de datos y módulos que superan la capacidad de aprendizaje de toda la red.
Aprendizaje profundo y aprendizaje por transferencia
Uno de los grandes descubrimientos del aprendizaje profundo es qué tan bien funcionan las redes previamente capacitadas para una tarea para la que no han sido capacitadas. En visión artificial, por ejemplo, se puede obtener un rendimiento sorprendentemente bueno utilizando las últimas capas de convnets entrenadas en ImageNet. Las subtareas genéricas no supervisadas parecen funcionar bien.
Otra formulación de esto se conoce como aprendizaje por transferencia: en las proximidades de una tarea interesante (con etiquetas costosas), a menudo hay tareas menos interesantes (con etiquetas baratas) que se pueden aprovechar.
Un ejemplo típico es el etiquetado de caras en una base de datos de imágenes. Si bien la tarea interesante puede ser costosa de etiquetar (rostro-> nombre), otra tarea puede ser mucho más fácil de etiquetar: ¿son dos caras de imágenes de la misma persona? Un conjunto de datos etiquetado puede construirse simplemente observando que es probable que dos caras en la misma imagen sean personas diferentes, mientras que las caras en cuadros sucesivos probablemente sean la misma persona.
Resolver una tarea más compleja y transferir funciones a menudo nos permite aprovechar más datos de diferente naturaleza.
Conclusión
El aprendizaje automático a gran escala tiene poco que ver con hardware masivo y petabytes de datos, aunque estos aparecen de forma natural en el proceso. A escala, el tiempo se convierte en el cuello de botella e induce compensaciones complejas y simultáneas en el espacio funcional, el tamaño del conjunto de datos y el error de optimización. El enfoque se expande de los modelos a los datos y la tarea. Surgen nuevos desafíos de ingeniería en torno a los sistemas distribuidos. En resumen, las cosas se vuelven mucho más divertidas.
Gracias por leer.
Añadir comentario