Uso del aprendizaje automático en dinámica de fluidos computacional


9

Antecedentes:
solo he creado una solución numérica de trabajo para 2d Navier-Stokes, para un curso. Era una solución para el flujo de la cavidad impulsada por la tapa. Sin embargo, el curso discutió una serie de esquemas para discretizaciones espaciales y discretizaciones de tiempo. También he tomado más cursos de manipulación de símbolos aplicados a NS.

Algunos de los enfoques numéricos para manejar la conversión de la ecuación analítica / simbólica de PDE a diferencia finita incluyen:

  • Euler FTFS, FTCS, BTCS
  • Flojo
  • Midpoint Leapfrog
  • Lax-Wendroff
  • MacCormack
  • cuadrícula compensada (la difusión espacial permite que la información se extienda)
  • TVD

Para mí, en ese momento, parecían "insert-name encuentra un esquema y funciona". Muchos de estos eran anteriores a la época del "silicio abundante". Todas son aproximaciones. En el límite ellos. En teoría, conducir a los PDE.

Si bien la simulación numérica directa ( DNS ) es divertida, y el Navier-Stokes promediado de Reynolds ( RANS ) también es divertido, son los dos "puntos finales" del continuo entre el procesamiento computacional y la representación total de los fenómenos. Hay múltiples familias de enfoques que viven en el interior de estos.

Los profesores de CFD han dicho, en conferencia, que la mayoría de los solucionadores de CFD hacen imágenes bonitas, pero en su mayor parte, esas imágenes no representan la realidad y que puede ser muy difícil y requiere mucho trabajo obtener una solución de solución que representa la realidad

La secuencia de desarrollo (según tengo entendido, no exhaustiva) es:

  1. Comience con las ecuaciones de gobierno -> PDE
  2. determine su discretización espacial y temporal -> reglas de cuadrícula y FD
  3. se aplica al dominio, incluidas las condiciones iniciales y las condiciones de contorno
  4. resolver (muchas variaciones en la inversión de matriz)
  5. realizar verificaciones de la realidad bruta, ajustar las soluciones conocidas, etc.

  6. construir algunos modelos físicos más simples derivados de resultados analíticos

  7. probarlos, analizarlos y evaluarlos
  8. iterar (volver a los pasos 6, 3 o 2)

Pensamientos:
Recientemente he estado trabajando con modelos CART, árboles oblicuos, bosques aleatorios y árboles impulsados ​​por gradientes. Siguen más reglas derivadas matemáticamente, y las matemáticas manejan la forma del árbol. Trabajan para hacer bien formularios discretos.

Aunque estos enfoques numéricos creados por el hombre funcionan de alguna manera, se necesita un amplio "vudú" para conectar sus resultados con los fenómenos físicos que deben modelar. A menudo, la simulación no reemplaza sustancialmente las pruebas y verificaciones del mundo real. Es fácil usar el parámetro incorrecto, o no tener en cuenta la variación en la geometría o los parámetros de aplicación experimentados en el mundo real.

Preguntas:

  • ¿Ha habido algún enfoque para permitir que la naturaleza del problema defina
    la discretización apropiada, el esquema de diferenciación espacial y temporal, las condiciones iniciales o la solución?
  • ¿Se puede utilizar una solución de alta definición junto con las técnicas de aprendizaje automático para hacer un esquema de diferenciación que tenga tamaños de paso mucho más grandes pero que conserve la convergencia, la precisión y demás?
  • Todos estos esquemas son accesibles "humanamente manejables para derivar", tienen un puñado de elementos. ¿Existe un esquema de diferenciación con miles de elementos que haga un mejor trabajo? ¿Cómo se deriva?

Nota: Voy a seguir con el empíricamente inicializado y empíricamente derivado (en oposición a analíticamente) en una pregunta separada.

ACTUALIZAR:

  1. Uso del aprendizaje profundo para acelerar los flujos reticulares de Boltzmann. Dio ~ 9x de aceleración para su caso particular

    Hennigh, O. (en prensa). Lat-Net: Simulaciones de flujo de Boltzmann de celosía comprimida utilizando redes neuronales profundas. Recuperado de: https://arxiv.org/pdf/1705.09036.pdf

    Repo con código (creo):
    https://github.com/loliverhennigh/Phy-Net

  2. Aproximadamente 2 órdenes de magnitud más rápido que la GPU, 4 órdenes de magnitud, o ~ O (10,000x) más rápido que la CPU, y el mismo hardware.

    Guo, X., Li, W. e Ioiro, F. Redes neuronales convolucionales para la aproximación de flujo constante. Recuperado de: https://autodeskresearch.com/publications/convolutional-neural-networks-steady-flow-approximation

  3. Otros que han estudiado el tema hace unos 20 años:

    Muller, S., Milano, M. y Koumoutsakos P. Aplicación de algoritmos de aprendizaje automático para modelar y optimizar flujos. Center for Turbulence Research Briefs anuales de investigación 1999 Recuperado de: https://web.stanford.edu/group/ctr/ResBriefs99/petros.pdf

Actualización (2017):
Esto caracteriza el uso de métodos sin gradiente en el aprendizaje profundo, un ámbito que se ha basado exclusivamente en gradientes. Si bien la implicación directa de la actividad está en el aprendizaje profundo, también sugiere que GA puede usarse como equivalente para resolver un problema muy difícil, muy profundo y muy complejo a un nivel consistente o superior a los métodos basados ​​en el descenso de gradiente.

Dentro del alcance de esta pregunta, podría sugerir que un ataque basado en el aprendizaje automático a gran escala podría permitir "plantillas" en el tiempo y el espacio que aceleren sustancialmente la convergencia de los métodos de dominio de gradiente. El artículo llega a decir que a veces ir en la dirección del descenso del gradiente se aleja de la solución. Si bien en cualquier problema con los óptimos locales o las trayectorias patológicas (la mayoría de los problemas del mundo real de alto valor tienen algunos de estos), se espera que el gradiente no sea globalmente informativo, aún es bueno tenerlo cuantificado y validado empíricamente como era en este documento y la capacidad de "saltar el límite" sin requerir una "reducción del aprendizaje" a medida que avanza o se relaja.

Actualización (2019):
Parece que Google ahora tiene una contribución "cómo encontrar un mejor solucionador" pieza del rompecabezas AI. link Esto es parte de hacer que la IA sea el solucionador.

** Actualización (2020): ** Y ahora lo están haciendo, y lo están haciendo bien ...
https://arxiv.org/pdf/1911.08655.pdf

Se podría argumentar que luego podrían deconstruir su NN para determinar la discretización real. Me gusta especialmente la figura 4.


55
Bienvenido a Scicomp.SE! Su pregunta es un poco más filosófica de lo habitual para este sitio, pero no pude resistirme a mis dos centavos. Sin embargo, creo que hay una pregunta que vale la pena "duro" de allí: Cuando son muy métodos de alto orden en diferencias finitas que vale la pena, y cómo se obtienen y aplican en la práctica? Recomiendo reescribir su pregunta para que se centre en este aspecto (en cuyo caso, eliminaré con gusto mi respuesta que ya no es relevante), o formularla como una nueva pregunta (use "haga su propia pregunta" en el cuadro amarillo en al final de la página).
Christian Clason

8
Creo que el malentendido principal se debe al hecho de que su secuencia es demasiado corta: al principio falta (¡al menos!) Un paso: cómo decidir sobre las ecuaciones de gobierno. Si los resultados de la simulación no concuerdan con los fenómenos físicos (y sus métodos numéricos son correctos; esta parte es matemática pura, no hay vudú, es correcto o incorrecto), entonces es aquí donde debe volver a saltar. Ninguna cantidad de trucos matemáticos puede compensar supuestos de modelado inapropiados.
Christian Clason

44
Eso no es cierto (dependiendo de lo que quieres decir exactamente con "la respuesta"). Usted crea un modelo (partiendo de los primeros principios o modificando uno existente), lo resuelve con la precisión deseada y compara la salida con observaciones experimentales. Si están de acuerdo, bien, escriba un documento; si no, regrese y refine su modelo. Enjuague, repita. Así es como (cualquier) ciencia funciona (la solución numérica es completamente incidental).
Christian Clason

3
De eso es exactamente de lo que estoy hablando: si descubres que no puedes reproducir las medidas a menos que también incluyas en tu modelo la conservación de los wuffles (o lo que sea), entonces eso es lo que haces. ¿Cómo crees que surgieron los cinco principios que enumeras en primer lugar? Es solo que la ciencia moderna se ha vuelto tan complicada que ya no es una sola persona que realiza las mediciones, tratando de encontrar modelos predictivos, estudiando sus propiedades matemáticas, derivando métodos numéricos para su solución y haciendo que funcionen con una eficiencia razonable.
Christian Clason

1
@EngrStudent no es una respuesta directa a su segunda pregunta, pero hemos estado trabajando para mejorar los modelos RANS (puede usar una malla más gruesa y un gran paso de tiempo), que son terriblemente inexactos en flujos complejos pero son mucho más baratos que DNS. Utilizamos una combinación de problema inverso y red neuronal para mejorar estos modelos utilizando datos experimentales. Echa un vistazo a arxiv.org/abs/1608.03990 y referencias allí. No creo que sea posible ignorar por completo la ecuación de gobierno y mantener un nivel de precisión similar (al menos en la actualidad).
inconformista

Respuestas:


20

Es una broma de larga duración que CFD significa "dinámica de fluidos coloridos". Sin embargo, se usa, y es útil, en una amplia gama de aplicaciones. Creo que su descontento proviene de no distinguir lo suficiente entre dos pasos interconectados pero diferentes: crear un modelo matemático de un proceso físico y resolverlo numéricamente. Déjame comentar un poco sobre esto:

  1. Ningún modelo matemático (o realmente, cualquier) de realidad física es correcto ; en el mejor de los casos, es útil para predecir los resultados de las mediciones en un conjunto de circunstancias delimitadas con precisión (pero con suerte grandes). Esto incluye el hecho de que debe ser posible obtener dicha predicción dada una configuración específica; Por eso tenemos una jerarquía completa de modelos, desde la teoría cuántica de campos hasta la mecánica newtoniana. En particular, las ecuaciones de Navier-Stokes no describen el flujo de fluidos, dan una predicción de aspectos específicos del comportamiento de ciertos fluidos bajo ciertas condiciones.

  2. Para los modelos matemáticos más complicados (como las ecuaciones de Navier-Stokes), nunca puede obtener una solución exacta (y, por lo tanto, predicción), sino solo una aproximación numérica. Esto no es tan malo como parece, ya que las mediciones con las que desea compararlas nunca son exactas. Al igual que en la elección de los modelos, existe una compensación entre la precisión y la capacidad de seguimiento: no tiene sentido gastar tiempo o dinero en obtener una solución más precisa de la necesaria. En este punto, se convierte puramente en una pregunta sobre cómo aproximar numéricamente la solución de (en este caso) una ecuación diferencial parcial, que es el tema de un campo matemático completo: el análisis numérico. Este campo tiene que ver con probarestimaciones de error para ciertos métodos numéricos (nuevamente, bajo ciertas condiciones explícitamente especificadas). Su afirmación "insert-name encuentra un esquema y sucede que funciona", es muy injusto: debe ser "insert-name encuentra un esquema y demuestra que funciona". Además, estos esquemas no se sacan de la nada: se derivan de principios matemáticos bien entendidos.

    (Por ejemplo, los esquemas de diferencias finitas se pueden derivar usando aproximaciones de Taylor de un orden dado. Ciertamente es posible, y algunas personas lo hacen, obtener esquemas de diferencia de muy alto orden e implementarlos, pero existe una ley de rendimientos decrecientes : esto solo se puede automatizar parcialmente y, por lo tanto, requiere mucho esfuerzo, y se deben cumplir ciertas condiciones cada vez más restrictivas para obtener realmente la mayor precisión correspondiente. Además, en algún momento es mejor usar un esquema completamente diferente, como métodos espectrales.)

El tema común aquí es que tanto los modelos como los esquemas numéricos vienen con un rango de aplicabilidad, y es importante elegir la combinación correcta para un propósito determinado. ¡Esta es precisamente la razón por la cual un científico computacional necesita conocer tanto el dominio de la ciencia (para saber qué modelo es válido en qué situación) como las matemáticas (para saber qué método es aplicable a qué modelo y con qué precisión)! Ignorar estas etiquetas de "usar solo según lo dirigido" lleva a producir el tipo de "mierda computacional" (en el sentido técnico de Harry Frankfurt) a la que se referían sus profesores de CFD.

En cuanto a por qué usar un modelo computacional cuando tiene un modelo físico (como un túnel de viento): Una razón es que ejecutar software puede ser mucho más barato que crear un modelo y colocarlo en un túnel de viento. Además, generalmente no se trata de uno u otro: por ejemplo, al diseñar un automóvil o un avión, se ejecutarían cientos o miles de simulaciones para reducir las cosas, y luego solo para el (los) candidato (s) final (es) pone un modelo en un viento túnel.


Actualizar:

Usar el aprendizaje automático en lugar de la simulación numérica es como decir "no tener modelo es mejor que tener un modelo aproximado", con lo que dudo que alguien en dinámica de fluidos (o cualquier otro campo) esté de acuerdo. Dicho esto, es ciertamente posible (y hecho) usar el aprendizaje automático para seleccionar "parámetros geométricos o de aplicación" desconocidos en base a un acuerdo con los datos medidos; sin embargo, aquí también los métodos basados ​​en modelos, como la cuantificación de la incertidumbre o los problemas inversos (bayesianos), generalmente funcionan mucho mejor (y se basan en rigurosos principios matemáticos). Seleccionar numérico parámetros como el tamaño del paso o el orden del método que usa el aprendizaje automático también es posible en principio, pero no veo el beneficio ya que hay una teoría matemática que le dice exactamente cómo elegir estos parámetros en función de su modelo (matemático).

Actualización 2:

El documento al que se vincula es sobre gráficos por computadora , no ciencia computacional : su objetivo no es tener una simulación precisa (es decir, una solución numérica de un modelo matemático) de un proceso físico, sino algo que se vea a simple vista. (un caso extremo de "dinámica de fluidos de colores" ...) - ese es un asunto muy diferente. En particular, no hay un límite de error para la salida de la red entrenada en comparación con la solución correspondiente a las ecuaciones de Navier-Stokes, que es una parte indispensable de cualquier método numérico.


(Y su primera pregunta parte de una premisa falsa: en cada enfoque, el problema determina el modelo, el modelo determina la discretización, la discretización determina el solucionador).


Hay proyección en el espacio de soluciones, pero no necesariamente a "la" solución. Estoy oxidado en este momento. La idea es utilizar el sistema empíricamente entrenado para limitar la región de la parcela de soluciones aceptables en la cual la proyección ocurre desde sus límites originales hasta estar más cerca de la solución física.
EngrStudent

2
Estás confundiendo el mapa y el territorio nuevamente: un modelo matemático (bien planteado) tiene una solución única (para cualquier dato dado). Esta solución se puede calcular con precisión arbitraria (con un esfuerzo creciente) utilizando un método numérico (adecuado). Por otro lado, no existe una "solución física", solo hay mediciones. Si estos no están de acuerdo con la simulación dentro de la precisión de la medición y los números, estaba resolviendo el modelo incorrecto y su problema no es de ciencia computacional, sino de física básica.
Christian Clason

44
Además, un comentario: una parte fundamental de la ciencia (y, en particular, las matemáticas) es un lenguaje técnico muy preciso con un significado fijo e inequívoco: esta es la única forma en que todos pueden estar seguros de estar hablando de lo mismo cuando Pequeñas diferencias en la interpretación pueden tener un gran efecto. No apegarse a la terminología comúnmente aceptada y usar en su lugar términos como "la región del paquete de soluciones aceptables" hace que sea muy difícil saber a qué se refiere. (Solo puedo suponer que podría estar hablando de algo como la calibración del modelo, problemas inversos o asimilación de datos).
Christian Clason

Otra dificultad con los experimentos es que están inevitablemente predispuestos al equipo que se está utilizando. Una serie de experimentos en una instalación no es necesariamente concluyente, es decir, uno puede esperar que diferentes túneles de viento den resultados a veces significativamente diferentes. La Conferencia Internacional de Tanques de Remolque abordó este problema con una extensa serie de pruebas en más de 50 tanques de remolque en todo el mundo. Consulte: "Serie mundial del ITTC para identificar sesgos en las instalaciones: procedimientos técnicos". nmri.go.jp/turbulence/group/…
Lisístrata

Una buena regla general del autor:in every approach, the problem determines the model, the model determines the discretization, the discretization determines the solver.
Sascha Gottfried

7

Creo que estás mezclando un par de ideas diferentes que están causando confusión. Sí, hay una gran variedad de formas de discretizar un problema dado. Elegir una forma apropiada puede parecer "vudú" cuando estás aprendiendo estas cosas en clase, pero cuando los investigadores las eligen, lo hacen basándose en la experiencia combinada del campo, como se publica en la literatura. Por lo tanto, toman decisiones mucho más informadas que un estudiante.

Pregunta 1: Si está resolviendo un problema y cambia de un esquema a otro, su tiempo de ejecución cambiará, los criterios de convergencia pueden cambiar o su comportamiento asintótico, pero un punto muy importante es que su solución convergente final NO debería cambiar . Si lo hace, o necesita refinar sus mallas, o hay algo mal con su esquema numérico. Tal vez podría usar algún algoritmo de optimización para crear sus esquemas numéricos y mejorar el rendimiento para una clase específica de problemas, pero muchas veces los esquemas derivados de la mano se crean con un comportamiento de convergencia / asintótico óptimo demostrable matemáticamente para la cantidad de términos involucrados o el tipo de malla utilizado.

Ahora, el párrafo anterior no tiene en cuenta cosas como diferentes modelos de turbulencia, que son diferentes formulaciones / aproximaciones matemáticas de la física, por lo que se espera que tengan diferentes soluciones. Estos están nuevamente muy estudiados en la literatura, y no creo que los programas lleguen al punto en que puedan observar fenómenos físicos y producir un modelo matemático que prediga adecuadamente la respuesta de sistemas físicos similares.

Pregunta 2: Sí, podría derivar un esquema que use toda la malla a la vez, utilizando algún código de computadora para hacerlo. Incluso me siento seguro al decir que para algunas mallas, tales códigos existen y podrían darle su esquema en cuestión de un par de horas (una vez que encuentre el código que es). El problema es que nunca vencerás a Nyquist. Hay un límite para la cantidad de tiempo que das, dependiendo de la frecuencia máxima de la respuesta de tu sistema, y ​​un límite para la cantidad de celdas / elementos de malla que puedes tener dependiendo de las frecuencias espaciales de la solución.

Eso ni siquiera explica el hecho de que a menudo el trabajo computacional involucrado en el uso de un esquema más complejo a menudo no es lineal con complejidad. La razón por la cual la mayoría de los estudiantes aprenden los métodos RK4 para la integración de tiempo es que cuando comienzas a usar métodos con un orden más alto que eso, obtienes más evaluaciones de tu derivada más rápido de lo que obtienes órdenes de tu método. En el ámbito espacial, los métodos de orden superior aumentan en gran medida el relleno de la matriz, por lo que necesita menos puntos de malla, pero el trabajo que realiza invirtiendo la matriz dispersa aumenta considerablemente, compensando al menos parcialmente sus ganancias.

No estoy seguro de a qué se refiere en la pregunta tres. ¿Estás hablando de convertir soluciones cercanas a un problema en mejores soluciones? Si es así, recomiendo algunas lecturas ligeras en multirredes. Si está preguntando acerca de cómo convertir esquemas numéricos decentes en sorprendentes, creo que el resto de mi respuesta al menos toca eso.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.