(PINN) Una breve comprensión de las redes neuronales de información física

Aprendizaje profundo informado por la física

(I. Introducción

        Los autores de la red neuronal de información física incluyen a Maziar RaissiParis PerdikarisGeorge Em Karniadakis . Esta red se utiliza principalmente para la solución de ecuaciones diferenciales parciales. Según la naturaleza y disposición de los datos disponibles, se utilizan dos tipos diferentes de algoritmos. diseñado, a saber, tiempo continuo y modelo de tiempo discreto. Se diseñan algunas ecuaciones como la Ecuación de Burgers, la Ecuación de Shrödinger, la Ecuación de Allen-Cahn, etc. Todos los códigos están disponibles en el sitio web oficial de github. Este artículo trata principalmente sobre cómo ajustar y comprender brevemente el código PINN.

(2) Ajuste de código

        Con el rápido desarrollo de las computadoras, muchos lenguajes de programación, editores, marcos, etc. se están actualizando rápidamente. El código PINN extraído de github requiere versiones de 2019 y anteriores. La arquitectura principal utilizada en este artículo es: Python 3.7.0 + tensorflow 1.15.4.    Otros paquetes se pueden descargar manualmente.

        Algunos de los problemas encontrados:

1. El paquete de trazado no se puede descargar.

        Hice clic en Instalar paquete de trazado y lo descargué muchas veces sin ninguna respuesta. Finalmente, descubrí que este trazado es un módulo de Python escrito por mí. Si no me importa, no informará un error al ejecutarlo. Solo muestra Error al compilar. Este es un problema al agregar dinámicamente ajuste de ruta. Ahora mismo:

         Si desea evitar errores en los informes, puede agregar PINNs-master a la ruta de origen en Archivo->Configuración->Proyecto: nombre de su proyecto->Estructura del proyecto . Luego haga clic en Aplicar para resolver el error de compilación.

2.tensorflow 2.0 y superiores no son compatibles

        Incluso si usa import tensorflow.compat.v1 como tf, todavía hay un error, es decir, tf.contrib. Debido a que todas las versiones superiores han desaprobado contrib, solo puede reducir la versión de tensorflow. Utilice conda para crear un entorno virtual nuevamente y podrá ejecutarlo al instalar Python 3.7 y tensorflow 1.15.4.

3. Savefig no puede hacer dibujos.

         La última línea del código savefig() está comentada porque hay una imagen guardada en el archivo de figuras. Si desea volver a dibujar la imagen, puede eliminar el comentario #, pero la computadora informará un error y deberá instalar texlive. Necesitas descargar el paquete de instalación en línea en lugar de conda. Descárgalo directamente allí. Descargué el archivo comprimido y después de descomprimirlo está

        Abra texlive y haga doble clic para abrir el archivo install-tl-windows

         Haga clic en Avanzado, seleccione cierta información según sea necesario y luego haga clic en Instalar. La espera tomará aproximadamente media hora.

         Esto está casi listo para ejecutar el código. El proceso en ejecución se muestra en la siguiente figura.

(3) Análisis de código

 1. Capas de capas de redes neuronales y función u (t, x)

         La red neuronal tiene un total de 9 capas. La forma y el tamaño (forma) de entrada y salida (entrada, salida) de cada capa están en orden. La primera capa es (2, 20), la segunda a la octava capa son todas ( 20, 20), y la última capa es (20, 20). La capa es (20,1). Una comprensión simple es ingresar dos tipos de datos, a saber, x y t, y generar un tipo de datos, a saber, u. En la ecuación u es función de x y t, es decir, u(t,x),

 2.modelo de tren

         La forma de X_u_train es (2000, 2) y las dos columnas de datos son x y t respectivamente. La forma de u_train es (2000, 1) y una columna de datos es u. capas Igual que arriba. lb son los dos valores mínimos [-1, 0] en las dos columnas. ub son los dos valores máximos [1, 0,99] en las dos columnas.

Función 3.f(t,x) 

        La función f(t, x) en la ecuación oficial de Burgers se define como  

 

         Entre ellos, u_t es el gradiente de la función u(t,x) en t, u_x es el gradiente de la función u(t,x) en x y u_xx es el gradiente de la función u(t,x) en x dos veces.

         Dado que la fórmula anterior es f, el valor de la función f (t, x) es generalmente 0. Hay un valor de pérdida en el aprendizaje profundo y su valor previo generalmente es alrededor de 0.

4.Error cuadrático medio MSE

        Esta red neuronal de información física es diferente de la red neuronal general, el MSE utilizado para su pérdida consta de dos partes, a saber:

 

         Una es encontrar la varianza media de la función u (t, x), la otra es encontrar la varianza media de la función f (t, x), y luego se suman las dos. Ésta es la mayor diferencia entre PINN y las redes neuronales generales: introduce características físicas y agrega una función de pérdida.

5. Una breve discusión sobre PINN

        PINN tiene buenos resultados en la resolución de ecuaciones diferenciales parciales y puede usar menos conjuntos de entrenamiento para obtener una mayor precisión. Esta es también su desventaja. Cuando los datos son grandes, la velocidad de entrenamiento es muy lenta, agregando una dimensión de datos, su velocidad de carrera aumenta. casi exponencialmente.

Supongo que te gusta

Origin blog.csdn.net/GuoTianLiang00/article/details/129250807
Recomendado
Clasificación