optimización bayesiana; estrategia de diseño secuencial para la optimización globalUn cliente me ha preguntado acerca de una optimización bayesiana. ¿Alguien ha pedido una petición similar de un cliente?
En general, la optimización bayesiana es una estrategia de diseño secuencial para la optimización global de funciones de caja negra que no asume ninguna forma funcional. Este método se ha utilizado para ajustar modelos de aprendizaje automático. La optimización bayesiana también se ha aplicado recientemente en la industria manufacturera (para experimentos de simulación y experimentos reales).
Mi cliente quiere seleccionar el mejor experimento candidato para la próxima ejecución en función de los datos del experimento anterior.
Aquí hay un ejemplo de una aplicación para el experimento químico.
https://www.nature.com/articles/s41586-021-03213-y
Creo que JMP puede crear un modelo de proceso gaussiano para que un cliente pueda realizar algunos pasos en la optimización bayesiana en JMP.
Yuichi
Re: optimización bayesiana; estrategia de diseño secuencial para la optimización globalGracias, Yuichi.
Es interesante ver que hay un producto de software comercial dedicado para esto.
He visto bastantes artículos académicos sobre este tipo de enfoque. Algunos de ellos han proporcionado aplicaciones de código abierto basadas en R o Python. Todos los enfoques que veo en estos documentos son "robóticos" o "algorítmicos".
Una ventaja de usar JMP es que el científico puede explorar de forma interactiva los datos en cada paso para guiar el proceso con su comprensión del dominio.
Saludos,
phil
Re: optimización bayesiana; estrategia de diseño secuencial para la optimización globalHoy hablé con un cliente y sintieron que podían usar JMP para su experimento. Para su información, los siguientes productos también son software candidato para este fin.
https://citrine.io/product/what-is-the-citrine-platform/
Gracias,
Yuichi
Re: optimización bayesiana; estrategia de diseño secuencial para la optimización globalGracias, Phil Toda la información es útil para mí.
Entiendo que la combinación de diseño de relleno de espacio y modelo de proceso gaussiano sería una solución para su cliente. Eso tiene sentido para mí.
Gracias por informarme sobre su presentación en Discovery Europe. Entiendo que su enfoque y el de Ryan es la combinación de la capacidad de Covariable/Candidate Run y XGboost. Creo que eso también funciona para los clientes de JMP Pro.
Sugeriré esos enfoques a un cliente. Si un cliente obtiene un buen resultado, se lo haré saber.
Gracias,
Yuichi
Re: optimización bayesiana; estrategia de diseño secuencial para la optimización globalSí, @yuichi_katsumur . Creo que una combinación de diseño de relleno de espacio y modelo de proceso gaussiano sería una solución para su cliente.
Creo que los clientes están cada vez más interesados en este tipo de enfoque, especialmente en química. Aunque no conozco ningún cliente que esté usando JMP para esto en este momento.
Y he visto bastantes documentos sobre esto, incluido el documento que compartió.
Un cliente preguntó sobre el uso de este enfoque para determinar el efecto de la concentración de sal en la viscosidad de los champús.
Este es el enfoque que yo sugeriría:
- Necesita un conjunto de datos inicial. En artículos que he leído, a menudo comienzan con un conjunto aleatorio de puntos de datos del espacio factorial. Pero creo que un diseño pequeño que llene el espacio sería mejor. Realice este experimento y registre la respuesta para cada corrida.
- Aumente el conjunto de datos inicial con una gran cantidad de ejecuciones (digamos 1000) utilizando el relleno de espacios. No va a ejecutar todos estos, por lo que puede elegir un número muy grande. Ahora tiene una tabla de datos con una gran cantidad de ejecuciones: solo tiene la respuesta para algunas de ellas.
- Modele la respuesta contra los factores utilizando el modelo de proceso gaussiano. Guarde la fórmula de predicción y guarde la fórmula de varianza. Ahora tiene la respuesta real para una pequeña cantidad de ejecuciones y la varianza y la respuesta pronosticada para todas las ejecuciones.
- De las corridas que no han sido probadas, encuentre la corrida con la mayor varianza. Registre la respuesta real para esta ejecución.
- Repita los pasos 3 y 4 hasta que haya alcanzado su objetivo.
¿Tiene sentido?
He adjuntado una tabla de datos que podría ayudar a ilustrar. Se basa en "2D Gaussian Process Example.jmp" de la carpeta de datos de muestra.
La gente habla de "explotación" versus "exploración". El enfoque anterior es exploración porque estamos eligiendo la próxima ejecución para explorar la región más incierta del espacio de factores. La explotación es donde elige la ejecución que se predice que tendrá la respuesta óptima (por ejemplo, el rendimiento más alto). A menudo, las personas utilizan el enfoque de comenzar con la exploración y luego, en cierto punto, pasar a la explotación.
@Ryan_Lekivetz y yo mismo di una presentación en Discovery Europe donde estábamos viendo la optimización secuencial de un proceso químico y en cada paso puedes realizar 48 ejecuciones. Comparamos los enfoques de exploración y explotación. Y observamos un enfoque híbrido en el que, en cada paso ("ronda"), se elige un conjunto óptimo de ejecuciones de las ejecuciones no probadas que han pronosticado un rendimiento superior a un cierto umbral. Aumentamos el umbral en cada paso. Este parecía ser un enfoque útil.
Espero que todo ayude. Me interesará saber si su cliente prueba este enfoque.
Gracias,
phil