Friday, January 19, 2018

La expresividad, la entrenabilidad y la generalización en el aprendizaje automático

Esta es una traducción de mi publicación anterior. Muchas gracias a Joaquin Antonio Ruales (@_jruales) por traducir esta publicación.

Cuando leo trabajos de investigación sobre el aprendizaje automático, intento clasificarlos en base al tipo de contribuciones que hacen: contribuciones en 1) Expresividad 2) Entrenabilidad y/o 3) Generalización. Aprendí este sistema de categorización de mi colega Jascha Sohl-Dickstein en Google Brain, y esta terminología también es propuesta por este trabajo de investigación. Esta categorización me ha resultado efectiva cuando trato de entender de qué manera cierto trabajo de investigación (especialmente si es teórico) conecta varios sub-campos de la investigación en inteligencia artificial (por ej.: robótica, modelos generadores, procesamiento de lenguas naturales) en un solo panorama general [1].

En esta entrada de blog, discuto la aplicación de estos conceptos a la investigación actual (noviembre de 2017) en el área del aprendizaje supervisado, aprendizaje no supervisado, y aprendizaje por refuerzo. Considero que la Generalización se compone de dos categorías — generalización "débil" y "fuerte" — y discutiré a cada una por separado. La siguiente tabla resume mi opinión de dónde están las cosas al momento:



Expresividad

¿Qué computaciones puede hacer este modelo?
Entrenabilidad

¿Qué tan fácil es ajustar el modelo a los datos?
Generalización débil

¿Qué tan bien funciona el modelo cuando ocurren pequeñas perturbaciones en la distribución de los datos?
Generalización fuerte

¿Qué tan bien funciona el modelo cuando ocurren grandes cambios en la distribución de los datos?
Aprendizaje supervisado

Aprende usando etiquetas creadas por humanos. Predice estas etiquetas
Fácil


OK
Ya mismo
Difícil
Aprendizaje no supervisado

Aprende sin necesidad de etiquetas creadas por humanos. Predice estas etiquetas.
Fácil
OK
Ya mismo
Difícil
Aprendizaje por refuerzo (RL)

Aprende a maximizar la recompensa en un entorno
Fácil
Difícil
Dificilísimo
Dificilísimo

Quisiera expresar mi más profundo agradecimiento a Jascha Sohl-Dickstein y a Ben Poole por sus comentarios y correcciones a esta entrada de blog, así como a Marcin Moczulski por las útiles discusiones sobre la entrenabilidad de las redes neuronales recurrentes.

Esta entrada de blog cubre un amplio rango de investigación desde mi punto de vista en particular. Cabe recalcar que cualquier error factual aquí es mío y no representa las opiniones de mis colegas o correctores. No duden en contribuir su opinión en los comentario o en enviarme un email si quieren discutir el artículo o sugerir correcciones — estoy aquí para aprender.


Expresividad

¿Qué computaciones puede hacer este modelo?

Existen medidas de expresividad que caracterizan lo complejas que pueden llegar a ser las funciones computadas por una red neuronal u otra función paramétrica. Las redes neuronales son exponencialmente expresivas con respecto a su profundidad, lo que significa que incluso las redes neuronales de tamaño moderado son lo suficientemente expresivas para la mayoría de problemas de aprendizaje supervisado, no supervisado y de refuerzo que se investigan hoy en día [2]. Una demostración de esto es que las redes neuronales profundas son capaces de memorizar conjuntos de datos muy grandes.

Las redes neuronales pueden expresar todo tipo de cosas: variables continuas, complejas, discretas e incluso estocásticas. Gracias a la investigación en modelado generativo y en aprendizaje profundo bayesiano en los últimos años, las redes neuronales profundas han producido increíbles resultados de modelado generativo.

Los recientes avances en el modelado generativo ilustran la profunda expresividad de las redes neuronales: las redes neuronales pueden producir geometrías multidimensionales de datos extremadamente complejas (audio, imágenes) que son casi indistinguibles de las reales. Aquí están unos resultados de generación de imágenes de caras usando una arquitectura de red generativa antagónica (GAN) reciente, propuesta por investigadores en NVIDIA:



Los resultados aún no son perfectos (nótese el fondo borroso), pero estamos muy cerca. Así mismo, en el campo de la síntesis de audio, las muestras de audio generadas por los más recientes modelos WaveNet suenan a gente real.

El aprendizaje no supervisado no se limita a los modelos generadores. Algunos investigadores, como Yann LeCun, quieren renombrar al aprendizaje no supervisado "aprendizaje predictivo", donde el modelo deduce el pasado, imputa el presente o predice el futuro. Sin embargo, dado que bastante del aprendizaje no supervisado se ha enfocado en predecir distribuciones conjuntas extremadamente complejas (imágenes del pasado/futuro, audio), creo que los modelos generadores son un punto de referencia bastante bueno para medir la expresividad en el dominio no supervisado.

Las redes neuronales también parecen ser lo suficientemente expresivas como para el aprendizaje por refuerzo. Incluso redes bastante pequeñas (2 capas convolucionales y 2 capas totalmente conectadas) son lo suficientemente potentes como para resolver las tareas de control de Atari y MuJoCo (aunque su "entrenabilidad" deja mucho que desear — consúltese la siguiente sección).

Por sí sola, la expresividad no es un asunto muy interesante: es simple aumentarla agregando más capas, más conectividad, etc. El desafío es hacer que las redes neuronales sean lo suficientemente expresivas como para tener un buen desempeño en el conjunto de entrenamiento y el de pruebas, y al mismo tiempo evitar que sea muy difícil el entrenamiento. Por ejemplo, el uso de convoluciones 2D parece ser necesario para que los modelos de clasificación de imágenes logren generalizar, a pesar de que una red profunda totalmente conectada tiene la capacidad suficiente para memorizar el conjunto de entrenamiento.

La expresividad es el problema más fácil (solo añade más capas!), pero es al mismo tiempo el más misterioso: no tenemos una buena manera de medir cuánta expresividad (y de qué tipo) se requiere en una tarea en particular. ¿Qué tipos de problemas necesitarán redes neuronales que sean varios órdenes de magnitud más grandes que las que se usan hoy en día? Por qué necesitarán tanta potencia de cómputo? ¿Será que las redes neuronales actuales ya son lo suficientemente expresivas para implementar inteligencia parecida a la humana? ¿Acaso resolver la generalización para nuevos y más difíciles problemas requiere modelos considerablemente más expresivos?

El cerebro tiene muchos órdenes de magnitud más "unidades neuronales" (1e11) que el número de unidades en nuestras redes neuronales grandes (Inception-ResNet-V2 tiene aproximadamente 25e6 unidades ReLU). Esta comparación ya es drástica, incluso cuando le damos a las neuronas artificiales ReLU el beneficio de la duda de que sean remotamente comparables a las neuronas biológicas. Incluso una sola neurona biológica (con sus diversos neurotransmisores, bosques dendríticos que integran la señal de otras 10,000 neuronas en una integración variable en el tiempo) también es increíblemente expresiva. Una langosta (el insecto) implementa su sistema de detección de colisiones con tan solo una neurona y ya vuela mejor que cualquier sistema de drones que hayamos construido. ¿De dónde viene toda esta expresividad y a dónde va? ¿Cuánta más expresividad necesitamos?

Entrenabilidad

Una vez encontrada una familia de modelos matemáticos lo suficientemente expresiva, ¿qué tan fácil es encontrar un buen modelo?

En el campo del aprendizaje automático, un modelo es cualquier programa de computadora cuya funcionalidad es aprendida en base a datos. Durante el "aprendizaje", buscamos un modelo razonablemente bueno que utilice los datos para tomar decisiones, de entre un espacio de modelos (potencialmente enorme). Este proceso de búsqueda usualmente se formula como la solución a un problema de optimización sobre el espacio de modelos.



Varios tipos de optimización

Una estrategia común, especialmente en el aprendizaje profundo, es establecer una métrica escalar que evalúe la "bondad" de un modelo (es decir, qué tan bueno es su desempeño). Después usamos una técnica de optimización numérica para maximizar tal "bondad" (o equivalentemente, "minimizar la maldad").

Un ejemplo concreto: la minimización del error de entropía cruzada es una manera estándar de entrenar redes neuronales para que clasifiquen imágenes. Esto se hace con la esperanza de que cuando el modelo haya minimizado la pérdida de entropía cruzada con respecto al conjunto de datos, también logrará lo que queremos, por ejemplo clasificar imágenes correctamente con cierto grado de precisión y exhaustividad en las imágenes de prueba.

La búsqueda de buenos modelos (el entrenamiento) no es, a la final, nada más que optimización — ¡no hay lugar a dudas! Sin embargo... los objetivos de optimización pueden ser difíciles de especificar. Un escenario clásico en el aprendizaje supervisado es el submuestreo (sub-resolución) de imágenes, en donde es difícil definir una sola métrica escalar que esté alineada exactamente con cómo los humanos perciben la "pérdida perceptual" de un algoritmo de submuestreo en particular. Asimismo, la super-resolución y la síntesis de imágenes también resultan difíciles, porque es difícil definir una fórmula para la "bondad" del modelo como un objetivo de maximización. ¡Imagínate descubrir una función matemática que determine de manera objetiva lo "fotorealista" que sea una imágen! El debate de cómo medir la calidad de los modelos generadores (para imágenes, audio) sigue y sigue incluso hasta hoy.

La técnica más popular de los últimos años que se ocupa de este problema es la estrategia de la co-adaptación. En esta estrategia, se formula el problema de optimización como la búsqueda de un punto de equilibrio entre dos distribuciones no estacionarias que evolucionan simultáneamente [3]. Una analogía intuitiva que explica por qué esta estrategia es "natural" es la evolución ecológica de una especie de predadores y una especie de presas. Primero, la especie de predadores se adaptan para poder cazar la presa efectivamente. Después, la especie de presas se adapta para evitar a los predadores. Y así sucesivamente. Las dos especies co-evolucionan como antagonistas el uno del otro, y el resultado es que ambas especies se vuelven más inteligentes.

Las redes generativas antagónicas (GAN) operan acorde a un principio similar para así no tener que explícitamente definir objetivos de pérdida perceptual. Asimismo, el auto-juego competitivo en el aprendizaje por refuerzo emplea este principio para aprender comportamientos complejos. Aunque el objetivo de optimización ahora tiene una especificación implícita, sigue siendo un problema de optimización, y los practicantes del aprendizaje automático pueden reutilizar herramientas familiares como las redes neuronales y el método estocástico del descenso más rápido (SGD, Stochastic Gradient Descent).

Las estrategias evolutivas típicamente aplican un método de optimización-como-simulación. El usuario especifica un sistema dinámico sobre una población de modelos, y en cada paso temporal de la simulación, la población se actualiza de acuerdo a las reglas del sistema dinámico. Los modelos pueden o no interactuar el uno con el otro. La simulación corre adelante en el tiempo, y se espera que la dinámica del sistema cause que la población eventualmente converja a un buen modelo.

Para un excelente tutorial sobre las estrategias evolutivas en el contexto del aprendizaje por refuerzo, véase el artículo A Visual Guide to Evolution Strategies (Una guía visual de las estrategias evolutivas) por David Ha.

La situación actual

La entrenabilidad ya básicamente ha sido resuelta para las redes neuronales prealimentadas (feedforward) y los objetivos de optimización "directos" que son comunes en el aprendizaje supervisado (afirmo esto empíricamente, no teóricamente). Algunos de los grandes avances tecnológicos publicados en el 2015 (normalización por lotes (Batch Norm), redes residuales (ResNets), buena inicialización) se usan ampliamente hoy en día para que las redes prealimentadas sean super entrenables. De hecho, hay redes neuronales con cientas de capas que logran minimizar el error de entrenamiento a cero en conjuntos de datos grandes. Véase éste trabajo de investigación para ver una síntesis completa de la infraestructura algorítmica y de hardware usadas por las redes neuronales profundas en la actualidad.

Las redes neuronales recurrentes todavía resultan un poco difíciles de entrenar, pero la comunidad de investigación sigue avanzando en el área, al punto que ya no se considera loco usar una red neuronal de gran memoria de corto plazo (LSTM) en un sistema robótico complejo y esperar que "simplemente funcione". Esto es increíble, considerando que en el 2014 no muchos confiaban en la entrenabilidad de las redes neuronales recurrentes, y en las décadas previas hubo un montón de trabajos que demostraban que las redes recurrentes eran horribles para entrenar. Existe evidencia que una gran cantidad de las arquitecturas de redes neuronales recurrentes son equivalentemente expresiva la una a la otra, y que cualquier diferencia en desempeño es a causa de que unas arquitecturas son más fáciles de entrenar que otras [4].

En el aprendizaje no supervisado, los datos de salida de los modelos suelen ser (¡no siempre!) más grandes — por ejemplo, 1024 x 1024 píxeles para imágenes, o secuencias gigantescas para la generación de habla y texto. Desafortunadamente, esto los hace más difíciles de entrenar.

Uno de los avances importantes del 2017 fue que la redes generativas antagónicas (GANs) se volvieron más fáciles de entrenar. Las mejoras más populares han sido simples modificaciones al objetivo de divergencia de Jensen-Shannon: mínimos cuadrados, desviación absoluta con margen y la desviación de Wasserstein (1, 2). El trabajo reciente de NVIDIA extiende el trabajo de las GANs basadas en Wasserstein, haciendo que el modelo sea menos sensible a una gran variedad de hiperparámetros, tales como los parámetros de normalización por lotes (BatchNorm), de elección de arquitectura, etc. La estabilidad es increíblemente importante para aplicaciones prácticas e industriales — es lo que nos da confianza de que un modelo será compatible con nuestras ideas de investigación o aplicaciones a futuro. Estos resultados son emocionantes porque indican que nuestras redes neuronales generadoras son lo suficientemente expresivas para generar las imágenes correctas, y el obstáculo que las detenía en el pasado era uno de entrenabilidad. Es posible que la entrenabilidad siga siendo un obstáculo — desafortunadamente con las redes neuronales es difícil saber si es que un modelo no es lo suficientemente expresivo y/o si es que no lo hemos entrenado lo suficiente.

La inferencia con variables latentes discretas dentro de las redes neuronales también solía ser difícil de entrenar a causa de la gran varianza producida por los estimadores de gradiente con técnicas Monte Carlo. Sin embargo, este tipo de inferencia ha resurgido en estos últimos años en todo tipo de arquitecturas, desde redes generativas antagónicas (GANs) a modelos de lenguajes, a redes neuronales con memoria aumentada, a aprendizaje por refuerzo. Las representaciones discretas son muy útiles desde un punto de vista de expresividad y es excelente que ahora podamos entrenarlas de manera bastante fiable.

Trágicamente, el aprendizaje profundo por refuerzo sigue bastante atrasado cuando se trata de la pura entrenabilidad, sin siquiera considerar el aspecto de la generalización. El aprendizaje por refuerzo es difícil porque para ambientes con más de 1 paso temporal, estamos buscando un modelo que realice la optimización (de la recompensa) en el momento de la inferencia. Hay un proceso interno de optimización en el cual el modelo induce el control óptimo, y un bucle externo de optimización que aprende este modelo óptimo, usando solo una base de datos de lo que el agente vio.

Hace poco, añadí una dimensión adicional a una tarea de control robótico contínuo, y el desempeño de mi algoritmo de aprendizaje por refuerzo de derrumbó de >80% a 10%. ¡El aprendizaje por refuerzo no es solo difícil, sino que también es poco fiable! Como el paisaje matemático de optimización es tan estocástico, no podemos siquiera obtener el mismo resultado cuando usamos diferentes semillas para el generador de números aleatorios. Por lo tanto, la estrategia es reportar la distribución de curvas de recompensa a lo largo de varios intentos, cada uno con diferente semilla aleatoria. Diferentes implementaciones del mismo algoritmo varían en desempeño en diferentes entornos, así que las métricas reportadas en la literatura deben ser tomadas con cautela.

¡Qué ridiculez! La entrenabilidad en el aprendizaje por refuerzo definitivamente sigue sin resolverse, porque aún no podemos aplicar nuestro modelo a un problema de escala un poquito más grande y esperar que el mismo aprendizaje haga la misma cosa 10 sobre 10 veces.

Si tratamos al aprendizaje por refuerzo como a un problema puramente de optimización (y lidiamos con la generalización y las tareas complejas más luego), el problema sigue siendo intratable. Digamos que hay un ambiente en donde una recompensa dispersa se da solo al final de un episodio (por ej. el cuidado de niños en el cual se le paga a la niñera cuando vuelven los padres a casa). El número de posibles acciones (y los resultados correspondientes) crecen exponencialmente en relación a la duración del episodio, pero solo pocas de esas secuencias de acciones corresponden al éxito.

Por lo tanto, estimar la gradiente de política en un punto en particular en el panorama matemático de optimización de modelos requiere una cantidad exponencial de muestras con respecto al espacio de acciones antes de que se obtenga una señal útil de aprendizaje. Esto es tan malo como tratar de calcular una expectativa Monte Carlo de una distribución de probabilidad (sobre todas las secuencias de acciones) en donde la masa de la distribución se concentra en una "distribución delta de Dirac" (ver diagrama a continuación). Cuando hay una superposición desvanecedora entre la distribución de propuestas (exploración) y la distribución de recompensas, los estimados de la gradiente de política en base a métodos Monte Carlo de muestras finitas simplemente no funcionarán, sin importar cuántas muestras se recolecten.



Además, si la distribución de datos es no estacionaria (tal como en el caso de los algoritmos fuera-de-política con un buffer de reproducción), recolectar "malos datos" puede introducir bucles de retroalimentación inestables en el proceso externo de optimización.

Aquí está la misma idea pero desde la perspectiva de la optimización en vez de de la estimación Monte Carlo: sin ninguna distribución a priori sobre el espacio de estados (tales como un entendimiento del mundo o una instrucción explícita proveída al agente), el panorama matemático de la optimización se ve como "queso suizo" — pequeños hoyos de soluciones óptimas convexas rodeadas de vastos altiplanos de espacio de parámetros en los cuales la información del gradiente de política es inútil. Esto significa que el espacio completo del modelo tiene básicamente cero información (porque la señal de aprendizaje es efectivamente uniforme a lo largo del espacio de modelos, a causa de que el área que no es cero es extremadamente pequeña).





Si no tenemos buenas representaciones sobre las cuales entrenar el modelo, nos resulta mejor ir ciclando por semillas aleatorios y tomando muestras aleatorias de políticas hasta que descubramos un buen modelo que aterrice en uno de estos hoyos de queso suizo. El hecho que esta técnica aleatoria sea sorprendentemente buena en el aprendizaje por refuerzo sugiere que es muy posible que nuestros paisajes de optimización se vean así.

Según yo, los entornos comparativos como Atari y MuJoCo del aprendizaje por refuerzo, aunque sean interesantes desde el punto de vista de la optimización, en verdad no van hasta el límite del aprendizaje automático, sino más bien simplemente resuelven una política monolítica que optimiza el desempeño en cierto entorno estéril. Hay poca presión selectiva que promueva que el modelo "generalice", así que el problema se vuelve uno de pura optimización, y no un problema del aprendizaje automático en verdad difícil.

No es que quiera complicar los problemas del aprendizaje por refuerzo con asuntos de generalización (¡ciertamente no hará las cosas fáciles de depurar!), pero creo que el aprendizaje de ambos—el entorno y la tarea—es la única manera que hará que el aprendizaje por refuerzo sea manejable para los problemas de robótica del mundo real.

Contrasta esto con el aprendizaje supervisado y el no supervisado, en los cuales podemos obtener señales de aprendizaje de manera barata, sin importar dónde estemos en el espacio de búsqueda de modelos. La distribución de propuesta para gradientes de mini-lotes tiene algo en común con la distribución de gradientes. Si estamos usando el método estocástico del descenso más rápido (Stochastic Gradient Descent) con mini-lotes de tamaño=1, entonces la probabilidad de muestrear la transición con una señal útil de aprendizaje es en el peor de los casos 1/N, en donde N es el tamaño del conjunto de datos (así que está garantizado que se aprenderá algo después de cada época de entrenamiento). Podemos llegar a una buena solución con la fuerza bruta simplemente echando al problema un montón de datos y potencia de cálculo. Además, mejorar la generalización perceptual de las capas más bajas puede de hecho tener un efecto de reducción de la varianza usando "boostrapping" encima de las características (features) de las capas de nivel bajo.

Para resolver los problemas de aprendizaje por refuerzo con alta dimensionalidad y complejidad, debemos primero considerar la generalización y el entendimiento perceptual general antes de atacar el problema de la optimización numérica. Intentar algo diferente es un gasto insensato de esfuerzo. Debemos llegar al punto en el que cada punto de datos provea un número positivo de bits al algoritmo de aprendizaje por refuerzo, y necesitamos tener una manera fácil de hacer un muestreo por importancia de gradientes cuando la tarea sea muy complicada (sin tener que recolectar exponencialmente más datos). Solamente entonces será razonable asumir que podemos tener éxito usando la fuerza bruta en este problema.

El aprendizaje por demostración, por imitación y por refuerzo inverso, y la interfaz con instrucciones de lenguaje natural quizá provean maneras de llevar la política inicial rápidamente a un punto que obtenga algo de señal de aprendizaje (por ejemplo, el entorno otorga una recompensa de 0 pero las observaciones ceden un poco de información útil para los sesgos inductivos del módulo de planificación del modelo).

En resumen: la entrenabilidad es: fácil para el aprendizaje supervisado, difícil-pero-ya-mismo-llega para el aprendizaje no supervisado, y sigue siendo terriblemente difícil para el aprendizaje por refuerzo.

Generalización

La generalización es el más profundo de los 3 problemas, y es la esencia misma del aprendizaje automático. En términos generales, es qué tan bueno es el desempeño del modelo en el conjunto de datos de prueba cuando ha sido entrenado en un conjunto de datos de entrenamiento.

Cuando se habla de la generalización, se distinguen dos escenarios: 1) los conjuntos de datos de entrenamiento y de prueba son muestreados de la misma distribución (y debemos aprender esta distribución solo en base a los datos de entrenamiento) o 2) los datos de entrenamiento y de prueba son muestreados de distribuciones distintas (y necesitamos generalizar de los datos de entrenamiento a los de prueba). Llamemos al (1) "generalización débil" y al (2) "generalización fuerte". Esta manera de clasificar la generalización puede también usar la nomenclatura "interpolación y extrapolación", o "robustez y entendimiento".

Generalización débil: Dos paisajes


¿Qué tan bien funciona el modelo cuando ocurren pequeñas perturbaciones en la distribución de los datos?

En la "generalización débil", asumimos que las muestras del conjunto de entrenamiento y del conjunto de prueba provienen de la misma distribución. Sin embargo, en el mundo real, casi siempre hay alguna diferencia entre la distribución de entrenamiento y la de prueba, incluso en el límite de un gran número de muestras.

Estas diferencias pueden venir del ruido del sensor, del deterioro gradual de los objetos, de variaciones en iluminación (puede que haya estado nublado el día en el que el fotógrafo tomó las imágenes del conjunto de prueba). Otra situación es que las diferencias pueden ser generadas por un antagonista. Las perturbaciones antagónicas son casi imperceptibles al ojo humano, así que podríamos considerar a los ejemplos antagónicos como que fueran muestras de la "misma distribución".

Consecuentemente, es útil en la práctica pensar sobre la "generalización débil" como la evaluación en una versión "perturbada" de la distribución de entrenamiento:



Una distribución perturbada de datos de prueba puede también inducir un paisaje de optimización perturbado (el punto más bajo es el mejor).


El hecho de que no conozcamos la distribución de prueba por adelantado presenta ciertas dificultades para la optimización. Si somos muy agresivos en optimizar el paisaje de entrenamiento (el mínimo *global* puntiagudo de la parte izquierda de la curva azul), terminamos con un modelo que es sub-óptimo con respecto a los datos de prueba (el mínimo *local* puntiagudo de la parte izquierda de la curva roja). Aquí, hemos sobreajustado ("overfitting" en inglés) a la distribución de entrenamiento o a muestras de datos de entrenamiento, y hemos fallado en cuanto a generalizar a la distribución perturbada de prueba.

La "regularización" es una técnica que empleamos para prevenir el sobreajuste. No tenemos ninguna información previa de qué será la perturbación en el conjunto de prueba, así que a menudo lo mejor que podemos hacer es tratar de entrenar en varias versiones aleatoriamente perturbadas de la distribución de entrenamiento, y tener la esperanza que estas incluyan las perturbaciones características de la distribución de prueba. Algunos regularizadores comúnmente usados en el aprendizaje profundo son: el método estocástico del descenso más rápido (Stochastic Gradient Descent), dropout, ruido en los pesos de la red, ruido en las activaciones, y aumento artificial de los datos. En el aprendizaje por refuerzo, es posible aleatorizar los parámetros de simulación para que se vuelva más robusto el entrenamiento. En su charla en ICLR 2017, Chiyuan Zhang comentó que él considera como regularización "cualquier cosa que haga que el entrenamiento sea más difícil" (en vez de la vista convencional de "limitar la capacidad del modelo"). Básicamente, *dificultar* la optimización mejora, de alguna manera, la generalización.

Esto es inquietante — nuestros métodos de "generalizar" son muy rudimentarios, equivalentes a una "lobotomía de optimizadores". Básicamente le lanzamos una llave de tuercas al optimizador con la esperanza que interfiera con el entrenamiento justo lo suficiente como para prevenir el sobreajuste (overfitting). Además, ¡mejorar la entrenabilidad puede hacernos pagar un precio en generalización! Esta manera de ver la generalización (débil) ciertamente complica la manera en la que procedemos con la investigación en el área de la entrenabilidad.

Pero si los mejores optimizadores sobreajustan, entonces ¿cómo explicamos por qué ciertos optimizadores parecen bajar ambos el error de entrenamiento y el de prueba? La realidad es que cualquier combinación de paisaje de optimización y de optimizador causa cierto balance entre 1) encontrar una mejor región de modelos y 2) sobreajustar a una solución específica, y no tenemos buenos métodos para controlar este balance.

La prueba más desafiante de la generalización débil es probablemente la de los ataques antagónicos, en donde las perturbaciones vienen de un "adversario" o "antagonista" que provee la peor posible perturbación para tus datos, de tal manera que con alta probabilidad, tu modelo se desempeñe mal. Aún no tenemos ninguna técnica de aprendizaje automático que sea muy robusta a ataques antagónicos, pero tengo la corazonada de que eventualmente será posible resolver este problema [5].

Hay algunos trabajos teóricos sobre la aplicación de la teoría de la información para mostrar que las redes neuronales aparentemente van a través de una transición de fases durante el proceso de entrenamiento en la cual el modelo cambia de "memorizar" los datos a "comprimirlos". Esta teoría está comenzando a tomar velocidad, pero sigue habiendo un debate académico sobre si es una teoría válida o no. Hay que mantener los ojos abiertos con respecto a esta teoría — la intuición de la "memorización" y la "compresión" es convincente.

Generalización fuerte: superficie geométrica natural

En las pruebas de la "generalización fuerte", el modelo es evaluado en una distribución de datos completamente diferente a la de prueba, pero con datos proviniendo de la misma superficie geométrica subyacente (o proceso generativo)



Cómo puede uno tener la esperanza de aprender un buen modelo para la distribución de prueba si es que es "completamente diferente" a la distribución de entrenamiento? La respuesta a esto es que estos vistazos de datos en verdad provienen de la misma superficie geométrica de "datos naturales". Aún puede haber un montón de información en común entre la distribución de entrenamiento y la de prueba, con tal de que provengan del mismo proceso generativo subyacente.

El espacio de datos observables en el mundo puede ser descrito como una "superficie matemática natural" contínuamente variante. La tupla (videoclip de un par de platillos chocando el uno con el otro, el sonido de los platillos chocando) is un punto en esta superficie matemática. La tupla (videoclip de un par de platillos chocando el uno con el otro, el sonido de ranas croando) no lo es — esos puntos de datos juntos simplemente son inconsistentes con nuestra realidad. Como puedes ver, aunque no hay duda que la superficie matemática es gigantesca, también es altamente estructurada. Por ejemplo las leyes físicas como la gravedad se obedecen en todos los datos que observamos, los objetos no desaparecen y reaparecen repentinamente, y así sucesivamente.

La generalización fuerte puede ser considerada la cantidad de esta "super-superficie" geométrica que es capturada por un modelo en particular que es solo entrenada en una diminuta muestra de puntos de datos de la superficie. Nótese que un clasificador de imágenes no necesita descubrir las ecuaciones de Maxwell — simplemente necesita tener un entendimiento de la realidad que sea consistente con los datos en la superficie geométrica.

Se puede argumentar que los modelos modernos de clasificación entrenados en ImageNet son buenos en la generalización fuerte — los modelos entrenados en ImageNet en verdad entienden conceptos tales como bordes, contornos y objetos, y por eso es que es tan común transferir sus pesos pre-entrenados a otros conjuntos de datos aparte de ImageNet para realizar aprendizaje "few-shot" ("de pocas tomas", en el que se entrena un modelo en muy pocos ejemplos en vez de cientos o más ejemplos) y aprendizaje de métricas. Sin embargo, podrían ser mucho mejores: los clasificadores entrenados en ImageNet no funcionan universalmente, el aprendizaje "few-shot" aún no ha sido resuelto completamente, y estos clasificadores todavía son susceptibles a ejemplos antagónicos. Obviamente nuestros modelos no entienden lo que están viendo de la misma manera en la que los humanos lo hacen. Sin embargo, es un comienzo.

Así como con la generalización débil, la distribución de prueba puede ser muestreada antagónicamente de tal manera que cause la máxima diferencia entre las distribuciones de entrenamiento y de prueba. El programa AlphaGo Zero (un programa que aprende a jugar el juego de mesa Go sin necesidad de observar juegos humanos, y que sin embargo logra vencer a los campeones mundiales de este juego) es mi ejemplo favorito: a la hora de la prueba, este programa observa datos de jugadores humanos completamente diferentes a los datos de su distribución de entrenamiento (nunca ha "visto" a un humano antes). Además, el humano está usando todo su inteligencia para llevar a AlphaGo a regímenes que no hayan sido observados en los datos de prueba. A pesar de que AlphaGo no entiende explícitamente nada sobre matemáticas abstractas, la psicología de oponentes, o qué significa el color verde, claramente entiende lo suficiente acerca del mundo como para ser más listo que un jugador humano en una tarea bastante específica. Si un sistema de inteligencia artificial es robusto en contra a un adversario humano experto, yo considero que tiene la suficiente capabilidad de generalización.

Tristemente, la investigación en el área del aprendizaje por refuerzo ha ignorado en gran medida el problema de la generalización fuerte. La mayoría de las tareas estandarizadas del aprendizaje por refuerzo utilizan ambientes estáticos, con muy poca riqueza perceptual (por ej., el humanoide no entiende su mundo o cómo se ve un cuerpo, sino que simplemente lo interpreta como un conjunto de articulaciones flotantes cuyas posiciones pueden llevar a obtener cierta recompensa).

Yo en verdad creo que resolver la generalización es esencial para resolver la entrenabilidad en el aprendizaje por refuerzo. Mientras más "entiende" el mundo nuestro sistema inteligente, mejor le irá obteniendo señales de aprendizaje, y posiblemente con menos muestras. Por esto es que el aprendizaje "few-shot", el aprendizaje por imitación, y el aprender-a-aprender son importantes: nos alejan de las soluciones de fuerza bruta en donde la varianza es alta y la información es baja.

Yo creo que son necesarias dos cosas para lograr formas más fuertes de generalización:

Primero, necesitamos modelos que activamente deduzcan las leyes fundamentales del mundo en base a la observación y la experimentación. El razonamiento simbólico y la inferencia causal parecen ser temas de estudio con bastante potencial, pero es probable que cualquier tipo de aprendizaje no supervisado pueda ayudar. Esto me recuerda de la larga búsqueda de la humanidad por entender el movimiento de los cuerpos celestes derivando las leyes físicas del universo por medio de un sistema de razonamiento lógico (las matemáticas). Es interesante tomar en cuenta que antes de la Revolución de Copérnico los humanos probablemente dependían al comienzo de heurísticas bayesianas ("supersticiones"), y estos modelos "bayesianos" fueron descartados una vez que descubrimos la mecánica clásica.

Nuestros métodos de aprendizaje automático en base a modelos (modelos que intentan "predecir" aspectos de su ambiente) son al momento "pré-copérnicos" en el sentido que solo interpolan en base a supersticiones estadísticas muy superficiales, en vez de desarrollar principios generales y profundos para explicar y extrapolar datos que pueden estar a millones de años luz de distancia o a muchos pasos temporales en el futuro. Nótese que los humanos en verdad no necesitaron entender la teoría de la probabilidad para derivar la mecánica determinística de los cuerpos celestes, lo cual plantea la pregunta de si habrá cómo usar el aprendizaje automático y la inferencia causal sin necesidad de usar explícitamente la estadística.

Una manera de drásticamente reducir el peso de la complejidad es hacer que nuestros sistemas de aprendizaje automático sean más adaptativos. Necesitamos ir más allá de los modelos de optimización que predigan o actúen en maneras estáticas. En vez de eso, tenemos que optimizar modelos que puedan pensar, recordar, y aprender, y todo esto en tiempo real.

Segundo, necesitamos echarle suficiente diversidad de datos al problema, para empujar al modelo a que desarrolle estas representaciones abstractas. Un ambiente necesita ser lo suficientemente rico como para forzar el desarrollo de la representación correcta (aunque AlphaGo Zero nos hace dudar de qué cantidad de la superficie geométrica natural de datos en verdad es necesaria para el agente). Sin estas restricciones, el problema está fundamentalmente subespecificado y la probabilidad de que accidentalmente descubramos la solución real es nula. Quizá los humanos nunca se hubieran vuelto seres inteligentes si no se hubieran podido parar en sus patas traseras y preguntado por qué las estrellas se mueven en tan raros patrones elípticos.

Me pregunto si la civilización trisolariana (del libro "El problema de los tres cuerpos") evolucionó a tal nivel de avance tecnológico porque su supervivencia dependía de su entendimiento de la mecánica celeste compleja. Quizá necesitemos incluir un poco de movimiento de cuerpos celestes en nuestros ambientes de simulación MuJoCo y Bullet :)

Notas


[1] Hay algunos campos de investigación que no caben tan bien en esta estructura de expresividad, entrenabilidad y generalización. Por ejemplo, la investigación en el campo de la interpretabilidad trata de entender por qué cierto modelo produce una respuesta en particular. Ésta respuesta no solo es exigida, en ciertos campos de alto riesgo (medicina, aplicación de la ley), por las autoridades responsables de las políticas relacionadas al aprendizaje automático y por los clientes del aprendizaje automático, sino que también pueden ayudarnos a entender mejor la generalización: si descubrimos que el modelo determina las diagnosis de manera muy distinta de la cual lo hacen los profesionales médicos humanos, esto podría significar que hay ciertos casos en los que el proceso deductivo del modelo fallará al momento de generalizar.

[2] Un bosquejo de la prueba: Una capa completamente conectada con N neuronas seguida de una no linealidad ReLU puede tajar a un espacio vectorial en N regiones lineales a trozos. La introducción de una segunda capa ReLU subdivide el espacio en N más pedazos, resultando en N^2 regiones lineales a trozos en el espacio de entrada. 3 capas son N^3, y así sucesivamente. Para un análisis más detallado, véase Raghu et al. 2017.

[3] Esto a veces se llama un problema de optimización multi-nivel. Sin embargo, esto implica un bucle de optimización "externo" y uno "interno", mientras que la co-adaptación puede ocurrir simultáneamente. Por ejemplo, procesos concurrentes en una sola máquina comunicándose asincrónicamente, o especies evolucionando contínuamente con respecto el una a la otra en un ecosistema. En estos casos, no hay bucles claros de optimización "externos" e "internos".

[4] Los modelos de secuencia-a-secuencia con atención lograron resultados de punta cuando fueron presentados por primera vez, pero sospecho que la ventaja que otorgan es una de entrenabilidad, no de expresividad o generalización. Es posible que los modelos de secuencia-a-secuencia sin atención obtengan resultados igual de buenos si son inicializados adecuadamente.

[5] Una idea para proteger en contra de los métodos antagónicos, sin resolver la generalización fuerte: hacer que sea extremadamente costoso computar las perturbaciones antagónicas. Los modelos y los datos son parcialmente como cajas negras. En cada llamada al modelo durante el momento de la inferencia, elige un modelo al azar de un conjunto de modelos entrenados, y entrega este modelo al adversario sin decirle qué modelo recibió. Los modelos son entrenados independientemente el uno del otro y pueden adoptar arquitecturas diferentes. Esto hace que sea difícil computar gradientes de diferencias finitas, por lo que f(x+dx) - f(x) puede tener una varianza arbitrariamente grande. Además, los gradientes entre cómputos sucesivos de gradiente aún tendrán una alta varianza porque diferentes pares de modelos pueden ser muestreados. Otra manera de mejorar las cosas sería usar datos multimodales (vídeo, multi-vista, imágenes + sonido), para que sea difícil perturbar entradas en una manera que preserve la consistencia de las entradas.

No comments:

Post a Comment

Comments will be reviewed by administrator (to filter for spam and irrelevant content).