Los métodos de aprendizaje automático (ML) se han aplicado ampliamente para analizar datos de diseño de experimentos (DOE) en industrias como la química, la mecánica y la farmacéutica, pero reciben una atención limitada en la industria alimentaria, especialmente para la optimización de recetas.
Para abordar esto, exploramos el aprendizaje automático (ML) y el aprendizaje secuencial para la formulación de recetas, con el objetivo de optimizar la calidad del producto. Combinamos DOE con ML para seleccionar combinaciones óptimas de uno, dos o tres ingredientes entre 11 candidatos, ajustando las dosis de los ingredientes en función del número de ingredientes combinados: 0-1 para ingredientes individuales, 0-0,5 para pares y 0-0,33 para tripletes. Tras evaluar los efectos principales de los 12 ingredientes, nos centramos en cinco ingredientes clave. Se aplicó un diseño factorial completo a las combinaciones de dos ingredientes, junto con la recopilación de un punto de datos con la dosis máxima para cada triplete. Tres combinaciones prometedoras se analizaron con más detalle mediante un diseño de relleno de espacio para explorar el espacio de parámetros completo.
Posteriormente, se desarrollaron modelos de aprendizaje automático para predecir la calidad del producto, con aprendizaje secuencial que guió experimentos adicionales para refinar el modelo para una combinación específica. Este enfoque identificó la mezcla óptima con menos de 100 experimentos de laboratorio, lo que demuestra la eficiencia de combinar aprendizaje automático, aprendizaje secuencial y DOE para reducir los esfuerzos experimentales e identificar mezclas de ingredientes de alto rendimiento.
Hola a todos. Hoy hablaremos sobre la optimización de la formulación de recetas mediante aprendizaje automático, aprendizaje secuencial y diseño de experimentos. Soy Junaid Mehmood y trabajo en Danone R&I en Utrecht como tecnólogo de procesos.
Antes de abordar el tema, me gustaría hablar un poco sobre Danone. Nuestra misión es llevar la salud a través de la alimentación al mayor número de personas posible. A través de nuestra diversa cartera, centrada en la salud, nos abastecemos de mercados locales, somos sostenibles e innovadores. Quizás conozca la mayoría de nuestras marcas globales: Activia, AptaMil, Evian o Apro, pero también contamos con un amplio mercado de marcas locales.
Si se han dado cuenta, la mayoría de nuestros productos están compuestos por alimentos o derivados de alimentos, y, por supuesto, también contienen agua. Esto significa que trabajamos con muchas recetas. En Danone, al formular recetas y pensar en la innovación, buscamos mantener un estándar más alto, lo que se traduce en un sabor excepcional, pero también en un excelente valor nutricional. Queremos innovar continuamente en función de las necesidades y preferencias de nuestros consumidores.
No es fácil, ya que innovar con productos alimenticios implica numerosos desafíos. En primer lugar, las preferencias de los consumidores pueden cambiar de un año a otro. Al estar más centrados en la sostenibilidad ahora mismo, necesitamos seguir innovando.
En segundo lugar, debemos cumplir con las normas de seguridad alimentaria, lo que puede resultar en que un producto sea adecuado en un mercado, pero no en otro. Además, queremos que nuestro producto sea intrínsecamente seguro, ya que la mayoría de nuestros productos están destinados a bebés y, a veces, incluso a pacientes que no pueden ingerir alimentos.
Luego, queremos equilibrar el costo de nuestro producto. Queremos mantener la más alta calidad posible, porque se puede conseguir muy buena calidad, pero si es costosa, nadie la comprará.
Teniendo esto en cuenta, al innovar, nuestro ciclo de trabajo de producto suele ser similar. Es bastante genérico, y cualquier empresa alimentaria que elabore productos alimenticios seguirá un flujo de trabajo similar. Al principio, se empieza con la ideación de un nuevo producto o con un estudio de mercado realizado, y se desean modificar ciertas propiedades del mismo. A partir de ahí, se seleccionan los ingredientes y el proceso.
La selección de ingredientes va de la mano. Un proceso que funciona para cierto tipo de ingrediente puede no funcionar para otro. Se trata de un proceso cíclico en el que decidimos nuestros ingredientes y procesos en función de su valor nutricional. ¿Son sostenibles? En cuanto al proceso, si es escalable, eficiente y si el proceso que utilizamos no aumenta el coste del producto.
El siguiente paso es el desarrollo del prototipo, que realizamos principalmente en nuestros laboratorios en los centros de I+D. Aquí es donde realizamos las pruebas de laboratorio a pequeña escala. Elaboramos perfiles de sabor y optimizamos ciertos procesos, o bien volvemos al paso inicial y elegimos un ingrediente diferente. Una vez hecho esto, vamos a nuestras plantas piloto donde buscamos la escalabilidad del producto. Finalmente, realizamos una prueba de fábrica. Una vez hecho todo esto, el último paso antes de poder comercializarlo, es realizar pruebas de vida útil y estabilidad. Algunos productos requieren aprobación regulatoria, pero no todos, así que depende del tipo de producto.
Ahora bien, para las pruebas de laboratorio, el piloto y la fábrica, caracterizamos nuestro producto en función de sus características, como sus propiedades organolépticas, su procesabilidad, su viscosidad y demás. Estas se convierten en las características de nuestro producto y, con ellas, optimizamos nuestro proceso.
En el proyecto que voy a comentar hoy, nos centramos principalmente en ensayos a escala de laboratorio, para lo cual contamos con tres componentes principales: ingrediente, proceso y, finalmente, los experimentos. Cuando nos centramos únicamente en los ingredientes y el proceso, nos centramos en los micronutrientes y macronutrientes, por supuesto. Deben formar parte del producto, pero además, el producto debe tener buen sabor.
Claro, acabo de hablar de la vida útil, luego están los conservantes y estabilizadores, y luego están los texturizantes, que ayudan al producto a ser... En general, al pasar por la planta de procesamiento, lo hace más procesable. Si consideramos la selección del proceso, podríamos tener control de temperatura, mezclado, velocidades de procesamiento y todos los demás procesos.
Estas son las decisiones que se toman de antemano, antes de ir a las pruebas de laboratorio, o cuando hacemos nuestras pruebas de laboratorio, volvemos a estos ingredientes y selecciones, y los cambiamos, lo que tenga más sentido en términos de producto típico.
Cuando pensamos en ingredientes, al probarlos, los analizamos en función de su funcionalidad, de sus necesidades de micronutrientes (por ejemplo, si queremos añadir ciertos minerales o vitaminas), sus características sensoriales, su sabor y los requisitos regulatorios. Con base en esto, podemos definir los niveles mínimos y máximos de cada ingrediente. Luego, al realizar estas pruebas de laboratorio, comprobamos cómo cada ingrediente afecta las características del producto, que se describen aquí: sabor, textura y estabilidad.
Sin embargo, cuando se trata de límites máximos de ciertos ingredientes que podemos poner en cualquier formulación, eso generalmente está restringido por sus necesidades regulatorias, y especialmente para saborizantes, azúcares y conservantes, y luego necesitamos estar bien alineados... Necesitamos permanecer por debajo de ese cierto límite.
Para este proyecto en particular, en el que utilizamos aprendizaje automático, aprendizaje secuencial y DOE en conjunto, buscamos optimizar el sabor y la textura. Para ello, analizamos 11 ingredientes diferentes y buscamos una combinación de ingredientes simples, dobles o triples que realzara el sabor y la textura.
Tenemos siete objetivos diferentes. Para tres de ellos, queríamos minimizar las variables de respuesta, para dos maximizarlas y para el resto, mantenerlas constantes, de modo que, incluso si añadiéramos esta combinación de ingredientes, no se modificaran estas dos moléculas en particular.
Luego existían ciertas necesidades regulatorias, y es que si se trata de un solo ingrediente... De estos 11, si usamos un solo ingrediente, podemos usar un máximo de uno. Uno aquí representa un nivel en nuestra terminología, y si consideramos el DOE, significa que esta es la cantidad máxima del ingrediente que podemos usar. Si combinamos dos, podemos usar solo un máximo de 0.5. De manera similar, si combinamos tres, el máximo es 0.33. Estas son las restricciones con las que necesitábamos determinar qué tres ingredientes ofrecen mejor sabor o textura.
Si piensas en las combinaciones generales, hay un total de 55 combinaciones posibles de dos ingredientes. Entonces, si hay tres ingredientes y 165 combinaciones posibles, de estas, 11. Si las combinas todas, son 231 combinaciones en total. Experimentar con cada una de estas combinaciones ya es demasiado. No puedes simplemente... Quizás trabajes tres o cuatro años y llegues a tu conclusión, pero eso no es deseable.
Para ello, diseñamos un enfoque secuencial: seleccionamos cinco ingredientes de un total de 11, basándonos únicamente en los efectos principales. A continuación, de esos cinco, seleccionamos combinaciones de dos y tres ingredientes para determinar cuál de ellas ofrece el mejor rendimiento. En el tercer paso, una vez seleccionadas estas dos o tres combinaciones, determinamos cuál ofrece el mejor rendimiento. Finalmente, llegamos a la fase de modelado, donde utilizamos las predicciones del modelo para determinar el nivel óptimo para cada ingrediente de esa combinación. A continuación, detallaremos cada uno de estos pasos.
Para el cribado de factores, lo que analizamos ahora fue analizar un factor a la vez. Aunque en una clase de DOE, esto es algo que no se desea hacer. En este caso particular, no pudimos aplicar el diseño de cribado. Esto se debe a que existen supuestos inherentes al diseño de cribado. Es decir, que cada factor puede modificarse independientemente del otro, y entonces todos los factores están presentes en cada ejecución. Esto no se aplica en nuestro caso. No podemos simplemente combinar cuatro o cinco ingredientes en esta receta en particular. Esto significa que solo podemos centrarnos en un ingrediente.
En segundo lugar, al considerar el modelado del diseño de cribado, construimos un solo modelo y analizamos los valores de nuestros parámetros. Sin embargo, en este caso particular, esto no es posible, ya que, en cuanto empezamos a añadir más ingredientes, nos alejamos del objetivo del proyecto.
Finalmente, no consideramos ninguna interacción en esta etapa. En primer lugar, simplemente aumentará drásticamente el número de ejecuciones. En segundo lugar, la forma en que la formulación de alimentos y la forma en que nuestra boca recibe la interacción son bastante diferentes a las condiciones habituales del proceso. Podría haber sinergia o podrían estar actuando en contra de la otra, dependiendo de la dosis administrada. Ya sabemos que habrá algunos efectos no lineales, e incluirlos en esta etapa simplemente no tiene sentido.
Si consideramos cada factor individualmente, en este caso lo hicimos en tres niveles diferentes: 0,33, 0,67 y 1. Con base en esto, hicimos un total de 33 ejecuciones y, por supuesto, tenemos muchas réplicas. Sin embargo, en esta presentación, al centrarme en los tratamientos o ejecuciones, no incluyo las réplicas. En este caso, tenemos 33 ejecuciones individuales únicas.
Una vez realizadas las pruebas de laboratorio, construimos una matriz de correlación basada en la deseabilidad de cada respuesta. A la derecha, lo que ven es solo para ayudarles a visualizar. Queremos minimizar tres respuestas, maximizar dos y mantener las dos restantes sin cambios.
Este es el mapa de calor de correlación. En el eje X, tenemos todos los ingredientes, y en el eje Y, todas nuestras respuestas. Ahora, tal como está escrito en la parte superior derecha, queríamos minimizar tres de ellos, y vemos que se están minimizando. Ahora, debemos decidir cuál es el mejor. Luego, queremos maximizar Y₄ e Y₅, y Y₆ e Y₇ deben permanecer sin cambios.
Pero la correlación solo revela la mitad de la historia, ya que se podría obtener una correlación muy buena incluso si el valor de respuesta del nivel uno o tres no cambia mucho. Por esta razón, también analizamos el mapa de calor de covarianza. Ahora bien, la covarianza nos indica un cambio relativo en la variable de respuesta en comparación con el cambio unitario en la variable de ingrediente.
Al combinar ambos datos, pudimos eliminar 6 de los 11 ingredientes. Si solo analizamos los ingredientes restantes, observamos que las tres variables de respuesta que queremos minimizar tienen una correlación negativa muy buena. En ese caso, o bien no estamos aumentando las variables de respuesta que queremos maximizar, o bien las estamos maximizando. Para el resto, Y₆ e Y₇, en este caso particular, la correlación no es muy buena. Esto significa que permanecen sin cambios.
Esto es lo que decidimos. En este primer paso, redujimos los ingredientes de 11 a un total de cinco. Luego, si pasamos al siguiente paso, los llamaré del 1 al 5 para que sea más fácil. Son diferentes a los originales del 1 al 5, pero para nuestra próxima conversación, los llamaré de X₁ a X₅.
Ahora, nos interesa evaluar todas las combinaciones posibles y determinar cuál funciona mejor. Tenemos dos ingredientes. Si consideramos las combinaciones, hay 10 para tres ingredientes, obtenemos 10 combinaciones. En total, tenemos 20 combinaciones. Si ahora queremos realizar un diseño factorial completo para los efectos cuadráticos principales y de interacción, obtendremos 330 ejecuciones diferentes. De nuevo, esto ya es demasiado.
Luego tenemos nuestros componentes individuales, lo que da como resultado un total de 340 duplicados, lo que, repito, no queremos hacer tantos experimentos. Simplemente consumiría demasiado tiempo y recursos.
Para superar este problema, decidimos diseñar experimentos de dos factores, con dos ingredientes, y combinar todos esos datos para obtener una matriz de diseño para una combinación de tres factores. Explicaré con más detalle cómo funciona. Para el experimento de dos factores, podemos usar un nivel máximo de 0,5, y para el de tres factores, un nivel máximo de 0,3. Si consideramos una sola combinación en particular, X₁, X₂, X₃, podemos combinar todos los datos de X₁, X₂, la combinación de dos factores X₁, X₃, y X₂, X₃. Esto significa que no tenemos que realizar todos los experimentos por separado para las combinaciones de tres factores.
Si profundizamos un poco más en una sola combinación en particular, el enfoque fue el siguiente: primero, diseñamos combinaciones de dos factores mediante un diseño de relleno de espacio y las tratamos como una matriz continua de 0 a 0,5. Luego, hicimos lo mismo para el diseño de tres factores, pero considerando que el rango es de 0 a 0,33. Finalmente, combinamos todos estos tratamientos en una tabla para todas las ejecuciones de dos y tres factores. Finalmente, utilizamos la función de factores de covarianza del módulo de diseño personalizado de JMP para obtener el diseño final.
Analicemos en detalle cada uno de estos pasos. En el primer paso, como mencioné antes, creamos 30 ejecuciones diferentes para combinaciones de dos factores. Así es como se ve nuestro espacio de parámetros. Por supuesto, es el mismo. Solo nuestras variables X e Y cambian para X₁, X₂; X₁, X₃; y X₂, X₃. En este caso particular, intentamos explorar todo el espacio de parámetros. Luego hicimos lo mismo para la combinación de tres factores, pero nuestro límite máximo ahora es 0,33, y nuevamente usamos un diseño de relleno de espacio.
Ahora podemos combinar todas estas ejecuciones en una sola tabla. Si visualizamos esto, así es como se ven, en general, estas 120 ejecuciones. Como pueden ver en las paredes, tenemos nuestras ejecuciones de dos factores, y en el centro, que se muestra con los puntos rojos, tenemos nuestras ejecuciones de tres factores. Cuando consideramos las ejecuciones de dos factores, esto es 0-0.5, y cuando consideramos una combinación de tres factores, esto es 0-0.33.
Luego, podemos abrir nuestro Módulo de Diseño Personalizado de JMP y seleccionar el botón "Factor de Covariable". Podemos seleccionar las tres columnas con los diferentes valores. El modelo que seleccionamos para el Módulo Personalizado incluye el efecto principal, los efectos cuadráticos y todos los efectos de interacción.
Luego, probamos un número diferente de ejecuciones (16, 19, 22), las comparamos entre sí y realizamos la evaluación del diseño para determinar el número mínimo de ejecuciones necesarias para obtener el mejor diseño posible entre las 120 posibles, lo que da como resultado este modelo. Descubrimos que este diseño realmente nos proporciona buenos criterios de optimalidad, y la correlación entre los diferentes términos de nuestro modelo es bastante baja.
Al observar esto de cerca, se ve bastante similar a los diseños factoriales completos, ya que lo que tenemos en nuestras paredes, en este caso, combinaciones de dos factores, tiene puntos dispersos en las esquinas. Luego, el diseño agregó dos puntos para las combinaciones de tres factores. Sin embargo, el diseño también agrega puntos centrales en este caso. Esta fue nuestra primera pista de que realmente podemos optar por el diseño factorial completo en este caso. En retrospectiva, quizás deberíamos haber comenzado por ahí, pero aquí solo estoy describiendo nuestro flujo de trabajo.
Porque parecía un diseño factorial completo, así que esto es lo que recurrimos. Ahora todos saben que, si se tiene un diseño factorial completo, así es como se ve la matriz de diseño, y en este caso, el máximo es 0.5. Si se tiene un diseño factorial completo, para tres combinaciones, así es como se ve la matriz de diseño.
Sin embargo, como comenté antes, hay un punto extra para el diseño factorial completo, que hemos incluido nosotros mismos, que es el límite máximo para combinaciones de tres factores.
En este caso particular, estas son las ejecuciones importantes para la interacción y los efectos cuadráticos. Son las ejecuciones donde solo se modifica un factor. Sin embargo, ya realizamos estos experimentos donde analizamos los efectos principales en el primer paso. En lugar de repetir estas ejecuciones, simplemente ampliamos los datos. Esto significa que, en el segundo paso, solo necesitamos realizar las ejecuciones para estos ingredientes específicos donde se modifican dos o tres. Esto redujo drásticamente el número total de ejecuciones. De 340 ejecuciones, ahora solo podemos hacer esto con 60, y podemos evaluar las 20 combinaciones diferentes juntas.
Fundamentalmente, si el diseño factorial completo es ortogonal, en este caso particular no tenemos ortogonalidad. Esto significa que, al realizar el análisis, debemos tener esto presente.
El número total de ejecuciones en el segundo paso se redujo a solo 50. Una vez realizadas todas estas ejecuciones para todas las combinaciones posibles, realizamos una evaluación multiobjetivo: calculamos una métrica de distancia en comparación con nuestro objetivo. Tenemos nuestro objetivo para Y₁, Y₂, Y₃, Y₄, Y₅. Queremos minimizar, maximizar y, finalmente, mantener dos de ellas constantes. Luego, con base en esta métrica específica, determinamos cuáles de las combinaciones están más cerca de nuestro objetivo y cuáles no.
En las 10 ejecuciones principales más cercanas a nuestro objetivo, descubrimos cuáles de las combinaciones son las más frecuentes. Estas combinaciones se ven así: encontramos dos y tres combinaciones de moléculas, las que resultaron ser las más cercanas al objetivo de nuestro proyecto.
Aunque sabemos que nuestro modelo no funcionará bien en este caso, aún no tenemos suficientes datos y no hay ortogonalidad, queríamos ver cómo se vería el modelo para cada una de estas combinaciones. Para las cinco que acabo de describir, así es como se ve el R² para combinaciones de dos y tres factores.
En este modelo en particular, tenemos los efectos principales, el efecto de interacción y los efectos cuadráticos. Si solo nos centramos en la combinación de dos factores para una de estas combinaciones, este gráfico muestra los valores p reales. Observamos que, para algunas variables de respuesta, los valores p fueron... Ninguno de los parámetros fue significativo. Para algunas de ellas, algunos parámetros son significativos, pero no son los mismos en las diferentes respuestas, a pesar de que en este caso obtenemos un buen R². Esto es previsible, ya que contamos con un conjunto de datos limitado y, en este caso, nuestro modelo podría estar sobreajustado.
Lo mismo ocurrió con la combinación de tres factores. Sin embargo, nos dimos cuenta de que, para estas combinaciones, al menos uno o dos parámetros son significativos para todas las respuestas. Sin embargo, no todos los parámetros son iguales, lo cual es significativo para todas las respuestas. Esa fue la primera pista: que cada parámetro debe modelarse de forma diferente. Para cada parámetro, necesitamos determinar cuáles de los factores son significativos.
Para ilustrar mejor este punto, a continuación, incluso con este conjunto de datos limitado, eliminamos los efectos cuadráticos, lo que provocó que nuestros valores de R² fueran muy bajos. Esto indicaba que los efectos cuadráticos son importantes para algunos de estos parámetros y que debemos incluirlos. En el paso tres, de las cinco combinaciones analizadas, solo consideramos las que contienen tres ingredientes, ya que no solo pudimos modelarlas correctamente, sino que nuestros factores influyeron en estos parámetros. Ahora necesitamos determinar qué factores afectan a qué respuesta.
Para ampliar los datos de estas combinaciones específicas, añadimos cinco ejecuciones adicionales con el módulo Augment Design de JMP, utilizando un diseño de relleno de espacio. Ahora, para cada combinación, contamos con al menos 20 puntos de datos de borde que nos permiten evaluar un modelo. Sin embargo, como señalé anteriormente, el modelo será diferente para cada variable de respuesta. Podríamos intentar... Para cada modelo, podemos encontrar un buen modelo. En lugar de eso, utilizamos un enfoque de aprendizaje automático que evalúa diferentes modelos para cada variable de respuesta mediante el método de mínimos cuadrados ordinarios, LASSO y Elastic Net. También añadimos regresión de vectores de soporte con kernel lineal y polinomial únicamente.
Luego, realizamos una validación cruzada con el método de dejar uno fuera. En este caso, si no lo sabe, el modelo se ajusta a todos los datos excepto a uno. Luego, ese punto de datos se utiliza para realizar la predicción y se calcula un error. Esto se repite para todos los puntos de datos. A continuación, se puede calcular el error cuadrático medio promedio. Con base en este error, se puede determinar cuál de los modelos es el mejor. Esto permite limitar el sobreajuste, ya que siempre se deja un punto de datos para la predicción, pero permite obtener suficientes puntos de datos de nuestro conjunto limitado para ajustar un buen modelo.
Una vez aplicado esto, obtenemos buenos modelos para las combinaciones X₂, X₃ y X₄, con un error cuadrático medio muy bajo y una puntuación R² bastante buena. Dado que nuestra capacidad para predecir esta combinación en particular es buena, esto nos indica que el error inexplicable para esta combinación es menor. Por lo tanto, esta es la combinación con la que avanzamos. Así se ven los valores reales, experimentales y predichos. Como se puede ver, los modelos no son un hecho, pero aun así son lo suficientemente buenos como para realizar predicciones para esta combinación en particular.
En el siguiente paso, usamos estos modelos para ejecutar simulaciones de Monte Carlo. Con estas simulaciones, calculamos... Basándonos en la respuesta y la métrica de distancia, y en esta última, determinamos cuáles son los valores simulados más cercanos a nuestro objetivo. Luego, agrupamos todas las simulaciones más cercanas al objetivo para encontrar tres ejecuciones diferentes que podemos llevar al laboratorio y realizar el experimento.
De esas tres ejecuciones, una logró nuestro objetivo. Logramos minimizar Y₁, Y₂, Y₃, maximizar Y₄, Y₅ y mantener Y₇. En este paso en particular, omitimos Y₆ porque nuestra capacidad de predecir Y₆ seguía siendo insuficiente, incluso después de todas estas ejecuciones.
Volviendo al flujo de trabajo del producto, este fue solo un paso. Hemos llegado al final de la escala de laboratorio. Ahora, esto pasará a la planta piloto. Probaremos la escalabilidad, luego las pruebas de fábrica y el resto del proceso.
Esto me lleva a mi diapositiva de resumen. En este caso particular, utilizamos un enfoque iterativo de DOE, paso a paso, con el que pudimos encontrar la combinación óptima utilizando solo 100 experimentos en lugar de 500. Posteriormente, se aplicó eficazmente el diseño de relleno de espacio con aprendizaje automático para explorar el espacio experimental. Finalmente, descubrimos que al combinar esta capacidad del aprendizaje automático con los datos de DOE y este enfoque secuencial, se puede encontrar un modelo mejor, incluso si la hipótesis inicial es errónea. Gracias por esto.