00:21 Introducción
01:53 De pronóstico a aprendizaje
05:32 Aprendizaje automático 101
09:51 La historia hasta ahora
11:49 Mis predicciones para hoy
13:54 Precisión en datos que no tenemos 1/4
16:30 Precisión en datos que no tenemos 2/4
20:03 Precisión en datos que no tenemos 3/4
25:11 Precisión en datos que no tenemos 4/4
31:49 Gloria al emparejador de plantillas
35:36 Una profundidad en el aprendizaje 1/4
39:11 Una profundidad en el aprendizaje 2/4
44:27 Una profundidad en el aprendizaje 3/4
47:29 Una profundidad en el aprendizaje 4/4
51:59 Ir a lo grande o ir a casa
56:45 Más allá de la pérdida 1/2
01:00:17 Más allá de la pérdida 2/2
01:04:22 Más allá de la etiqueta
01:10:24 Más allá de la observación
01:14:43 Conclusión
01:16:36 Próxima clase y preguntas de la audiencia

Descripción

Los pronósticos son irreducibles en la cadena de suministro, ya que cada decisión (compra, producción, almacenamiento, etc.) refleja una anticipación de eventos futuros. El aprendizaje estadístico y el aprendizaje automático han superado ampliamente el campo clásico de ‘pronóstico’, tanto desde una perspectiva teórica como práctica. Intentaremos comprender lo que significa una anticipación impulsada por datos del futuro desde una perspectiva moderna de ‘aprendizaje’.

Transcripción completa

Slide 1

Bienvenidos a la serie de clases sobre cadena de suministro. Soy Joannes Vermorel y hoy presentaré “Machine Learning para la Cadena de Suministro”. No podemos imprimir bienes en 3D en tiempo real, ni podemos teleportarlos a donde deben ser entregados. En realidad, casi todas las decisiones de la cadena de suministro deben tomarse mirando hacia adelante, anticipando la demanda futura o los movimientos de precios, reflejando implícita o explícitamente algunas condiciones de mercado futuras anticipadas, ya sea en el lado de la demanda o en el lado de la oferta. Como resultado, el pronóstico es una parte integral e irreducible de la cadena de suministro. Nunca conocemos el futuro con certeza; solo podemos adivinar sobre el futuro con diferentes grados de certeza. El objetivo de esta clase es comprender lo que el aprendizaje automático aporta en cuanto a capturar el futuro se refiere.

Slide 2

Veremos en esta clase que entregar pronósticos más precisos es, en el gran esquema de las cosas, una preocupación relativamente secundaria. De hecho, en la cadena de suministro actual, el pronóstico significa pronóstico de series de tiempo. Históricamente, los pronósticos de series de tiempo se hicieron populares a principios del siglo XX en los Estados Unidos. De hecho, los Estados Unidos fue el primer país en tener millones de empleados de clase media que también eran propietarios de acciones. Como las personas querían ser inversionistas astutos, querían tener información sobre sus inversiones, y resultó que los pronósticos de series de tiempo y los pronósticos de series de tiempo eran una forma intuitiva y efectiva de transmitir esa información. Podías tener pronósticos de series de tiempo sobre futuros precios de mercado, futuros dividendos y futuras participaciones de mercado.

En los años 80 y 90, cuando la cadena de suministro se digitalizó esencialmente, el software empresarial de la cadena de suministro también comenzó a beneficiarse de los pronósticos de series de tiempo. De hecho, los pronósticos de series de tiempo se volvieron omnipresentes en ese tipo de software empresarial. Sin embargo, si miras esta imagen, te das cuenta de que los pronósticos de series de tiempo son en realidad una forma muy simplista y ingenua de mirar hacia el futuro.

Verás, si solo miro esta imagen, ya puedo decir lo que sucederá a continuación: lo más probable es que aparezca un equipo, limpien este desorden y muy probablemente luego inspeccionen las carretillas elevadoras por razones de seguridad. Incluso podrían realizar algunas reparaciones menores, y con un alto grado de confianza, puedo decir que lo más probable es que esta carretilla elevadora pronto vuelva a estar en funcionamiento. Solo mirando esta imagen, también podemos predecir qué tipo de condiciones llevaron a esta situación. Ninguna de estas predicciones se ajusta a la perspectiva de un pronóstico de series de tiempo, y sin embargo, todas estas predicciones son muy relevantes.

Estas predicciones no se tratan del futuro en sí, ya que esta imagen se tomó hace un tiempo, e incluso los eventos que siguieron a la toma de esta imagen ahora forman parte de nuestro pasado. Pero aún así, son predicciones en el sentido de que estamos haciendo afirmaciones sobre cosas que no conocemos con certeza. No tenemos una medición directa. Entonces, lo principal de interés es, ¿cómo puedo producir estas predicciones y hacer estas afirmaciones?

Resulta que como ser humano, he vivido, he presenciado eventos y he aprendido de ellos. Así es como puedo producir estas afirmaciones. Y resulta que el aprendizaje automático es justo eso: es la ambición de poder replicar esta capacidad de aprendizaje con máquinas, siendo las computadoras las máquinas preferidas por mucho en la actualidad. En este punto, es posible que te preguntes cómo el aprendizaje automático es incluso diferente de otros términos como inteligencia artificial, tecnologías cognitivas o aprendizaje estadístico. Bueno, resulta que estos términos dicen mucho más sobre las personas que los usan que sobre el problema en sí. En cuanto al problema, los límites entre todos esos campos son muy difusos.

Slide 3

Ahora profundicemos con una revisión del arquetipo de los marcos de aprendizaje automático, cubriendo una breve serie de conceptos centrales de aprendizaje automático. La característica representa una pieza de datos que se pone a disposición para realizar la tarea de predicción. La idea es que tienes una tarea de predicción que deseas realizar, y una característica (o varias características) representa lo que se pone a disposición para realizar esa tarea. En el contexto de las previsiones de series temporales, la característica representaría la sección pasada de la serie temporal, y tendrías un vector de características que representan todos los puntos de datos pasados.

La etiqueta representa la respuesta a la tarea de predicción. En el caso de una previsión de series temporales, normalmente representa la parte de la serie temporal que no conoces, donde se encuentra el futuro. Si tienes un conjunto de características más una etiqueta, se denomina observación. La configuración típica de aprendizaje automático asume que tienes un conjunto de datos que contiene tanto características como etiquetas, que representa tu conjunto de datos de entrenamiento.

El objetivo es crear un programa llamado modelo que tome las características como entrada y calcule la etiqueta predicha deseada. Este modelo generalmente se crea a través de un proceso de aprendizaje que recorre todo el conjunto de datos de entrenamiento y construye el modelo. El aprendizaje en el aprendizaje automático es la parte donde realmente construyes el programa que realiza las predicciones.

Por último, está la pérdida. La pérdida es esencialmente la diferencia entre la etiqueta real y la predicha. El objetivo es que el proceso de aprendizaje genere un modelo que realice predicciones lo más cercanas posible a las etiquetas reales. Quieres un modelo que mantenga las etiquetas predichas lo más cerca posible de las etiquetas reales.

El aprendizaje automático se puede ver como una generalización vasta de la previsión de series temporales. Desde la perspectiva del aprendizaje automático, las características pueden ser cualquier cosa, no solo un segmento pasado de una serie temporal. Las etiquetas también pueden ser cualquier cosa, no solo el segmento futuro de una serie temporal. El modelo puede ser cualquier cosa, e incluso la pérdida puede ser prácticamente cualquier cosa. Entonces, tenemos un marco que es mucho más expresivo que las previsiones de series temporales. Sin embargo, como veremos, la mayoría de los principales logros del aprendizaje automático como campo de estudio y práctica se derivan de los descubrimientos de elementos que nos obligan a revisar y desafiar la lista de conceptos que acabo de presentar brevemente.

Slide 4

Esta conferencia es la cuarta conferencia de la serie de conferencias sobre la cadena de suministro. Las ciencias auxiliares representan elementos que no son la cadena de suministro en sí, pero representan algo de importancia fundamental para la cadena de suministro. En el primer capítulo, presenté mis puntos de vista sobre la cadena de suministro tanto como estudio físico como práctica. En el segundo capítulo, revisamos una serie de metodologías necesarias para abordar un dominio como la cadena de suministro que presenta muchos comportamientos adversarios y no se puede aislar fácilmente. El tercer capítulo está dedicado por completo a los personajes de la cadena de suministro, que es una forma de centrarse en los problemas que estamos tratando de resolver.

En este cuarto capítulo, he estado avanzando gradualmente en la escalera de abstracción, comenzando con las computadoras, luego los algoritmos y la conferencia anterior sobre la optimización matemática, que se puede ver como la capa base del aprendizaje automático moderno. Hoy nos adentramos en el aprendizaje automático, que es esencial para capturar el futuro que prevalece en todas las decisiones de la cadena de suministro que debemos tomar todos los días.

Slide 5

Entonces, ¿cuál es el plan para esta conferencia? El aprendizaje automático es un campo de investigación enorme, y esta conferencia estará guiada por una serie de preguntas que se relacionan con los conceptos e ideas que he presentado anteriormente. Veremos cómo las respuestas a estas preguntas nos obligan a revisar la noción misma de aprendizaje y cómo abordamos los datos. Uno de los logros más espectaculares del aprendizaje automático es que nos ha obligado a darnos cuenta de que hay mucho más en juego en comparación con las grandes ambiciones iniciales de los investigadores que pensaban que podríamos replicar la inteligencia humana en una década.

En particular, echaremos un vistazo al deep learning, que probablemente sea el mejor candidato que tenemos para emular un mayor grado de inteligencia en este momento. Aunque el deep learning ha surgido como una práctica increíblemente empírica, el progreso y los logros alcanzados a través del deep learning arrojan nueva luz sobre la perspectiva fundamental de aprender de los fenómenos observados.

Slide 6

El primer problema que tenemos con la modelización, estadística o de otro tipo, es la precisión de los datos que no tenemos. Desde una perspectiva de la cadena de suministro, esto es esencial porque nuestro interés radica en poder capturar el futuro. Por definición, el futuro representa un conjunto de datos que aún no tenemos. Hay técnicas, como el backtesting o la validación cruzada, que pueden darnos algunas medidas empíricas sobre lo que deberíamos esperar de la precisión de los datos que no tenemos. Sin embargo, por qué funcionan estos métodos en absoluto es un problema relativamente intrigante y difícil. El problema no es tener un modelo que se ajuste a los datos que tenemos; es fácil construir un modelo que se ajuste a los datos utilizando un polinomio con un grado suficiente. Sin embargo, este modelo no es muy satisfactorio porque no captura lo que nos gustaría capturar.

El enfoque clásico para este problema se conoce como el compromiso sesgo-varianza. A la derecha, tenemos un modelo con muy pocos parámetros que subajusta el problema, lo que decimos que tiene mucho sesgo. A la izquierda, tenemos un modelo con demasiados parámetros que sobreajusta y tiene demasiada varianza. En el medio, tenemos un modelo que encuentra un buen equilibrio entre sesgo y varianza, al que llamamos un buen ajuste. Hasta el final del siglo XX, no estaba muy claro cómo abordar este problema más allá del compromiso sesgo-varianza.

Slide 7

La primera verdadera idea sobre la precisión de los datos que no tenemos provino de las teorías de aprendibilidad publicadas por Valiant en 1984. Valiant introdujo la teoría PAC - Probablemente Aproximadamente Correcta. En esta teoría PAC, la parte “probablemente” se refiere a un modelo con una probabilidad dada de dar respuestas lo suficientemente buenas. La parte “aproximadamente” significa que la respuesta no está demasiado lejos de lo que se considera bueno o válido.

Valiant demostró que en muchas situaciones, simplemente no es posible aprender nada o, más precisamente, que para aprender, necesitaríamos una cantidad de muestras tan extravagante que no sería práctico. Esto ya era un resultado muy interesante. La fórmula que se muestra proviene de la teoría PAC, y es una desigualdad que te dice que si quieres producir un modelo que sea probablemente aproximadamente correcto, necesitas tener un número de observaciones, n, mayor que una cierta cantidad. Esta cantidad depende de dos factores: epsilon, la tasa de error (la parte aproximadamente correcta), y eta, la probabilidad de fallar (uno menos eta es la probabilidad de no fallar).

Lo que vemos es que si queremos tener una menor probabilidad de falla o un epsilon más pequeño (un rango lo suficientemente bueno), necesitamos más muestras. Esta fórmula también depende de la cardinalidad del espacio de hipótesis. La idea es que cuanto más numerosas sean las hipótesis competitivas, más observaciones necesitamos para ordenarlas. Esto es muy interesante porque, esencialmente, aunque la teoría PAC nos da principalmente resultados negativos, nos dice lo que no podemos hacer, que es construir un modelo probablemente aproximadamente correcto de manera demostrable con menos muestras. La teoría realmente no nos dice cómo hacer algo; no es muy prescriptiva en la forma de mejorar realmente en la resolución de cualquier tipo de tarea de predicción. No obstante, fue un hito porque cristalizó la idea de que era posible abordar este problema de precisión y datos que no teníamos de formas mucho más robustas que simplemente hacer algunas mediciones muy empíricas con, digamos, validación cruzada o backtesting.

Slide 8

Una década después, el primer avance operativo se produjo cuando Vapnik y otros establecieron lo que hoy se conoce como la teoría Vapnik-Chervonenkis (VC). Esta teoría muestra que es posible capturar la pérdida real, conocida como el riesgo, que es la pérdida que observarás en los datos que no tenías. Fue posible demostrar matemáticamente que tenías la capacidad de saber algo sobre el error real, que, por definición, nunca puedes medir. Esto es un resultado muy desconcertante.

Esencialmente, esta fórmula, directamente de la teoría VC, nos dice que el riesgo real está acotado superiormente por el riesgo empírico, que es el riesgo que podemos medir en los datos que tenemos, más otro término frecuentemente referido como el riesgo estructural. Tenemos el número de observaciones, n, y eta, que es la probabilidad de falla, al igual que en la teoría PAC. También tenemos h, que es una medida de la dimensión VC del modelo. La dimensión VC refleja la capacidad del modelo para aprender; cuanto mayor sea la capacidad del modelo para aprender, mayor será la dimensión VC.

Con estos resultados, vemos que para los modelos que tienen la capacidad de aprender cualquier cosa, no podemos decir nada sobre ellos. Esto es muy desconcertante. Si tu modelo puede aprender cualquier cosa, entonces no puedes decir nada, al menos matemáticamente, sobre él.

El avance en 1995 vino de una implementación de Cortes y Vapnik de lo que luego se conocería como Máquinas de Vectores de Soporte (SVM). Estas SVM son literalmente la implementación directa de esta teoría matemática. La idea es que, debido a que tenemos una teoría que nos da esta desigualdad, podemos implementar un modelo que equilibre la cantidad de error que cometemos en los datos (el riesgo empírico) y la dimensión VC. Podemos construir directamente un modelo matemático que equilibre exactamente estos dos factores para que la igualdad sea lo más ajustada y baja posible. Eso es exactamente de lo que se tratan las Máquinas de Vectores de Soporte (SVM). Estos resultados fueron tan sorprendentes, operacionalmente, que obtuvieron muy buenos resultados y tuvieron un impacto significativo en la comunidad de aprendizaje automático. Por primera vez, la precisión en los datos que no tenemos no fue una idea secundaria; se obtuvo directamente mediante el diseño matemático del método en sí. Esto fue tan sorprendente y poderoso que mantuvo a toda la comunidad de aprendizaje automático distraída durante una década persiguiendo este camino. Como veremos, este camino resultó ser en su mayoría un callejón sin salida, pero había una buena razón para ello: fue un resultado absolutamente sorprendente.

Operacionalmente, debido al hecho de que las SVM en su mayoría surgieron de una teoría matemática, tenían muy poca simpatía mecánica. No eran adecuadas para el hardware informático que tenemos. Más específicamente, la implementación ingenua de las SVM viene con un costo cuadrático en términos de huella de memoria en relación con el número de observaciones. Esto es mucho y, como consecuencia, hace que las SVM sean muy lentas. Ha habido mejoras posteriores con algunas variantes en línea de las SVM que han reducido enormemente los requisitos de memoria, pero aun así, las SVM nunca se consideraron realmente como un enfoque verdaderamente escalable para realizar el aprendizaje automático.

Slide 9

Las SVM allanaron el camino para otra clase de modelos mejores que probablemente tampoco sobreajustaran. El sobreajuste básicamente implica ser muy impreciso en los datos que no tienes. Los ejemplos más notables son probablemente Random Forests y Gradient Boosted Trees, que resultan ser sus descendientes casi inmediatos. En su núcleo está el boosting, un metaalgoritmo que transforma modelos débiles en modelos más fuertes. El boosting surgió de preguntas planteadas a fines de los años 80 entre Kearns y Valiant, a quienes mencionamos anteriormente en esta conferencia.

Para entender cómo funciona un Random Forest, es relativamente sencillo: toma tu conjunto de datos de entrenamiento y luego toma una muestra de tu conjunto de datos. En esta muestra, construye un árbol de decisiones. Repite este proceso, creando otra muestra del conjunto de datos de entrenamiento inicial y construyendo otro árbol de decisiones. Itera este proceso y al final, tendrás muchos árboles de decisiones. Los árboles de decisiones son relativamente débiles en términos de modelos de aprendizaje automático, ya que no pueden capturar patrones muy complejos. Sin embargo, si juntas todos estos árboles y promedias los resultados, lo que obtienes es un bosque, conocido como Random Forest, porque cada árbol se ha construido en una submuestra aleatoria del conjunto de datos de entrenamiento inicial. Lo que obtienes con un Random Forest es un modelo de aprendizaje automático mucho más fuerte y mejor.

Los Gradient Boosted Trees son solo una pequeña variación de esta idea. La principal variación es que, en lugar de muestrear tu conjunto de datos de entrenamiento y construir un árbol al azar, con todos los árboles construidos de forma independiente, los Gradient Boosted Trees primero construyen el bosque y luego el siguiente árbol se construye mirando los residuos del bosque que ya tienes. La idea es que has comenzado a construir un modelo compuesto por muchos árboles y haces predicciones que se alejan de la realidad. Tienes estos deltas, que son las diferencias entre los valores reales y los valores predichos, llamados residuos. La idea es que vas a entrenar el siguiente árbol no contra el conjunto de datos original, sino contra una muestra de los residuos. Los Gradient Boosted Trees funcionan aún mejor que los Random Forests. En la práctica, los Random Forests hacen overfitting, pero solo un poco. Hay algunas pruebas que muestran que, bajo ciertas condiciones, los Random Forests no deben hacer overfitting.

Curiosamente, los Gradient Boosted Trees han estado dominando las puntuaciones más altas de casi todas las competiciones de aprendizaje automático durante una década y media. Cuando miras alrededor del 80-90% de las competiciones de Kaggle, verás que es esencialmente un Gradient Boosted Tree el que quedó en primer lugar. Sin embargo, a pesar de este increíble dominio en las competiciones de aprendizaje automático, ha habido muy poco avance en la aplicación de los Gradient Boosted Trees a los problemas de la cadena de suministro en la vida real. La razón principal es que los Gradient Boosted Trees tienen muy poca simpatía mecánica; su diseño no es nada amigable con el hardware informático que tenemos.

Es fácil entender por qué: construyes un modelo con una serie de árboles y el modelo termina siendo tan grande como una fracción de tu conjunto de datos. En muchas situaciones, terminas con un modelo que es más grande, en términos de datos, que el conjunto de datos con el que comenzaste. Entonces, si tu conjunto de datos ya es muy grande, entonces tu modelo es gigantesco y eso es un problema muy grave.

En cuanto a la historia de los Gradient Boosted Trees, ha habido una serie de implementaciones, comenzando con GBM (Gradient Boosted Machines) en 2007, que popularizó realmente este enfoque en un paquete de R. Desde el principio, hubo problemas de escalabilidad. La gente rápidamente comenzó a paralelizar la ejecución con PGBRT (Parallel Gradient Boosted Regression Trees), pero aún era muy lento. XGBoost fue un hito porque ganó un orden de magnitud en escalabilidad. La idea clave en XGBoost fue adoptar un diseño columnar en los datos para acelerar la construcción del árbol. Más tarde, LightGBM recicló todas las ideas de XGBoost pero cambió la estrategia sobre cómo construir los árboles. XGBoost creció a nivel de árbol, mientras que LightGBM decidió crecer a nivel de hoja del árbol. El resultado neto es que LightGBM ahora es varios órdenes de magnitud más rápido, considerando el mismo hardware informático, que GBM alguna vez fue. Sin embargo, desde una perspectiva práctica de la cadena de suministro, usar Gradient Boosted Trees suele ser demasiado lento. No es imposible usarlos; es solo que es un obstáculo tan grande que generalmente no vale la pena.

Slide 10

Lo curioso es que los Gradient Boosted Trees son lo suficientemente poderosos como para ganar casi todas las competencias de aprendizaje automático, y sin embargo, en mi humilde opinión, estos modelos son un callejón sin salida tecnológico. Las Support Vector Machines, Random Forests y Gradient Boosted Trees tienen en común que no son más que coincidencias de plantillas. Son muy buenas coincidencias de plantillas, eso sí, pero realmente no son más que eso. Lo que hacen excepcionalmente bien es la selección de variables, y son muy buenos en eso, pero no hay mucho más. En particular, no tienen capacidad de expresión para transformar la entrada en algo distinto a una selección o filtrado directo de la entrada.

Si volvemos a la imagen de la carretilla elevadora que presenté al principio de esta conferencia, no hay ninguna esperanza de que ninguno de esos modelos pueda hacer las mismas afirmaciones que acabo de hacer, sin importar cuán grande sea el conjunto de datos de imágenes. Podrías alimentar literalmente a todos esos modelos con millones de imágenes tomadas de almacenes de todo el mundo, y aún así no podrían hacer afirmaciones como “Oh, he visto una carretilla elevadora en esta situación; un equipo vendrá y hará reparaciones”. En realidad no.

En la práctica, lo que hemos visto es que el hecho de que estos modelos ganen competencias de aprendizaje automático es engañoso porque hay factores que juegan a su favor en tales situaciones. En primer lugar, los conjuntos de datos del mundo real son muy complejos, lo cual es diferente de las competencias de aprendizaje automático donde, en el mejor de los casos, tienes conjuntos de datos de juguete que representan solo una fracción de las complejidades que se enfrentan en configuraciones del mundo real. En segundo lugar, para ganar una competencia de aprendizaje automático utilizando modelos como Gradient Boosted Trees, tienes que hacer una extensa ingeniería de características. Debido a que estos modelos son coincidencias de plantillas glorificadas, necesitas tener las características adecuadas para que solo la selección de variables haga que el modelo funcione de manera excelente. Tienes que inyectar una gran dosis de inteligencia humana en la preparación de los datos para que funcione. Esto es un gran problema porque, en el mundo real, al intentar resolver un problema para cadenas de suministro reales, el número de horas de ingeniería que puedes dedicar al problema es limitado. No puedes pasar seis meses en un aspecto de problema de juguete de tiempo limitado y pequeño de tu cadena de suministro.

El tercer problema es que, en las cadenas de suministro, los conjuntos de datos están cambiando constantemente. No solo los datos cambian, sino que el problema también está cambiando gradualmente. Esto agrava los problemas que tienes con la ingeniería de características. Fundamentalmente, nos quedamos con modelos que ganan competencias de aprendizaje automático y competencias de pronóstico, pero si miramos una década hacia el futuro, vemos que estos modelos no son el futuro del aprendizaje automático; son el pasado.

Slide 11

El deep learning fue la respuesta a estas coincidencias superficiales de plantillas. A menudo se presenta el deep learning como el descendiente de las redes neuronales artificiales, pero la realidad es que el deep learning despegó el día en que los investigadores decidieron renunciar a las metáforas biológicas y centrarse en la simpatía mecánica. Nuevamente, la simpatía mecánica, que significa llevarse bien con las computadoras que tenemos, es esencial. El problema que teníamos con las redes neuronales artificiales era que estábamos tratando de imitar la biología, pero las computadoras que tenemos son completamente diferentes a los sustratos biológicos que sustentan nuestros cerebros. Esta situación recuerda a la historia temprana de la aviación, donde numerosos inventores intentaron construir máquinas voladoras imitando a los pájaros. Hoy en día, tenemos máquinas voladoras que vuelan muchas veces más rápido que los pájaros más rápidos, pero la forma en que vuelan estas máquinas casi no tiene nada en común con cómo vuelan los pájaros.

La primera idea sobre el deep learning fue la necesidad de algo profundo y expresivo que pudiera aplicar cualquier tipo de transformación a los datos de entrada, permitiendo que surja un comportamiento predictivo inteligente del modelo. Sin embargo, también necesitaba llevarse bien con el hardware informático que teníamos. La idea era que si teníamos modelos complejos que se llevaban muy bien con el hardware informático, lo más probable es que pudiéramos aprender funciones que son varias órdenes de magnitud más complejas, considerando todas las cosas iguales, en comparación con cualquier método que no tuviera el mismo grado de simpatía mecánica.

Programación diferenciable, que se presentó en la conferencia anterior, se puede considerar como la capa base del deep learning. No voy a volver a la programación diferenciable en esta conferencia, pero invito a la audiencia a ver la conferencia anterior si no la han visto. Deberían poder entender lo que sigue incluso si no han visto la conferencia anterior. La conferencia anterior debería aclarar algunos de los detalles más técnicos del proceso de aprendizaje en sí. En resumen, la programación diferenciable es simplemente una forma de, si elegimos una forma específica de modelo, identificar los mejores valores para los parámetros que existen dentro de este modelo.

Mientras que la programación diferenciable se centra en identificar los mejores parámetros, el aprendizaje automático se centra en identificar las formas superiores de modelos que tienen la mayor capacidad para aprender de los datos.

Slide 12

Entonces, ¿cómo creamos una plantilla para una función arbitrariamente compleja que pueda reflejar cualquier transformación arbitrariamente compleja en los datos de entrada? Comencemos con un circuito de valores de punto flotante. ¿Por qué valores de punto flotante? Bueno, es porque es el tipo de cosa en la que podemos aplicar el descenso de gradiente, que, como hemos visto en la conferencia anterior, es muy escalable. Entonces, son números de punto flotante. Vamos a tener una secuencia de números de punto flotante, lo que significa puntos flotantes como entradas y puntos flotantes como salidas.

Ahora, ¿qué hacemos en el medio? Hagamos álgebra lineal, y más específicamente, hagamos multiplicación de matrices. ¿Por qué eso? La respuesta a por qué la multiplicación de matrices se dio en la primera conferencia de este cuarto capítulo. Se relaciona con la forma en que están diseñadas las computadoras modernas; esencialmente, es posible lograr una aceleración relativamente dramática en términos de velocidad de procesamiento si nos limitamos al álgebra lineal. Entonces, álgebra lineal. Ahora, si tomo mis entradas y aplico una transformación lineal, que es simplemente una multiplicación de matrices con una matriz llamada W (esta matriz contiene los parámetros que queremos aprender más adelante), ¿cómo podemos hacerlo más complejo? Podemos agregar una segunda multiplicación de matrices. Sin embargo, si recuerdas tus cursos de álgebra lineal, cuando multiplicas una función lineal con otra función lineal, lo que obtienes es una función lineal. Entonces, si simplemente componemos la multiplicación de matrices, todavía tenemos una multiplicación de matrices, y sigue siendo completamente lineal.

Lo que vamos a hacer es intercalar no linealidades entre las operaciones lineales. Esto es exactamente lo que he hecho en esta pantalla. He intercalado una función típicamente conocida en la literatura de deep learning como una Unidad Lineal Rectificada (ReLU). Este nombre, que es fantásticamente complicado en comparación con lo que hace, es solo una función muy simple que dice que si tomo un número y si este número es positivo, entonces devuelvo el mismo número exacto (así que es una función de identidad), pero si el número es negativo, devuelvo 0. También puedes escribirlo como el máximo de tu valor y cero. Esta es una no linealidad muy trivial.

Podríamos usar funciones no lineales mucho más sofisticadas. Históricamente, cuando las personas estaban haciendo redes neuronales, querían usar funciones sigmoideas sofisticadas porque se suponía que así funcionaban en nuestras neuronas. Pero la realidad es, ¿por qué querríamos desperdiciar potencia de procesamiento calculando cosas que son irrelevantes? La idea clave es que necesitamos introducir algo que sea no lineal, y realmente no importa qué función no lineal usemos. Lo único que importa es hacerlo muy rápido. Queremos mantener todo lo más rápido posible.

Lo que estoy construyendo aquí se llama capas densas. Una capa densa es esencialmente una multiplicación de matrices con una no linealidad (la Unidad Lineal Rectificada). Podemos apilarlas. En la pantalla, puedes ver una red, que típicamente se llama perceptrón multicapa, y tenemos tres capas. Podríamos seguir apilándolas, y podríamos tener 20 o 2,000 de ellas; realmente no importa. La realidad es que, por más simplista que parezca, si tomas una red de este tipo con solo un par de capas y la colocas en tu marco de programación diferenciable, que te dará los parámetros, la programación diferenciable como capa base podrá entrenar los parámetros, que inicialmente se eligen al azar. Si quieres inicializarlo, simplemente inicializa todos los parámetros al azar. Obtendrás resultados bastante decentes para una gran variedad de problemas.

Eso es muy interesante porque, en este punto, tienes prácticamente todos los ingredientes fundamentales del deep learning. ¡Así que, felicidades a la audiencia! Probablemente puedas empezar a agregar “especialista en deep learning” a tu currículum porque esto es casi todo lo que hay. Bueno, no realmente, pero digamos que es un buen punto de partida.

Slide 13

La realidad es que el deep learning involucra muy poca teoría además del álgebra tensorial, que es esencialmente álgebra lineal computarizada. Sin embargo, el deep learning involucra toneladas de trucos. Por ejemplo, tenemos que normalizar las entradas y estabilizar los gradientes. Si comenzamos a apilar muchas operaciones como esa, los gradientes pueden crecer exponencialmente a medida que retrocedemos en la red, y en algún momento, eso desbordará la capacidad para representar esos números. Tenemos computadoras del mundo real y no pueden representar números arbitrariamente grandes. En algún momento, simplemente desbordarás tu capacidad para representar el número con un valor de punto flotante de 32 bits o 16 bits. Hay toneladas de trucos para la estabilización de gradientes. Por ejemplo, el truco típicamente es la normalización por lotes, pero hay otros trucos para eso.

Si tienes entradas que tienen una estructura geométrica, por ejemplo, unidimensional como una serie de tiempo (ventas históricas, como vemos en la cadena de suministro), eso puede ser bidimensional (piénsalo como una imagen), tridimensional (podría ser una película), o tetradimensional, etc. Si las entradas tienen una estructura geométrica, entonces hay capas especiales que pueden capturar esta estructura geométrica. Las más famosas son probablemente las capas convolucionales.

Luego, también tienes técnicas y trucos para lidiar con entradas categóricas. En el deep learning, todas tus entradas son valores de punto flotante, entonces ¿cómo lidas con variables categóricas? La respuesta son las incrustaciones. Tienes pérdidas sustitutas, que son pérdidas alternativas que exhiben gradientes muy pronunciados y facilitan el proceso de convergencia, amplificando en última instancia lo que puedes aprender de los datos. Hay toneladas de trucos, y todos esos trucos típicamente se pueden incorporar al programa que estás componiendo porque operamos con programación diferenciable como nuestra capa base.

El deep learning realmente se trata de cómo componemos un programa que, una vez que se ejecuta a través del proceso de entrenamiento ofrecido por la programación diferenciable, tiene una capacidad muy alta para aprender. La mayoría de los elementos que acabo de enumerar en la pantalla también son de naturaleza programática, lo cual es muy conveniente considerando que tenemos programación diferenciable, un paradigma de programación, para respaldar todo eso.

Slide 14

En este punto, debería quedar más claro por qué el deep learning es diferente al aprendizaje automático clásico. De hecho, la mayoría de las bibliotecas de deep learning de código abierto ni siquiera incluyen modelos. Con el deep learning, lo que realmente importa son las arquitecturas de los modelos, que puedes pensar como plantillas que deben ser altamente personalizadas cuando deseas adaptarlas a una situación específica. Sin embargo, si adoptas una arquitectura adecuada, puedes anticipar que tu personalización aún preservará la esencia de la capacidad de tu modelo para aprender. Con el deep learning, desplazamos el interés del modelo final, que se vuelve algo no muy interesante, hacia la arquitectura, que se convierte en el verdadero objeto de investigación.

En la pantalla, puedes ver una serie de ejemplos notables de arquitecturas. Primero, LSTM, que significa Memoria a Corto y Largo Plazo, comenzó a funcionar alrededor de 2007. La historia de publicación de LSTM es un poco más complicada, pero básicamente comenzó a funcionar al estilo del deep learning en 2007. Fue reemplazado por las Unidades Recurrentes con Puertas (GRU), que es esencialmente lo mismo que LSTM pero más simple y agradable. Esencialmente, gran parte de la complejidad de LSTM proviene de las metáforas biológicas. Resulta que puedes prescindir de las metáforas biológicas y obtener algo más simple que funciona prácticamente igual. Eso son las Unidades Recurrentes con Puertas (GRU). Más tarde, surgieron los transformers, que básicamente hicieron que tanto LSTM como GRU quedaran obsoletos. Los transformers fueron un avance ya que eran mucho más rápidos, más eficientes en términos de recursos informáticos necesarios y tenían una capacidad aún mayor para aprender.

La mayoría de estas arquitecturas vienen con metáforas. LSTM tiene una metáfora cognitiva, memoria a corto y largo plazo, mientras que los transformers vienen con una metáfora de recuperación de información. Sin embargo, estas metáforas tienen muy poco poder predictivo y en realidad podrían ser más una fuente de confusión y distracción de lo que realmente hace que estas arquitecturas funcionen, lo cual no se comprende del todo bien en este momento.

Los transformers son de gran interés para la supply chain porque son una de las arquitecturas más versátiles. Se utilizan para prácticamente todo en la actualidad, desde la conducción autónoma hasta la traducción automatizada y muchos otros problemas difíciles. Esto es un testimonio del poder de elegir la arquitectura correcta, que luego se puede utilizar para adaptarse a una gran diversidad de problemas. En lo que respecta a la supply chain, una de las principales dificultades para hacer cualquier cosa con el aprendizaje automático es que tenemos una increíble diversidad de problemas para abordar. No podemos permitirnos tener un equipo que dedique cinco años a los esfuerzos de investigación para cada subproblema que enfrentamos. Necesitamos algo donde podamos avanzar rápidamente y no tener que reinventar la mitad del aprendizaje automático cada vez que queremos resolver el siguiente problema.

Slide 15

Un aspecto del deep learning que realmente sorprende cuando comienzas a pensarlo es la enorme cantidad de parámetros. En el perceptrón multicapa que presenté hace unos minutos, con capas densas que involucran multiplicación de matrices, podemos tener muchos parámetros en esas matrices. De hecho, no es muy difícil tener tantos parámetros como tenemos puntos de datos u observaciones en nuestros conjuntos de datos de entrenamiento. Como hemos visto al comienzo de nuestra conferencia, si tenemos un modelo con tantos parámetros, debería sufrir dramáticamente de sobreajuste.

La realidad con el deep learning es aún más desconcertante. Hay muchas situaciones en las que tenemos muchos más parámetros que observaciones, y sin embargo no experimentamos problemas dramáticos de sobreajuste. Aún más desconcertante, los modelos de deep learning tienden a ajustarse completamente al conjunto de datos de entrenamiento, por lo que terminas teniendo un error cercano a cero en tu conjunto de datos de entrenamiento, y aún así mantienen su poder predictivo para datos que no tenemos.

Hace dos años, el artículo “Deep Double Descent” publicado por OpenAI arrojó algo de luz muy interesante sobre esta situación. El equipo mostró que esencialmente tenemos un “valle inquietante” en el ámbito del aprendizaje automático. La idea es que si tomas un modelo y tienes solo unos pocos parámetros, tienes mucho sesgo y la calidad de tus resultados en datos no vistos no es tan buena. Esto se ajusta a la visión clásica del aprendizaje automático y también a la visión estadística clásica. Si aumentas el número de parámetros, mejorarás la calidad de tu modelo, pero en algún momento comenzarás a sobreajustar. Esto es exactamente lo que hemos visto en la discusión anterior sobre el subajuste y el sobreajuste. Hay un equilibrio que encontrar.

Sin embargo, lo que han demostrado es que si sigues aumentando el número de parámetros, algo muy extraño sucederá: sobreajustarás cada vez menos, lo cual es exactamente lo contrario de lo que la teoría clásica del aprendizaje estadístico predeciría. Este comportamiento no es accidental. Los autores mostraron que este comportamiento es muy robusto y generalizado. Sucede prácticamente todo el tiempo en una gran variedad de situaciones. Aún no se entiende muy bien por qué, pero lo que se entiende muy bien en este momento es que el “deep double descent” es muy real y generalizado.

Esto también ayuda a entender por qué el deep learning llegó relativamente tarde a la fiesta del aprendizaje automático. Para que el deep learning tuviera éxito, primero tuvimos que tener éxito en la construcción de modelos que pudieran procesar decenas de miles o incluso cientos de miles de parámetros para superar este “valle inquietante”. En los años 80 y 90, no hubiera sido posible tener ningún avance en deep learning, simplemente porque los recursos informáticos de hardware no eran capaces de superar este “valle inquietante”.

Afortunadamente, con el hardware informático actual, es posible entrenar modelos sin mucho esfuerzo que tienen millones e incluso miles de millones de parámetros. Como señalamos en las conferencias anteriores, ahora hay empresas como Facebook que están entrenando modelos que tienen más de un billón de parámetros. Así que podemos llegar muy lejos.

Slide 16

Hasta ahora, hemos asumido que la función de pérdida era conocida. Sin embargo, ¿por qué debería ser así? De hecho, consideremos la situación de una tienda de moda desde una perspectiva de la cadena de suministro. Una tienda de moda tiene niveles de stock para cada SKU individual, y queremos proyectar la demanda futura. Queremos proyectar un escenario posible que sea creíble para la demanda futura de esta tienda en particular. Lo que sucederá es que a medida que ciertos SKUs se agoten, deberíamos observar canibalización y sustitución. A medida que un SKU determinado se agota, normalmente la demanda debería, en parte, volver a productos similares.

Pero si intentamos abordar este tipo de enfoque con métricas clásicas de pronóstico como el Error Porcentual Absoluto Medio (MAPE), el Error Absoluto Medio (MAE), el Error Cuadrático Medio (MSE) u otras métricas que operan SKU por SKU, día a día o semana a semana, no capturaremos ninguno de estos comportamientos. Lo que realmente queremos es una métrica que capture si somos muy buenos capturando todos esos efectos de canibalización y sustitución. Pero ¿cómo debería ser esta función de pérdida? Es muy poco claro y parece requerir un comportamiento bastante sofisticado. Uno de los avances clave del deep learning fue básicamente llegar a la idea de que la función de pérdida debería ser aprendida. Así es como se produjo la imagen en la pantalla. Esta es una imagen generada completamente por máquina; ninguna de esas personas es real. Han sido generadas y el problema era: ¿cómo construir una función de pérdida o una métrica que te diga si una imagen es un retrato humano bueno y fotorrealista o no?

La realidad es que si comienzas a pensar en términos de métricas estilo Error Porcentual Absoluto Medio (MAPE), terminas con una métrica que opera píxel por píxel. El problema es que una métrica que opera píxel por píxel no te dice nada acerca de si la imagen en su conjunto se parece a una cara humana. Tenemos el mismo problema en la tienda de moda para los SKUs y la proyección de la demanda. Es muy fácil tener una métrica a nivel de SKU, pero eso no nos dice nada acerca de la imagen general de la tienda en su conjunto. Sin embargo, desde una perspectiva de la cadena de suministro, no nos interesa la precisión a nivel de SKU; nos interesa la precisión a nivel de tienda. Queremos saber si los niveles de stock son buenos en su totalidad para la tienda, no si son buenos para un SKU y luego otro SKU. Entonces, ¿cómo abordó la comunidad de deep learning este problema?

Slide 17

Este logro impresionante se ha obtenido con una técnica bellamente simple llamada Redes Generativas Adversarias (GANs). En la prensa, es posible que hayas oído hablar de estas técnicas como deepfakes. Los deepfakes son imágenes que se han producido con esta técnica GAN. ¿Cómo funciona?

Bueno, la forma en que funciona es que primero comienzas con un generador. El generador toma algún ruido como entrada, que son solo valores aleatorios, y va a producir una imagen en el caso presente. Si volvemos al caso de la cadena de suministro, produciría trayectorias para todos los puntos de demanda observados para cada SKU individual durante, digamos, los próximos tres meses en esta tienda de moda. Este generador es en sí mismo una red de deep learning.

Ahora, vamos a tener un discriminador. Un discriminador también es una red de deep learning, y el objetivo del discriminador es aprender a predecir si lo que acaba de ser generado es real o sintético. El discriminador es un clasificador binario que solo necesita decir si es real o no real. Si el discriminador es capaz de predecir correctamente que una muestra es falsa, es sintética, vamos a conducir los gradientes hacia atrás hasta el generador y permitir que el generador aprenda de ello.

Lo que sucede con esta configuración es que el generador comienza a aprender cómo generar muestras que realmente engañan y confunden al discriminador. Al mismo tiempo, el discriminador aprende a mejorar en la discriminación entre las muestras reales y las sintéticas. Si tomas este proceso, con suerte converge a un estado donde terminas con un generador de muy alta calidad que genera muestras increíblemente realistas, y un discriminador muy bueno que puede decirte si es real o no. Esto es exactamente lo que se hace con las GAN para generar esas imágenes fotorrealistas. Si volvemos a la cadena de suministro, encontrarás expertos en círculos de cadena de suministro que dicen que para una situación particular, la mejor métrica es MAPE, o MAPE ponderado, o lo que sea. Ellos te darán recetas que te dicen que en ciertas situaciones, necesitas usar esta métrica o aquella. La realidad es que el deep learning muestra que una métrica de pronóstico es un concepto obsoleto. Si quieres lograr una precisión de alta dimensión, no solo una precisión puntual, necesitas aprender la métrica. Aunque en este momento, sospecho que hay muy pocas cadenas de suministro que estén aprovechando estas técnicas, en algún momento en el futuro lo harán. Se convertirá en la norma aprender la métrica de pronóstico utilizando redes generativas adversarias o los descendientes de estas técnicas porque es una forma de capturar el comportamiento sutil y de alta dimensión que realmente es de interés, en lugar de tener solo una precisión puntual.

Slide 18

Ahora, hasta ahora, cada observación vino con una etiqueta, y la etiqueta era la salida que queremos predecir. Sin embargo, hay situaciones que no se pueden enmarcar como problemas de entrada-salida. Las etiquetas simplemente no están disponibles. Si queremos tomar un ejemplo de cadena de suministro, eso sería un hipermercado. En los hipermercados, los niveles de stock no son perfectamente precisos. Los productos pueden estar dañados, robados o vencidos, y hay muchas razones por las cuales los registros electrónicos en tu sistema no reflejan realmente lo que está disponible en el estante según lo percibido por los clientes. Hacer inventario es demasiado caro para ser una fuente de datos en tiempo real de inventario preciso. Puedes hacer inventario, pero no puedes recorrer todo el hipermercado todos los días. Lo que obtienes es una gran cantidad de stock ligeramente inexacto. Tienes toneladas de ello, pero realmente no puedes decir cuáles son precisos y cuáles no.

Esta es esencialmente la situación en la que el aprendizaje no supervisado tiene mucho sentido. Queremos aprender algo; tenemos datos, pero no tenemos las respuestas correctas disponibles. No tenemos esas etiquetas. Lo que tenemos son toneladas de datos. El aprendizaje no supervisado ha sido considerado durante décadas por la comunidad de aprendizaje automático como un Santo Grial. Durante mucho tiempo, fue el futuro, pero un futuro lejano. Sin embargo, recientemente ha habido algunos avances increíbles en esta área. Uno de los avances fue, por ejemplo, logrado por un equipo de Facebook con un artículo titulado “Traducción automática no supervisada utilizando solo corpus monolingües”.

Lo que hizo el equipo de Facebook en este artículo fue construir un sistema de traducción que solo utilizaba un corpus de texto en inglés y un corpus de texto en francés. Estos dos corpus no tienen nada en común; ni siquiera es el mismo texto. Es solo texto en inglés y texto en francés. Luego, sin dar ninguna traducción real al sistema, aprendieron un sistema que traduce del inglés al francés. Este es un resultado absolutamente impresionante. Por cierto, la forma en que se logra es utilizando una técnica que es increíblemente reminiscente de las redes generativas adversarias que acabo de presentar anteriormente. De manera similar, un equipo en Google publicó BERT (Representaciones de Codificador Bidireccional a partir de Transformadores) hace dos años. BERT es un modelo que se entrena de manera en gran medida no supervisada. Estamos hablando de texto nuevamente. La forma en que se hace con BERT es tomando enormes bases de datos de texto y enmascarando palabras al azar. Luego, entrenas el modelo para predecir esas palabras y repites el proceso para todo el corpus. Algunas personas se refieren a esta técnica como auto-supervisada, pero lo que es muy interesante con BERT y donde se vuelve relevante para la cadena de suministro es que de repente, la forma en que abordas tus datos es construyendo una máquina donde puedes ocultar partes de los datos y la máquina aún puede completar los datos.

La razón por la que esto es de suma relevancia para la cadena de suministro es que fundamentalmente, lo que se está haciendo con BERT en el contexto del procesamiento del lenguaje natural se puede extender a muchos otros dominios. Es la máquina definitiva de respuesta a “qué pasaría si”. Por ejemplo, ¿qué pasaría si tuviera una tienda más? Este “qué pasaría si” se puede responder porque simplemente puedes modificar tus datos, agregar la tienda y consultar el modelo de aprendizaje automático que acabas de construir. ¿Qué pasaría si tuviera un producto adicional? ¿Qué pasaría si tuviera un cliente adicional? ¿Qué pasaría si tuviera un punto de precio diferente para este producto? Y así sucesivamente. El aprendizaje no supervisado es de interés primordial porque comienzas a tratar tus datos como un todo, no solo como una lista de pares. Terminas con un mecanismo que es completamente general y puede hacer predicciones sobre cualquier aspecto que esté presente de alguna manera en los datos. Esto es muy poderoso.

Slide 19

Ahora, finalmente, tenemos que revisar todo el concepto de observación. Inicialmente, dijimos que una observación era un par de características más una etiqueta. Hemos visto cómo podemos eliminar la etiqueta, pero ¿qué pasa con las propias características y la observación? El problema con la cadena de suministro es que realmente no tenemos observaciones. Ni siquiera está claro que podamos descomponer una cadena de suministro en una lista de observaciones independientes o homogéneas. Como se discutió en una conferencia anterior, lo que tenemos para observar una cadena de suministro no es ninguna observación científica directa de la cadena de suministro en sí. Lo que tenemos son una serie de piezas de software empresarial, y la única forma en que podemos observar una cadena de suministro es indirectamente a través de los registros recopilados en esas piezas de software empresarial. Eso puede ser el ERP, el WMS, el punto de venta, etc. Pero la conclusión es que todo lo que tenemos son registros electrónicos que son transaccionales en su naturaleza porque todos esos sistemas típicamente se implementan sobre bases de datos transaccionales. Por lo tanto, las observaciones no son independientes. Los registros que tenemos son relacionales, literalmente, porque viven en una base de datos relacional. Cuando digo que tienen relaciones, me refiero a que si miras a un cliente con una tarjeta de lealtad, por ejemplo, están conectados a todos los productos que compraron. Cada producto está conectado a todas las tiendas donde el producto forma parte del surtido. Cada tienda está conectada a todos los almacenes que tienen la capacidad de atender a la tienda de interés. Entonces, no tenemos observaciones independientes; tenemos datos con una gran cantidad de estructura relacional superpuesta, y ninguno de esos elementos es verdaderamente independiente de los demás.

El avance relevante en el aprendizaje profundo para abordar este tipo de datos interconectados se conoce como aprendizaje de grafos. El aprendizaje de grafos es exactamente lo que necesitas para abordar comportamientos como la sustitución y la canibalización en la moda. La mejor manera de ver la canibalización es pensar que todos los productos compiten por los mismos clientes, y al analizar los datos que conectan a los clientes y los productos, puedes analizar la canibalización. Ten cuidado, el aprendizaje de grafos no tiene nada que ver con las bases de datos de grafos, que son algo completamente diferente. Las bases de datos de grafos son esencialmente solo bases de datos utilizadas para consultar grafos, sin ningún aprendizaje involucrado. El aprendizaje de grafos se trata de aprender algunas propiedades adicionales sobre los propios grafos. Se trata de aprender relaciones que se pueden o no se pueden observar o que no se pueden observar completamente, o de decorar el tipo de relación que tenemos con una superposición de conocimiento accionable.

Mi opinión es que debido a que por diseño, la cadena de suministro es un sistema donde todas las partes están interconectadas, esa es la maldición de la cadena de suministro, donde no puedes optimizar localmente nada sin desplazar problemas, el aprendizaje de grafos se volverá cada vez más prevalente como enfoque para abordar esos problemas en la cadena de suministro y el aprendizaje automático. Esencialmente, las redes neuronales de grafos son técnicas de aprendizaje profundo diseñadas para lidiar con grafos.

Slide 20

En conclusión, pensar que el aprendizaje automático se trata de entregar pronósticos más precisos es, por decirlo suavemente, bastante ingenuo. Es como decir que el objetivo principal de un automóvil es tener acceso a un caballo más rápido. Sí, es cierto que probablemente a través del aprendizaje automático podemos lograr pronósticos más precisos. Sin embargo, esto es solo una pequeña parte de una imagen muy grande, y una imagen que sigue creciendo a medida que se hacen avances en la comunidad de aprendizaje automático. Comenzamos con marcos de aprendizaje automático que incluían una serie de conceptos: característica, etiqueta, observación, modelo y pérdida. Este marco pequeño y elemental ya era mucho más general que la perspectiva de pronóstico de series de tiempo. Con el desarrollo reciente del aprendizaje automático, vemos que incluso esos conceptos están desvaneciéndose lentamente y gradualmente en la irrelevancia debido al hecho de que estamos descubriendo formas de trascenderlos. Para la cadena de suministro, este cambio de paradigma es de vital importancia porque significa que tenemos que aplicar este mismo tipo de cambio de paradigma cuando se trata de pronósticos. El aprendizaje automático nos obliga a repensar por completo cómo abordar los datos y qué podemos hacer con ellos. El aprendizaje automático abre puertas que hasta hace muy poco estaban firmemente cerradas.

Slide 21

Ahora echemos un vistazo a algunas preguntas.

Pregunta: ¿No usan los bosques aleatorios el bagging?

Mi punto es que sí, son una extensión de eso, y hay más en ellos que solo el bagging. El bagging es una técnica interesante, pero cada vez que ves una técnica de aprendizaje automático, debes preguntarte: ¿esta técnica me va a hacer avanzar hacia mi capacidad de aprender los problemas realmente difíciles como la canibalización o la sustitución? Y, ¿esta técnica va a funcionar bien con el hardware informático que tienes? Este es uno de los puntos clave que debes tener en cuenta en esta conferencia.

Pregunta: Con el impulso de las empresas para tener todo automatizado con robótica, ¿cuál es el futuro de los trabajadores de almacén en logística? ¿Serán reemplazados por robots en un futuro cercano?

Esta pregunta no está relacionada exactamente con el aprendizaje automático, pero es una muy buena pregunta. Las fábricas han experimentado una transformación masiva hacia una robotización extensiva, que puede o no utilizar robots. La productividad de las fábricas ha aumentado y, incluso ahora en China, las fábricas están en su mayoría automatizadas. Los almacenes llegaron tarde a la fiesta. Sin embargo, lo que veo hoy en día es el desarrollo de almacenes cada vez más mecánicos y automatizados. No diría que necesariamente son robots; hay muchas tecnologías competidoras para construir un almacén que logre un mayor grado de automatización. La conclusión es que la tendencia es clara. Los almacenes y los centros logísticos en general van a experimentar el mismo tipo de mejora masiva de productividad que ya hemos presenciado en la producción.

Para responder a tu pregunta, no estoy diciendo que las personas serán reemplazadas por robots; serán reemplazadas por la automatización. La automatización a veces tomará la forma de algo como un robot, pero también puede tomar muchas otras formas. Algunas de las formas son simplemente configuraciones inteligentes que mejoran enormemente la productividad sin involucrar el tipo de tecnología que asociamos intuitivamente con los robots. Sin embargo, creo que la parte logística de la cadena de suministro en general va a disminuir. Lo único que mantiene esto en aumento en este momento es el hecho de que, con el auge del comercio electrónico, tenemos que ocuparnos de la última milla. La última milla ocupa cada vez más la mayor parte de la fuerza laboral que tiene que lidiar con la logística. Incluso la última milla se automatizará en un futuro no muy lejano. Los vehículos autónomos están a la vuelta de la esquina; se prometieron para esta década y, aunque pueden llegar un poco tarde, están llegando.

Pregunta: ¿Crees que vale la pena invertir tiempo en aprender aprendizaje automático para trabajar en la cadena de suministro?

Absolutamente. En mi opinión, el aprendizaje automático es una ciencia auxiliar de la cadena de suministro. Considera la relación que tiene un médico con la química. Si eres un médico moderno, nadie espera que seas químico. Sin embargo, si le dices a tu paciente que no sabes absolutamente nada de química, la gente pensará que no tienes lo necesario para ser un médico moderno. El aprendizaje automático debe abordarse de la misma manera en que las personas que estudian medicina abordan la química. No es un fin en sí mismo, sino un medio. Si quieres hacer un trabajo serio en la cadena de suministro, necesitas tener bases sólidas en aprendizaje automático.

Pregunta: ¿Podrías dar ejemplos en los que hayas aplicado el aprendizaje automático? ¿La herramienta se volvió operativa?

Hablando por mí mismo, Joannes Vermorel, el empresario y CEO de Lokad, tenemos más de 100 empresas en producción en este momento, todas utilizando aprendizaje automático para diversas tareas. Estas tareas incluyen pronóstico de tiempos de entrega, producción de pronósticos probabilísticos de demanda, predicción de devoluciones, predicción de problemas de calidad, revisión de estimaciones de tiempo medio entre reparaciones no programadas y detección de si los precios competitivos son correctos o no. Hay muchas aplicaciones, como la reevaluación de las matrices de compatibilidad entre automóviles y piezas en el mercado de accesorios automotrices. Con el aprendizaje automático, puedes corregir automáticamente una gran parte de los errores de la base de datos. En Lokad, no solo tenemos esas 100 empresas en producción, sino que ha sido así durante casi una década. El futuro ya está aquí; simplemente no está distribuido de manera uniforme.

Pregunta: ¿Cuál es la mejor manera de aprender aprendizaje automático en tu tiempo libre? ¿Recomendarías sitios como Udemy, Coursera o algo más?

Mi sugerencia sería una combinación de Wikipedia y la lectura de artículos. Como has visto en esta conferencia, es importante entender los fundamentos y mantenerse actualizado con los últimos avances en el campo. Como has visto en estas conferencias, estoy citando artículos de investigación reales. No confíes en información de segunda mano; ve directamente a lo que se publicó. Todas estas cosas están disponibles en línea. Hay artículos sobre aprendizaje automático que están mal escritos e indescifrables, pero también hay artículos que están brillantemente escritos y proporcionan ideas muy claras sobre lo que está sucediendo. Mi sugerencia es ir a Wikipedia para tener una visión general de alto nivel de un campo, para que puedas tener una idea general, y luego comenzar a leer artículos. Al principio, puede parecer opaco, pero después de un tiempo, te acostumbrarás. Puedes optar por Udemy o Coursera, pero personalmente, nunca lo hice. Mi objetivo cuando hago estas conferencias es darte algunos conceptos básicos de intuición para que tengas una idea general. Si quieres profundizar en los detalles, simplemente sumérgete en el artículo real que se publicó hace años o décadas. Ve por información de primera mano y confía en tu propia inteligencia.

El aprendizaje profundo es un campo de investigación muy empírico. La mayoría de las cosas que se hacen no son extremadamente complejas, matemáticamente hablando. Por lo general, no van más allá de lo que aprendes al final de la escuela secundaria, por lo que es bastante accesible.

Pregunta: Con el auge de herramientas sin código como CodeX y Co-Pilot de OpenAI, ¿ves a los profesionales de la cadena de suministro escribiendo modelos en inglés sencillo en algún momento?

La respuesta corta es: no, para nada. La idea de que se pueda evitar la programación ha existido durante mucho tiempo. Por ejemplo, Visual Basic de Microsoft estaba destinado a ser una herramienta visual para que las personas no tuvieran que programar más; simplemente podían componer visualmente cosas como Legos. Pero hoy en día, este enfoque se ha demostrado ineficaz y la próxima tendencia es expresar las cosas verbalmente.

Sin embargo, la razón por la que uso fórmulas matemáticas en estas conferencias es que hay muchas situaciones en las que usar una fórmula matemática es la única forma de transmitir claramente lo que estás tratando de decir. El problema con el idioma inglés, o cualquier idioma natural, es que a menudo es impreciso y propenso a malinterpretaciones. En cambio, las fórmulas matemáticas son precisas y claras. El problema con el lenguaje común es que es increíblemente difuso y, aunque tiene sus usos, la razón por la que empleamos fórmulas es proporcionar un significado inequívoco a lo que se está diciendo. Intento hacer un uso limitado de las fórmulas, pero cuando incluyo una, es porque siento que es la única forma de transmitir claramente la idea, con un nivel de claridad que supera lo que puedo decir verbalmente.

En cuanto a las plataformas de bajo código, soy muy escéptico, ya que este enfoque se ha intentado muchas veces en el pasado sin mucho éxito. Mi opinión personal es que deberíamos hacer que la programación sea más adecuada para la gestión de la cadena de suministro identificando por qué la programación es difícil y eliminando la complejidad accidental. Lo que queda es la programación correcta para la cadena de suministro, que es lo que Lokad pretende hacer.

Pregunta: ¿El aprendizaje automático hace que el pronóstico de la demanda sea más preciso para datos de ventas estacionales o regulares?

Como mencioné en esta presentación, el aprendizaje automático hace que el concepto de precisión sea obsoleto. Si observas la última competencia de pronóstico de series de tiempo a gran escala, la competencia M5, los 10 mejores modelos eran todos modelos de aprendizaje automático en cierto grado. Entonces, ¿hace el aprendizaje automático que los pronósticos sean más precisos? Factualmente, basado en la competencia de pronóstico, sí. Pero solo es marginalmente más preciso en comparación con otras técnicas, y no es una precisión extraordinaria.

Además, no debes pensar en el pronóstico desde una perspectiva unidimensional. Cuando preguntas sobre la precisión para la estacionalidad, estás considerando un producto a la vez, pero ese no es el enfoque correcto. La verdadera precisión consiste en evaluar cómo el lanzamiento de un nuevo producto afecta a todos los demás productos, ya que habrá cierto grado de canibalización. La clave es evaluar si la forma en que reflejas esta canibalización en tu modelo es precisa o no. De repente, esto se convierte en un problema multidimensional. Como presenté en la conferencia con redes generativas, la métrica de lo que realmente significa la precisión debe ser aprendida; no puede ser dada. Las fórmulas matemáticas, como el error absoluto medio, el error porcentual absoluto medio y el error cuadrático medio, son solo criterios matemáticos. No son el tipo de métricas que realmente necesitamos; son métricas muy ingenuas.

Pregunta: ¿El trabajo mundano de los pronosticadores será reemplazado por el pronóstico en modo automático?

Diría que el futuro ya está aquí, pero no está distribuido de manera uniforme. En Lokad, ya pronosticamos decenas de millones de SKU diariamente y no tengo a nadie ajustando los pronósticos en la nómina. Entonces sí, ya se está haciendo, pero esto es solo una pequeña parte del panorama. Si necesitas que las personas ajusten los pronósticos o ajusten los modelos de pronóstico, indica un enfoque disfuncional. Deberías considerar la necesidad de ajustar los pronósticos como un error y abordarlo automatizando esa parte del proceso.

Nuevamente, desde la experiencia de Lokad, estas cosas serán completamente eliminadas porque ya lo hemos hecho. No somos los únicos que lo hacemos de esta manera, por lo que para nosotros, es casi historia antigua, siendo el caso desde hace casi una década.

Pregunta: ¿Hasta qué punto se utiliza activamente el aprendizaje automático en la toma de decisiones de la cadena de suministro?

Depende de la empresa. En Lokad, se utiliza en todas partes y, obviamente, cuando digo “en Lokad”, me refiero a las empresas atendidas por Lokad. Sin embargo, la gran mayoría del mercado todavía utiliza Excel, sin aprendizaje automático en absoluto. Lokad gestiona activamente miles de millones de euros o dólares en inventario, por lo que eso ya es una realidad y lo ha sido durante bastante tiempo. Pero Lokad no representa ni siquiera el 0,1% del mercado, por lo que todavía somos una excepción. Estamos creciendo rápidamente, al igual que varios competidores. Mi sospecha es que todavía es una configuración marginal en todo el mercado de la cadena de suministro, pero tiene un crecimiento de dos dígitos. Nunca subestimes el poder del crecimiento exponencial durante un largo período de tiempo. En última instancia, se volverá muy grande, con suerte con Lokad, pero esa es otra historia.

Pregunta: Con muchas incógnitas en la cadena de suministro, ¿cuál es una estrategia que puede asumir las entradas para un modelo?

La idea es que sí, hay toneladas de incógnitas, pero las entradas de tu modelo no están realmente a elección. Se reduce a lo que tienes en tus sistemas empresariales, como qué tipo de datos existe en tu ERP. Si tu ERP tiene niveles de stock históricos, entonces puedes usarlos como parte de tu modelo de aprendizaje automático. Si tu ERP solo mantiene los niveles de stock actuales, entonces estos datos no están disponibles. Puedes comenzar a tomar instantáneas de tus niveles de stock si deseas usarlos como entradas adicionales, pero el mensaje principal es que hay muy poca elección en lo que puedes usar como entradas; es literalmente lo que existe en tus sistemas.

Mi enfoque típico es que si tienes que crear nuevas fuentes de datos, será lento y doloroso, y probablemente no será tu punto de partida para usar el aprendizaje automático en las cadenas de suministro. Las empresas más grandes se han digitalizado durante décadas, por lo que lo que tienes en tus sistemas transaccionales, como tu ERP y WMS, ya es un excelente punto de partida. Si más adelante te das cuenta de que quieres tener más, como inteligencia competitiva, niveles de stock autorizados o fechas de entrega estimadas proporcionadas por tus proveedores, esas serán adiciones valiosas para usar como entradas en tus modelos. Por lo general, lo que usas como entradas es algo que tienes una buena intuición de que se correlaciona con lo que estás tratando de predecir en primer lugar, y la intuición a alto nivel suele ser suficiente. El sentido común, que es difícil de definir, es ampliamente suficiente. Este no es el cuello de botella en términos de ingeniería.

Pregunta: ¿Cuál es el impacto de las decisiones de precios en la estimación de la demanda futura, incluso desde una perspectiva probabilística, y cómo lidiar con ello desde una perspectiva de aprendizaje automático?

Esta es una muy buena pregunta. Hubo un episodio en LokadTV que abordó este mismo problema. La idea es que lo que aprendes se convierte en lo que se conoce típicamente como una política, un objeto que controla la forma en que reaccionas a varios eventos. La forma en que pronosticas es produciendo una especie de paisaje, al estilo de Monte Carlo. Vas a producir una trayectoria, pero tu pronóstico no será puntos de datos estáticos. Será un proceso mucho más generativo, donde en cada etapa del proceso de pronóstico, tendrás que generar el tipo de demanda que puedes observar, generar las decisiones que tomas y regenerar el tipo de respuesta del mercado a lo que acabas de hacer.

Se vuelve muy complicado evaluar la precisión de tu proceso generador de respuesta de demanda, y por eso necesitas aprender realmente tus métricas de pronóstico. Eso es muy complicado, pero por eso no puedes pensar solo en tus métricas de pronóstico, tus métricas de precisión, como un problema unidimensional. En resumen, el pronóstico de la demanda se convierte en un generador, por lo que es fundamentalmente dinámico, no estático. Es algo generativo. Este generador reacciona a un agente, un agente que se implementará como una política. Tanto el generador como el sistema de toma de decisiones de la política deben ser aprendidos. También debes aprender la función de pérdida. Hay mucho que aprender, pero afortunadamente, el deep learning es un enfoque muy modular y programático que se presta bien a la composición de todas estas técnicas.

Pregunta: ¿Es difícil recopilar datos, especialmente de las pymes?

Sí, es muy difícil. La razón es que, si estás tratando con una empresa que tiene menos de 10 millones de facturación, no existe tal cosa como un departamento de TI. Puede haber un pequeño ERP en su lugar, pero incluso si las herramientas son buenas, decentes y modernas, no tienes un equipo de TI en su lugar. Cuando pides los datos, no hay nadie en la empresa cliente que tenga la competencia para ejecutar una consulta SQL para extraer los datos.

No estoy seguro si entiendo tu pregunta correctamente, pero el problema no es exactamente recopilar los datos. La recopilación de datos se hace de forma natural a través del software de contabilidad o el ERP que está en su lugar, y hoy en día, tienes ERPs accesibles incluso para empresas bastante pequeñas. El problema es la extracción de datos de esas piezas de software empresarial. Si estás con una empresa que tiene menos de 20 millones de dólares de facturación y no es una empresa de comercio electrónico, lo más probable es que el departamento de TI no exista. Incluso cuando hay un pequeño departamento de TI, generalmente es solo una persona responsable de configurar máquinas y escritorios de Windows para todos. No es alguien que esté familiarizado con las bases de datos y las tareas administrativas más avanzadas en términos de configuraciones de TI.

Bueno, supongo que esto es todo. La próxima sesión será dentro de un par de semanas. Será el miércoles 13 de octubre. ¡Hasta la próxima vez!

Referencias

  • A theory of the learnable, L. G. Valiant, noviembre de 1984
  • Support-vector networks, Corinna Cortes, Vladimir Vapnik, septiembre de 1995
  • Random Forests, Leo Breiman, octubre de 2001
  • LightGBM: A Highly Efficient Gradient Boosting Decision Tree, Guolin Ke, Qi Meng, Thomas Finley, Taifeng Wang, Wei Chen, Weidong Ma, Qiwei Ye, Tie-Yan Liu, 2017
  • Attention Is All You Need, Ashish Vaswani, Noam Shazeer, Niki Parmar, Jakob Uszkoreit, Llion Jones, Aidan N. Gomez, Lukasz Kaiser, Illia Polosukhin, última revisión en diciembre de 2017
  • Deep Double Descent: Where Bigger Models and More Data Hurt, Preetum Nakkiran, Gal Kaplun, Yamini Bansal, Tristan Yang, Boaz Barak, Ilya Sutskever, diciembre de 2019
  • Analyzing and Improving the Image Quality of StyleGAN, Tero Karras, Samuli Laine, Miika Aittala, Janne Hellsten, Jaakko Lehtinen, Timo Aila, última revisión en marzo de 2020
  • Generative Adversarial Networks, Ian J. Goodfellow, Jean Pouget-Abadie, Mehdi Mirza, Bing Xu, David Warde-Farley, Sherjil Ozair, Aaron Courville, Yoshua Bengio, junio de 2014
  • Unsupervised Machine Translation Using Monolingual Corpora Only, Guillaume Lample, Alexis Conneau, Ludovic Denoyer, Marc’Aurelio Ranzato, última revisión en abril de 2018
  • BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding, Jacob Devlin, Ming-Wei Chang, Kenton Lee, Kristina Toutanova, última revisión en mayo de 2019
  • A Gentle Introduction to Graph Neural Networks, Benjamin Sanchez-Lengeling, Emily Reif, Adam Pearce, Alexander B. Wiltschko, septiembre de 2021