Programación diferenciable

power-clouds
La programación diferenciable es el descendiente del deep learning, y representa la convergencia de dos campos algorítmicos: machine learning y optimización numérica. La programación diferenciable desbloquea una serie de escenarios de la cadena de suministro que antes se consideraban en gran medida intratables: optimización conjunta de precios y stocks, optimización de surtido impulsada por la lealtad, pronóstico de demanda para productos no estándar (por ejemplo, piedras preciosas, obras de arte), optimización de flujo multinivel a gran escala, optimización conjunta de múltiples canales, optimización de stocks con valores de stock electrónicos parcialmente incorrectos, maximización de flujo a gran escala bajo muchas restricciones, etc. Para muchos otros escenarios que ya eran abordables con métodos alternativos, la programación diferenciable ofrece resultados numéricos superiores con solo una fracción de los recursos, tanto en términos de esfuerzo de los científicos de datos como de recursos computacionales.

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 hacer frente a 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 afectan 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 gran oportunidad de tomar decisiones aproximadamente correctas desde una perspectiva holística del negocio, en lugar de estar exactamente equivocado mientras se desplazan los 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 ofrece á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 manufactura 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, se mantiene 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 coocurrencias de las piezas requeridas y convertir este análisis en recomendaciones de inventario accionables era demasiado complejo para ser de uso práctico. DP agiliza la resolución de tales problemas.

Redes minoristas

Las canibalizaciones dentro de las redes minoristas, generalmente entre productos pero a veces entre tiendas, se han reconocido como de gran importancia 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 moda de la Inteligencia Artificial

La Inteligencia Artificial (IA) ciertamente ha sido la palabra de moda tecnológica de 2018 y la emoción 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 deep learning, hemos sido reacios a poner énfasis en la parte de “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í mismo 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 muestre 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.
power-clouds En un futuro lejano, podría haber un momento en el que el aprendizaje automático logre emular la inteligencia humana y obtenga resultados al enfrentar problemas complejos, sin embargo, hasta ahora, los resultados solo se han obtenido en problemas relativamente estrechos. Las tecnologías de aprendizaje automático están empujando constantemente cada año los límites de lo que constituye un problema "estrecho", y después de décadas de esfuerzos, problemas importantes como la conducción autónoma segura y las traducciones automatizadas decentes están resueltos, o muy cerca de resolverse. Sin embargo, como se ilustra en la lista anterior, las cadenas de suministro siguen siendo desesperadamente heterogéneas para una aplicación directa de algoritmos de aprendizaje automático empaquetados. Incluso si el deep learning proporciona las capacidades de generalización más sólidas hasta la fecha, aún se necesita la intervención de un Supply Chain Scientist para enmarcar el desafío de una manera lo suficientemente estrecha como para que los algoritmos funcionen en absoluto.

En este sentido, el deep learning ha tenido un gran éxito porque, a diferencia de muchos enfoques anteriores en el aprendizaje automático, el deep learning 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 profundo, como los bosques aleatorios.

Sin embargo, a medida que los marcos de trabajo de deep learning surgieron 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 de trabajo 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 de trabajo para fines de optimización de cadenas de suministro, no fue una tarea fácil ni ligera. En conclusión, con los marcos de trabajo de deep learning, 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 trabajo de deep learning es fuerte; aumentando los costos, los retrasos y limitando la aplicabilidad en el mundo real de esas tecnologías.

Más allá de la optimización de branch-and-cut

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, MOQs 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 branch-and-cut, han dominado el campo durante décadas. Sin embargo, estos algoritmos de branch-and-cut 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 deep learning 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 “deep learning”, todos ellos girando en torno al descenso de gradiente estocástico, son mucho más eficientes que sus contrapartes de branch-and-cut, 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 trabajo de deep learning 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 de trabajo para permitir que los científicos de la cadena de suministro implementen las restricciones y métricas que deben ser respectivamente aplicadas 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 aprendizaje profundo tiene para ofrecer tanto en el frente del aprendizaje como en el frente de la optimización numérica. A través de 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 aprendizaje profundo y la programación diferenciable: es más un continuum desde los sistemas más escalables (aprendizaje profundo) 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.

Aprendizaje Profundo 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 lidar, páginas de texto completas) Objetos delgados (productos, clientes, SKU, precios)
Variedad de entrada Objetos homogéneos (por ejemplo, imágenes con la misma relación 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 tensoriales 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 ser evaluada 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 una perspectiva de DP, los parámetros entrenados son frecuentemente 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 “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 aprendizaje profundo hacia marcos basados en tensores, que pueden ser acelerados masivamente a través de 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 tensoriales. 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 rediseñado 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.