{ "cells": [ { "cell_type": "markdown", "id": "charitable-joshua", "metadata": {}, "source": [ "# Results for a 1D Mexican hat curve (incl. VD)\n", "\n", "This notebook produces the results of EiV and non-EiV models for data following a 1D Mexican hat curve as presented in the preprint \"Errors-in-Variables for deep learning: rethinking aleatoric uncertainty\" submitted to NeurIPS 2021.\n", "\n", "\n", "This notebook produces Figures 1, 2, 3 and part of Table 1 of the preprint. \n", "\n", "How to use this notebook: \n", "\n", "+ This notebook assumes that the corresponding trained networks exist in `saved_networks`. To achieve this, either run the training scripts described in the `README` or load the pre-trained networks from the link in the `README` into the `saved_networks` folder. \n", "\n", "+ To run this notebook, click \"Run\" in the menu above. \n", "\n", "+ To consider different levels of input noise, change `std_x` in cell [2]\n", "\n", "+ To run this notebook with a GPU, set `use_gpu` to `True` in cell [2] (default is `False`)\n", "\n", "+ Plots will be displayed inline and, in addition, saved to `saved_images`\n", "\n", "+ The content of Table 1 is produced under \"Coverage\" below . To get the different columns of Table 1, change `std_x` as explained above." ] }, { "cell_type": "code", "execution_count": 5, "id": "buried-recipe", "metadata": {}, "outputs": [], "source": [ "import random\n", "import os\n", "\n", "import numpy as np\n", "import torch\n", "import torch.nn as nn\n", "from torch.utils.data import DataLoader\n", "import matplotlib\n", "import matplotlib.pyplot as plt\n", "from tqdm.notebook import tqdm\n", "\n", "from train_eiv_mexican import report_point, batch_size, seed_list\n", "from train_noneiv_mexican_ensemble_seed import seed_list as ensemble_seed_list\n", "from EIVArchitectures import Networks\n", "import data_frameworks, generate_mexican_data\n", "from EIVTrainingRoutines import train_and_store\n", "from EIVGeneral.ensemble_handling import create_strings, Ensemble\n", "\n", "\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "id": "4043eac9", "metadata": {}, "source": [ "## Fix relevant hyperparameters" ] }, { "cell_type": "markdown", "id": "4dd31b60", "metadata": {}, "source": [ "### Values that can be changed" ] }, { "cell_type": "code", "execution_count": 6, "id": "41ee1a77", "metadata": {}, "outputs": [], "source": [ "# The std_x used for data generation and model loading. \n", "# Pick either 0.05, 0.07 or 0.10.\n", "# For the figures in the preprint 0.07 was used.\n", "std_x = 0.07\n", "\n", "# Switch to True if GPU should be used\n", "use_gpu = False\n", "\n", "# Uncertainty coverage factor (1.96 taken from the standard normal)\n", "k=1.96" ] }, { "cell_type": "code", "execution_count": 7, "id": "bbc99f21", "metadata": {}, "outputs": [], "source": [ "# graphics\n", "fontsize=15\n", "matplotlib.rcParams.update({'font.size': fontsize})" ] }, { "cell_type": "code", "execution_count": 8, "id": "007d7aac", "metadata": {}, "outputs": [], "source": [ "# Set device\n", "if not use_gpu:\n", " device = torch.device('cpu')\n", "else:\n", " device = torch.device('cuda:0' if torch.cuda.is_available() else 'cpu')" ] }, { "cell_type": "markdown", "id": "4c0c5646", "metadata": {}, "source": [ "### Values to keep fixed\n", "The following values assume the settings from the training scripts. To change the following values, these scripts must be adapted and rerun." ] }, { "cell_type": "code", "execution_count": 9, "id": "45130d71", "metadata": {}, "outputs": [], "source": [ "# Set further hyperparameters\n", "from train_eiv_mexican import std_y, init_std_y_list, std_x_list\n", "from train_eiv_mexican_fixed_std_x import std_x_list as fixed_std_x_list\n", "from train_eiv_mexican_fixed_std_x import deming_scale_list\n", "init_std_y = init_std_y_list[0]\n", "fixed_std_x = fixed_std_x_list[0] # used only for the plot of the std_y evolution" ] }, { "cell_type": "code", "execution_count": 10, "id": "29e84920", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Choosing deming factor 0.2\n" ] } ], "source": [ "# Fix the maximal Deming factor below std_x/std_y\n", "def find_nearest(a, x):\n", " idx = (np.abs(a - x)).argmin()\n", " return a[idx]\n", "\n", "def find_min_max(a, x):\n", " idx = np.argwhere(a<x).max()\n", " return a[idx]\n", "\n", "deming = find_min_max(np.array(deming_scale_list), std_x/std_y)\n", "print('Choosing deming factor', deming)" ] }, { "cell_type": "code", "execution_count": 11, "id": "nervous-restoration", "metadata": {}, "outputs": [], "source": [ "# Function to fix seeds (for reproducability)\n", "def set_seeds(seed):\n", " torch.backends.cudnn.benchmark = False \n", " random.seed(seed)\n", " np.random.seed(seed)\n", " torch.manual_seed(seed)" ] }, { "cell_type": "markdown", "id": "545190ff", "metadata": {}, "source": [ "## Prediction (for a single seed)\n", "Produces Figure 2 from the preprint (if `std_x` is set to 0.07 in cell [2]). The network trained with random seed 0 is used." ] }, { "cell_type": "code", "execution_count": 12, "id": "91413ba9", "metadata": {}, "outputs": [], "source": [ "# Change this to take a different network\n", "# Choose an integer between 0 and 19\n", "single_seed = 0" ] }, { "cell_type": "markdown", "id": "806e87b2", "metadata": {}, "source": [ "### Load networks and data" ] }, { "cell_type": "code", "execution_count": 9, "id": "instrumental-survey", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "FNNEIV(\n", " (main): Sequential(\n", " (0): EIVInput()\n", " (1): Linear(in_features=1, out_features=50, bias=True)\n", " (2): LeakyReLU(negative_slope=0.01)\n", " (3): EIVDropout()\n", " (4): Linear(in_features=50, out_features=100, bias=True)\n", " (5): LeakyReLU(negative_slope=0.01)\n", " (6): EIVDropout()\n", " (7): Linear(in_features=100, out_features=50, bias=True)\n", " (8): LeakyReLU(negative_slope=0.01)\n", " (9): EIVDropout()\n", " (10): Linear(in_features=50, out_features=1, bias=True)\n", " )\n", ")" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Load EiV model\n", "net = Networks.FNNEIV(p=0.5, deming=deming)\n", "saved_file = os.path.join('saved_networks',\n", " 'eiv_mexican_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_deming_scale_%.3f_seed_%i.pkl'\\\n", " %(std_x, std_y, init_std_y, deming, single_seed))\n", "train_loss, test_loss, stored_std_x, stored_std_y, state_dict\\\n", " = train_and_store.open_stored_training(saved_file, net=net, device=device)\n", "net.to(device)" ] }, { "cell_type": "code", "execution_count": 10, "id": "lovely-register", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "FNNBer(\n", " (main): Sequential(\n", " (0): Linear(in_features=1, out_features=50, bias=True)\n", " (1): LeakyReLU(negative_slope=0.01)\n", " (2): Dropout(p=0.5, inplace=False)\n", " (3): Linear(in_features=50, out_features=100, bias=True)\n", " (4): LeakyReLU(negative_slope=0.01)\n", " (5): Dropout(p=0.5, inplace=False)\n", " (6): Linear(in_features=100, out_features=50, bias=True)\n", " (7): LeakyReLU(negative_slope=0.01)\n", " (8): Dropout(p=0.5, inplace=False)\n", " (9): Linear(in_features=50, out_features=1, bias=True)\n", " )\n", ")" ] }, "execution_count": 10, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Load non-EiV model\n", "ber_net = Networks.FNNBer(p=0.5, init_std_y=init_std_y)\n", "ber_saved_file = os.path.join('saved_networks', \n", " 'noneiv_mexican_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_seed_%i.pkl'\n", " % (std_x, std_y, init_std_y, single_seed))\n", "ber_train_loss, ber_test_loss, ber_stored_std_x, ber_stored_std_y, ber_state_dict\\\n", " = train_and_store.open_stored_training(ber_saved_file, net=ber_net, device=device)\n", "ber_net.to(device)" ] }, { "cell_type": "code", "execution_count": 13, "id": "08892aaa", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ " -- Generating Mexican hat data with std_x = 0.07 and std_y = 0.30 --\n", " -- Generating Mexican hat data with std_x = 0.07 and std_y = 0.30 --\n", " -- Generating Mexican hat data with std_x = 0.07 and std_y = 0.30 --\n" ] } ], "source": [ "# Generate data\n", "train_data_pure, train_data,\\\n", " test_data_pure,test_data,\\\n", " val_data_pure,val_data,(func, normean, norstd) = generate_mexican_data.get_data(std_x=std_x, std_y=std_y)\n", "val_x, val_y = val_data[0].numpy().flatten(), val_data[1].numpy().flatten()\n", "val_pure_x, val_pure_y = val_data_pure[0].numpy().flatten(), val_data_pure[1].numpy().flatten()\n", "# Sort according to unnoisy data\n", "val_pure_ind = np.argsort(val_pure_x)\n", "val_pure_x = val_pure_x[val_pure_ind]\n", "val_pure_y = val_pure_y[val_pure_ind]\n", "val_x = val_x[val_pure_ind]\n", "val_y = val_y[val_pure_ind]" ] }, { "cell_type": "markdown", "id": "uniform-toolbox", "metadata": {}, "source": [ "### Predictions for noisy input\n", "Produces Figure 2b from the preprint" ] }, { "cell_type": "code", "execution_count": 12, "id": "reserved-dispatch", "metadata": { "scrolled": true }, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# The ground truth\n", "plot_x = np.linspace(-1.1,1.1)\n", "plot_y = func(plot_x)[1]\n", "\n", "# Fix seeds\n", "set_seeds(0)\n", "\n", "\n", "## EiV model\n", "net_train_state = net.training\n", "net_noise_state = net.noise_is_on\n", "net.train()\n", "net.noise_on()\n", "# Collect predictions\n", "pred, _= [t.cpu().detach().numpy()\n", " for t in net.predict(torch.tensor(val_x, dtype=torch.float32)[:,None].to(device), number_of_draws=5000,\n", " take_average_of_prediction=False)]\n", "pred_mean = np.mean(pred, axis=1).flatten()\n", "pred_std = np.std(pred, axis=1).flatten()\n", "\n", "plt.ylim([-1.5,1.5])\n", "\n", "if net_train_state:\n", " net.train()\n", "else:\n", " net.eval()\n", "if net_noise_state:\n", " net.noise_on()\n", "else:\n", " net.noise_off()\n", "\n", "\n", "## Non-EiV model\n", "ber_net_state = ber_net.training\n", "ber_net.train()\n", "ber_net.to(device)\n", "# Collect predictions\n", "ber_pred, _ = [t.cpu().detach().numpy()\n", " for t in ber_net.predict(torch.tensor(val_x, dtype=torch.float32)[:,None].to(device), number_of_draws=5000,\n", " take_average_of_prediction=False)]\n", "ber_pred_mean = np.mean(ber_pred, axis=1).flatten()\n", "ber_pred_std = np.std(ber_pred, axis=1).flatten()\n", "plt.plot(plot_x, plot_y, color='b', label='ground truth', linewidth=2)\n", "plt.plot(val_pure_x, ber_pred_mean, color='k', label='No EiV', linewidth=2)\n", "plt.fill_between(val_pure_x, ber_pred_mean-k*ber_pred_std, ber_pred_mean+k*ber_pred_std, color='k', alpha=0.2)\n", "plt.plot(val_pure_x, pred_mean, color='r', label='EiV', linewidth=2)\n", "plt.fill_between(val_pure_x, pred_mean-k*pred_std, pred_mean+k*pred_std, color='r', alpha=0.2)\n", "plt.xlabel(r'$\\zeta$')\n", "if ber_net_state:\n", " ber_net.train()\n", "else:\n", " ber_net.eval()\n", " \n", " \n", "## save result\n", "plt.savefig(os.path.join('saved_images','mexican_noisy_prediction_std_x_%.3f_std_y_%.3f.pdf' % (std_x, std_y)) )" ] }, { "cell_type": "markdown", "id": "corrected-broadcasting", "metadata": {}, "source": [ "### Predictions for unnoisy input\n", "Produces Figure 2a from the preprint" ] }, { "cell_type": "code", "execution_count": 13, "id": "coupled-reputation", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_x = np.linspace(-1.1,1.1)\n", "plot_y = func(plot_x)[1]\n", "net_train_state = net.training\n", "net_noise_state = net.noise_is_on\n", "net.train()\n", "net.noise_off()\n", "net.to(device)\n", "set_seeds(0)\n", "pred, _= [t.cpu().detach().numpy()\n", " for t in net.predict(torch.tensor(plot_x, dtype=torch.float32)[:,None].to(device), number_of_draws=5000,\n", " take_average_of_prediction=False)]\n", "pred_mean = np.mean(pred, axis=1).flatten()\n", "pred_std = np.std(pred, axis=1).flatten()\n", "\n", "# plt.ylim([-0.5,1.5])\n", "plt.ylim([-1.5,1.5])\n", "#plt.show()\n", "if net_train_state:\n", " net.train()\n", "else:\n", " net.eval()\n", "if net_noise_state:\n", " net.noise_on()\n", "else:\n", " net.noise_off()\n", "\n", "ber_net_state = ber_net.training\n", "ber_net.train()\n", "ber_pred, _ = [t.cpu().detach().numpy()\n", " for t in ber_net.predict(torch.tensor(plot_x, dtype=torch.float32)[:,None].to(device), number_of_draws=5000,\n", " take_average_of_prediction=False)]\n", "ber_pred_mean = np.mean(ber_pred, axis=1).flatten()\n", "ber_pred_std = np.std(ber_pred, axis=1).flatten()\n", "#plt.figure()\n", "#plt.plot(plot_x, plot_y, color='b', label='ground truth', linewidth=1)\n", "plt.plot(plot_x, plot_y, color='b', label='ground truth', linewidth=2)\n", "plt.plot(plot_x, ber_pred_mean, color='k', label='No EiV', linewidth=2)\n", "plt.fill_between(plot_x, ber_pred_mean-k*ber_pred_std, ber_pred_mean+k*ber_pred_std, color='k', alpha=0.2)\n", "plt.plot(plot_x, pred_mean, color='r', label='EiV', linewidth=2)\n", "plt.fill_between(plot_x, pred_mean-k*pred_std, pred_mean+k*pred_std, color='r', alpha=0.2)\n", "plt.xlabel(r'$\\zeta$')\n", "if ber_net_state:\n", " ber_net.train()\n", "else:\n", " ber_net.eval()\n", "plt.savefig(os.path.join('saved_images','mexican_non_noisy_prediction_std_x_%.3f_std_y_%.3f.pdf' % (std_x, std_y)) )" ] }, { "cell_type": "markdown", "id": "baking-legislature", "metadata": {}, "source": [ "## Coverage\n", "Produces Figure 3 of the preprint (if `std_x` is set to 0.07 in cell [2]) and part of Table 1" ] }, { "cell_type": "code", "execution_count": 14, "id": "de3878d0", "metadata": {}, "outputs": [], "source": [ "## Functions used to compute the RMSE and the coverage\n", "\n", "def inside_uncertainties(predictions, truth, k=1.96):\n", " mean = np.mean(predictions, axis=1).flatten()\n", " std = np.std(predictions, axis=1).flatten()\n", " inside = np.logical_and(truth > mean-k*std, truth < mean+k*std).flatten()\n", " return inside\n", "\n", "def inside_explicit_uncertainties(mean, std, truth, k=1.96):\n", " mean = mean.flatten()\n", " std = std.flatten()\n", " truth = truth.flatten()\n", " inside = np.logical_and(truth > mean-k*std, truth < mean+k*std).flatten()\n", " return inside\n", "\n", "# Use quantiles instead of uncertainties (not used in preprint - for concistency reasons)\n", "def inside_intervals(predictions, truth):\n", " up_quantile = np.quantile(predictions, 0.975, axis=1).flatten()\n", " low_quantile = np.quantile(predictions, 0.025, axis=1).flatten()\n", " inside = np.logical_and(truth > low_quantile, truth < up_quantile).flatten()\n", " return inside\n", "\n", "def compute_mse(predictions, noisy_truth):\n", " pred = np.mean(predictions, axis=1).flatten()\n", " y = noisy_truth.flatten()\n", " assert pred.shape == y.shape\n", " mse = np.mean((pred-y)**2)\n", " return mse\n", "\n", "\n", " " ] }, { "cell_type": "code", "execution_count": 15, "id": "southwest-english", "metadata": { "scrolled": true }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "8365440245794dedadcd5b1221e97286", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/20 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "abef68d623154578b34377db92a29b31", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "9a6aae6c63284cd585172afef38d2886", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "2786699400334384a23050dce515ac97", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "911d1d3855bc499c873d98d77536bc16", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "a5e5710b61394673afd9c64f7e249973", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "94d24947982c4690b893e099c0b3b580", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "4f3ca928cfae4cf2bca14fcc712e3595", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "e96dd712202a44e3bf61ca36ecbf915e", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "684395289f6b4be988be7ae9047fc503", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "abe46b872dab4cf094a3646b6adecfae", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "e5e490fecd704454a761c623430687be", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "7795eff751e24cfab5b1eb151520592c", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "c5d22b18629d40ed9b5add85aca4de5a", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "711dd0806baa45d1a8d96a74b456db0b", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "b28bec3581864e79b4e08e79ac534b41", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "f655d7af203b4c2d98d30cf4944ae7dc", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "f18f1ae342bc457d8d2abf77f0720725", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "888b5761162243158c04ae6bedd8b890", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "51e53f03504a4dd5a46161cfbd6405c0", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "0c17d8ddb5e1443c8563e1a143f5be08", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Collect coverage and RMSE given a seed\n", "def coverage_computation(net, ber_net, seed):\n", " set_seeds(seed)\n", " coverage_x = np.linspace(-1.1,1.1, num=100)\n", " coverage_y = func(coverage_x)[1]\n", " net_train_state = net.training\n", " net_noise_state = net.noise_is_on\n", " ber_net_state = ber_net.training\n", " number_of_repeated_draws = 100#0\n", " net.train()\n", " net.noise_on()\n", " ber_net.train()\n", " inside_map = inside_uncertainties\n", " net_inside_list, ber_net_inside_list = [], []\n", " mse_list, ber_mse_list = [], []\n", " for _ in tqdm(range(number_of_repeated_draws)):\n", " noisy_coverage_x = coverage_x + std_x * np.random.normal(0,1,size=coverage_x.size)\n", " noisy_coverage_y = coverage_y + std_y * np.random.normal(0,1,size=coverage_y.size)\n", " pred, _ = [t.cpu().detach().numpy()\n", " for t in net.predict(torch.tensor(noisy_coverage_x, dtype=torch.float32)[:,None].to(device), number_of_draws=200,\n", " take_average_of_prediction=False)]\n", " ber_pred, _ = [t.cpu().detach().numpy()\n", " for t in ber_net.predict(torch.tensor(noisy_coverage_x, dtype=torch.float32)[:,None].to(device), number_of_draws=200,\n", " take_average_of_prediction=False)]\n", " net_inside_list.append(inside_map(pred, coverage_y))\n", " ber_net_inside_list.append(inside_map(ber_pred, coverage_y))\n", " mse_list.append(compute_mse(pred, noisy_coverage_y))\n", " ber_mse_list.append(compute_mse(ber_pred, noisy_coverage_y))\n", " net_inside = np.mean(np.stack(net_inside_list), axis=0)\n", " ber_net_inside = np.mean(np.stack(ber_net_inside_list), axis=0)\n", " mse = np.mean(np.array(mse_list))\n", " ber_mse = np.mean(np.array(ber_mse_list))\n", " if net_train_state:\n", " net.train()\n", " else:\n", " net.eval()\n", " if net_noise_state:\n", " net.noise_on()\n", " else:\n", " net.noise_off()\n", " if ber_net_state:\n", " ber_net.train()\n", " else:\n", " ber_net.eval()\n", " return coverage_x, coverage_y, net_inside, ber_net_inside, np.sqrt(mse), np.sqrt(ber_mse)\n", "\n", "# Loop over seeds\n", "net_inside_collection, ber_net_inside_collection, rmse_collection, ber_rmse_collection = [], [], [], []\n", "for seed in tqdm(seed_list):\n", " seed_net = Networks.FNNEIV(p=0.5, deming=deming).to(device)\n", " seed_ber_net = Networks.FNNBer(p=0.5, init_std_y=init_std_y).to(device)\n", " ber_saved_file = os.path.join('saved_networks', \n", " 'noneiv_mexican_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_seed_%i.pkl'\n", " % (std_x, std_y, init_std_y, seed))\n", " ber_train_loss, ber_test_loss, ber_stored_std_x, ber_stored_std_y, ber_state_dict\\\n", " = train_and_store.open_stored_training(ber_saved_file, net=seed_ber_net, device=device)\n", " saved_file = os.path.join('saved_networks', 'eiv_mexican_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_deming_scale_%.3f_seed_%i.pkl'% (std_x, std_y, init_std_y, deming, seed))\n", " train_loss, test_loss, stored_std_x, stored_std_y, state_dict\\\n", " = train_and_store.open_stored_training(saved_file, net=seed_net, device=device)\n", " coverage_x, coverage_y, net_inside, ber_net_inside, rmse, ber_rmse = coverage_computation(seed=seed, net=seed_net, ber_net=seed_ber_net)\n", " net_inside_collection.append(net_inside)\n", " ber_net_inside_collection.append(ber_net_inside)\n", " rmse_collection.append(rmse)\n", " ber_rmse_collection.append(ber_rmse)\n" ] }, { "cell_type": "code", "execution_count": 16, "id": "opening-thanks", "metadata": {}, "outputs": [], "source": [ "# Reshape and process results\n", "net_inside_collection = np.stack(net_inside_collection)\n", "rmse_collection = np.stack(rmse_collection)\n", "ber_net_inside_collection= np.stack(ber_net_inside_collection)\n", "number_of_draws = net_inside_collection.shape[0]\n", "net_inside_mean = np.mean(net_inside_collection, axis=0)\n", "net_inside_std = np.std(net_inside_collection, axis=0)/np.sqrt(number_of_draws)\n", "ber_net_inside_mean = np.mean(ber_net_inside_collection, axis=0)\n", "ber_net_inside_std = np.std(ber_net_inside_collection, axis=0)/np.sqrt(number_of_draws)" ] }, { "cell_type": "code", "execution_count": 17, "id": "connected-rwanda", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Coverage plot (Figure 3 in preprint)\n", "plt.plot(coverage_x, net_inside_mean, color='orange', linewidth=2,alpha=0.9)\n", "plt.errorbar(coverage_x, net_inside_mean, net_inside_std, color='r', linewidth=3, alpha=0.9, ecolor='red',fmt='o', linestyle='None')\n", "plt.axhline(0.95, color='b', linestyle='dashed',linewidth=2,alpha=0.9)\n", "plt.plot(coverage_x, ber_net_inside_mean, color='gray',linewidth=2,alpha=0.9)\n", "plt.errorbar(coverage_x, ber_net_inside_mean, ber_net_inside_std, color='k', linewidth=3,alpha=0.9,ecolor='k',fmt='o',linestyle='None')\n", "plt.xlabel(r'$\\zeta$')\n", "plt.ylabel(r'coverage')\n", "plt.savefig(os.path.join('saved_images','mexican_coverage_std_x_%.3f_std_y_%.3f.pdf' % (std_x, std_y)) )" ] }, { "cell_type": "code", "execution_count": 18, "id": "smart-turkey", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "RMSE\n", "===========\n", "EiV: Average 0.353582, Error 0.000571\n", "non-EiV: Average 0.355463, Error 0.000507\n", "\n", "\n", "Coverage\n", "===========\n", "EiV: Average 0.926340, Error 0.000322\n", "non-EiV: Average 0.815800, Error 0.000417\n" ] } ], "source": [ "# Results for Table 1 in preprint\n", "print('RMSE\\n===========')\n", "print('EiV: Average %.6f, Error %.6f' %( np.mean(rmse_collection),\n", " np.std(rmse_collection)/np.sqrt(len(rmse_collection))))\n", "print('non-EiV: Average %.6f, Error %.6f' % (np.mean(ber_rmse_collection), \n", " np.std(ber_rmse_collection)/np.sqrt(len(ber_rmse_collection))))\n", "print('\\n')\n", "\n", "print('Coverage\\n===========')\n", "print('EiV: Average %.6f, Error %.6f' %(net_inside_collection.mean(), \n", " net_inside_collection.mean(axis=1).std()/np.sqrt(net_inside_collection.size)))\n", "print('non-EiV: Average %.6f, Error %.6f' % (ber_net_inside_collection.mean(),\n", " ber_net_inside_collection.mean(axis=1).std()\n", " /np.sqrt(net_inside_collection.size)))\n" ] }, { "cell_type": "markdown", "id": "b489002d", "metadata": {}, "source": [ "# Results for Variational Dropout" ] }, { "cell_type": "code", "execution_count": 19, "id": "a7bd8c98", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "FNN_VD_EIV(\n", " (main): Sequential(\n", " (0): EIVInput()\n", " (1): Linear(in_features=1, out_features=50, bias=True)\n", " (2): LeakyReLU(negative_slope=0.01)\n", " (3): EIVVariationalDropout()\n", " (4): Linear(in_features=50, out_features=100, bias=True)\n", " (5): LeakyReLU(negative_slope=0.01)\n", " (6): EIVVariationalDropout()\n", " (7): Linear(in_features=100, out_features=50, bias=True)\n", " (8): LeakyReLU(negative_slope=0.01)\n", " (9): EIVVariationalDropout()\n", " (10): Linear(in_features=50, out_features=1, bias=True)\n", " )\n", ")" ] }, "execution_count": 19, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Load EiV VD model\n", "vd_net = Networks.FNN_VD_EIV(initial_alpha=0.5, deming=deming)\n", "saved_file = os.path.join('saved_networks',\n", " 'eiv_vd_mexican_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_deming_scale_%.3f_seed_%i.pkl'\\\n", " %(std_x, std_y, init_std_y, deming, single_seed))\n", "train_loss, test_loss, stored_std_x, stored_std_y, state_dict\\\n", " = train_and_store.open_stored_training(saved_file, net=vd_net, device=device)\n", "vd_net.to(device)" ] }, { "cell_type": "code", "execution_count": 20, "id": "4443a7ea", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "tensor(0.0070, dtype=torch.float64, grad_fn=<SoftplusBackward>)" ] }, "execution_count": 20, "metadata": {}, "output_type": "execute_result" } ], "source": [ "vd_net.main[9].alpha()" ] }, { "cell_type": "code", "execution_count": 21, "id": "8d8f11df", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "FNN_VD_Ber(\n", " (main): Sequential(\n", " (0): Linear(in_features=1, out_features=50, bias=True)\n", " (1): LeakyReLU(negative_slope=0.01)\n", " (2): EIVVariationalDropout()\n", " (3): Linear(in_features=50, out_features=100, bias=True)\n", " (4): LeakyReLU(negative_slope=0.01)\n", " (5): EIVVariationalDropout()\n", " (6): Linear(in_features=100, out_features=50, bias=True)\n", " (7): LeakyReLU(negative_slope=0.01)\n", " (8): EIVVariationalDropout()\n", " (9): Linear(in_features=50, out_features=1, bias=True)\n", " )\n", ")" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Load non-EiV VD model\n", "vd_ber_net = Networks.FNN_VD_Ber(initial_alpha=0.5, init_std_y=init_std_y)\n", "vd_ber_saved_file = os.path.join('saved_networks', \n", " 'noneiv_vd_mexican_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_seed_%i.pkl'\n", " % (std_x, std_y, init_std_y, single_seed))\n", "vd_ber_train_loss, ber_test_loss, ber_stored_std_x, ber_stored_std_y, ber_state_dict\\\n", " = train_and_store.open_stored_training(vd_ber_saved_file, net=vd_ber_net, device=device)\n", "vd_ber_net.to(device)" ] }, { "cell_type": "markdown", "id": "8fddd747", "metadata": {}, "source": [ "### VD Predictions for noisy input" ] }, { "cell_type": "code", "execution_count": 22, "id": "6696d9e0", "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAEaCAYAAAAL7cBuAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjMuNCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8QVMy6AAAACXBIWXMAAAsTAAALEwEAmpwYAABy20lEQVR4nO2dd5xcVd3/32fa7myvKZtNIb2ThFBCEZCioAgICAhSBEGUB/VB7AKiPor6AwULiIJSpBfpHQKEmlDSSO9ts73NTj+/P849M3fu3tndlMlukvN+vfa1O3fmzpx7d+753G89QkqJwWAwGAxOPP09AIPBYDAMTIxAGAwGg8EVIxAGg8FgcMUIhMFgMBhcMQJhMBgMBleMQBgMBoPBlZwJhBBirBDidiHEJ0KIhBDi9T7sM0oIIV1+HsjVOA0Gg8Hgji+H7z0FOBl4Fwjs4L7fB+bZHjfsrkEZDAaDoW/kUiCeklL+F0AI8QhQtQP7LpdSvpubYRkMBoOhL+TMxSSlTObqvQ0Gg8GQewZqkPouK26xVQhxkxAi2N8DMhgMhv2NXLqYdoYI8BfgRaANOAb4ITAGONVtByHEZcBlAIWFhQdNnDhxjwzUYDAY9gUWLFjQIKWsdntO7IlmfToGIaU8Zif2vQL4KzBTSvlxT6+dPXu2nD9//k6N0WAwGPZHhBALpJSz3Z4bqC4mO49Yv2f16ygMBoNhP2NvEAjp+G0wGAyGPcDeIBBnWr8X9OsoDAaDYT8jZ0FqIUQBqlAOYBhQIoTQk/2zUsqQEGIVMFdKeYm1z/VAMapIrg34DHAN8JiUcmGuxmowGAyG7uQyi2kQ8LBjm358ALDO+nyv7fllqCrqS4EgsAH4PfDrHI7TYDAYDC7kTCCklOsA0ctrRjkePwCYvksGg8EwANgbYhAGg8Fg6AeMQBgMBoPBFSMQBoPBYHDFCITBYDAYXDECYTAYDAZXjEAYDAaDwRUjEAZDFpJJs6SJYf/GCITB4EIikWDx4sX9PQyDoV8xAmEwuBCPx4lEIv09DIOhXzECYTC4kEwmicfje+SzQqEQW7Zs2SOfZTDsCEYgDAYXEokEiURij3xWJBKho6Njj3yWwbAjGIEwGFxIJpMkEgn2xIqL+rMMhoGGEQiDwQVtQewJgZBSGoEwDEiMQBgMLuxJgTAWhGGgYgTCYHBhT7qYpJSm5sIwIDECYTC4cPvtt/Pqq6/2SSB2dXI3FoRhoGIEwmBwsGnTJq699lp+//vf90kgVq5cSVtbW9bne5v8jQVhGKgYgTAYHDQ2Nu7w63uqmVi5ciWdnZ1Z9/3KV77CK6+8skOfaTDsCYxAGAwOQqFQ6u/eLIhYLEZ7e3uPFkA0Gs0qIDfccAPz5s3jJz/5yc4N1mDIIUYgDAYHXV1dqb97E4iuri66urp6dCPFYrGsAtHU1LRzgzQY9gBGIAwGB3Z3UG/tNrRA9GRBxOPxrALS4/snEpDFNWUw7Al8/T0Ag2GgYQ84R6PRzCcjEcjLg8WLYehQWltb8Xg86Ym+owOKitTfXV2wcSPxeNxdCNauJe5mQSQS8NFH0NAAHg8cfbTaVl8PI0eq16xfD3V1MGyY+jEYcoCxIAwGB62tram/MwQiFlPCAGryXrCA1m3bCAaDxGIxiEZh5cr06yMRsKyLbp1hm5th2TISLS1uA1BiUFUFyaR6n1gM7K9dtgza22Hr1l0+XoMhGzkTCCHEWCHE7UKIT4QQCSHE633cr1QIcZcQolkI0SqEuE8IUZmrcRoMTtqyCUQ4rH4AIhGkx0PDW2+xaNEiJRDW9hTxOMRi7gKxZg0kEsT9/u4DaGgAvx+ESL+nlOnP1nGRwkLjgjLklFxaEFOAk4EV1k9feRA4BrgUuAg4GHhi9w7NYMiO3cWUmvhBTdThsLqbl5JEcTEX3XgjP/vZz3j11VfVxJ1IqB+1M8+8/jq33HJLRmYUnZ2wfTsMGULcLQi+ZYua/EGJRDis3jsUUr/1j8+Xfs5gyAG5FIinpJTDpZRnAUv6soMQYg7wOeBCKeWjUsrHgfOBI4UQx+dwrAZDiqwCEQ4rkbCsikQiwXbrtUuWLFETdTyufgAiEX71r3/x2GOP8ckHH6TfZ8sWNbkLQcIZ3A6FVOwiEFCP/X4V13C+NyjxkDI1HoNhd5MzgZBS7kxp6ElAnZTyDdv7vA+stZ4zGHJOVhdTe7uKCVjbttTXp54qKSlRf9gn8XCYLsu11KhjBfE4rF2LLC5GSkncmd3U0qIC05pAQH2ulMpyice7WwxGIAw5YqBlMU0Elrls/9R6zmDIOS02gciwILRAWJP+R8uXp57q0Hf5iUSGQESt/Zu3b1fb6ushmaSls5NwONxdILZuhWAw/djvVxaFtiBiMbXNjn2MBsNuZKAJRDnQ4rK9GRi9Z4di2F9pz5bm2tEBXm/qjv1jN4GIx5HxBP+5Dxa/UM22RhVofv7VIMkfA1sks8aO5OjZ65RA2F1G8bgKUFfacjI8nnSQOhZLxT9SAWwhjAVhyBkDTSAA3CJuIst2hBCXAZcBjBgxIofDMuwvtLW3p/5OWRDxuJqItUAIwUJbSmu73ieR4Oe/yuPXfwQYhv7afrg8nw9/C1AD1PDjC5JcfPLiTAuirU1ZKHryByUQyWTaMtEuJu1m8npV3MJgyAEDrQ6iGShz2V6Gu2WBlPLvUsrZUsrZ1dXVuRuZYb/BtVBOp6kKobKQPB4Wrl6dep22IP70xEh+/cdCvF740dlrKC5QbTsm1y7mhhtifP+MtQgh+c3dU3jwlREZAiG3b+/uPtKfGYspkXCmy/p8JtXVkDMGmkAswz3WkC02YTDsduwCkapfsE/MXV10JRKs3bIltSnU2cm9D3j57p3TAfjnHUl+c+Fy8v1qv6Glq7n6ilZ+f+lybvn+RgCu+8ehNKXDHciNG9NV2HZ0/EFbC/Ygtd9vBMKQMwaaQDwHDBFCHKk3CCFmo+IPz/XbqAz7FRkuJlthHELQ3tEB0WgqvVWzdUuMi7+ZB8Dvr9nOhecqN1TUijG0dXWRsILfV55dz2WnfEhSeli/LX0JymjU3YIAZUH4fOmAtcbnMy4mQ87IWQxCCFGAKpQD5YwtEUKcaT1+VkoZEkKsAuZKKS8BkFK+I4R4AbhbCPF9IAncCLwlpXw5V2M1GDTxeJywFgUgqv9ubyeaTLJ1yxaKKyqot4kIwKo1HqQUXHnix3z/PAHxAgBilkC0hkIkLYGQUnLCQc9Q3+Lj8TdtLqZsgxJCWRA+XzpgreMUPp+KiSQSysIwGHYjubQgBgEPWz+HAZNtjwdZr/EBzm/1OcBc4E7gbmABcHoOx2kwpHB2XY3rGERHB3GPR6Wt2grkyorKAJCynfPPDvGd419WE3Y8DkIQs96vtasr1Xfp308/zVnXX4fX8x0Kg+kMpNWhoe6D0hlMdgvC1EIY9gC5LJRbJ6UUWX7WWa8ZJaW8yLFfi5TyYillmZSyREr5VSllQ67GaTDYcbbttlsQMZRgyFiM7dZk39k1CYA8fxM3/18DSY9ICYRMJjMtiI4OAH71j38A8Mjc16koSa898fnvTKKxJYsVoAUiGnVvrWFqIQw5YKDFIAyGfqWbQEQiKs20q4uYlMTjcaSUbG9uBiCWGA9AwNeMx5MkLiXS6tdkz1AKx2KEWlpACDptLqxINB38XrfVx+/vGdJ9UB6PciHp1hpuYmAsCEMOMAJhMNhwCkQsEkllMIUjEeLJJMlkklUbW6xXqPrNUCRMPBZDCkHS2ifmeK/6bdvA5yNkE4hwxsQe488PVdPgtCK83pTLCuguBkJ0T38FFbx2ayduMPQRIxAGgw1XF5MWiHAYhEAmk8z9ULmGJo0IEPD5SCSThNrbSVgCQmcnzvv85qYm8PnotC1paheI42bX09nl5ab7Bmfu6BQIy4Lo6Ohg46ZN2WshWlvNehGGXcIIhMFgo5sFEY1CJEIymeSS3/yG3z/1FJu2+1m5UQWpTz60kWKrNff8995jW0sLMpmEjg5ijlhBXSQC+fkZHVyjNnfRd85dB8CtDw7KjEV4vekW4pCyIEKhkCrQyyYQHR0qqG0w7CRGIAwGG90EIhyGUIiNTU288cknPL9wIb9/egpSqk6u08b4KC5QKa1nfetbfO7//k+lq3Z14YwK1MfjJG2dWj32lhrAtLGtfG5OKx0hLzf/x2ZFeDyuFkR7eztx3bzPrRaioyO9yJDBsBMYgTAYbLi6mNrb2WgFpaPxOHc+Vwuo7qyDKypSFoQmYS0a5LQgGltbabDFBJKO52OJBNd9Q7mEbnlwEE2tlhXh86U7xHo8Kaugvb1d9YrKVk3d2WkEwrBLGIEwGGy4Bqnb29nQoDKt44kEkahECCUQQ6qqUhZExnvE490Eorm9na0N2TO247EYc6Z3csKhbbR32qwIexaTVQuRkJJQKKQEQjf0s2c3SakEQnd/NRh2AiMQBoMN6byrj0Sgo4ONGRN7HVLGCAYClJaUUOronxS2qp1jjmyj1o4ONul1ISzs+Uq6Lcd1F63FQ4JbHhhEc5tXCUAspgTC64VYjEgoRNIKiKfGbBeIWEyJhu7jZDDsBEYgDAYbTgsi3tUFySSbbKvH3V/1bVYCYwoKyM/Pp8ThYmq30kvHXXopf7RtbwuFUqvQHQI8BXQCX7eej8ViEIkw59oTWO8fzdjOj/nj/YNg2zb42tfgrruUBfHLXxL8yldYcvXV3P/88+nqb7sgWb2jrDfexbNi2F8xAmHYP5FSrb/gwCkQCSvFdfWmtAXxufBcxqIWSw/4/ZRYFkQhyiJoi0RgxQp8HR0cbnuv1o4OtlgWxHvAF4E84ATr+Vg8DmvW4Kmvpza2gbc5nMa7n6Fj0RoVhP7kE2VBvPQSIpnk8kSCEc88o8bsXDjIXnFtLAjDTmIEwrB/0tICy7p3kO8WpLbuvj9a1sYtwA+Boi4lLKeGw/h8PkoKC8kDVgMvAh2RCDQ2AmDvzdra2cmm7dvJd3zmMPtnWWtMxAsKyCPKTZFv8/Lz1gSvV7SzMRtb/6hwWAnD4sXqb50xZSwIw05iBMKwb1BfD59+qpbs7MuEqP36DrpZEPE4da35eJrr+R/gBsBvTcgTw2ECW7ZQXFDAIGAwcCjQCqm7dj9QmKfagLd1drKlvp6Zjs+stX5H43FYuxaAxhNPpKl8GAFiLHxHZSglOztVXMFGFZZA6EymWEydg5YW5Y6yjcVg2FGMQBj2DdraYMUK+OADeOUV+OijnrN39CptjkByMpHgWeAR63E8FuNPT45iKCr9NOB4m8Arr1BSWJgKNheC6rlkpcX6gMrSUjXEUIitDQ0c7HiPYag1dWOxGAlrGdO32toIlKlPK4i2pI/RIRDVWKKmBSIeV5ZGY6Palq0Nh5SZxXcGgwtGIAz7BlKq1dgGDYKqKqir63kCtBrwsXhx5uZwmJOAM4BiIBaJcefzeQx1NM7Q9cmel1+m2CYQAPH6enUXj7Ig7AJR19TEIY6hBFATfSwWI7piBQDXvfoqXdbiQZUod5UIh1PWgD6yStQaFhkCEQopUQgElBXhVguxdm3KnQUYN5TBFSMQhn0D+521EOqnN4Ho6OhWYCZt7pgxwMbmIuqa63Gu1PAyEPX5EJs2USVEhkDIxkakTSCK8vPJ8/uJxuNsaWjoJhCg3EyJri7yGhqIASuA1dYCQzUB9V5CSjVmlEC1oSyUjrq6tBDohYXa29VvvYaEnbY2WLQobVnE4+qxweDACIRh38DhekHK7tucry8sVJOqzRVlF4ixwKrGCmBzN4HYArRWVAAwpKMjUyCam2nbsAGA4cDjn37KWCsVthwY5zKcWiC4dSselDjEgCVWSuzYkm3p97ZEIwk0WWmsbZs3p1uBd3VBfr46Nl1YZ3cxJRJKDPz+9PmRMm11GAw2jEAY9h0cvY16tSB0jyPbHXbS5moZC2xtCiLEpm4CUQdEamoAqGxuzhAIb2srebYU2sp4nM9bAePZWYZTC/gsUVkKHDh2LE3WBF6a3JB6XcfWFnVoQKv1np32jq26eV9VlTUYb6aLad06ZUEUFWWen3DYNPYzdMMIhGHfQNcCOLf19HqN3c1kmzTHAlLGGTV0VTeBqBeC/HHKFihrbMwQiKKWFvIdPv3DrJRTZ4D6bet3LdBpxUPqy8r47llnqWwowNfZmn79W+p9E0C7FaOI2Ir4CIUyU2HtAtHaCsuXQ2Vluj2HJhJxb/inWbCg5/Np2CcxAmHYN5ByxywI3dvI789YVMdpQUCM2kGrcK7zliwtxTtmDACFdXUZAjHYymCyM9NyXen4w4/z8jgG+Lv1eDiQb1kC/jFjOGTSJDzFxQAU2DKtFryvxpcEOgIqyylm1VwAyiKydYxNCUEkolxLRUVKNJwxGimVgLhh9ZYy7H8YgTDsG+yoBaHbZweDqYwjAOmwIHzeMB6xoZsFERg0CDFqFAB5mzdnCMTw9vZuHzeytRUfaYF4JBJhLhCzRGAwMM6ahAfNnEljYyNFlpsoYIuRNG9Sd/kJIGI1CZRa4Kw+TRkCoVm5UgWu7W1BnALqImyp1xnrYb/ECIRh38BtAutNIDweyMtTPnlrsrQHqcuB6rIWtjVs72ZBFNXUIEaOBCHwbNtG0PbcYJdgry+R4HPAUCDk99NeXg7AjFmzAOViOgAVnB40ZQoFBQXkW6+xU4ESMwnIsjIAPPrO3+/P7MFkZ8OGdFwC1LFr4ZFSiUtHh/s50wJhusLudxiBMOwbOCev3tJctYtJZ/9YcYikTSAKgOqSFmJNTd0K5CpGjsRXUAA1NYhEggl9GOK3rd91gwbx2t//zq8vu4wj58wBYBLqYtySn0/S42HkyJGUDx7c7T0qUBlNCSHwVlYC4NcxFL9fFf452nHg90NJSaZl4Tw/2hXlFqhOJIyLaT/FCIRhnyAei3VbgKc3gYjG46qDKqTqC6QjuBygjQJHrUQXMHzkSPx+P1hupil9GONJ1u+GmhomHXAAp3/mM0TyMzszdQwahM/no6KigimWdWGnJqDiFEkJwrIw8nRwWae0Oi2IsjLlSrPjJqAejyowdGJcTPstRiAM+wR127axdVu6XiBbr6UU8Tir165l3bp1ys3U1ARkupgA2hobXVNch1ZWKoEYMQKgTxaEpuyQdKlcfmUlCduE7hk9mkGDBuHxeJgwbVq3fUcWWBYEAp9Vh1ForZmNz6eO2WlBuKEtJ42UUFoKa9Z0F45kctcEwgS591pyJhBCiMlCiFeEECEhxBYhxA1CiB6/uUKIUUII6fLzQK7Gadg3SMRibNqyRbWdgD4JRBJrDQZboLpxe+ZEFmprcxWIoqIihBAwfDiwYwJRbLmVBDBk6FBCgbQDS4waRZUVKygcNKjbvlVCCVkCQaxYuaAKo1ESegIfNizVpC8cDtPuEjBXH+RiQWiBsafN2tnZGMTGjapVuWGvIycCIYQoR3UjkMCpqCaYVwO/6ONbfB+YY/v5WQ6GadhHeOKJJ5hz+eW8t2QJjTrlU4ie71oTCaQQamL1+5XvPRTizbmZk2YepAQipifeggIKdDaQZUGM7GF8XV4vTJoEwMoTTyRgTfzFxcUMGjSILpubKVZbS6F+b8dCRAD5EZ3FJHh/k0rELYnHSerJ3rb8aWdnJy22FN4MhMispNYUF6seTU7rYlewr01h2KvIlQXxTSAIfFlK+ZKU8jaUOPyvEKKkD/svl1K+a/tZlaNxGvYBXnzxRbY0NHDna6+xYeNG5W7RKZ9Ll7rvFI+TlDI9sXo8yK3beMshEAWkBSI5fToAQ2fNokhP3pYF0dOFFBcCfvELun7yE7Z9/vPKNQUMGzaMgoICioeqT0gKQfGUKXh0MNnrJeRIWQ1aGVJJ4L8fKdEpTSYz6jc0G7ZtI5KtfYZ2a+mJWz8OBlVWl7Mmwkzw+yW5EoiTgBeklPYlux5AicbROfpMw36Kdit9snYtHyxdSmtra3qFtZaWbi29AWVBQDqwXVrK2083UV+XaXUEsVkQn/882//8Z9adeCL5+q5/yBBlgfRAQggYPZr800+nvKICn+P1wepqALqqqqgckplQGw5k5k8FLUFLIFi0bgRNqFXsEo4J/aV332XWhRfyl8ceyz4wKTNTXTV5ebB+ffbX7ijOeIdhryFXAjERyFiuS0q5AQhZz/XGXUKIhBBiqxDiJiFEsPddDPsrcZsr6f7XXmPDhg1IHYOIRNzbXcfjSCHSFoTfz13PDsZLpkDYLQhPdTXygAPw5uWlrAC8XuX3d9Bi+ztm3Z0LIRg3bhxBR+YSVj1DpLaWImv50tQwna+1kAKgHF3iJx1FbotWKaN79ebNrvuncAs+l5TAli2mN5MhZwJRTuY1omm2nstGBPgLcAlwHHA7cAXK+nBFCHGZEGK+EGJ+fbbgmmGfxi4Qby1axMfLl9OuV1eLRl0FouGll3j44YdpsoK44YjgkXlDuwmE3YLwDB6Mx+slEAiQZ60SB6TcTHZs7fMyspQy9tNY2UieceNU4NuGdIlDAAgPQGFKIGKO736T1Sywy00cU28i3C0DIVSQf8sWaxC7YD1ojAWxV+LL4Xu7fSNElu1qBym3AlfaNr0uhKgD/iqEmCGl/Nhln79jtbSZPXu2+Rbuh2iBqCopoaGtjftfe41DJk2iZPjw9Apr9oygjz6i6te/5tfA4du2ccIxx/Dc26W0dvoYWdkBttZGdgvCO2gQIh4nEAjg89kuHStQbWcbqvgNMgXClTPOIBGJUHjeed2eEiUl4GIFSA+MrYnQsDEAROmsq6PC9nyzJXxdPbXw7mniLytTKa8jewq/7wBGIPZKcmVBNANlLttLcbcsekKv/ti9ashgIC0QXzv+eLweDy/Nn8/i1atJ6MCtM5Pnww9Tfy5YvhyA+19Qhu3ssZmumkGoZUQTfj++khI8Hg+FhYWZd/o2C0JXYnxqew9PLzEKamrwfv/7+Ic6E2ohYLmfnEjg3M810YCySMJWgZuUktbWVpotC6KzJwsC0i4mp4j5fEpcdWzDTPD7JbkSiGU4Yg1CiOGoa22Z6x7ZkY7fBkMGuhp6VE0NJ86eTVJK7n/ttXTjvba2zB1sQetoPE5bh+CpN8sAmDEh0+8+xvodLy1FeDwIj6dbnMBuQczz+5kD/ND2dHlFBTuMVR2db7XTcJIUgnOPq6cB5YIKb1fOpmg0Sl1dHe2trZwJ5PcWR3ALUmt0KmxPr+kLvVlQhgFLrgTiOeBzQohi27azUV0K5u7ge51p/V6wOwZm2PfQFkRJSQnfPO00AJ55/30iXV1qcgqHM4vCHFlNj79WQjji4cgZ7ZQVZ8YgRuvPsNpaFBUVMXjIEFX8pe/ObQJRVFTEu0CH7T2yWhChkOqgun175vZoVBXuhULkZREXCUwq3kS7TwnE9rVKCDZs20ZrezsHbtrEw8Cl2eogUm/Uy6S/u1psGAtkryRXMYjbgKuAx4QQN6Kus+uBm+ypr0KIVcBcKeUl1uPrUWvFz0MtufsZ4BrgMSnlwhyN1bCXowXC7/NxzGGHURQM0tHVRXsoRKHuQRQOpwvPHALxwIvqLv3czzUj2zInRC0QSWui9vt8+H0+ldoaCqnlPQcNUqmhkQgeX/dLSmZrfbFxo8qCKi3N3B6LQXU1tLUhnNaKHo8QcMABiNIgNELH1i62NjQw/owzKCko4DpLlKpiMaSU3YLf6TdyaZPufL6vRKMQcLY1NOzN5MSCkFI2o7KQvMBTqCK5m4HrHC/1Wa/RLEPVSdwFPAt8Ffi99duwL5NM9twaowe0QPi8XoqLi6n2+SgFwpFIeoKz++IdAvHy+6V4vZKzjm/u1n5CC0RGq2wplY/eVmSnU139LhOk1y1zCZTIuIlHLKY+r6Yma18lKQTU1lIyRKXBets7eW+xSm1tC4UIWsdbmEiowsFs9HRnr9tx9CWLSUpYsmTnPscwYMlZFpOUcinw2V5eM8rx+AF6SGk17MO0tip3y+jRvb/WQcqC8PsR0SivhkL4gE7tfxdCtfPW/nxHZk884eHzh7dSXR5nlUMgtI9UWMVsRCJKEHTfIs2IEbBmDT6XxXp8brUM8bi623brOBuPq5XfRoxQlokLSQCvl4JBxbAEKmnl+WXV6XFbx1iUTJKUkqxN0JyV1HbcVp3LRk8N+UwMYq/FdHM1DAx2Yc0Bu0Dw9NOMSiSoBaJtbWpSy8vLbB3hUll97omqCV42l4qorlbj27BB/S4uVn2P9HtZmUw+647faxcKF7cTsZiyINwmTz3mgoIMy6XT9lopBHi9eK3YSBXtvDo//Vr9V7GUJHqauN36Mdmf1wLRFwtiZy0Vw4DFCIRhYNDbBNMDKYEAuPvu1PaIzl4KBDIzmRyurPxAgtOOaVHDyLKGREogvF71OxhUcQK9FsOBBwLQaaWlltoL3NxqCbRA6PWhnROodlWVpFuXddiERgtEnmUVVRHinUVpS0XbEiVAKFuqa2+uI4+n76JtBGCfxAiEYWCwC2sO6DTXYUuWZBSVxUMhNXEFAqpYTk9iDgviuNlbKClSny2zjMEzaJC6m9bLegaDymWlxeboo+GRR1hy0EEAlBYVEbvpJvjSl+Cb3+z+hjqgqwPezolYC4QtgN1lczclLYEIVlSQAMqJIhJp15m2IEqBDi1ibvS0lKg9zbUv2U49vZcRkL0SIxCGgcGuWBBW1fCoV17J3K4nRn2Hru+kbTEIAZxw6Mr0TqlmeJl4Bw9OC0Qsptw/9gwjIWDoUIqKVdSirLAQ78SJcMUVrm27kVLt4/Op93JaLi4CEbXFMqTVDqO8tDRV+F1hKwG3WxCdjhXxMsbcmwXR06p8zuPJ9v8zMYi9FiMQhoFBMtn3ychBPB7nBKB440aorGSltSZC3FkkZglE1BaP8AHTxqzNHAfWGg56k8ejVm9LJtOBZb9fWRFeb8bEOMxq6VFbVYWnLymfwaD60RaEDl7rz7cJRNwmNNKadMtKS1P9mIZ4lEAUWD+pw3Y08gOIRCKq621vQWo9rt6sCGMh7JMYgTAMDHbBxRRPJPiRfnDuuXRaNQBJu+9dF8wBocb0nbYfCHXZJlBLpLpsQeZ4SQlCxx4CATVOHWAuK0tbJFJy/MEH8+/vfperzzgjvXhPtskzEFDB6Ly8TIGwLfpjFwhZnK471QJRXlGREojDR2wC0u4lTZe1nKqd1tZWmpub+xak7svk39v/zwjIXokRCMPAIB7f6UlkSijEZ4FEMAhnnpla+S2hYxCgXDmW5ZDoSNc5+yHVtwjSMQi7BaGrqJEyHVTW1dHl5Rk1Fl6fj1MPO4zaioq0a2nzZhUD0ejitEBAWQ92F1MslumSCgRSguGxBaxTFkR5uuX3wTUq/pJOdlVEXSyIlpYWVR/Rm4upr6KtXUxGCPYpjEAYBgY76V4C+LwVa2j+7GehqIiYNXlLe71DXl4qk6mzMe168gMt9nWbrXFEbBZE0t7uQtdAaIEoKemWFeUPBCjOz09P9IFAOtsJ1Ot1/CIvL22V6OfsAuHzpR57beNwE4hxJaplh1MgYo7FhKSUvPPJJ6pOxFpVb5vV7C+D3pZttdObkBjh2CsxAmEYGCQSO+1iKtCB5dpaAOJ68o5E0hOTLdW1oyF9x+/DIRDW68P2CmZ7wzx75hGou3v78p1eLwXBIIMqK9OuIo9HWR52K0ELRDCYuSJdMpnpYrIJhL1xnxYIf2EhrdZYPW3NHAcc7jg/cYdAPDdvHhfdeCO/feIJSCRIJBIqHuHEWUndWwyipyC1EYi9klyuB2Ew9J1daArntfb1WGmgCbtApF6kYgjJcJRoe1og/ECriwURttUcCHubjWBQ3fXb13CG9ASYl6eqtnV6rZ4chw6F+noVs4hGVaFde3tacOzYg9s6ywkI2ta00AKB308oLw9CISo2buRll/Mj7e4t4Pm33wZga1NT6rwnk0mSyWR6PWxQwua2XKsbu5CFZhi4GAvCMDDYBQvCZ+2nex4lrQlWRKPd7lzffDVGnq1eYBTQ4owPAGH7RFltc9oUFKRFAZTwFBeriVRKNanm5anjsQvEsGHpyTaRUBaEtkTsn6WFxf7+s2dDWRmFM2agnWNS7xMIELbSX6ttwXc7SbsAAu8sVH0vu2IxSCR49PHHeX/lShLO878jldQ9Bbv7sr9hQGIEwjAw6Gu2jAt+az+nQDh7LgHcc5+HAtLbn0U1t8sYBxCxWxD6zl0Hlp0dVu2ZTB6PEhC7QIAKZufnK/eSbqXh97s37LMLhMcD554LDz1EcMSI1GpbKQsiECBmuaAKHMfbaV3ewlYHEY3FWGitVx2ORtm+fTvnfv3rXPTXv6bX504duNg9dRCGvRYjEIaBwS4IhE8LhHUnnbSEwqMnY4uuuJ+Hn8yjgLTbpAhoD4WQ+nXWJBfXcQOsKmr9fEFBRvsLINOCABUz0JO/x5P+qapKZzzl5cGYMWpfbQ3o4jl7TMJmXQivl07rcUogvF6SVvprgWMyX221GvTaBHD+0qVErcBzOBYjbKsVSTjFQBfK9bWS2lgJ+xxGIHaVWEwt7r4LWTgGdqkOQlsQPksYpHUH7nVkFz35wVDaOjwUkulXb+/sTLfE1j55j0fd8WOrog4ElCXgXIM6GMxculPHKbQwaGuksFB9X7Qloi0HLQK6x5O9aM0RE+i03ivlYvJ6kU7Bslhp5TN5bWm4byxYgADOA8rDYQI266VbSw578L0vQeqeWnYY8dgrMQKxq3R0wDvvwPLlKghpLoSdYxcE1udwMemJ3edI0bzn5aGApIDM7cXt7SmBENY4pBDwla+QOOUUtVa0Fgg3dNBaWwCFhZmpqnoSLihQFkRBQebEr593prhC5uuEIKKtC5sF4dd1Gg5Wo7K6ArZA89sLF/It4F7gqvZ2SCYpxCXdV9NX15Gpg9gnMVlMu4qU6oJftw62bYMjjsjaw9/QAztZKJdMJtHTttATuL7zt4nO9iYfz79XRpEnBEm19u3aigomNzUxsr2dRCKB3+9PuZqkEPC1r+HVaayJRGZw2o79/61dRPqu3uaqIhBIZzDZ0SLQk0BY4hPLz4fOTlXZDaphX1kZUcApX6uxFjGKpAViwZIl/NH6uzKZJBkK0QLUAZsd2U4p+iIQvYmDEY69EmNB7Cq6KraqSqU3GlfTzrGTQc54PJ6aGHWaq7Amcr9NdB54sZxEQnDKgRsBCAHNVnbS+K6utAVh/dbttFMTWyKRXfjt2Uoej3JDjRplDcomENrt5BQI/VnRaM8WhM9HXIuUzcVUXlycKpbLODfVKj3XE1LHtGHrVuY0N6dWyctLJhGNjfiAYUCbS8U10HcLwgjEPocRiF1FSmKJhLrA/f7MdL/16/fNC6On9tE7yy4sFpSyICz3S0ogbGJ99zPWutOHrwOUQEStRX4mR6PpFE/tYtITe18EQghlReqYh9ebtjacFoRbFhSklzB1rj5ntyC83sziO+uzyoqKXAVi3BQ13kBUHdPc+fP5vu35/GSSuO37Gd661f34+tLyu6d0WNPNda/FCMQu0tbayuJFi9ItlfUk0dEBy5apYqh9iWhUxVt2NzsZpI7H4+icH+1i8tgFQko+XZvPgk8LKS2Kc8LkLYASCN/YsQBMTyaJW/83YXcx2Vdcc5u87RQVqXPjXHJUt/QGdQNRVOQuNFognHEOR6wiz1qQyK/fw+ul3CEQzcEgq/7nf5gxW71XUTLOxm1+tr32GodhLVcKBIG4LT6RsK2lkUFf/i+9Wc774o3SfoARiF0kEY/T0d7OmjVrWL58OXHtx21pUT8Nbvd2ezFSQlfX7s9538k0V7sFodNDPdZddsAa4z3Pqh5GZx3fTL5PWSohIG/kSFqBGqBjk+qEqo9L2rOP9Pae2ncXF7vWXWRYEKDcT9kEwlkkp/fXeL1Mv+ACVg8bxvCzz05tKysszBCIeePG0TVrFuVDygAoIcZ9z1cwa8ECAFZawlgIROzW4LZt7se2O2IQPbF5M1i1GYaBhRGIXWDjxo3M/tznuOLuu9m6fTsdkQgJ7cfdvFnFJfTE40ZbW0Yn0L2GWKxbg7pdZicnGDeB8FoWRCCZJJmQ3Pusci997eSm1J1uCCgrLmaJJQLRxYvVe9hdTM5upm5rS2uKipSbrCcLAmDy5MxeS/ax+3zdBcIuLj4fBWPG4L3xRoLTp6ttHg/lJSW2pYJUq5H8/HwCVnZTKXFee7yOYzs7iQBNJ58MqDUjumzfv0CWSmw2bGD9u++ma0Xc2EkXIQBNTepmyjDgMAKxC3wwdy7f27CBz2/axOd/+EMu+dvfiDU0qEmmpUX18u/szGz1bGfr1ux3bQMVKdVksDsFYhdSJOORSFogrInYZ/n485JJ5i6tZmNdgJFDIxw5oyM14YeAkpISVliTtVixIj0W0iu2ZYypJ4HQqa5Of7vTgsj2Hj6feg9nVbXHkxkAFwKfoz1HWVlZhgWRzM9nzJgxBEtKiANBJGds/gUe4MmCAvKsAHoB0GWzIIJuDfsAjj+ekTfemNkd10lv60oY9kqMQOwClR9+yJXAH4AIcPm6daxfvTo1eSaSSXUhZ3MzxWLg1mbZye6ekHeVXAnEzgwlHO5mQfisTKA8KbnnzZEAnH9Sk5rv9aJBQHFhIeutdNS8NWuAdBYTziA1dJ+87ejWGU6cFkQ2/H53y0ILVTKZGk/A70fYJt3yysoMgZCBAB6Ph8JgED3lX8wzALw1cSLFVvZWAdBla8NR4hYvs8cWemrct6vtvk2MYkCSM4EQQkwWQrwihAgJIbYIIW4QQvRwhaX2KxVC3CWEaBZCtAoh7hNCVPa2X39g73HjB64Akhs3QihEPJHg008/VctErlnjHsSLxaCxsbt5LmWqNTUAa9fCwoUD4yKSUo27r10++4KjinlHiLkJhGVB5CeTPPKeylT62snKfRKzJsGwEATy8thitdAuccQgktrFtCMWhLPxHmRWUveEra2363M6iwkoKipKrX0NUFRSQpNNMKQV4yjIz0d/i/wkeQ4onDCZsqoqYqgiqIhNFMqdS7RCpgu0tyymXUlzHQjfbUM3ciIQQohy4GVAAqcCNwBXA7/ow+4PAscAlwIXAQcDT+RgmLuMdIkfhNvaoL2dp955hxfeeYfOaFQFL+vru79BIqEuQOedW1cXfPSRek5KFcfYskWJyUAgkXAPyO4sjj5IO0KGi8kSiIBePwGY0PUxh0zpZMIoNV49IUY9HrxC0D5oEB1AcWsrLFuWroPQE3tfBcKe2mpnRyyIbALh96tzbglEQTBIsU0gRCBAly3DSveislsQoCzdRPJwgsFgakGkuO27V+X2P7W5oEK2G6Ju5KpRX0eHuiFpbVXXQ18/Jx53j+91dOz6zc1+JGa5siC+icqi+7KU8iUp5W0ocfhfIYR74xhACDEH+BxwoZTyUSnl48D5wJFCiONzNNadx7qgXho8mDXW5BRqaqJl82Y8v/41Y26/nbXr1qmq2lWrun+xIhF18TsLlEIh5XraskV9ocNhqKiARYt2LRi4O9DHsDtrIXSx4U4QD4dJ5QRZE3Gex4N2gL3LYVx8/MbU66PWhBj3+fB4PJSWlHCbfvJ3v8t0MdnTXPsy0RcVdbcgvN6eXVOavLzuBXT249JtPLRVYz9fgQBRu7hYYpEXCKQsiI+BV6lg/orPEgwGU+3M47ZJvziRUDEzG9L2f0729N3rrS34zvZxWr5cXQtz58Jrr8GLL8KCBb1P0mvWKKtbE4up93r1VXVdZYu39IUNG9QY3CyufYxcCcRJwAtSSpufhAdQonF0L/vVSSnf0BuklO8Da63nBhQ6aJf0emm0LtCGNWv4+O67ORU4DVj6wAPK5G9vzxSC7dtpWrOGdr+/e6C6rU1NFqtXq4vD61UXfTSqvpz9jZS7VyD0xb4zQWprHDFITZr5trtML0m+WvFc6nHUShiIW5N2eUkJNwCteXmwcCGT165VQ9HVzaAmP5+vdxFzm+C93u6i4UZNDdgWBMpAWxBapJyC6veTsAmEdjEJIdhsHcPvATiceYvH0B4KELW2JxyCkNyyJeOxff1uT0//n57u7HdE/NvbYf789ONYTN0UBQLq/FRXw/btvdcXdXam42Tbt8Obb6p2OIGAuqaWLOm+TzyuRMWeVCKleq3dTVxfr67Zt97qfnO3j5GrXkwTgVftG6SUG4QQIeu5p3rYb5nL9k+t53Y7ixfDmWeq69jnS9/w6b/9/vSywfonL0/9HPhxlGOAus4SmsrHcnDLG0QXb6BzZfoiG/3ue4RCXRQWFKgvWUUFhMM0vfACbz/xBOPPOEM1ZY7F0kHOpiZ1N9rRoaqxdeVteTmsWAFDhmQGNJNJVZQ3dqy6MIqL04VXXi8sXaq+6GVlypqxT2SbN6vFbHqjqUmNXWfT7M67Jz3h6Qlo9WoYPbpPE0vSuphjQqQK5vJQgqEfl8x/Db7wGSB9xxy3rIHSwkLagf+MHcsVS5ZQbB1XqpI6mey5itqObvttp68C0dOx2l1d+v9qJxDIaEEubO6mXxcV8e/WVl4AhlVNZnODj7uerOR0nw8iEZIOoZevvQbjxqUex9vb05NETyKwu3oxRSKZVnI83t1q9vnUJK+PWb+3/Rzq4/rwQzWZl5aqn5YWZZG7WYMNDSret2ULzJihrrOGBnUNCqHe58ADlShUV6tr9r334NBD1bXZA1Kqy7mpCRpXNdPY4qU5UUJHh7pk7T+hkBpiNJr+iUTUb2uNJ+Lx7r+ffx4OOKBvp7mv5EogyiG1tomdZuu5ndlvtMt2hBCXAZcBjHC2Ye4DnZ07Xxj8M2vhmfWtFbzSei7n8gZTW+uosbqFxoDD2tuYcmwpzRUTqa0IMWJijBHFrRz24u/4Sv1inpi/gkH/7w+UtbenJ+DmZvVl9njU31b1bEqxFi6EqVOVcCQSyqrQB7F8OQwfDrW16s5n3Dh15xQMqlhGMgkzZ6ovv5RKIIYMyXSDNDUpK0b3E4rF1IVToQrO8PtzY0GAGl9DA4wcqcbUi0gkrGB+xhSS9JORY/XGG+oK8vlSd8x6WdIySyxfKCnhihkz4OOP1T72IHVPnVztlJV1z+7y+fomED3htCB0y3BNIEB+cTFdKBNd2JZB7Swo4AXLnXLyIaXc8Szc+tAgvui12oY7/PSe+++Hr341dVMSt90IyJ6qpbO5n2IxeOIJVROUDbuLyetNn0OdUh2PZx5vSYn6zo8Zo87t0qXqvEyYkHrJpy+9xKCaGirHjIHBg20H6HGvVwF1A1dZifR6Wfyvf7Fx2TImHnkkoydOhGCQllWrWPmPfzB6zhwqZ80Cr5dIOMz7V11Fa2MbnfECQuEAbSEv9SFBfaeH+k5BY0jSHJZ0SkkXUdpZSQczCeDl89QRIcAK8liPJMkFwLHZz1UP5KKkKpfdXN1uGUSW7Tu9n5Ty78DfAWbPnr3DPorp0+HTT90VWf/YlVz/dHVByR9isAYqyyJMP+Z4Ik/ANGutgQ0IXqKES2jl2uRVnNPwGlsbyvhgBcBgEqjCrNM2LMZ/1mcYUevhwGlhDpwc47MNGzjgoHKGzRmJaG4m8YMfEDntNArOOENNQtq81esa6wrctWuVq6KpSb2msFDFLfLz03dbsZjyn86YoV6rU1btAtHRoS6WESPUwW7alL4z1v5vfZL6EoDtDfudqT7pDQ3qG69FKtuuNgtCj++ZD4bzJfuLWluVqM6aRcIStqRDINrDYfjBD0ied55ypWgzUgtEXywItx5LZWXZu8D2Fe1W0n9rsdB4vVSUlPAqMB6Il5aq7a2tFFj/H6/Hw5c/E+Clj8Ks3ZxPR7G1LKs1q6wEtgnBUe3t8OCDcMklgOoUoEn0lNqczU14883wwx+qSfqcc3reF9KJG9u3Q2Vl+vvgTBaIRpU1UFGhkjf0MQPLHnuMSb/4BWuF4IEzz+T8b32LUuv/3NrRwfzXXuPoL34xc/Jra+ODJ59k/ZNPMmLlSg6Kx5kGbP/3v3l2xAgqm5qY0dHBwcCbDz7MJ+fegvjvLZzUsJCj6MGyysp73bZEgH9NaEB+91jy8zO9FvpH11M6PR0+3+63HiB3AtEMlLlsL8XdQrDvV+2yvayX/XaaYBAm7qTz6o63R/DjNTBkop9bftbKJy8VcqB1h7o2mM/6Iw6m4+WXOZu5TPzyN2j//PfYtCLM+lA1H99RyqyYurM7R/yIezf9iTWb4KPntvJTLqfh31UMKV3Hfwpv5rgtn1Lw6aeE160j/3vfU3f8sZiaNKqq0hO2lOqbUmnLCs7Pz8zP9/vVPosWqdfpqmh7n6HOTmW5tLaq925uVhep08UQi+0egejshLvvhqOPTgtWNNqnQKL2kcetCVN2hfnr89M52fnCuXNh1iykdiFZFkGpNam3h0LER4/mjSlTOHrxYraVlaUtiHh851u493Tn3FcCgUwXk3MStvoxfRHwAg/q/2U8TqElTuOGD6eipJD/Oaeeq28eTmNEvUZYcTQJXC8lrwD85z9qMi8sJG63GnpyMSUS7nflr1qeZme9j5Rqgi8vzzyeWEwJxNq1RPPz2bh+PQ/99798ZeZMxtjXBg8EVKFpWZm6W7MJRN3bbzMROEBKzn34YS558UWOOP98Tj36aBbdcAOnLl7Mbc8+yzeXpb3ZTe+/z/gbb+Rg63EU2OLzMTwe52Qr7qeP/rBQB5P++XX0f3Y9fl5nDH5vjIAnRr4nRqEnSaFIUCgS5JMgSJK8ZIJKh2u2JRBgW0EBQ8JhysJhTvjSJEZ/M/tp3tPkSiCW4YgZCCGGo9q/uMUY7Psd5bJ9IgMw1fXIn/yEUE0NE6NRiMdpGjcu5aJoqKzk7Esu4Zq33uJv4TATHr+T+sMnceQ5x8Bjt5OMpSe/n/pv5/t3Xcqi1UWUP/4PfB8lGEIdY1sXUNv6Qup1+fffz8evN1L/3d9y7NF+fHrOmjtXxSYuvbT7IN1cI3pSD4fdi97a29V+27erCU47Pp1+5lhs1++OAW68Ee6/X/189avpwGQfGh0mLRHRFsS7HwZYsKyEbve6r78O3/1u5pKfpC2Its5OOjo6eHbGDE5ZvJhvDxqUnvCSyZ4b9eUaHSDXLianq8cSCIAE4Nf/XykpsI5z2qhRlJaW8vUvNXLtbTU0dan/m8cmEK8CHePGUbRyJTz0EFx8caqJIfTiYsr2XLYMrrY2ldl38MGZ23VwORpl3JQp1G/axGnAg1VVPHbbbRwwcqQqEiwuTsfPtMVpWbftVlfaBFAB3NfaygV/+QsPv/Yaby9dCsA37X7lWIxlf/sbhwNrvV7WnnI628Zczrylo8ifexMjQh+xgIN5ju/wGMdyFBupAt7NG8yCg85h5ukncM7RNeQNHwotLSRbWhBCqO7Czlt9r5etL7xAUXk5xRUVlFVXU1ZTo465vp7RtbXZz3E/kCuBeA64RghRLKXUV/nZqHVa5vay38+FEEdKKd8CEELMRsUfnuthv35h0qRJJGfOxNPZCQ0NFE+cmBKIxIgRTBk3jpOvu477rr2W82Ix4j/5Ca3nnEPp3XfjAa5DFddNjEZY+tJNnHfRRTTf/u/U+98/62eM+LCBDuBM4H5gxtYX4Ycv8qf877DtKz/gopPqmHD11WqHOXNUbKKvZBOIzk7lngqF1IWv3UnOO8gdzSfXvnOn1fHRR+m/7b69Dqs1RjYffjiMtEQkYQnEnx5ThXFxm1dSlpcjNm9WwW+7QAiRsiBCkQj19fUkk0lCgEenuYIaQ38uAmXPoNIt5R0upjJbFpPfdn5Lre0TR4ygvLycsuIEF32xkc6HrUWVrP+hlv3FRx3FYStXwr33wtlnZ1gQoqdAs05ecL6mp/iLPTVW76fXVIlGOWnTJn4MjATea2jgm9dfz59++EPGjBlDIBBQ52H79nTcorMTioro3L4dgI+HDGHizJkUPvccDwLXLF2akbyQor4e3n0XgCfLDuXXc/9D/RP6VX+lpDDOsbPbuGFWA+M6LiBx143Un3QSE668kkOKi/G0tcFUFadgyJBeU0OHTp6sXGPTpmU+McDEAXKX5nobyqX2mBDieCuQfD1wkz31VQixSgjxT/1YSvkO8AJwtxDiy0KI04D7gLeklC/naKy7xKCqKqqHDIEDD2T8qaemVjsumzkTgMNmzMBz5ZUs83g4IBql9O67Afg28EsheGmkagUx+V//QhxzDBW2lsu1H74OwLtCcMiFl3BcfhH6vuc74T9x+N2f4dpzP0y9/tN5Kj0wmUwSi8XY1tDA82+9RcwtgOjzqTv0ZDIz910XweXlpS0H/aPjHZodbbexYYN7axG72a0FKx5X4+ipIK+jg4PuuQeAkbEYm+r8PPLWYLxeSdyTnkBjhx2m/pg7F481IXosi6DMEojOcJiGxsbUhOixZx9p111/oQPmOvXWRSDKbfGPgM1q/Nk553DxSSdx1NSpBK3Mt/85ezsh1PF7Iuq7of+ryyorkdOmKffeQw+RsE3wvQap3RIK+iIQdjo71fvEYtyGEgeAQ4FvLF7Mnx54gCVLlqQbB9bXp607K2FBWmnj8fJyCq+6ivDllwMq1dcpDq0tktv/0Mb4LWqf2xu/R32znymju7juWsm8R7bS+NCrPHHjSq44cQ1Dbrwa7xNPMOS66yivrMTT2qoSQXbEkj7ggN3jetwD5EQgpJTNwHEol+hTqCK5m1E3zXZ81mvsnIOyMu4E7gYWAKfnYpy7g+qqKqqqqqC2lpLRo3lmyhQeLytj9pe+BMkklZWVHP+5z7Hum9+kE2X2/qiigo4TT+Tv3/sec379ax4LBlkC6Knw334/baT/OaurqvjioQfxf9f9lGuPOIJvlpfTBJzCau4n7VZ64B+Lufr/VfPva3/D688+y91nnknNd7/LvNdf7z7wQCDdzsO+UIy2Cjye9ASdTKoJwKoRANRFrCP2faW+3j091r7NniEQi/UsEI2NBG0tSf72UCWJpIczzhD4bJNVnQ4yzZ2bcqnojq/agugIh0kmEkSs51MWhH6f/hQIu1hlsyDsAmEb68ETJvCdM88kPy+PoDWRThgVIb9ETZVx69Rrgdja1ETX176mHtx7L9J28yB7yvnPZl3YXUzO12iBsH+HurrA63XtUnAWMPKZZ3jx/fcJh8PqHHR0qMk5GEzVE/mt3mceK1Mv/9JLCV93HTGHWH33uzC0Bu65eQFVJFmFhzknHcT7f/mARUs8XP8LweEnFOITCRUInzZNxUx0HCgSUdfRjmZPjhgBQ4fu2D79RM6+9VLKpcBne3nNKJdtLcDF1s/Ax36x+v2c/uc/0xSLUVZQAJs24amuprqqiuMvuICN48axZcMGvjptGqWlpZSUlFBWVsbIV1+lrq6ODaEQ4a1bOaS6mte+/nVOte78E9OmMX36dLw+H0fOmUMkEmHBq69Sc9NNTLHdxV8i3+Te+7/Kxczj6Vde4QcxFcB99pFH4PjjreEm1eSnBUII9butTWU62VdF6+pSF68O1Nr77Xg86i6zra27qZztPDU3u7eTsE8GWhh0oLongXC0L7n9cVVodtVV4Hk0vX1TTQ21eXmIpUupsO6udTuOYCCA3+cjGoshhaDDmhBTAmFPv+wvtB9br3fdQwwCIN+xRrbX66W4qAifTTiG1nphKQhrbtbOww9XrqTjy1+mYMoUWLKEUnvRmqOIDlAZc/r/tyMWhM4O0xNtURFIiYzFiCSTeCORjLv9VWVlHNDayo+l5H/uuYfWU08lWFiovlNVVaouqKEB2tspsG4agqNGqYSOlhbyTzmFD556ioM/TFvcf/oTgOCCor9DB3xcXc3fr1iM94gjIN86h8XFKgA+aJDK+gN17eiOzbNm9e/NQ44x3Vx3FbuPfORI6OykoqxM+SUnTFATqJT4fD4OOOoojjjvPKZPn87IkSMpLylBSInf76e2tpZx48cz7eijmTR5Mm0zZgAQBsYefzz5+fn4fT6KioqorKzkhLPOovS++3hjwgTmTZjAEp+PEST4CfMAOCKWvrPuqG9CJhJsuOUWlvznPyQSCTXR6MnX71cBP8gUCHtTPmcMQgi1f1NT+mLvic5O9fodsSC83m6tH1JEo92C2I1tfg6aHuXww8Frm6xEMEjIWj+hxDqeQFEReL0IIZhkpdI+Pm8eYWssQre10AwEFxOkhaoHC8IuBEiJ1+ej3FHIVT1ETb8FMtPFtGDFClpaW1X+N+BvakrvFAp1/3+sW6fSoLOludrHaX9Of2eSSfU9s4S7va2N9Zs2EXN8zsryckJXXgnAr8JhXnnrLXWzoavPPR71fitXUmp9r0tHj1Zp0uEwTa1eljRm3rWf9qUkn/x1HiclPgCga8Z0vIMGpet99PjnzFFFqPpYgsF0nM5eY7EPYgRiVyksTFcmV1SoCuCtW5VfdPx49QWtq+vur4/HlUlcV6cmWfvkm0xy8Ne/znLgyZISpk2cqO6UmpqUqdvQAG1t1I4ezZjf/Q6+9S0WfuELqcydJJnViNH1Hdx3yhWMuPtuBt16K9tsLqVwJKIsh40buy8EpFeP0xeyfVlQnVqrJ/5Fi3rOOursVJNsbwIRiaTv3HWLEjc6OlzvWK/6VkK56u3HLyVbxo/PeF1eaWnqc26wfNS3/fe/1FtZUR5na43+djFpC8KtF5O1aJAm4Gg7HvD7KbE9DyCCyt1UaH1rfD4fBXl5rN22jZXr16fSRv32thNCZDaMjMVUkLi5Gf77X3jKpUFCNgtCV6hrN6XPR/u2bXx68cUsuvdeYra0VVCtT4ouuID1xcWUApueeYaElJnZZV4v0Y0bqbZuVirGjSNWWMZvn5jIqFOm8t76moz3fPzWTUxkIcO7umgGDvzCF9wnfOf3LC9PHfO4cfv8WhdGIHaViROVEGjGjVP+RW16jh+vMos6O9XF1NmpXCOtrTBpEhx7rKp8bm5W2xsaoK6OiSNGsP3WWwlecw2lUirzdswY9X4TJ6oLo6WFYcOGMX36dM4891x+fvDB/HjkSD6x3wEBp7Kd87cr03pwIsEzd99NLBbj8bvu4oHbbiOpm9JZxWlJSAe2u7poaWtj3YYN6WA1pBvZhULqp6VFZQllo7FRuQF0h1o7ToHQbpS8vOyLLTU3d3P7DCqLcPbXrHWpbZ/xy3//m+YpU1T7DIv8srLUxX3inDkcOW0aoXCYNxctUvvb79phYFkQLv7+Ml1tD/gd52Xo0KEZ3V8BvFbAutCqQZdSMMv6Hr+zeDExvWyr7fwnAwF1I6FpblZjCYfhttvgr39NP9fRoXoq2S0BZ8V8IpF2YwKf/PSnHBoKceb8+UQdwiKFQAhB7CiVBT9y+fL0OvCa0lLqolG0nbC4bRyzDxb8+O8H0B7yUVHjKGRcvZr1L74IwBv5+YweNiyjniIr+fnqpjBb76x9CCMQu4pzFTGfT+V26y+az6dcT8cco/q4BAIwZYoShnHjlAUycSIcdxwcfrjy5x90EAwezIwxYxhVW0swGFQiok3mkSPVe0WjkEhQHAjgLynhf6++mqO/8Q3yDjwwY4h6aliHukDWPv0GK1Zs4PSHHuKi55+nq6tLjWPDBiKtrfzu4Yf5wPLVdra3c95ZZ3HFz36mLvCHH1YNrPSdbDSqJoFkUrmpsk3oDQ1KIHQ8QxdKQWYMIhpVAqEbtHV2ugdA6+q6LbDzzdO3k1egJke7QLw8fz6vrFtH++h0t5aCioqUBeH1ePif007LSA/16P+rzmDa1XYZu4IOUmsLwmXlukBhYarmIcPF5PFQkJ+fuQ3wWDGYIpTgx5OCw61Y0vwVK4i4ZeX4fMplqgV90yb1P7BP1Hrif+89JSD2GJKbQIRCKYHw20Ssy9nKxTre0RdcAMAJ0SjvLlgA27bRcs01bF+4EHw+tjc1UQSEEBx++QwWLoTRoyUv/t98LjjT4QYNh/G88w4A68eMUdeZWzW8k2BQuZz24diDxgjEnsLrVVbAYYepyd65+pjXq1w9NTXKAqmqotjjYdLEicof7lxtrKBAfUmbm62+HyVUFBczZepUxn7+890+fvlnjue/4/4XgDnRBj57Zdp1s3HdupQ750933smP77yTM3/+czpDIe556CGeAZ4Lh0lu3Qrf+hZcc426YONxdbG0tKSrje2ZTppoVE0E+pj1Qkkff4x9NTmp4x66tYT2K9fXd2/H0dbWrTbhim+k03mdhv9v7r2X9WPGAMoFV2yzsrxeL7XV1Vx8crr+OhAIpI+xL32Ycol92VItVE7Xht/PQRMmUF1WRmVZmTpvfn8668mBtiCKrPB0QnqYNfEIQMUhOl0mP6kTMpqb1f90+3Z1Y2EXAV2/Eo1CRYWKd2nsf0tJWHelswjY4iQf3nef48OVuHjGjGFLYSGVwJJHH6Xz3HMpe+01Om+4AYB5Lyv36VaCCI/gmmtg0SLBCV8uJt95DUUijKyrIwaUHn003vJy91UBnQwf3msLmH0FIxADldJSFdxOJpU565ZFM2qUmkw7O6GkBJ8QDK+tJWAFuAEi55zDhtNPp+2cL/P1X00B1GpM7e03p16z7tO16v3jcZa8/z73ANWNjdz9wgvcZNVtAMTs1kFrq5oMCgrSgeqyMnVX6TT9nY8jEdUAq7Mzo8lbTKfWaheTx6OOfcECtRbAunWZCyw5MpyGjElnSNktiGNmzKA9FOIGa1nRJqBExyCw3EnAN045hcHWJFVQWJgWqP4WCHuaq45FuAjE0//3fzx83XXkaVHQlbwuFpjfulMu0MWEwMsLvkR5URENra0sdVngSiaT6v+9ebO6KdCxEHuaqhZva7xL7C4pSyCSySQ/v/BCbr/nHrWvtaRq++LFqZeeZrl+UujjFYLOOXMAqF64kELru9C6eTNf+/koHntEJWfUeQr54NGN/O531r1VbS1BRxym9e238QFvCsGxs2f33WXU1w69+wD7x1HujRQWpoPEjphCCr9fuae8XtV+WF9EhYXI6dOJDh2K99RTKbv4YmbMmkXxmDEkhg+nBDiYdD/8G/8mWLxKBfvOXbmS84FPgB/ecw/2e66QbdLoWrKEaFeX8sd2daUnC79fTeR22tvB46G9vZ3OUCjtinJkKXXowjx7O4lgUF24hYWqnchrrylxEYJPnklPPgnIEFH7F/sXl1xCaVERj6xcyTnA14DS8vKUC0kIQWFhIdGuLm684gpOnD6dE488Mj0R92cVNaQL5LSLyV7lrQkECHg8FASDyuLUFoS90Z8NvW63ltQkgjufGsakkTMAeMvFEkwJREOD+h/rO3L7jUM8nlG8tk27EfVzwHsPPsgvX3yR7zzzDESjbNm+ncamJrrc1mjQn+3zpT5n1HnnAXC+zQ0Vi0nufa6U4WI9AP4qwcxZtnNUWEihZUFqmp9TzRk+rKqiori415bd+yNGIAYqgYDyh3Z29vzFHToUJk9WueA6LtDRgfjNbwg8+SS+wkJKCgpS/nWvVVV8vO0tEq2bOfjCSdzx/HA8tqyh9q4uZttet9nW3Gz9G2/Q0tBA1FmlXVam+ufbfcgNDcR9Pp6ZO1elUOoma5BRyxAA1Zp77lyV4WWf2Px+1VywuhqiURLFZTzzz3RVdk8CURIMcu1FFwFqPdvnybQgACZPmcKoUaOYUFPDz08/ncry8vRE3J99mDTainEGzzV+P14h8Ho8SiB0exC35n6k/f3aoeLxSJJJwdbmswB40ynykK750dlMuqbFvn56NJqONwHCbvlaou+1WQq33Xcfw779bZ557TXy7NaGA+n1pr5T/qlT2e6w6g4mzpHlN3PUcJVkkCwv72b5FRx0UMbjwZ9+CkDnzJmqyjzbin77MUYgBjK6UZ7Td2rH41Gl+z6fckvpdXv1hen1Zvp+Dz0UyBSIcSVLCEc8XPan0dTZ3AWnAP+wve71999P/f3OCy/w5Ntvs2nr1swJSAh1YeoJRkpobOSP//0v515/Pfe8+Wa6PTmk6y9Qa0jz29/CL38JF11E7Kabuh+v1ajtjqeGULU9PdHE9bnQL7ONKRaLcfjEiZxsiaPP61VFVrZCOL/PR01NDQfNns2ECROUi0nfsfe3BQHpfkw9WBBeVDwlJRDagnCpUclzBGN93iTV5THWbjkNgHmrV6u7dhupVht6QSo9BrtAtLVldna1C0Qsptqt2FZFvP8Pf2AecM9f/sLgHta8ln6/+lyrgrquZnjquQ5L5s6O/5LQhpUA1IwZ0y2ILEaOzHgcTCRYBMw88ki8xcX970ocgBiBGMhUVioroieBsFNVpS7QYDBzoRv7BH7QQSSFYI5tN3/4A3507hMEA8uxe2Gd0/NCmwUxRUq+cccd3PbkkxAIsG3jRmK6hqK0VFkRXV3qJx7nRUtcPlm/PrMdua061wcZcQX/00+7HmZji5ef/rWGw0m350pChkDYIzYHHngg5eXlXHHKKRwwdCgHjxmDJxBwvRP3+3xUV1WRHwymJ+KBIBB68srm/87Lw4MSCOwupiwxiIDDH7/F5+W3V24GRuD1jCMUjRJ2WE6pzq75+ZluT3tb9oaGlHBEo9HMlRJWrFAZcLZA8FzgcODG1lb3FcEspM+nkjLa2pj3cSGv1p2Qeu61k34IwJfa2znf2lY2bVr3LCOfj8S//pWx6eVAgENGj94vUlZ3BiMQA5miIlW409d0urIy5e8fNkxNKNFo9wmiuJg23TLAIi8aZe22W/jleY8xxLZ9rOPt7Y6uKahMoafefZdldXW8/P771OlGfB6PGvP69dDZiZSSBZY5v8nmUoolEioTpgdCVl8dOz+/rYZRbQuZyrrUtrj201vYBSIQCDB+/HgOmTmTf//wh/zxwgvx6ECu2xoHOp6iO8/2JbMl1zgtCCfWsRcGg3jq6tRx6RVmXI4x3yEQKwMBLjqlkUOmdJJIqsnX2Xkplq05o92C2LQJystp7+zksl/9iu32GEQ0qr7PLuMvEIKeZNgDyKpqbnpyLEdfPoEnur4CQGdJBcf/6AQaAwFGAFVA3ahR5M2Z43rdeI47Dnup5saxYykOBjNvWgwpjEAMZAoK+tbnSFNaqnrPVFaqu7xIJNPEj8ehrg7pWCGpAnj0jTdYvundVJGRG/ZQeSGqB/u25mbOu+EGLvjnP3nl3XeJ65hEWZlKed26lfVNTTRZk0hdUxPxeJz2jg6WrVxJl83F5EbD3LkZjz9eHuT2x6r5Br/L2J6AjInH+cUWQjBo0CBmH3QQI2pr08Fbm7vDsUNaIAZCvntpqZrss7mYrP/zAcOG4Y1E0taj7v7qIM9FIDweuPWaDWgH5JZYpmuqTwJRUgI+Hw/ffz8XPvssR9tjUVZtUNylEV9XLyKcF45xznlerr5tHImEYPbXJtH5+5tp/MNvCRYW0nXssWqMQhD9zncI6PiLA+HzpZpi1gHlhxyimhj2pf5hP8QIxEBnR5rE6SK98nLlZopEMi+S1laQkiKrFblmxpAhxBMJ7nrppdQqWW44c6mmAS0dHazftg0pJY/OnUujbsWgc/fr6pi/bh1TgEeAYGMjsViMfz76KK8uXsz29et7PKT1zz1HR0cHyWQSKeHK340gL9nFeeKxjNc5g9SPW6uPPeBwzwWDQYZoqyzb5K8tCG0JDQSBqK1Nt5R2W6vb/j2x0kZT1o+Li8mTl4d9+l9pubAOmRriq5+fCnjYFMmcyBPOhASN3cVkxSmCL73EsYBbn9Oky3rmEcuN1wW8/9Ofdnt+8wo/Dz0ExcWSR3/2Eb+/ahOFxx7FiFmzAKi98kpCNTWs+dKXqNTBaLf/m9ebasn/NHD8QQfhKSgYGIkIAxAjEPsaBQVq8ggGVUBPT5C6grmgAL/Dgjjcmkyr6fkL8Q3HY700UaM1Qby0YAFLV6xIF0eVlUEkwvsrVnATcAZwcTjMU6+9xvduvZWf3XcfLXYXhAtFq1bxySef8P777/OHu6LM+6SIC/NvpljGeRe4x8o8eWPChAwL4tBXXuE306ZR/vOfd39Tvea015s9vmBfoKc/O7m64ewTBekx6spv3ewwS5orQmS44TbZJtOb/zeEx3MQjY5l4LOuSW2zIGQ8jpSS2myWGaSWfbUTsj5fAsNnz+72fEE0yuTJ8MEHgi+fluxeWzN0KPF778V77rkUBIPp1GAnHk9q9cEFVVWMrqra5xvu7QpGIPZVCgqUz1cLRkeHuhDKylQlqI2qxYuZDuj1rLZXVNA976U7vwT+YHscjkZ58q23aNbrBni9MHQoWxcs4ETrNYcBP7J69nSEw7S4FGTZmdDRwdKnnmJbY5jf3ac6jF4q1ad+OG4cE268kYcvuYRp3/pWhkCMnDCBMy+7jGHZ+u5r6yAvz70TrV0gBoIFYcfvzy4QOnvJLhA9rQQHrAfVj8tiUEWcz86eQ5PjddlcTAmbyCeiUdavW8fBPSwmlXRxMUlLxJKAW7i4Jr+N995TDZIZOtS16WNJSQljx45N9/Fyw+vlwbw8ngOi06dTpNOnDa4YgdhX0ReI7n/U1aUqr638/602n6uQkv8HTLAedw0ZwvY+dqn8JnAa8L+oLKT/vv02GzZsSK34JaVkzsqVqdfPBDZbC7sAtNr+dqMA+MbLL3PUdd/nD63D+X7wWA6KtNAB1Hz5y4wbN44pRx2Fz+kiEIKSkhIqs138Hk96ARi3RY/08dfUDLz0R7c7Y7sFoQPTOuOpF4FYDeQ7jvGWaz6Ls49uvA8CEe7qYsUzz+DmsJGxGLzxBke7LGDls9xXSWDjxu7HNyzYlg4TlJX1fEy67YsbHg9/LivjZOCgadNU/YOJP2TFCMS+it+vLpK8PHUx5eerybCoCBIJmocNS7+2uJjjgaush3LECLb3cNds90QXAo8D/w94zuOhfutW5i1cqArigLWrV/NVa2Jp9/nIA2bZ9i/vIYvp6YMO4q3JU1jtVb13LqSZ33e9DsC7gwczbNQoSkpKGDJokFr21Y7Hw+DBgxnakwWRl6fOifOO1t5Oe9iwgdfSuScLQj+vY0B9aAmxGjj3uOMytk06oJYphWUZ2xrXrGXLli2Ew2Hi8Tj1DQ0sev11Arbzl5w7F956C4A3nHUUP/sZ/O//uo7Bp9twADN+9Lluzz861lYFXVCQ2QNKrx+i6cWCuP7ii7ngqKM46sAD8eTl7dhyofsZRiD2VbT7xO9Xd8AHHKAmi/x8kJKEvUX5xRcDcLD10D96NG093DU3dmuFpzg+mWQu8NYbb7DJqopteOAByoDFwSBLrEKl/wLbPB6eBI5IJokAG1wmsq4RI7ix5EHGJjqY7lvA09NOYEVJCfU+H56zzqK2thav10tFaSklznYkvd05688rLc2cXGDgCYKTnmIQ2sWkBSJb/MTmolldUcHJc+Z0f83pX8x4eMJzz9L8ne/w6UMP8e7Pfkbz6acz7fvfz3hNyb33cuKqVQCs0GuBW3heeSXrIY2xAtcSaA0FaLE9VwG84WzDPWxYusXHunUZBZckEtmDzl4vF5x0Et8/5RSqCwoyW9QYumEEYl/F71cXic+nioB0IC4vD4SgaJbtPv6MMwjbLhLP6NHdqmjttHjcL6jw4MHMAm5cuJDtH35Ie1sbNZY74d1x4/AefTSgfMyDk0lOQX0B3/D7aXK5i3t58QSefncKef4Y3/jmeoZ/9xwSf/kL2//5T/LHj0+7j3Rg1o69XbcbWiDc7h6dC/IMNNz+Nzooq9th6BTXbBZEezuvnHsu9w4bxhFXXUW1lahg54wrr+TGs87iogPP5A78JIApa9cy85ZbOPLllxnvtviTRRdw6Pnnd9ve6JKhBDDEsjI/xMtt/7uC9y1ha0TVY4Scn1VZmV6fpKQk02LoyYKwhDMvGKTI51MCYcjKAIu+GXYb2nLw+TJrKayJo9ZaeAWAvDyWFhczy8pG8Y0ciehJIHy+lN++mXQB3U2ffZ5TnziCKV0hqm+7jY76empbWqgH2g85hIMuu4ylkybR1tBA0T/+wVQrJfbDoUOZMHw4M+bNy/iceStHkZ+X5NEblzNzjJ+tWxM0WXUUtbW1qiU3pO+anegiwZ7WSnYTiIEsDuCe5grpZWR9vp4Fwjonx11wAYtOPBEPUNXa2m2y9Pl8XHDBBaxbv563Fn2Nsbd/zPe4mXNpYaXHw7IDD2TMMccw5NFHeXDDBuahKqO/ABx9xBFcMn48Z6P6XwH8oqiIyV4vb9XU8Cergr4ZiACvAfcC8wIBWs5q4twXJ7Fp8WJusfbtcroBS0rU8bW2KrFobEz/r3uxIPB6GTp0qMp2Mv2XesRYEPsqPl/agrBj9TLy5+ez/W9/Y9Hll0MyyTqbiyavuJiEbcK92bbQDpCxVsBdtu0/vX8Gx8p7+C9QGIsx+IEHANXPacbUqXg8HkrGjaOruprttkyqpqlTqfn61/kFcK7t/bzefJ66aRUnHxlh6NChzJw5kxkzZjB6zBhq7NXg9t5TZLyBe4onpCdOn0+JhHOp1YEsEm4xCFCioAvk7ALhfK2tAWR1dTWjR41SvatcrK2q6mqmTZ3K+V/08O1LZ3KNZztDWcjtx73DjMsuJ2/UKJqvvpq5Bx7IK6j41KpRozjozDMJBoOsnTwZgWoKeH1HB1+54QZu2bIFgarErwCGAueLAM8Cefmq59LNP/kJzx56KJ9Y44g4Ewk8HlUU2t6uVlkcOVKtUwHZbxj0fl4vxaWlCL+/721s9lOMQOzLTJ7s7o4oKYFolKLJk/HV1kIyydra2tTT+fE4j48cyUbgf4BPx4xhi233+rw87gR+Bdyal8dm4F7h4cgZ7dSHT+PLjEUvPpkAHikpYZT1/vn5+QwZPJgthxxCJ3AnMHrCBA6cdCBbv/Rb5tf8LfU53/h6mOMPTefS6Lbcw/UqexrdVsJJT3EI+521Va9h+yD3fQYK2QRCp7faA69u56CrS02owJAhQ9S5zNLUz+/zUVRUxNChQ7nqwnL+cvX7eD2Tue+lQ/jRHSezpfMYpkydyZ3XXst3zjyTY2fO5NoLLmDokCH4/X6ev/VW7rj6al7+4x+ZOW6C7Z3PAH6P11PKXy69lRd/+gNu+PrX+fXZZ0NREUNGjOD2Sy+l1uqRdODkyd2Pd+hQZfWUlqrVFpNJtU5FMJh96VAh1IqOzhb5BleMi2lfRrdjdlJSAhs34i8txWdV2m4eMYKLgJXAG0BDMJiqgn3owAOZ/tJL3AAMA16oruYu625tck0NI9euJZifR9sdK3huXjEXXX8B3265llcJECJKff5MXpo/jkMiPkYPK2f06GIWbdrEYCCK4Esffo2f3DmNptaDgDaGcwWlwF1H9LG6NZsF0VMNgF0gystVe3Gd7jjQLQhdCOdEL7RUUKDurqG7i0nHKCorMy0sa8Gonmo+gsEgl58NFRUrOf/a8bz64XBe/XA41eUxzjmxmcOn5HHusRtIJhMMHz6cUGuMdSuKqGv5IvNXDWLT9guAd4GVjK85kt+evYWymp8xpaqIzfVdHFtZSWE0qsbW0EDA5+Opm2/m4Rde4NJvf7v7gCoqYObMdEv2CRPUuugHH9xzg8VgUB2vadDXKzkTCCHEN4AfAMOBJcAPpJTZ0xjUPtcD17k8dZKU8vndPsj9Favbq9/nY8jQoZBMUpCfj15jTlgLxGtOmD2b8ZMn8+2lSwE4Y+hQfnHMMcS6uvhg5UqWrl1rrUMAJx/Zziu3jmHWRQEeTVhuge0ncPlvp1vvLTmgJsqgimZULex0Hp2rWn9MGd3OsdMX8ecnYJM1jj6RzaWgW064YZ849eJMewv5+e7FfdrF5PWm1xBxCkRnp0pY0GnQiUS651S2VhoOzjqhk0OnLea+5yq559kKPl0b5NYHB3ErX2Dk4BbG1EZZ85tS1m8NIGXm/3D00IO54lT47Li5zBx9AEvbBpEfCDB96lTavF66tm5VQj1xIsUbNzJj9GgqystVe3YnXm9mDcOIEUoY+9I2o6jIxB/6QE4EQghxDnAbcD3wFnAx8LQQ4mAp5eKe9gVaAeeiyp/u9kHuz9guoGJradMimy9WCJGx0EtZIsHkAw7gHUsggvn5/Oiii1iydCn1VssDr20iGnvASE6cPZNn33sPgONmFVNU3MTy9UFWbsxnzeY81mz+HPADSoKf4cJT1nHp6SHGD29m1apV/PkJ9T7VfbmAo9Geg9RuEylkTpx7W6C6pxUG4/HMY3NaVl1dysUC6nsQi6UrrvsoEAAjhsT48cXb+NFF2/hoeZB7nqnk/hcrWF9Xxnqrqa/Pm2T88BCTRoaYPC7GwZNDHDF1PQ3bmyjzDEH4fIw54AD8ra14vV7Ky8sp12PXKdoeD8GysnRCQk/oNO6+MGaMKZDrA7myIH4B/FtK+UsAIcRcVBHtj4DuuW+ZxKWU7+ZoXAZQF5FtjV+SSQptF5Zw9rEJBlXFqYXHWrXM6/EwwnJleG2vD+bnc/6JJ6YE4sfnxTnuaLWEZTQmWLkhj2Xr8vF7zqKINzns0BIKCgqAfKZOncri++5j/jvvMDiZVAKQbXJob1d3xHr5UifhsMqPt9d8pA8y4/jweNRkORBae+8s2oKwC4T972RSPdbWRV6eEgwtENnEtAeEgFkTu5g1cRO//84mXp9fRFunl8ljwozJ24x/3ChYsybtzmkVVFRWquwjr5f8eFyNSwfJ9f9FJw94PFSPG7f7q9mzxSgMGex2gRBCjAbGA9/R26SUSSHEw/Zthn5EN6mLxVJumELnXbT9giwqolgvEQp4LBeU1+tlpFWp7HNM0McfcQQXnHgiwbw8htuqmQN+yZQxYaaMCdPa2sby5fnk2f3FsRgTvV5kTY1qDVJXlw662l+nG8TNmgXvvZc9i2nw4IxlTVON+uwCIQRMnw4ffqjiM3rb3kYgkK7/0NgFoqNDuWB0nMHeh8rj2SELwg2fSHD8qFXp5WHrpQokr12bbhaZSMDs2ara2uuFpqb0Xb8z9lNcrMZV1VOPYUMuyYUFoVuFLnNs/xSoEEJUSyl76tBWJoRoAEqBxcAvpZSP9fB6w84weLC6u7YuSKdAfPdb3+Lep57i3MMPh7w8gjZz/MQJE/B6vQwePJgRVvqhz+HrList5fIvfhFh9URyw+v1UlxSgre9XU0OZWXQ1oa3pobAypWIIUOUSGzfriYSPdEnEipucMghSjgqKtwnN69XVdwecIASQ/3jxpAhcPjhsGCBayO4vQJdOe0UN93RNRxW50PjjGX0FIfZvr33oG5jo2pLrpehtVKqqa5Wll5npxLisrJ0l1xd8Q3qf2xfFrS4eO8U6n2IXAiErptqcWxvtj2fTSBWoQLbHwNFwOXAo0KIM7KJhBDiMuAygBEj3LrPG1wZNEi1KLBcTIdOVc278ywXy0FHHMH6O+8k1NYGeXmccOyx/PGOOzj7yCM5Zto0RGsrVVVVTA0EKC0sZKwtTRbA7/dTXV3Nhg0bMlNS9ZrZBQUEg0Fqq6rSd4kbN6qJfswYPMGg6pNTWZnuthmPq4XrQyHlItDvm5eXXSC83nRdQG+UlSmRWLhw4LX47gvaVeQcu85Q8nrVMWry8tLund5oakpnPmVDCCVAW7YoIS4qUtsKC5VolJcri8LjSbv18vPVe9bXq9iIvRW9XoPa0G/0SSCEEKXQ42JjAEgp7VaD81snsmy373+v43OfAt4GrgVcBUJK+Xfg7wCzZ8/ei1JR+hl9V2+lOo6qqeHtO+4g1NKiJpmiIkqKioiHQlBZyWHjx7Pkz39m6erVJCoqVN1AOEx5SQmf3Hcf9Xq5URuDBg2ioaGB/Px8NRFFIipuAJCfj9fjoTiRUHeVlZXqTnP1aqipYdikSfidRUw+nxq30yIZP949pXf8+B1fCCYYVJbJ3njnqgXCzYJoa1OTsz2NtQ+twIF07KIv50TXVITD6WB6IKA+/6CDMntgdXSkeoNRUwNTp3ZPP+6hbbgh9/TVgjgLuKMPrxOkLYUyVEYStsfQ3bLIipRSCiEeA24UQnillDseRTO4o/3Ezc3KzSAlE0eNYsOqVal+TVRW4mtrU4vFh0IqzhCLIcvLlQWyejWUlVFaVESbc+GfSITiWIza/HwCra3qwi8uVv7n5mZlvQQCatLSFsKQIcr1JQTBUaN6zmW3o4OuTnY2ELk3igOkBcKZ2ur1dncvQaZY9NT1VQuEpqtLvZ/zvOv4R3m5siK0u0iPyZ4AUFamLEG/X4mAm+Vjqpz7nT4JhJTyH6iOCX1BWxETUWuRYHvc1Ev8IesQdmIfQ28MHaru7EaOhDVrEECwoSGVHx4cPhyhXTcFBSRra+HTTxHl5aooqbIS5s/HH43iB/Ve2iVQXIxnzBiG6ziBFh1QE/f69cqamDQpc0z6NW6Vs4aeySYQuu2K3b2kt9v/tleT29ECoa2N9vZ0UNv+HjruUFYGq1alrTq3pVtHjFBC09W1d9Wg7Gfs9hiElHKNEGIFyup4AUAI4bEeP7cj7yVUpdTpwCfGesgBeu3q8eMhEsH36acky8tTd5p5Q4akYhIATJpEUX4+QyZNUhNBdTUcdRSBdeso+ugjJRhDhigXUE+unUBACcPChd3dRYadpyeBGDas+x26nrClTE/iutDOjt2CCIfVDcTQoUoEnBlGQqgbgPz8tAWoY0F2gfD7lUisWNFzzyxDv5KrOojrgXuFEOuAecCFwDjgq/oFQoijgVeA46SUc61tc4FHUVZIIWoZ5MNQi5YZdjeFhel1IqZOpXDYMIZu2pT2HRcXZ1SbVlVXU1lVlVHzQFER/qlTqZ06lR1CN9szi7XsPrIJRFGRe6qofcLW65i7CYQWEFBW4syZ6uZi1So1sUej0NCQthJ1l1R9kyCE+9KtJSXpLCZjRQxIciIQUsr7hRBFwA+Bn6NabXzRUUUtAC9krD6zCvguKiCeBD4EviCl3CHLw9BHhEhP1F4voqqK0h5yzj19WJ2sz3g8KiXSsPvIJhBjx7rHGJwTdjCo3EfOjC9tQcRiSgSqq9VnjRihUqUTicz4QjCoJn/9Pjr+4FaEOGkSWBX6hoFHznoxSSnvoIfAtpTydTLFASnlJbkaj8Gwz6N7KjnJJux6YSFtNYwaBe++qyxLe6BeC0Rra7oTKiiBWLdO/R0IqBiGrsKfNSv9ubFYOp3VSTCYbvlhGHCYdt8Gw75EScmOtQuxV1NXVCiLsrU18zV2F5N9je/CQvW4qkq5seyV0HYx6GkBH83emjm2j2MEwmDYl5g0aceK/PRiSXqCHj9ePXZWWHu9MHx4d/fThAmquE1bHW4T/bBhMGPGDh+Kof8xAmEw7M+UlanMJD2xFxTAuHGqchpUMVt9vcpMGjeu+/46IK1TWt0EQvf+yoYJUA9YjEAYDPszpaXdu7iOHKkm9EhEFbPl56vCyJ7cRAUF2dfK7gvGxTQgMQJhMOzPFBa6101MnqxSV3WRY28ZbIHArrVKNwIxIDECYTDsz+Tlqbt/5wQ9aJAKQI8Zo15jde3NihYIY0HsUxiBMBj2Z/T61M4JWghVEFdb23eB0OtRGPYZclYHYTAY9hIqK9XCTE50TYWutu8Jv3/nF/aprFSxDsOAwwiEwbC/U1ysOuxmw177kA0hVMX2ztCX9zf0C8bFZDDs75SWqipqg8GBEQiDYX/H49n5tTMM+zRGIAwGg8HgihEIg8FgMLhiBMJgMBgMrhiBMBgMBoMrRiAMBoPB4IoRCIPBYDC4YgTCYDAYDK4YgTAYDAaDK0YgDAaDweCKEQiDwWAwuGIEwmAwGAyuGIEwGAwGgys5EQghxNlCiMeEEFuFEFIIcdEO7HuEEOI9IUSXEGKtEOKqXIzRYDAYDD2TKwviTGAU8PSO7CSEGAu8AKwFvgDcDtwkhLh0dw/QYDAYDD2TqwWDzpZSJoUQRcCOTO7XAFuA86WUceBVIcQI4DohxD+llDIXgzUYDAZDd3JiQUgpkzu560nAY5Y4aB4AaoGpuzwwg8FgMPSZAROkFkIUAsOBZY6nPrV+T9yzIzIYDIb9mwEjEECZ9bvFsV0vllu+x0ZiMBgMhr7FIIQQpUCvK4tLKZ13/ztDtjiD63YhxGXAZQAjRozYDR9vMBgMBuh7kPos4I4+vE7swlharN9lju3ljuczkFL+Hfg7wOzZs00Q22AwGHYTfXIxSSn/IaUUvf3sykCklJ3ARrrHGvTj3WGdGAwGg6GPDKQYBMBzwOlCCK9t29ko4VjcP0MyGAyG/ZOc1EEIISYDk4F8a9NsIUQHUC+lnGu95mjgFeA4vQ34PXAecI8Q4g7gYOBy4ApTA2EwGAx7llwVyn0FuM72+NvWz1zgGGubALzY4hZSylVCiM8DN6GsiW3A1VLKf+RonAaDwWDIgtiXbsxnz54t58+f39/DMBgMhr0GIcQCKeVst+cGWgzCYDAYDAMEIxAGg8FgcMUIhMFgMBhcMQJhMBgMBleMQBgMBoPBFSMQBoPBYHDFCITBYDAYXDECYTAYDAZXjEAYDAaDwRUjEAaDwWBwxQiEwWAwGFwxAmEwGAwGV4xAGAwGg8EVIxAGg8FgcMUIhMFgMBhcMQJhMBgMBleMQBgMBoPBFSMQBoPBYHDFCITBYDAYXDECYTAYDAZXjEAYDAaDwRUjEAaDwWBwxQiEwWAwGFwxAmEwGAwGV3IiEEKIs4UQjwkhtgohpBDioj7ud731eufP53MxToPBYDBkx5ej9z0TGAU8DVy6g/u2Ak5B+HQ3jMlgMBgMO0CuBOJsKWVSCFHEjgtEXEr5bi4GZTAYDIa+kxMXk5QymYv3NRgMBsOeYyAGqcuEEA1CiJgQ4iMhxJf7e0AGg8GwP5IrF9POsgr4AfAxUARcDjwqhDhDSvmY2w5CiMuAy6yHHUKI5XtioDaqgIY9/JkDHXNOumPOSXfMOelOf5yTkdmeEFLKXvcWQpQCQ3t7nZRymWO/IqAduFhK+a9eP6j75wrgbSAopZyxo/vvCYQQ86WUs/t7HAMJc066Y85Jd8w56c5AOyd9tSDOAu7ow+vELoylG1JKKYR4DLhRCOGVUiZ25/sbDAaDITt9ikFIKf8hpRS9/eRwnL2bOQaDwWDYrQzEIHUKy8V0OvDJALYe/t7fAxiAmHPSHXNOumPOSXcG1DnpUwxih99UiMnAZCAfuAf4C/A6UC+lnGu95mjgFeA427a5wKPAMqAQ+AaqaO40KeWTu32gBoPBYMhKrrKYvgJcZ3v8betnLnCMtU0AXjLjFquA76IC4kngQ+ALUsrncjROg8FgMGQhJxaEwWAwGPZ+BnQMYqCxs00IrX2PEEK8J4ToEkKsFUJclcOh7lGEEN8QQqwUQoSFEAuEEMf1YZ99ojGjEGKyEOIVIURICLFFCHGDEMLbh/1KhRB3CSGahRCtQoj7hBCVe2LMuWZnzokQYlSW78MDe2rcuUQIMVYIcbsQ4hMhREII8Xof9+vX78lAK5Qb6OxUE0IhxFjgBWu/HwOHADcJIUJSyn/kYJx7DCHEOcBtwPXAW8DFwNNCiIOllIt72X2vbswohCgHXgaWAqcCY4D/h7rx+lkvuz8ITEB9j5LAjcATwFE5Gu4eYRfPCcD3gXm2x/tKId0U4GTgXSCwA/v17/dESml++vgDeKzfRajU24v6uN/twArAZ9v2V2Ajlptvb/0BlgN32s8RsAi4t5f9rgca+nv8u3jsPwaagRLbth8AIfs2l/3mWN+fz9i2HWJtO76/j6ufzsko6/i/2N/HkKPz4rH9/Qjweh/26ffviXEx7QBy55sQngQ8JqWM27Y9ANQCU3d5YP2EEGI0MB54SG+zztHDqGPe1zkJeEFK2Wbb9gAQBI7uZb86KeUbeoOU8n1gLXv/edvZc7JPs5NzR79/T4xA5BghRCEwHJW6a0e7Uibu2RHtVvTY3Y6tQghR3cv+e3tjxok4jl1KuQF1t9zT/7Xbfhaf9rLf3sDOnhPNXZaPfqsQ4iYhRDAXg9xL6PfviRGI3FNm/W5xbG+2fpfvsZHsfvTYWxzb+3JsujHjV4AzgC2oxox7k0iU0/3YQR1/T8e+s/vtDezssUVQ9VKXAMeh3LJXoKyP/ZV+/57s10HqnW1CuJNkyyceUHnGO3lOnMcgsmy373+v43OfQjVmvBZw7dw7QHE7RpFl++7Yb29gh49NSrkVuNK26XUhRB3wVyHEDCnlx7t3iHsN/fo92a8Fgj3ThLDF+l3m2J7t7ru/2ZFzoi2FMlRGErbHsAPHJuVe2Zixme7/V4BSej72ZsDN/VbWy357Azt7Ttx4BJXMMQu1BMD+Rr9/T/ZrF5PcA00IpZSdqGwlp88wm/++X9nBc6LH7nZsTVLK+p0Zwk4Pfs+zDMexCyGGo9rE9PR/7bafRTaf897Ezp4TN6Tj9/5Gv39P9muB2IM8B5zuKBY6GyUcvdUKDFiklGtQ6btn6W1CCI/1eIfao+wljRmdPAd8TghRbNt2NtCFaivT035DhBBH6g1CiNnAaHbwvA1AdvacuHGm9XvB7hjYXkj/f0/6Oz94b/pBNSA8EzgfdVfzZ+vx0bbXHA3EHdvGAh3Af4BjUcHZGHBpfx/Tbjgn5wIJVBHUscC/UJPB1F7OyVzgKuBElDA8iyoE+lJ/H9MOHHs5sBV4CTgetbJhB/Arx+tWAf90bHseWAN8GTgNVU/yZn8fU3+dE1RdzP+zzsfxwA3W9+jR/j6m3XReCqy54kzgHWCJ7XHBQP2e9PuJ25t+rC+xdPl53faaY6xtxzj2PRJ4HwgD64Cr+vt4duN5+Yb15Y6gGiwe53i+2zkB/ml98buATuBN4KT+PpadOPbJwKvWcWwFfgl4Ha9ZB/zLsa0MuAvlS25D3TxU9ffx9Nc5Ac4B5qNiWVHr+3QDkNffx7ObzsmoLHOHBEYN1O+JadZnMBgMBldMDMJgMBgMrhiBMBgMBoMrRiAMBoPB4IoRCIPBYDC4YgTCYDAYDK4YgTAYDAaDK0YgDAaDweCKEQiDwWAwuGIEwmDIIUKIfwkhpMvPm/09NoOhN4xAGAy55XeotYXnALehWivUAbf256AMhr5gWm0YDDlGCFEO3INqTPgH4NdStYE3GAY0+/uCQQZDThFCVKE6m5YBh0sp5/fviAyGvmMsCIMhR1hrY8xDtcA+WkpZ189DMhh2CGNBGAy547vAVGCGEQfD3ogJUhsMueM7wE1SytX9PRCDYWcwAmEw5AAhxEHACOCB/h6LwbCzGIEwGHLDBOv35n4dhcGwCxiBMBhyQ8j6PalfR2Ew7AImi8lgyAFCiFLUusoh4NeoReoXSSnb+nVgBsMOYATCYMgRQohpwP8BR6DqIFqA2VLKNf04LIOhzxgXk8GQI6SUi6SUp0gpK4AKoAg4qp+HZTD0GSMQBkOOEUL4gM+h+jDN6+fhGAx9xgiEwZB75gC/BM6VUq7q78EYDH3FxCAMBoPB4IqxIAwGg8HgihEIg8FgMLhiBMJgMBgMrhiBMBgMBoMrRiAMBoPB4IoRCIPBYDC4YgTCYDAYDK78f/MaWFKxqaUgAAAAAElFTkSuQmCC\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# The ground truth\n", "plot_x = np.linspace(-1.1,1.1)\n", "plot_y = func(plot_x)[1]\n", "\n", "# Fix seeds\n", "set_seeds(0)\n", "\n", "\n", "## EiV model\n", "vd_net_train_state = vd_net.training\n", "vd_net_noise_state = vd_net.noise_is_on\n", "vd_net.train()\n", "vd_net.noise_on()\n", "# Collect predictions\n", "vd_pred, _= [t.cpu().detach().numpy()\n", " for t in vd_net.predict(torch.tensor(val_x, dtype=torch.float32)[:,None].to(device), number_of_draws=5000,\n", " take_average_of_prediction=False)]\n", "vd_pred_mean = np.mean(vd_pred, axis=1).flatten()\n", "vd_pred_std = np.std(vd_pred, axis=1).flatten()\n", "\n", "plt.ylim([-1.5,1.5])\n", "\n", "if vd_net_train_state:\n", " vd_net.train()\n", "else:\n", " vd_net.eval()\n", "if vd_net_noise_state:\n", " vd_net.noise_on()\n", "else:\n", " net.noise_off()\n", "\n", "\n", "## Non-EiV model\n", "vd_ber_net_state = vd_ber_net.training\n", "vd_ber_net.train()\n", "vd_ber_net.to(device)\n", "# Collect predictions\n", "vd_ber_pred, _ = [t.cpu().detach().numpy()\n", " for t in vd_ber_net.predict(torch.tensor(val_x, dtype=torch.float32)[:,None].to(device), number_of_draws=5000,\n", " take_average_of_prediction=False)]\n", "vd_ber_pred_mean = np.mean(vd_ber_pred, axis=1).flatten()\n", "vd_ber_pred_std = np.std(vd_ber_pred, axis=1).flatten()\n", "plt.plot(plot_x, plot_y, color='b', label='ground truth', linewidth=2)\n", "plt.plot(val_pure_x, vd_ber_pred_mean, color='k', label='No EiV', linewidth=2)\n", "plt.fill_between(val_pure_x, vd_ber_pred_mean-k*vd_ber_pred_std, vd_ber_pred_mean+k*vd_ber_pred_std, color='k', alpha=0.2)\n", "plt.plot(val_pure_x, vd_pred_mean, color='r', label='EiV', linewidth=2)\n", "plt.fill_between(val_pure_x, vd_pred_mean-k*vd_pred_std, vd_pred_mean+k*vd_pred_std, color='r', alpha=0.2)\n", "plt.xlabel(r'$\\zeta$')\n", "if vd_ber_net_state:\n", " vd_ber_net.train()\n", "else:\n", " vd_ber_net.eval()\n" ] }, { "cell_type": "markdown", "id": "3625ca6c", "metadata": {}, "source": [ "### VD Predictions for unnoisy input" ] }, { "cell_type": "code", "execution_count": 23, "id": "0ba613ef", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plot_x = np.linspace(-1.1,1.1)\n", "plot_y = func(plot_x)[1]\n", "vd_net_train_state = vd_net.training\n", "vd_net_noise_state = vd_net.noise_is_on\n", "vd_net.train()\n", "vd_net.noise_off()\n", "vd_net.to(device)\n", "set_seeds(0)\n", "vd_pred, _= [t.cpu().detach().numpy()\n", " for t in vd_net.predict(torch.tensor(plot_x, dtype=torch.float32)[:,None].to(device), number_of_draws=5000,\n", " take_average_of_prediction=False)]\n", "vd_pred_mean = np.mean(vd_pred, axis=1).flatten()\n", "vd_pred_std = np.std(vd_pred, axis=1).flatten()\n", "\n", "# plt.ylim([-0.5,1.5])\n", "plt.ylim([-1.5,1.5])\n", "#plt.show()\n", "if vd_net_train_state:\n", " vd_net.train()\n", "else:\n", " vd_net.eval()\n", "if vd_net_noise_state:\n", " vd_net.noise_on()\n", "else:\n", " vd_net.noise_off()\n", "\n", "vd_ber_net_state = vd_ber_net.training\n", "vd_ber_net.train()\n", "vd_ber_pred, _ = [t.cpu().detach().numpy()\n", " for t in vd_ber_net.predict(torch.tensor(plot_x, dtype=torch.float32)[:,None].to(device), number_of_draws=5000,\n", " take_average_of_prediction=False)]\n", "vd_ber_pred_mean = np.mean(vd_ber_pred, axis=1).flatten()\n", "vd_ber_pred_std = np.std(vd_ber_pred, axis=1).flatten()\n", "#plt.figure()\n", "#plt.plot(plot_x, plot_y, color='b', label='ground truth', linewidth=1)\n", "plt.plot(plot_x, plot_y, color='b', label='ground truth', linewidth=2)\n", "plt.plot(plot_x, vd_ber_pred_mean, color='k', label='No EiV', linewidth=2)\n", "plt.fill_between(plot_x, vd_ber_pred_mean-k*vd_ber_pred_std, vd_ber_pred_mean+k*vd_ber_pred_std, color='k', alpha=0.2)\n", "plt.plot(plot_x, vd_pred_mean, color='r', label='EiV', linewidth=2)\n", "plt.fill_between(plot_x, vd_pred_mean-k*vd_pred_std, vd_pred_mean+k*vd_pred_std, color='r', alpha=0.2)\n", "plt.xlabel(r'$\\zeta$')\n", "if vd_ber_net_state:\n", " vd_ber_net.train()\n", "else:\n", " vd_ber_net.eval()" ] }, { "cell_type": "markdown", "id": "c407df3b", "metadata": {}, "source": [ "## VD Coverage" ] }, { "cell_type": "code", "execution_count": 24, "id": "1f9dbd64", "metadata": {}, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "0d091cae337149858b16790a2fcb2660", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/20 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "ace93cad5bf347db8d510a299cc82f17", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "ace349462acf4bf6bad3d25fcf5666fb", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "f349825279164961a44f80ea85f62600", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "ed7a655c742c4eee841b3f88b7903652", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "4ea8d787e31d4f8092d22b7775b81e89", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "8d5ef6677c34499aade5cfd9f2a36c11", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "c9463d985ede4065aa71076edaff62cb", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "eb4d5495a35b4aa09db601095bfd5a68", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "bf589c77cc36497ba76516bf5349fed2", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "072183d014f34618a0e3afc635841eb4", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "260028ee55704513a7b93973c052c530", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "97c8118677bd4155bd36d07df82a73d4", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "838896a6f85f488e8de2e707a4f9a0de", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "9922729bc1ea496085c3a67e517e78fa", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "a2db6b50a0ba41059c9c7718177b1137", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "4d436aafbfa64dd2a0bd31d59563c865", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "0b35d684cc3949beb22cda1462c73ec9", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "a20ab2f8df264cfe8a44cda08972f6e7", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "24916b809c3a4405a5e9706f5ef65528", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "47af9668899b4c7a9349767ac549e19c", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Collect coverage and RMSE given a seed\n", "## NOTE: the following function can be deleted later on\n", "\n", "def coverage_computation(net, ber_net, seed):\n", " set_seeds(seed)\n", " coverage_x = np.linspace(-1.1,1.1, num=100)\n", " coverage_y = func(coverage_x)[1]\n", " net_train_state = net.training\n", " net_noise_state = net.noise_is_on\n", " ber_net_state = ber_net.training\n", " number_of_repeated_draws = 100#0\n", " net.train()\n", " net.noise_on()\n", " ber_net.train()\n", " inside_map = inside_uncertainties\n", " net_inside_list, ber_net_inside_list = [], []\n", " mse_list, ber_mse_list = [], []\n", " for _ in tqdm(range(number_of_repeated_draws)):\n", " noisy_coverage_x = coverage_x + std_x * np.random.normal(0,1,size=coverage_x.size)\n", " noisy_coverage_y = coverage_y + std_y * np.random.normal(0,1,size=coverage_y.size)\n", " pred, _ = [t.cpu().detach().numpy()\n", " for t in net.predict(torch.tensor(noisy_coverage_x, dtype=torch.float32)[:,None].to(device), number_of_draws=200,\n", " take_average_of_prediction=False)]\n", " ber_pred, _ = [t.cpu().detach().numpy()\n", " for t in ber_net.predict(torch.tensor(noisy_coverage_x, dtype=torch.float32)[:,None].to(device), number_of_draws=200,\n", " take_average_of_prediction=False)]\n", " net_inside_list.append(inside_map(pred, coverage_y))\n", " ber_net_inside_list.append(inside_map(ber_pred, coverage_y))\n", " mse_list.append(compute_mse(pred, noisy_coverage_y))\n", " ber_mse_list.append(compute_mse(ber_pred, noisy_coverage_y))\n", " net_inside = np.mean(np.stack(net_inside_list), axis=0)\n", " ber_net_inside = np.mean(np.stack(ber_net_inside_list), axis=0)\n", " mse = np.mean(np.array(mse_list))\n", " ber_mse = np.mean(np.array(ber_mse_list))\n", " if net_train_state:\n", " net.train()\n", " else:\n", " net.eval()\n", " if net_noise_state:\n", " net.noise_on()\n", " else:\n", " net.noise_off()\n", " if ber_net_state:\n", " ber_net.train()\n", " else:\n", " ber_net.eval()\n", " return coverage_x, coverage_y, net_inside, ber_net_inside, np.sqrt(mse), np.sqrt(ber_mse)\n", "\n", "# Loop over seeds\n", "vd_net_inside_collection, vd_ber_net_inside_collection, vd_rmse_collection, vd_ber_rmse_collection = [], [], [], []\n", "for seed in tqdm(seed_list):\n", " seed_vd_net = Networks.FNN_VD_EIV(initial_alpha=0.5, deming=deming).to(device)\n", " seed_vd_ber_net = Networks.FNN_VD_Ber(initial_alpha=0.5, init_std_y=init_std_y).to(device)\n", " vd_ber_saved_file = os.path.join('saved_networks', \n", " 'noneiv_vd_mexican_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_seed_%i.pkl'\n", " % (std_x, std_y, init_std_y, seed))\n", " vd_ber_train_loss, vd_ber_test_loss, vd_ber_stored_std_x, vd_ber_stored_std_y, vd_ber_state_dict\\\n", " = train_and_store.open_stored_training(vd_ber_saved_file, net=seed_vd_ber_net, device=device)\n", " vd_saved_file = os.path.join('saved_networks', 'eiv_vd_mexican_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_deming_scale_%.3f_seed_%i.pkl'% (std_x, std_y, init_std_y, deming, seed))\n", " vd_train_loss, vd_test_loss, vd_stored_std_x, vd_stored_std_y, vd_state_dict\\\n", " = train_and_store.open_stored_training(vd_saved_file, net=seed_vd_net, device=device)\n", " vd_coverage_x, vd_coverage_y, vd_net_inside, vd_ber_net_inside, vd_rmse, vd_ber_rmse = coverage_computation(seed=seed, net=seed_vd_net, ber_net=seed_vd_ber_net)\n", " vd_net_inside_collection.append(vd_net_inside)\n", " vd_ber_net_inside_collection.append(vd_ber_net_inside)\n", " vd_rmse_collection.append(vd_rmse)\n", " vd_ber_rmse_collection.append(vd_ber_rmse)" ] }, { "cell_type": "code", "execution_count": 25, "id": "9766873f", "metadata": {}, "outputs": [], "source": [ "# Reshape and process results\n", "vd_net_inside_collection = np.stack(vd_net_inside_collection)\n", "vd_rmse_collection = np.stack(vd_rmse_collection)\n", "vd_ber_net_inside_collection= np.stack(vd_ber_net_inside_collection)\n", "number_of_draws = vd_net_inside_collection.shape[0]\n", "vd_net_inside_mean = np.mean(vd_net_inside_collection, axis=0)\n", "vd_net_inside_std = np.std(vd_net_inside_collection, axis=0)/np.sqrt(number_of_draws)\n", "vd_ber_net_inside_mean = np.mean(vd_ber_net_inside_collection, axis=0)\n", "vd_ber_net_inside_std = np.std(vd_ber_net_inside_collection, axis=0)/np.sqrt(number_of_draws)" ] }, { "cell_type": "code", "execution_count": 26, "id": "396260b6", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'coverage')" ] }, "execution_count": 26, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Coverage plot\n", "plt.plot(vd_coverage_x, vd_net_inside_mean, color='orange', linewidth=2,alpha=0.9)\n", "plt.errorbar(vd_coverage_x, vd_net_inside_mean, vd_net_inside_std, color='r', linewidth=3, alpha=0.9, ecolor='red',fmt='o', linestyle='None')\n", "plt.axhline(0.95, color='b', linestyle='dashed',linewidth=2,alpha=0.9)\n", "plt.plot(vd_coverage_x, vd_ber_net_inside_mean, color='gray',linewidth=2,alpha=0.9)\n", "plt.errorbar(vd_coverage_x, vd_ber_net_inside_mean, vd_ber_net_inside_std, color='k', linewidth=3,alpha=0.9,ecolor='k',fmt='o',linestyle='None')\n", "plt.xlabel(r'$\\zeta$')\n", "plt.ylabel(r'coverage')" ] }, { "cell_type": "markdown", "id": "42c60be6", "metadata": {}, "source": [ "# Results for Ensemble" ] }, { "cell_type": "code", "execution_count": 14, "id": "1cdcb410", "metadata": {}, "outputs": [], "source": [ "ensemble_files = create_strings('noneiv_mexican_std_x_%.3f'\\\n", "'_std_y_%.3f_init_std_y_%.3f_ensemble_seed_%i.pkl', ensemble_seed_list, (std_x, std_y, init_std_y,), ())\n", "ensemble_files = [os.path.join('saved_networks',s) for s in ensemble_files]\n", "ensemble_size = 5\n", "assert len(ensemble_files) % ensemble_size == 0\n", "number_of_ensembles = int(len(ensemble_files) / ensemble_size)" ] }, { "cell_type": "code", "execution_count": 15, "id": "981ad23f", "metadata": {}, "outputs": [], "source": [ "plot_x = np.linspace(-1.1,1.1)\n", "plot_y = func(plot_x)[1]" ] }, { "cell_type": "markdown", "id": "df2124ef", "metadata": {}, "source": [ "### loop through ensembles and collect prediction, unc,rmse and coverage" ] }, { "cell_type": "code", "execution_count": 22, "id": "3d216d87", "metadata": {}, "outputs": [], "source": [ "# The ground truth\n", "plot_x = np.linspace(-1.1,1.1)\n", "plot_y = func(plot_x)[1]\n", "\n", "# Fix seeds\n", "set_seeds(0)\n", "\n", "#mean_collection = [] \n", "#unc_collection = []\n", "#for i in tqdm(range(number_of_ensembles)):\n", "# file_chunk = ensemble_files[i*ensemble_size: (i+1)*ensemble_size]\n", "# ens = Ensemble(saved_files = file_chunk,\n", "# architecture_class=Networks.FNNBer,\n", "# device=device,\n", "# p=0.5, init_std_y=init_std_y)\n", "# mean, std = ens.mean_and_std(torch.tensor(val_x, dtype=torch.float32)[:,None].to(device))\n", "# mean_collection.append(mean.flatten())\n", "# unc_collection.append(std.flatten())\n", "#mean_collection = np.stack(mean_collection)\n", "\n", "mean, std = ens.mean_and_std(torch.tensor(val_x, dtype=torch.float32)[:,None].to(device))\n", "mean = mean.detach().cpu().numpy().flatten()\n", "std = std.detach().cpu().numpy().flatten()" ] }, { "cell_type": "code", "execution_count": 23, "id": "25303106", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(200,)" ] }, "execution_count": 23, "metadata": {}, "output_type": "execute_result" } ], "source": [ "mean.shape" ] }, { "cell_type": "code", "execution_count": 24, "id": "13bdbecd", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "<matplotlib.collections.PolyCollection at 0x7fe235fd00d0>" ] }, "execution_count": 24, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "plt.plot(plot_x, plot_y, color='b', label='ground truth', linewidth=2)\n", "plt.plot(val_pure_x, mean, color='g', label='Ensemble', linewidth=2)\n", "plt.fill_between(val_pure_x, mean-k*std,\n", " mean+k*std, color='g', alpha=0.2)" ] }, { "cell_type": "code", "execution_count": 29, "id": "1f517745", "metadata": {}, "outputs": [], "source": [ "def ens_coverage_computation(ens, seed):\n", " set_seeds(seed)\n", " coverage_x = np.linspace(-1.1,1.1, num=100)\n", " coverage_y = func(coverage_x)[1]\n", " number_of_repeated_draws = 100#0\n", " ens_inside_list = []\n", " ens_mse_list = []\n", " for _ in tqdm(range(number_of_repeated_draws)):\n", " noisy_coverage_x = coverage_x + std_x * np.random.normal(0,1,size=coverage_x.size)\n", " noisy_coverage_y = coverage_y + std_y * np.random.normal(0,1,size=coverage_y.size)\n", " mean, std = [t.cpu().detach().numpy()\n", " for t in ens.mean_and_std(torch.tensor(noisy_coverage_x, dtype=torch.float32)[:,None])]\n", " ens_inside_list.append(inside_explicit_uncertainties(mean, std, coverage_y))\n", " ens_mse_list.append(np.mean((mean.flatten()-noisy_coverage_y.flatten())**2))\n", " ens_inside = np.mean(np.stack(ens_inside_list), axis=0)\n", " mse = np.mean(np.array(ens_mse_list))\n", " return coverage_x, coverage_y, ens_inside, np.sqrt(mse)" ] }, { "cell_type": "code", "execution_count": 30, "id": "f381570a", "metadata": { "scrolled": true }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "dd4b7a51aec1456f84e27485a040e335", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/20 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "07e30e8291d04add90d48f7d503d0354", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "f593a76c68ac4f1a8bfd85d71e12098c", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "7ec8e577b7f1417a9bfefd513386c206", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "1be1725b580642fa89a0f8210aadd273", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "4fb5374806604868ae2045dba4212649", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "d3b6d811f1104df5a60573c84a93e732", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "128dbf5eebab427e9ba9365e5695cb21", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "c1ef006def724ff4a7d0ee770f5b4bae", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "2fe8e01ae32f4b27910d5ab95c95d0dc", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "14fc39fbbbaf477d9592fd30cbff87ac", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "8dabab7d3789460bb7030fe372d0cd9c", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "0519917e872c42fbba452bd9538f2674", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "2abcc1e5e1d94710b45aa33fdbb5b7be", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "425d0345fcd94156b2b5a5ff66793843", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "675499fc83ec413bbebe18929ff50d19", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "43442a470dc343d38022f33ee2904ea5", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "2c1f11ba3d7544cb9cd503c77b41a933", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "cba3c620bdf44234932ffc9710929801", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "243f702210e34bdebe892f1e2ca5bfd7", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "db69c709717043daa1223d2f6b609244", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/100 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ens_inside_collection = []\n", "rmse_collection = []\n", "for i in tqdm(range(number_of_ensembles)):\n", " file_chunk = ensemble_files[i*ensemble_size: (i+1)*ensemble_size]\n", " ens = Ensemble(saved_files = file_chunk,\n", " architecture_class=Networks.FNNBer,\n", " device=device,\n", " p=0.5, init_std_y=init_std_y)\n", " _,_, ens_inside, rmse = ens_coverage_computation(ens, seed=i*ensemble_size)\n", " ens_inside_collection.append(ens_inside)\n", " rmse_collection.append(rmse)\n", "ens_inside_collection = np.stack(ens_inside_collection)\n", "rmse_collection = np.stack(rmse_collection)" ] }, { "cell_type": "code", "execution_count": 31, "id": "94112e7e", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "(20, 100)" ] }, "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ens_inside_collection.shape" ] }, { "cell_type": "code", "execution_count": 32, "id": "d2a1c07f", "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "RMSE\n", "===========\n", "Average 0.358710, Error 0.000718\n", "\n", "\n", "Coverage\n", "===========\n", "Average 0.323130, Error 0.011597\n" ] } ], "source": [ "# Results for Table 1 in preprint\n", "print('RMSE\\n===========')\n", "print('Average %.6f, Error %.6f' %( np.mean(rmse_collection),\n", " np.std(rmse_collection)/np.sqrt(len(rmse_collection))))\n", "print(\"\\n\")\n", "\n", "print('Coverage\\n===========')\n", "print('Average %.6f, Error %.6f' %(ens_inside_collection.mean(), \n", " ens_inside_collection.mean(axis=1).std()/np.sqrt(ens_inside_collection.shape[0])))" ] }, { "cell_type": "code", "execution_count": 40, "id": "0670fdf3", "metadata": {}, "outputs": [ { "data": { "text/plain": [ "Text(0, 0.5, 'coverage')" ] }, "execution_count": 40, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Coverage plot\n", "plt.plot(coverage_x, ens_inside_collection.mean(axis=0), color='cyan', linewidth=2,alpha=0.9)\n", "plt.errorbar(coverage_x, ens_inside_collection.mean(axis=0), ens_inside_collection.std(axis=0)/np.sqrt(ens_inside_collection.shape[0]), color='g', linewidth=3, alpha=0.9, ecolor='green',fmt='o', linestyle='None')\n", "plt.axhline(0.95, color='b', linestyle='dashed',linewidth=2,alpha=0.9)\n", "plt.xlabel(r'$\\zeta$')\n", "plt.ylabel(r'coverage')" ] }, { "cell_type": "markdown", "id": "stable-playing", "metadata": {}, "source": [ "## Evolution of $\\sigma_y$\n", "\n", "Produces Figure 1 from the preprint. In contrast to the plots above, this uses the results of the training scripts `train_eiv_mexican_fixed_std_x.py` and `train_noneiv_mexican_fixed_std_x.py` and `fixed_std_x` instead of `std_x`.\n", "\n", "(This distinction was only done for computational reasons.)" ] }, { "cell_type": "code", "execution_count": 33, "id": "5918ea1f", "metadata": {}, "outputs": [], "source": [ "# For scaling the x-axis\n", "train_len = generate_mexican_data.n_train\n", "epoch_scale = (report_point-1)*batch_size/train_len" ] }, { "cell_type": "code", "execution_count": 34, "id": "forbidden-armstrong", "metadata": { "scrolled": true }, "outputs": [ { "data": { "application/vnd.jupyter.widget-view+json": { "model_id": "bc69118b2f9a4a2987d21953f3102ffd", "version_major": 2, "version_minor": 0 }, "text/plain": [ " 0%| | 0/9 [00:00<?, ?it/s]" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Load sigma_y evolution from files\n", "stored_std_y_collection, ber_stored_std_y_collection = [], []\n", "for i, deming_scale_test in enumerate(tqdm(deming_scale_list)):\n", " fixed_deming_std_y_collection = []\n", " for seed in seed_list:\n", " saved_file = os.path.join('saved_networks', 'eiv_mexican_fixed_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_deming_scale_%.3f_seed_%i.pkl'% (fixed_std_x, std_y, init_std_y, deming_scale_test, seed))\n", " _, _, _, stored_std_y, _ = train_and_store.open_stored_training(saved_file, net=None, device=device)\n", " fixed_deming_std_y_collection.append(stored_std_y.cpu().numpy())\n", " if i == 0:\n", " ber_saved_file = os.path.join('saved_networks', 'noneiv_mexican_fixed_std_x_%.3f_std_y_%.3f_init_std_y_%.3f_seed_%i.pkl'% (fixed_std_x, std_y, init_std_y, seed))\n", " _, _, _, ber_stored_std_y, _ = train_and_store.open_stored_training(ber_saved_file, net=None, device=device)\n", " ber_stored_std_y_collection.append(ber_stored_std_y.cpu().numpy())\n", " stored_std_y_collection.append(np.stack(fixed_deming_std_y_collection, axis=0))\n", "ber_sy = np.stack(ber_stored_std_y_collection, axis=0)" ] }, { "cell_type": "code", "execution_count": 35, "id": "palestinian-federation", "metadata": {}, "outputs": [ { "data": { "image/png": "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\n", "text/plain": [ "<Figure size 432x288 with 1 Axes>" ] }, "metadata": { "needs_background": "light" }, "output_type": "display_data" } ], "source": [ "# Create plots with standard errors (Figure 1 in the preprint)\n", "plt.figure()\n", "evol_x = np.arange(0, len(stored_std_y)) * epoch_scale\n", "scale = 1/np.sqrt(len(seed_list))\n", "for i, (sy, dem) in enumerate(zip(stored_std_y_collection, deming_scale_list)):\n", " color = plt.get_cmap(\"tab20\")(i)\n", " plt.plot(evol_x, np.mean(sy,axis=0), label=r'$\\delta$' + '=' + str(dem), linewidth=2, color=color)\n", " plt.fill_between(evol_x, np.mean(sy,axis=0)-scale*np.std(sy, axis=0),\n", " np.mean(sy,axis=0)+scale*np.std(sy, axis=0),\n", " linewidth=2, color=color)\n", " plt.ylabel(r'$\\sigma_y$')\n", " plt.xlabel('epochs')\n", "plt.plot(evol_x, np.mean(ber_sy, axis=0), color='k', label='non-EiV', linewidth=2)\n", "plt.fill_between(evol_x, np.mean(ber_sy, axis=0)-\n", " scale*np.std(ber_sy, axis=0), \n", " np.mean(ber_sy, axis=0)+\n", " scale*np.std(ber_sy, axis=0),\n", " color='k', alpha=0.7)\n", "plt.axhline(std_y, 0,1, color='blue', linestyle='dotted', linewidth=2)\n", "plt.legend(loc=(1.04,0))\n", "plt.tight_layout()\n", "plt.savefig(os.path.join('saved_images','mexican_sigmay_evol_std_x_%.3f_std_y_%.3f.pdf' % (fixed_std_x, std_y)) )" ] }, { "cell_type": "code", "execution_count": null, "id": "fff4d432", "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.8.5" } }, "nbformat": 4, "nbformat_minor": 5 }