Programación Diferenciable

Programación Diferenciable en Movimiento
Aplicación a las Cadenas de Suministro
En su núcleo, la Programación Diferenciable (DP) ofrece un camino para unificar problemas que han permanecido desconectados durante demasiado tiempo y resolverlos conjuntamente: surtido, precios, pronóstico, planificación, merchandising. Si bien esta unificación puede parecer ambiciosa de manera irrealista, la realidad es que las empresas ya están aplicando una cantidad increíble de cinta adhesiva a sus propios procesos para lidiar con los infinitos problemas generados por el hecho de que esos desafíos han estado aislados dentro de la organización en primer lugar. Por ejemplo, los precios obviamente impactan en la demanda y, sin embargo, tanto la planificación como el pronóstico casi siempre se realizan sin tener en cuenta los precios.
DP desbloquea la enorme oportunidad de tomar decisiones aproximadamente correctas desde una perspectiva holística del negocio, en lugar de estar exactamente equivocado mientras se desplazan problemas dentro de la organización en lugar de resolverlos.
Anecdóticamente, buscar la corrección aproximada teniendo en cuenta el negocio en su conjunto es exactamente de lo que se trata la mayoría de las organizaciones impulsadas por hojas de cálculo; y por falta de una tecnología - como DP - capaz de abarcar una perspectiva de negocio completa, las hojas de cálculo siguen siendo la opción menos terrible.
Ecommerce
Poder asociar el 100% de las unidades vendidas a clientes conocidos representa una gran cantidad de información latente sobre el mercado; sin embargo, cuando se trata de fijar precios y optimizar el inventario, la información de lealtad generalmente ni siquiera se utiliza en la actualidad. DP ofrece la posibilidad de pasar de un pronóstico de series temporales a un pronóstico de gráficos temporales donde cada par cliente-producto observado importa; lo que lleva a decisiones más inteligentes tanto para las existencias como para los precios.
Marcas de lujo
La optimización de precios y surtidos - hasta el nivel de la tienda - ha sido considerada durante mucho tiempo como en gran medida intratable debido a la escasez de datos, es decir, el volumen de ventas muy bajo por artículo por tienda - tan bajo como una unidad vendida por producto por tienda por año. DP proporciona ángulos para ofrecer clases de soluciones que funcionan en tales situaciones de ultra-escasez, porque están diseñadas para ofrecer una eficiencia de datos mucho mayor que los métodos regulares de aprendizaje profundo.
Marcas de moda
La optimización conjunta de existencias y precios es un requisito claro - ya que la demanda de muchos artículos puede ser muy sensible al precio - sin embargo, la optimización conjunta de compras y precios no se podía lograr debido a la falta de una herramienta capaz de comprender incluso este acoplamiento, es decir, la capacidad de comprar más a un precio más bajo genera más demanda (y viceversa). DP proporciona la expresividad necesaria para abordar este desafío.
Manufactura
La optimización numérica de redes multinivel se desmorona cuando se intenta con solucionadores numéricos clásicos (ver “Más allá de la optimización de ramificación y corte” a continuación). De hecho, esos solucionadores se vuelven en gran medida imprácticos cuando se trata de millones de variables o comportamientos estocásticos. Desafortunadamente, la fabricación exhibe ambos con muchas variables y comportamientos estocásticos. DP ofrece un enfoque práctico para lidiar con el multinivel sin traicionar la complejidad de los patrones de flujo reales dentro de la red.
MRO (mantenimiento, reparación, revisión)
Si falta una pieza necesaria para la reparación de un sistema, todo el sistema - que podría ser una aeronave - queda inactivo. Los pronósticos probabilísticos son el primer paso para lidiar con patrones de demanda erráticos e intermitentes, pero descubrir los detalles de las co-ocurrencias de las piezas requeridas y convertir este análisis en recomendaciones de inventario accionables era demasiado complejo para ser de uso práctico. DP simplifica la resolución de tales problemas.
Redes minoristas
Las canibalizaciones dentro de las redes minoristas - generalmente entre productos pero a veces entre tiendas - han sido reconocidas como de importancia primordial durante mucho tiempo. Este problema se amplifica con las promociones, precisamente destinadas a dirigir a los clientes de una marca a otra. DP ofrece la posibilidad de abordar la canibalización en presencia de promociones. En lugar de simplemente “pronosticar promociones”, DP ofrece la posibilidad de optimizar las promociones por lo que son: acuerdos rentables operados conjuntamente por el canal de distribución y la marca.
Más allá de la exageración de la Inteligencia Artificial
La Inteligencia Artificial (IA) ciertamente ha sido la palabra de moda tecnológica en 2018 y el entusiasmo sigue en aumento en 2019. Sin embargo, aunque Lokad utiliza ampliamente técnicas que generalmente califican para la palabra de moda de la IA, como el aprendizaje profundo, hemos sido reacios a poner énfasis en la parte “IA” de la tecnología de Lokad. De hecho, en lo que respecta a la optimización cuantitativa de la cadena de suministro, la IA empaquetada simplemente no funciona. Las cadenas de suministro no se parecen en nada, por ejemplo, a la visión por computadora: los datos, las métricas y las tareas son extremadamente heterogéneos. Como resultado, las empresas que compraron supuestas soluciones de IA “llave en mano” están empezando a darse cuenta de que esas soluciones simplemente nunca funcionarán, excepto tal vez en las situaciones más simples donde los sistemas basados en reglas “tontas” también habrían funcionado perfectamente bien. En su esencia, las cadenas de suministro son sistemas complejos hechos por el hombre, y generalmente es irrazonable esperar que el sistema de IA, basado únicamente en datos, redescubra por sí solo conocimientos fundamentales sobre el dominio, como por ejemplo:
- hacer promociones para una marca de lujo es un gran error.
- los pedidos de ventas negativos en el ERP son en realidad devoluciones de productos.
- los productos frescos deben transportarse dentro de rangos de temperatura especificados.
- las variantes en colores pueden ser buenos sustitutos de ropa, pero no las variantes en tallas.
- el mantenimiento de las aeronaves se basa en las horas de vuelo y los ciclos de vuelo.
- las ventas en el Reino Unido se realizan en GBP, aunque el ERP muestra EUR como la moneda.
- las personas compran piezas de automóviles para sus vehículos, no para sí mismas.
- cada diamante es único, pero los precios dependen principalmente de los quilates, la claridad, el color y el corte.
- cualquier pieza NOGO que falte en una aeronave hace que la aeronave quede en tierra.
- muchas plantas químicas tardan semanas en reiniciarse después de apagarse.

En este sentido, el aprendizaje profundo ha tenido un gran éxito porque, a diferencia de muchos enfoques anteriores en el aprendizaje automático, el aprendizaje profundo es profundamente compositivo: es posible adaptar ampliamente la estructura del modelo para aprender mejor en una situación específica. Adaptar la estructura del modelo es diferente de adaptar la entrada del modelo, una tarea conocida como ingeniería de características, que era típicamente la única opción disponible para la mayoría de los algoritmos de aprendizaje automático no profundos, como los bosques aleatorios.
Sin embargo, a medida que surgieron los marcos de aprendizaje profundo de los “Grandes Problemas” del aprendizaje automático, como la visión por computadora, el reconocimiento de voz, la síntesis de voz, la traducción automatizada. Esos marcos han sido diseñados y ajustados en profundidad para escenarios que son literalmente nada parecidos a los problemas que se enfrentan en las cadenas de suministro. Por lo tanto, aunque es posible aprovechar esos marcos para fines de optimización de la cadena de suministro, no fue una tarea fácil ni ligera. En conclusión, con los marcos de aprendizaje profundo, se puede lograr mucho para las cadenas de suministro, pero la falta de coincidencia de impedancia entre las cadenas de suministro y los marcos de aprendizaje profundo existentes es fuerte; lo que aumenta los costos, los retrasos y limita la aplicabilidad en el mundo real de esas tecnologías.
Más allá de la optimización de ramificación y corte
La mayoría de los problemas en las cadenas de suministro tienen tanto un ángulo de aprendizaje, causado por un conocimiento imperfecto del futuro, un conocimiento imperfecto del estado actual del mercado e incluso un conocimiento imperfecto del propio sistema de la cadena de suministro (por ejemplo, inexactitudes en el inventario), como un ángulo de optimización numérica. Las decisiones deben optimizarse en función de los impulsores económicos y al mismo tiempo satisfacer muchas restricciones no lineales (por ejemplo, MOQ al comprar o tamaños de lote al producir).
En el frente de la optimización numérica, la programación entera y sus técnicas relacionadas, como la ramificación y corte, han dominado el campo durante décadas. Sin embargo, estos algoritmos de ramificación y corte y sus soluciones de software asociadas en su mayoría no lograron ofrecer la flexibilidad y escalabilidad necesarias para proporcionar soluciones operativas para muchos, si no la mayoría, de los desafíos de la cadena de suministro. La programación entera es una herramienta fantásticamente capaz cuando se trata de resolver problemas ajustados con pocas variables (por ejemplo, la ubicación de componentes dentro de un dispositivo electrónico de consumo), pero muestra limitaciones drásticas cuando se trata de problemas a gran escala en los que interviene la aleatoriedad (por ejemplo, reequilibrar los stocks entre 10 millones de SKU cuando se enfrenta a la demanda probabilística y los tiempos de transporte probabilísticos).
Uno de los aspectos más subestimados del aprendizaje profundo es que su éxito se debe tanto a los avances en el aprendizaje como a los avances en la optimización. Esto se debe a que la comunidad científica ha descubierto algoritmos de optimización tremendamente eficientes que realizan optimizaciones a gran escala. No solo estos algoritmos de optimización “aprendizaje profundo”, todos ellos basados en el descenso de gradiente estocástico, son mucho más eficientes que sus contrapartes de ramificación y corte, sino que también se adaptan mucho mejor al hardware informático que tenemos, es decir, CPU SIMD y (GP)GPU, lo que en la práctica proporciona dos o tres órdenes de magnitud de velocidad adicional. Estos avances en la optimización numérica pura son de gran relevancia para las cadenas de suministro con el fin de optimizar decisiones. Sin embargo, si los marcos de aprendizaje profundo ya eran algo inadecuados para abordar problemas de aprendizaje en las cadenas de suministro, son aún menos adecuados para abordar los problemas de optimización en las cadenas de suministro. De hecho, estos problemas de optimización dependen aún más de la expresividad del marco para permitir que los científicos de la cadena de suministro implementen las restricciones y métricas que deben ser respectivamente cumplidas y optimizadas.
Hacia la programación diferenciable
En teoría, no hay diferencia entre la teoría y la práctica. Pero, en la práctica, sí la hay. Walter J. Savitch, Pascal: Una introducción al arte y la ciencia de la programación (1984)
La Programación Diferenciable (DP) es la respuesta para llevar a las cadenas de suministro lo mejor de lo que el deep learning tiene para ofrecer tanto en el aprendizaje como en la optimización numérica. A través de la DP, los científicos de la cadena de suministro pueden aprovechar al máximo sus conocimientos humanos para crear recetas numéricas alineadas, en profundidad, con los objetivos comerciales. No hay una delimitación absoluta entre el deep learning y la programación diferenciable: es más bien un continuo desde los sistemas más escalables (deep learning) hasta los sistemas más expresivos (programación diferenciable) con muchos constructos de programación que gradualmente se van volviendo disponibles, a expensas de la escalabilidad en bruto, al avanzar hacia la programación diferenciable. Sin embargo, nuestra experiencia en Lokad indica que la transición de herramientas predominantemente diseñadas para la visión por computadora a herramientas diseñadas para los desafíos de la cadena de suministro marca precisamente la diferencia entre un prototipo “interesante” que nunca llega a producción y un sistema de calidad industrial implementado a gran escala.
Deep Learning | Programación Diferenciable | |
---|---|---|
Propósito principal | Aprendizaje | Aprendizaje + Optimización |
Uso típico | Aprender una vez, evaluar muchas veces | Aprender una vez, evaluar una vez |
Granularidad de entrada | Objetos grandes (imágenes, secuencias de voz, escaneos de lidar, páginas de texto completas) | Objetos pequeños (productos, clientes, SKU, precios) |
Variedad de entrada | Objetos homogéneos (por ejemplo, imágenes con la misma relación de altura/ancho) | Objetos heterogéneos (tablas relacionales, grafos, series de tiempo) |
Volumen de entrada | Desde megabytes hasta petabytes | Desde kilobytes hasta decenas de gigabytes |
Aceleración de hardware | Aceleración de hardware | Buena |
Expresividad | Gráficos estáticos de operaciones de tensores | Programas (casi) arbitrarios |
Recetas numéricas estocásticas | Incorporadas | Idem |
El uso típico es un punto sutil pero importante. Desde la perspectiva de la “IA grande”, el tiempo de entrenamiento puede ser (casi) arbitrariamente largo: está bien que una red computacional se entrene durante semanas, si no meses. Más tarde, por lo general, la red computacional resultante necesita evaluarse en tiempo real (por ejemplo, reconocimiento de patrones para la conducción autónoma). Este enfoque es completamente diferente al de las cadenas de suministro, donde se obtienen los mejores resultados al volver a entrenar la red cada vez. Además, desde la perspectiva de la DP, los parámetros entrenados son con frecuencia los mismos resultados que buscamos obtener, lo que hace que la restricción de evaluación en tiempo real sea irrelevante. Las expectativas en torno a las entradas de datos, tanto en cuanto a su granularidad, variedad y volumen, también son ampliamente diferentes. Por lo general, la perspectiva de la “IA grande” enfatiza cantidades casi infinitas de datos de entrenamiento (por ejemplo, todas las páginas de texto de la web), donde el desafío principal es encontrar métodos tremendamente escalables que puedan aprovechar eficazmente esos conjuntos de datos masivos. En contraste, los problemas de la cadena de suministro deben abordarse con una cantidad limitada de datos altamente estructurados pero diversos. Esto lleva al deep learning hacia los marcos basados en tensores, que pueden acelerarse masivamente mediante hardware de cómputo dedicado, inicialmente GPUs y ahora cada vez más TPUs. La Programación Diferenciable, al estar basada en el descenso de gradiente estocástico, también exhibe muchas propiedades buenas para la aceleración de hardware, pero en menor medida en comparación con los gráficos estáticos de operaciones de tensores. La importancia de las recetas numéricas estocásticas es doble. En primer lugar, estas recetas desempeñan un papel importante desde una perspectiva de aprendizaje. Los autoencoders variacionales o los dropouts son ejemplos de tales recetas numéricas. En segundo lugar, estas recetas también desempeñan un papel importante desde una perspectiva de modelado para factorizar adecuadamente los comportamientos probabilísticos dentro de los sistemas de la cadena de suministro (por ejemplo, los tiempos de entrega variables). Por el contrario, hay una gran brecha entre la programación diferenciable y la programación entera mixta: el enfoque dominante en las últimas décadas ha sido realizar optimizaciones numéricas complejas.
Programación entera mixta | Programación Diferenciable | |
---|---|---|
Propósito principal | Optimización | Aprendizaje + Optimización |
Granularidad y variedad de entrada | Objetos delgados, heterogéneos | Idem |
Volumen de entrada | Desde bytes hasta decenas de megabytes | Desde kilobytes hasta decenas de gigabytes |
Aceleración de hardware | Pobre | Buena |
Expresividad | Desigualdades sobre formas lineales y cuadráticas | Programas (casi) arbitrarios |
Recetas numéricas estocásticas | Ninguna | Incorporadas |
En defensa de las herramientas de programación entera mixta, estas herramientas, cuando logran abordar un problema, a veces pueden demostrar - en el sentido matemático - que han obtenido la solución óptima. Ni el aprendizaje profundo ni la programación diferenciable proporcionan ninguna prueba formal al respecto.
Conclusiones
La programación diferenciable es un avance importante para las cadenas de suministro. Se basa en el aprendizaje profundo, que ha demostrado ser tremendamente exitoso en la resolución de muchos problemas de “IA grande”, como la visión por computadora, pero se ha reingenierizado en su núcleo para ser adecuado para los desafíos del mundo real que enfrentan las cadenas de suministro del mundo real. Lokad ha estado construyendo sobre su tecnología de pronóstico de aprendizaje profundo para hacer la transición hacia la programación diferenciable, que es la próxima generación de nuestra tecnología predictiva. Sin embargo, la programación diferenciable es más que solo ser predictiva, unifica la optimización y el aprendizaje, desbloqueando soluciones para una gran cantidad de problemas que antes no tenían soluciones viables.