{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "Contenido bajo licencia Creative Commons BY 4.0 y código bajo licencia MIT. © Manuela Bastidas Olivares y Nicolás Guarín-Zapata 2024." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Solucion de la ecuación de Poisson usando PINNs" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Descripción del problema" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Queremos resolver la siguiente ecuación\n", "\n", "$$ \\frac{d^2 u(x)}{d^2 x} = f(x)\\quad \\forall x \\in (0, \\pi)$$\n", "\n", "con $u(0) = u(\\pi) = 0$.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Aproximación de la función" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "En este caso tenemos una aproximación\n", "\n", "$$u_\\theta(x) \\approx \\operatorname{NN}(x; \\theta)\\, ,$$\n", "\n", "dondee $\\operatorname{NN}$ es una red neuronal con parámetros\n", "entrenables $\\theta$.\n", "\n", "El residual para este problema estaría dado por\n", "\n", "$$R(x) = \\frac{d^2 u_\\theta(x)}{d^2 x} - f(x) \\, .$$\n", "\n", "Por el caracter no linealidad respecto a los parámetros\n", "$\\theta$ de las redes neuronales evaluar el residual\n", "en una serie de puntos $x_i$ y forzarlo a ser cero\n", "en estos puntos, llevaría a un sistema\n", "no lineal de ecuaciones\n", "\n", "$$R(x_i) = 0 \\quad \\forall x_i\\, .$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Función de pérdida" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Una alternativa a resolver el sistema de ecuaciones anteriormente\n", "planteado es minimizar\n", "\n", "$$\\min_\\theta \\frac{1}{N}\\sum_{i}^N |R(x_i)|^2 \\, .$$\n", "\n", "Que sería exactamente 0 si cada uno de los residuales es igual a 0.\n", "\n", "A este problema le harían falta las condiciones de frontera. Para\n", "esto se propone una función objetivo que las incluya\n", "\n", "$$\\min_\\theta \\frac{1}{N}\\sum_{i}^N R(x_i)^2 + \\lambda_1 u_\\theta(0)^2\n", "+ \\lambda_2 u_\\theta(\\pi)^2\\, .$$" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Ejemplo computacional" ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "# Esto permite tener gráficos interactivos en\n", "# el caso de correrse en Google Colab\n", "if 'google.colab' in str(get_ipython()):\n", " %pip install ipympl\n", " from google.colab import output\n", " output.enable_custom_widget_manager()" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "%matplotlib widget" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "import numpy as np\n", "import matplotlib.pyplot as plt\n", "import torch\n", "from torch.autograd import grad" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "if 'google.colab' in str(get_ipython()):\n", " style = \"https://raw.githubusercontent.com/nicoguaro/pinns_mapi-3/main/notebooks/clean.mplstyle\"\n", "else:\n", " style = \"./clean.mplstyle\"\n", "plt.style.use(style)" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "class Model(torch.nn.Module):\n", " def __init__(self, neurons, n_layers, activation=torch.tanh):\n", " super(Model, self).__init__()\n", " self.activation = activation\n", " self.layers = torch.nn.ModuleList()\n", " self.layers.append(torch.nn.Linear(1, neurons))\n", " for _ in range(n_layers-2):\n", " self.layers.append(torch.nn.Linear(neurons, neurons))\n", " self.layers.append(torch.nn.Linear(neurons, 1))\n", "\n", " def forward(self, x):\n", " for layer in self.layers[:-1]:\n", " x = self.activation(layer(x))\n", " x = self.layers[-1](x)\n", " return x\n" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "def f_rhs(x):\n", " return -4*torch.sin(2 * x)\n", "\n", "\n", "def residual(u, x, f):\n", " du = grad(u, x, grad_outputs=torch.ones_like(u), create_graph=True)[0]\n", " ddu = grad(du, x, grad_outputs=torch.ones_like(du), create_graph=True)[0]\n", " return ddu - f(x)\n", "\n", "\n", "def loss_fn(u_model, x, f):\n", " u = u_model(x)\n", " res = residual(u, x, f)\n", " res_MSE = torch.mean(res**2)\n", " bc = u_model(torch.tensor([np.pi]))**2 + u_model(torch.tensor([0.]))**2\n", " return res_MSE + bc[0]\n", "\n", "\n", "def train(model, optimizer, loss_fn, f, n_pts, iterations):\n", " losses = []\n", " for iteration in range(iterations): \n", " optimizer.zero_grad()\n", " x = torch.FloatTensor(n_pts,1).uniform_(0, np.pi).requires_grad_(True)\n", " loss = loss_fn(model, x, f)\n", " loss.backward()\n", " optimizer.step()\n", " losses.append(loss.item())\n", " if iteration % 100 == 0:\n", " print(f'Iteration {iteration}, Loss {loss.item()}')\n", " return losses\n", "\n", "\n", "def exact_u(x):\n", " return torch.sin(2 * x)" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "251" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "source": [ "nn = 10\n", "nl = 4\n", "model = Model(neurons=nn, n_layers=nl)\n", "optimizer = torch.optim.Adam(model.parameters(), lr=1e-3)\n", "\n", "# Número de parámetros\n", "sum(p.numel() for p in model.parameters() if p.requires_grad)" ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [], "source": [ "n_pts = 1000\n", "iterations = 1000" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Iteration 0, Loss 7.980610370635986\n", "Iteration 100, Loss 5.786739349365234\n", "Iteration 200, Loss 1.7077887058258057\n", "Iteration 300, Loss 1.131252408027649\n", "Iteration 400, Loss 0.1608763039112091\n", "Iteration 500, Loss 0.003429063130170107\n", "Iteration 600, Loss 0.0006879867287352681\n", "Iteration 700, Loss 0.00047126287245191634\n", "Iteration 800, Loss 0.00043680204544216394\n", "Iteration 900, Loss 0.0004027598479297012\n" ] } ], "source": [ "losses = train(model, optimizer, loss_fn, f_rhs, n_pts, iterations)" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [], "source": [ "xlist = np.linspace(0, np.pi, n_pts)\n", "xlist_torch = torch.tensor(xlist, dtype=torch.float32, requires_grad=True).view(-1, 1)" ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "u_ap = model(xlist_torch)\n", "u_ex = exact_u(xlist_torch)" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'u(x)')" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "df1ef6165b334ae5b02df2ec614afea3", "version_major": 2, "version_minor": 0 }, "image/png": "iVBORw0KGgoAAAANSUhEUgAAAlgAAAGQCAYAAAByNR6YAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8fJSN1AAAACXBIWXMAAA9hAAAPYQGoP6dpAABnBElEQVR4nO3dd1hTZxsG8PskBMIMIDIcFVu3ONEqWmutiqOuLlEraj9r3bPOWlu1dbbuumcdVdtarVZrta1b3OBedaEWRBTCXsn7/YEGIzjQwMm4f9eV65KT95zceTzAw5szJCGEABERERGZjELuAERERETWhg0WERERkYmxwSIiIiIyMTZYRERERCbGBouIiIjIxNhgEREREZkYGywiIiIiE2ODRURERGRibLCIiIiITIwNFhEREZGJscEiIiIiMjE2WEREREQmxgaLiIiIyMTYYBERERGZGBssIiIiIhNjg0VERERkYmywiIiIiEyMDRYRERGRibHBIiIiIjIxNlhEREREJsYGi4iIiMjE2GARERERmRgbLCIiIiITY4NFREREZGJssIiIiIhMjA0WERERkYmxwSIiIiIyMTZYRERERCbGBouIiIjIxNhgEREREZkYGywiIiIiE2ODRURERGRibLCIiIiITIwNFhEREZGJscEiIiIiMjE2WEREREQmxgaLiIiIyMTYYBERERGZGBssIiIiIhNjg0VERERkYmywiIiIiEyMDRYRERGRibHBIiIiIjIxNlhEREREJsYGi4iIiMjE2GARERERmRgbLCIiIiITY4Mlo6T0dCSlp8sdwyywFsZYjxysRQ7WwhjrkYO1MD9ssIiIiIhMjA0WERERkYmxwSIiIiIyMTZYRERERCbGBouIiIjIxNhgEREREZkYGywiIiIiE2ODRURERGRiFtFg7d27F61bt0axYsUgSRI2bdr0zHX27NmDwMBAqNVqvPrqq1iwYEGuMRs2bEClSpXg4OCASpUqYePGjQWQnoiIiGyNRTRYycnJqFatGr7//vvnGn/t2jW0bNkSDRo0QHh4OD7//HMMGDAAGzZsMIwJCwtDSEgIQkNDcfLkSYSGhqJ9+/Y4fPhwQb0NIiIishGSEELIHSI/JEnCxo0b0a5duyeOGTFiBDZv3ozz588blvXq1QsnT55EWFgYACAkJAQJCQn4448/DGOaN28ODw8PrF27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", "text/html": [ "\n", "