{ "cells": [ { "cell_type": "markdown", "metadata": {}, "source": [ "# Modelling with local GP experts (Part II): Using the ``LocalExpertOI`` API\n", "In the previous part of the tutorial, we implemented a local GP expert model to fit on non-stationary data. Here, we will do the same except using ``GPSat``'s ``LocalExpertOI`` class, which automates some of the procedures involved making experiments less cumbersome." ] }, { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "2023-08-03 22:09:45.761071: I tensorflow/core/platform/cpu_feature_guard.cc:182] This TensorFlow binary is optimized to use available CPU instructions in performance-critical operations.\n", "To enable the following instructions: SSE4.1 SSE4.2, in other operations, rebuild TensorFlow with the appropriate compiler flags.\n", "OMP: Info #276: omp_set_nested routine deprecated, please use omp_set_max_active_levels instead.\n" ] } ], "source": [ "import scipy\n", "import os\n", "import GPSat\n", "import pandas as pd\n", "import numpy as np\n", "import matplotlib.pyplot as plt\n", "from GPSat import get_parent_path\n", "from GPSat.postprocessing import glue_local_predictions_1d\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We generate the same data as before:" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 2, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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mhqThEuI4aK8vJz58+fjcrm48847mTlzJsFgkI0bN/LXv/6V8ePHc/rpp3f72I6OjhHRsToQCEihdQzJp6sYFJGRjrTcHHItVqrLy+kI+KMjLOYJExh3++1k/vYmMq69hoybbiTj2mtjutzY0HW83xRjSksjYf58EubMIWHOHBIPPhhb0UyC7kbevuFGOgIBzjv+eLJNpmiRrpaSgn3GDLSUFOjowNB1Qk1NWCZnkbZIlkmL0W3RokWYTCa++OILzjrrLKZPn87MmTP5/ve/z2uvvcZpp50WPVZRFB599FEWLlxIYmIiv/vd7wB45JFHyMvLw2KxMG3aNJ555pnoYyorK1EUhTVr1kRva2pqQlEU3nvvPeDbEY3//Oc/zJ07l4SEBA4//HA2bNjQJda7776bjIwMkpKSuOiii/D5fHv9uSorKzn22GMBSElJQVEULrjgAiA8zXPZZZexePFixo4dywknnLDfOPf1fBDurHzNNdeQmppKZmYmS5Ys6ek/wYgnIy9i0NgKC5l28828ecYZpPn9bPvscybm5MR8hGVvosulMzPRdqtPUYCKllYSGncy3eXi1muvxXjyqS6rk7SUFBJcLkIeD7rPR6i+npQf/0gSFxEzkSZf8ZCQkNCjVSI7d+7k7bff5s477yQxMbHbY3Z/nltuuYW77rqLBx54AE3TePHFF7n88stZunQpxx9/PK+++io/+9nPmDhxYvRk31M33ngj9913H2lpaVxyySVceOGFfPzxxwD885//5JZbbuHhhx/myCOP5JlnnuHBBx8kNze32+eaNGkS//73v/n+97/Phg0bSE5OjvYtAXjqqae49NJL+fjjj/co5O/r8y1evJhPP/2UVatWccEFFzB//nxOOOGEXr0HI5EkL2JQJRYV4brySu648kryNY2XHn2ExPz8uEyxRJZLm7pZLu3xtPLpmjVMUBWu+/WvGZeXR+2u1UldEh1FQUtKAkUBpxNNujqLGGpvb8cRp0Jwj8ez12Sks82bN2MYBtOmTety+9ixY6OjGr/61a+45557ovedc845XHjhhV2+v+CCC1i0aBEAixcv5pNPPuEPf/hDr5OXO+64g6OPPhqA6667jlNPPRWfz4fNZmPp0qVceOGF/PznPwfgd7/7He+8885eR180TSM1NRWA9PR0XC5Xl/vz8/O59957o99XVlbuM7b9Pd8BBxzALbfcAsCUKVN46KGH+M9//iPJCzJtJOLgwosuwj9mDP+pquIfH34Yt9qQvS+XNvjggw8x6yESnC5+eP75e6xO6nK0FOkKsYfdR1c+++wz1qxZw4wZM/D7/V3umzt3bpfv161bx/z587vcNn/+fNatW9frOA444IDo/0fa0dfV1UVfZ968eV2O3/373tj95+ivzrFDOP5I7KOdjLyIQWez2bjqqqu46qqruPvuuzn//PMxmQb/V3Fvu0YXr13Ltm1bybfamHHySeHVULtqdnbfpDG6F1KMVkUJ0VlCQgKeOPUP6un2BPn5+SiKwvr167vcHpmKsXcz0tndiM7uyY9hGNHbIns8db6Q2Fu31s7Fv5HHx2qTy91/jt7E2Z3dC5cVRZENOneRT1oRF7/85S9JTU1l8+bN/N///V9cYui8XDpQXkbI46G+toa1n35KrsXKxBmF5FxwQTQhsRUWhvcsmlGE3twc3lyyuRlbUZEU6YpBoSgKiYmJcfnqaVfUMWPGcMIJJ/DQQw/R1tbWp59z+vTpfPTRR11uW7lyJdOnTwcgLS0NgOrq6uj9nYtie/M6n3zySZfbdv9+d5EVRJGtG/alJ3H25vnEt2TkRcSFw+Hgiiuu4Oabb+bOO+/k7LPPjsuOuZGEpOml5bRv2MCGVatIUlX8EydwyO9/v0dC0nmTxsiu2JasLBlxEaKTZcuWMX/+fObOncuSJUs44IADUFWVzz//nPXr1zNnzpx9Pv7qq6/mrLPO4qCDDuK4447jlVde4YUXXuCdd94BwqM3hx12GHfffTfZ2dk0NDRw00039TrOyy+/nPPPP5+5c+dyxBFH8Nxzz1FSUrLXgl2ArKwsFEXh1Vdf5ZRTTsFut++1Dqkncfbm+UQnxgjT3NxsAEZzc3O8QxH70djYaCQlJRmA8dJLL8U1llAwaPzqzDONIpvNmJeVZexsaIhrPEIYhmF4vV6jtLTU8Hq98Q6l13bs2GFcdtllRk5OjmE2mw2Hw2Eccsghxu9//3ujra0tehxgvPjii3s8ftmyZUZubq5hNpuNqVOnGk8//XSX+0tLS43DDjvMsNvtxoEHHmi8/fbbBmC8++67hmEYxrvvvmsAhtvtjj7mq6++MgCjoqIietsdd9xhjB071nA4HMb5559vXHPNNcasWbP2+bPddtttRmZmpqEoinH++ecbhmEYRx99tHH55Zfvcez+4uzN8y1cuDB6/3C2t9/r3py/FcPowXquYaSlpQWn00lzczPJsvJjyLv++uu5++67Ofjgg/n000/jtgHdX//6Vy666CI0TeODDz7g8MMPj0scQnTm8/moqKggJycHm80W73CEGBB7+73uzflbxrpFXF155ZXY7XY+//xzVqxYEZcYSktLueyyywC4/fbbJXERQoghTpIXEVfp6en84he/AOB//ud/+lzg11c1NTV897vfxev1csIJJ3DttdcO6usLIYToPUleRNzdfPPNTJgwgY0bN3L11VcP2uu2trZy6qmnUlFRQV5eHs8++2xcioaFEEL0jnxSi7hLTU3lySefBML7mbzxxhsxey1D1/FXVND61VcsOuMMvlq9mrS0NN58803S09Nj9rpCCCEGjiyVFkPC8ccfz+WXX84f//hHLrzwQoqLixk7duyAvoavtJSml5bjL9vM+m+KOaqmmuzx4zlj6VLy8/MH9LWEEELEjoy8iCHjrrvuorCwkJqaGn7xi1/0aGOznvKVllL/8DJ8JWspqaris61baAnpnHnALNLfex9faemAvZYQQojYkuRFDBl2u53nnnsOs9nMiy++GJ1K6i9D12l6aTnBxkY+31HN52vXogMHHXEEmXPnEmpy07R8OYa03RZCiGFBkhcxpBx44IHcfvvtQHj10dtvv93v5wxUVdG2fj0fb9hA6bpSQGHevHkUFBSgKAqmjEwCm8sIVFX1+7WEEELEniQvYsi56qqrWLBgAW1tbZxyyik8+uij/Xq+LevX89Vnn1GxYzsmk4kFCxYwc+a3u7Wqdju6348epw3vhBBC9E5Mk5c77riDww8/nISEBFwuV48eYxgGS5YsYfz48djtdo455hhKSkpiGaYYYjRN4+WXX+anP/0poVCISy+9lCuvvLLXG5cZhsHLL7/MWedfgLvNQ2piIqcvXEh2dnaX43SvF9VqRZX9RIQYcrKzs1m6dGncXv+YY47hiiuuiNvrD7TKykoURenTRpZDSUyTl0AgwA9/+EMuvfTSHj/m3nvv5f777+ehhx7i888/JzMzkxNOOIHW1tYYRiqGGqvVypNPPsnvfvc7FODFhx/mspNOouGbb/Zbm2IYBm+//Tbz5s1j4cKFfF1fh8eVwgmzD2JM6pg9jg3W1mDJz8OSlRXDn0iI0eOCCy5AURTuvvvuLre/9NJLvd4C5PPPP482shS9c8EFF3DGGWd0uW3SpElUV1dTVFQUn6AGSEyTl1tvvZUrr7ySmTNn9uh4wzBYunQpN954I9/73vcoKiriqaeeor29nb/97W+xDFUMQYqisHjhQj4862zuGT+BYzZuZPlpp/G/8+fz4n33dUloOzo6qKqq4tVXX+Woo47ixBNP5NNPP8Vut3PV1Vfzs6eexJ6RQaC8jJDHgxEKEfJ4CJSXoaWk4Fq4UHaGFiNWpL+Rt7gYf0XFoBSn22w27rnnHtxud7+eJy0tjYSEhAGKaugzDINgMBiz59c0jczMTEym4d0pZUh9WldUVFBTU8OCBQuit1mtVo4++mhWrlzZ7WP8fj8tLS1dvsTI0Pzqq2y/cjFjK8qZkTaW8fYEMlWNlB3VbLv/AY6YMIFDDjmEyZMnY7PZyM7O5rTTTuOjjz7CarVyxRVXUFFRwb333ovroINI+9UibDOK0JubCVRVoTc3YysqIm3RImyFhfH+cYWICV9pKbV330Pt7+6g9p57w/+9+56Ytwc4/vjjyczM5K677trncf/+97+ZMWMGVquV7Oxs7rvvvi737z5ttGTJEiZPnozVamX8+PH8+te/BuC2227r9kJ5zpw53HzzzXt9/ffff59DDjkEq9XKuHHjuO666/ZIHoLBIJdddhkul4sxY8Zw0003dWnlsGzZMqZMmYLNZiMjI4Mf/OAH0fsMw+Dee+8lNzcXu93OrFmz+Ne//hW9/7333kNRFN566y3mzp2L1Wrl8ccfR1EU1q9f3yWO+++/n+zsbAzDIBQKcdFFF5GTk4PdbmfatGn88Y9/7PI+PfXUUyxfvhxFUVAUhffee6/baaP9vQfHHHMMv/71r7nmmmtITU0lMzOTJUuWdIltb/8uMTOQ21zvzRNPPGE4nc79Hvfxxx8bgLF9+/Yut1988cXGggULun3MLbfcYgB7fPVkS20xdLUXrzU2HX+Cse6gOcam408wNp10srHp+BOMtYccanw2e7bxytRpxrVp6YbS6d/cYrEYeXl5xmWXXRb9HdJDIcNXXm60f/ON4SsvN0IdHV2+10OhOP+kQuyd1+s1SktLDa/X27fHl5QYWxb9yqg45xxj65WLje033GhsvXKxUXHOOcaWRb8yvCUlAxxx2Pnnn28sXLjQeOGFFwybzWZs3brVMAzDePHFF43Op50vvvjCUFXVuO2224wNGzYYTzzxhGG3240nnngiekxWVpbxwAMPGIZhGP/3f/9nJCcnG6+//rpRVVVlfPrpp8af//xnwzAMY+vWrYaqqsZnn30WfezXX39tKIpilJWVdRvntm3bjISEBGPRokXGunXrjBdffNEYO3asccstt0SPOfroow2Hw2Fcfvnlxvr1641nn33WSEhIiL7u559/bmiaZvztb38zKisrjdWrVxt//OMfo4+/4YYbjIKCAuPNN980ysrKjCeeeMKwWq3Ge++9ZxiGYbz77rsGYBxwwAHG22+/bWzevNloaGgw5syZY9x0001d4p0zZ45x/fXXG4ZhGIFAwLj55puNzz77zCgvL4/G9Y9//MMwDMNobW01zjrrLOOkk04yqqurjerqasPv9xsVFRUGYHz11Ve9eg+Sk5ONJUuWGBs3bjSeeuopQ1EU4+23397vv0t39vZ73dzc3OPzd6/HjZYsWcKtt966z2M+//xz5s6d29unjtp9TtQwjL3Ok15//fUsXrw4+n1LSwuTJk3q82uL+DN0ncZnniHU1ISWkoJiNofvMJuxpqZibm0lJT2DnAMOYP7xx5F+4IFMnjyZjIyMLnsTRTrqBsrK0P1+VKsVS14erjMWYu/hVKYQw1Wkv1GoyY0lNy/6Gao5HKiJeQTKy2havpyMgoKYTZmeeeaZHHjggdxyyy08/vjje9x///33c9xxx/Hb3/4WgKlTp1JaWsrvf/97Lrjggj2O37JlC5mZmRx//PGYzWYmT57MIYccAsDEiRM58cQTeeKJJzj44IMBeOKJJzj66KPJzc3tNr5ly5YxadIkHnroIRRFoaCggB07dnDttddy8803Rz9PJk2axAMPPICiKEybNo3i4mIeeOABLr74YrZs2UJiYiLf/e53SUpKIisri9mzZwPQ1tbG/fffz3//+1/mzZsHQG5uLh999BGPPfYYRx99dDSW2267jRNOOCH6/U9+8hMeeuihaOuIjRs38uWXX/L0008DYDabu5yLc3JyWLlyJf/85z8566yzcDgc2O12/H4/mZmZe/036ul7cMABB3DLLbcAMGXKFB566CH+85//cMIJJ+zz3yVWev0be9lll7Fu3bp9fvW1ECjyBtfU1HS5va6ujoyMjG4fY7VaSU5O7vIlhrdAVRWBigowmVAjicsuiqKg2u0Y7e3YDYPjDz+cQw89lHHjxu2RuEQ66qpOJ5asLFSnE1/J2vDt0lFXjHCBqioCZWWYMjL3uPgbzP5G99xzD0899RSl3fzNrVu3jvnz53e5bf78+WzatKnb1YU//OEP8Xq95ObmcvHFF/Piiy92md64+OKLef755/H5fHR0dPDcc89x4YUX7jW2devWMW/evC7vz/z58/F4PGzbti1622GHHdblmHnz5kVjPOGEE8jKyiI3N5fzzjuP5557jvb2dgBKS0vx+XyccMIJOByO6NfTTz9NWVlZl1h2v+D/0Y9+RFVVFZ988gkAzz33HAceeCCFnaa4H330UebOnUtaWhoOh4O//OUvbNmyZa8/b3/egwMOOKDL48aNG0ddXR2w/3+XWOh18jJ27FgKCgr2+WWz2foUTE5ODpmZmaxYsSJ6WyAQ4P333+fwww/v03OK4Uf3eEDXUcxmjO7+ADQNPRhEUdVulzfvfsWpORwomobmcGDJzZOOumJU0D2e8Iij3d7t/YPV3yhSQH/DDTfscV93o+rGPrYFmTRpEhs2bODhhx/GbrezaNEijjrqKDo6OgA47bTTsFqtvPjii7zyyiv4/X6+//3v7/X59vX6PV0VlZSUxOrVq3n++ecZN24cN998M7NmzaKpqQl912fMa6+9xpo1a6JfpaWlXepeABITE7t8P27cOI499tjoYpXnn3+ec889N3r/P//5T6688kouvPBC3n77bdasWcPPfvYzAoFAj+Lu7Xtg7uZCMvLz7e/fJRZiWrC7ZcsW1qxZw5YtWwiFQtF/OE+nP5aCggJefPFFIPxmXHHFFdx55528+OKLrF27lgsuuICEhATOOeecWIYqhhDV4UBNTkZNSED3evc8IBSCYAeW3NxulzcPlStOIeJJdThQrdbu/4YY3P5Gd999N6+88soeCy8KCwv56KOPuty2cuVKpk6diqZp3T6X3W7n9NNP58EHH+S9995j1apVFBcXA2AymTj//PN54okneOKJJ/jRj360z5VKhYWFrFy5skvCtHLlSpKSkpgwYUL0tsjoR+fvp0yZEo3RZDJx/PHHc++99/LNN99QWVnJf//7XwoLC7FarWzZsoX8/PwuXz0pb/jJT37CP/7xD1atWkVZWRk/+tGPovd9+OGHHH744SxatIjZs2eTn5+/x2iOxWLZb3+snr4H+7Ovf5dYiOlaqZtvvpmnnnoq+n1kHvDdd9/lmGOOAWDDhg00NzdHj7nmmmvwer0sWrQIt9vNoYceyttvv01SUlIsQxVDiCUrC2t+PiF3I7rfT6ilBdVuRzGZ0Ds6CLndmFJTST33J93O1UeuOE37uOIM1tVJR10xolmysrDk5YWnThPzuiTyxq7+RraiokHpbzRz5kx+8pOf8Kc//anL7b/5zW84+OCDuf322zn77LNZtWoVDz30EMuWLev2eZ588klCoRCHHnooCQkJPPPMM9jtdrI6/Qw///nPmT59OgAff/zxPuNatGgRS5cu5X/+53+47LLL2LBhA7fccguLFy/uMg29detWFi9ezC9/+UtWr17Nn/70p+iqqFdffZXy8nKOOuooUlJSeP3119F1nWnTppGUlMRVV13FlVdeia7rHHHEEbS0tLBy5UocDgfnn3/+PuP73ve+x6WXXsqll17Kscce2yWZyM/P5+mnn+att94iJyeHZ555hs8//5ycnJzoMdnZ2bz11lts2LCBMWPG4HQ6+/we7EtP/l0GWkyTlyeffHK/m+vtPkSoKApLlizZYxmWGD0UVcV1xkI6tm8HQPf60NvbMTweCAYxpaaSdvmvse+ltqrzFafWzVWldNQVo0Hk76h++3YC5eGRSNVuR/d6CdbWDHp/o9tvv51//vOfXW476KCD+Oc//8nNN9/M7bffzrhx47jtttu6LdYFcLlc3H333SxevJhQKMTMmTN55ZVXGDPm2+aTU6ZM4fDDD2fnzp0ceuih+4xpwoQJvP7661x99dXMmjWL1NRULrroIm666aYux/30pz/F6/VyyCGHoGka//M//xNtnOdyuXjhhRdYsmQJPp+PKVOm8PzzzzNjxozoz52ens5dd91FeXk5LpeLgw46qNtptN0lJydz2mmn8X//93/89a9/7XLfJZdcwpo1azj77LNRFIUf//jHLFq0iDfeeCN6zMUXX8x7773H3Llz8Xg8vPvuu3t0GO/pe7AvPfl3GWiKsa8JxmGopaUFp9NJc3OzFO8Oc5HVQv7Nm9FbWkBVseTmknruudiLZuz1cYauh/tYlKztssoCwslyoLwMW1ERGddeK43pxJDm8/moqKggJyenz7WE3a66y8/DtXDhiOxvZBgGBQUF/PKXv+yyElUMHXv7ve7N+Xt4t9gTI5qtsJCMgoJwQzmPB9Xh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aWkpvn37hoODg/O1YDCIhIQEuFwuc4LG7NZgBfzzeFh/f798/vxZmpqaJDU1VdbX10VExOfzycOHDyN+RtM00TRNPB6P1NXViaZpsry8HI/4ytDb8/DwsNjtdgkEAhGPO+7v78frEpSgt+cXL17I1NSUBINBCQaD8vLlS3E4HNLa2hqvS1CCkXPjd3za6PL0dv38+XOZmJiQYDAonz59Ep/PJwBkfHw8XpegBL09h0IhcblcUlNTI8vLyzI/Py+5ubnS0NBgWkYOL38IBAKSnZ0tiYmJUlRUJPPz8+dfq6+vF6/XG/H9AC68srOzYxtaQXp69nq9/9pzfX197IMrRk/PPT09cvv2bUlJSRGHwyGFhYXS29sr4XA4DsnVovfc+B2HF330dN3R0SE3b96UpKQkSUtLk7KyMnn9+nUcUqtH755eWVmRqqoqSU5OFpfLJc3NzXJ0dGRaPpuIiDl/0yEiIiKKPt7zQkRERErh8EJERERK4fBCRERESuHwQkRERErh8EJERERK4fBCRERESuHwQkRERErh8EJERERK4fBCRERESuHwQkRERErh8EJERERK4fBCRERESvkLZTg84881quMAAAAASUVORK5CYII=", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Set random seed\n", "np.random.seed(0)\n", "\n", "# Generate data\n", "N = 100\n", "noise_std = 0.05\n", "\n", "X_grid = np.linspace(0.1, 0.6, 100)\n", "X = np.random.uniform(0.1, 0.6, (N,))\n", "f = lambda x: np.sin(1/x)\n", "epsilon = noise_std * np.random.randn(N)\n", "\n", "y = f(X) + epsilon\n", "f_truth = f(X_grid) # Ground truth\n", "\n", "# Plot\n", "plt.plot(X_grid, f_truth, 'k', zorder=1, label='Ground truth')\n", "plt.scatter(X, y, color='C3', alpha=0.6, zorder=2, label='Noisy observations')\n", "plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Configuration dataclasses\n", "\n", "We will now conduct the same experiments as in the previous tutorial using ``GPSat.local_experts.LocalExpertOI``.\n", "\n", "First, we break down a single experiment into the following four key components:\n", "\n", "1. The local expert locations\n", "2. The GP model assigned to each local expert\n", "3. The training data\n", "4. The points where we want to make predictions\n", "\n", "In ``GPSat``, we configure each of these four components with a so-called *configuration dataclass*. The goal is to allow sufficient modelling flexibility to accomodate various problems and datasets.\n", "\n", "### 1. Local expert config\n", "We start by setting the configuration for the local expert locations. This can be done by assigning a dataframe containing the locations of the local experts.\n" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "from GPSat.config_dataclasses import DataConfig, ModelConfig, PredictionLocsConfig, ExpertLocsConfig\n", "\n", "# Construct a data frame containing the two local expert locations\n", "xpert_loc_1 = 0.25\n", "xpert_loc_2 = 0.45\n", "xpert_locs_df = pd.DataFrame({'x': [xpert_loc_1, xpert_loc_2]})\n", "\n", "# Set up an expert location configuration dataclass\n", "expert_loc_config = ExpertLocsConfig(source=xpert_locs_df)\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The ``source`` argument is where we point to the expert locations. In this case, we simply used a dataframe to represent the expert locations and pointed to that. However in more advanced applications, we also have the functionality to instead point to a file where the expert locations are saved, which can be more convenient.\n", "\n", "### 2. Model config\n", "Next, we set up the configuration for the model assigned to each local expert. Here, we will use the ``sklearnGPRModel``, which we specify as follows:" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "# Set up configuration for the model\n", "model_config = ModelConfig(oi_model=\"sklearnGPRModel\",\n", " init_params={\"likelihood_variance\": noise_std**2,\n", " \"kernel\": 'RBF',\n", " \"verbose\": False}\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We specified the model we are using in ``oi_model`` (pre-implemented ``GPSat`` models can be referred to by strings), and in ``init_params``, we pass any arguments used to initialise the model (expressed as a dictionary). Note that we *do not need* to specify arguments to set the data here (namely ``data``, ``coords`` and ``obs``) as this will be done automatically in the main loop.\n", "\n", "There are also functionalities to specify constraints on parameters, re-scale the data, etc... however, we will ignore these for the sake of keeping the presentation simple.\n", "\n", "### 3. Data config\n", "Next we set up the configuration for data. Here, we configure information such as the source of data and instructions on how to assign a subset of the data to each local expert.\n", "\n", "First, we put our training data into a pandas dataframe." ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
xy
00.3744070.395253
10.4575950.862078
20.4013820.628628
30.3724420.364094
40.3118270.009149
\n", "
" ], "text/plain": [ " x y\n", "0 0.374407 0.395253\n", "1 0.457595 0.862078\n", "2 0.401382 0.628628\n", "3 0.372442 0.364094\n", "4 0.311827 0.009149" ] }, "execution_count": 5, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Write data as dataframe\n", "data_df = pd.DataFrame({'x': X, 'y': y})\n", "\n", "data_df.head()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "For the local data selection, we want to select data points within ± the training radius from the expert locations.\n", "\n", "In ``GPSat``, we have a unique API to select data from simple instructions. These instructions are expressed in a dictionary with the keys ``\"col\"``, ``\"comp\"`` and ``\"val\"``. For example, see below for the instructions to select data within ± the inference radius of some reference point." ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "# Set inference radius\n", "training_radius = 0.15\n", "\n", "local_select_instructions = [{\"col\": \"x\", \"comp\": \"<=\", \"val\": training_radius},\n", " {\"col\": \"x\", \"comp\": \">=\", \"val\": -training_radius}]\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The first argument ``\"col\"`` indicates which column in the dataframe we want to impose conditions on (in this case ``\"x\"``), the ``\"comp\"`` arguments specifies a relation such as \"greater than\", \"less than\", etc... and the ``\"val\"`` argument specifies the value with which we want to compare our column with (in our case, the training radius).\n", "\n", "Thus programmatically, the above list of commands will select data as follows:\n", "\n", "```\n", ">>> data_1 = data_df[ (data_df[\"x\"] - ref_point) <= training_radius ]\n", ">>> data_2 = data_df[ (data_df[\"x\"] - ref_point) >= -training_radius ]\n", ">>> local_data = union(data_1, data_2)\n", "```\n", "\n", "Here, ``ref_point`` is some reference point, which, in the main loop, will correspond to the expert locations. The command ``union`` is a pseudo-function to take the intersection of members in ``data_1`` and ``data_2``.\n", "\n", "With this data selection instruction specified, we can now set the configuration for data as follows." ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "# Set data config\n", "data_config = DataConfig(data_source = data_df,\n", " obs_col = [\"y\"],\n", " coords_col = [\"x\"],\n", " local_select = local_select_instructions\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The argument ``data_source`` points to the dataframe where our data is stored, ``obs_col`` specifies the column in our dataframe corresponding to the measurements, ``coords_col`` specifies the column corresponding to the input coordinates, and ``local_select`` is where we put our instructions for local data selection.\n", "\n", "### 4. Prediction location config\n", "Finally, we configure the prediction locations. This should include information about the test locations and the local inference region, where the local experts make predictions. The inference region is simply set to be a circular region around the expert location, with radius given by the inference radius.\n", "\n", "First, we write the prediction locations into a dataframe." ] }, { "cell_type": "code", "execution_count": 8, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
x
00.100000
10.105051
20.110101
30.115152
40.120202
\n", "
" ], "text/plain": [ " x\n", "0 0.100000\n", "1 0.105051\n", "2 0.110101\n", "3 0.115152\n", "4 0.120202" ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "# Set up prediction locations as a dataframe\n", "prediction_locs = X_grid\n", "prediction_locs_df = pd.DataFrame({'x': X_grid})\n", "\n", "prediction_locs_df.head()\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can now set the configuration for prediction locations. We take the inference radius to be slightly larger than the training radius to include predictions on the boundaries." ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [], "source": [ "inference_radius = training_radius + 1e-8\n", "\n", "pred_loc_config = PredictionLocsConfig(method = \"from_dataframe\",\n", " df = prediction_locs_df,\n", " max_dist = inference_radius\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Here, the ``method`` argument specifies how the prediction locations are selected. In our case this is ``from_dataframe`` and we specify the dataframe in the argument ``df``. The ``max_dist`` argument specifies the inference radius around the expert location.\n", "\n", "## Run experiment\n", "We are now in shape to run our experiment. To do this, we initialise a ``LocalExpertOI`` object from the four config classes we created." ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "'data_select': 0.001 seconds\n", "'load': 0.002 seconds\n" ] } ], "source": [ "from GPSat.local_experts import LocalExpertOI\n", "\n", "# Set up local expert experiment\n", "locexp = LocalExpertOI(data_config = data_config,\n", " model_config = model_config,\n", " expert_loc_config = expert_loc_config,\n", " pred_loc_config = pred_loc_config)\n", " " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Now, we just need to specify a path where we want to store our results and run an experiment with the ``run()`` method. The stored path should be a HDF5 file, which uses the extension `\".h5\"`." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "---------\n", "storing expert locations in 'expert_locs' table\n", "exception occurred: 'No object named expert_locs in the file'\n", "will now close object\n", "\n", "\u001b[96m---------\n", "dropping expert locations that already exists in 'run_details' table\u001b[0m\n", "exception occurred: 'No object named run_details in the file'\n", "will now close object\n", "\n", "------------------------------\n", "1 / 2\n", " x\n", "0 0.25\n", "'_max_dist_bool': 0.000 seconds\n", "'_from_dataframe': 0.001 seconds\n", "'data_select': 0.000 seconds\n", "'load': 0.000 seconds\n", "'_update_global_data': 0.000 seconds\n", "'local_data_select': 0.001 seconds\n", "number obs: 62\n", "'__init__': 0.037 seconds\n", "'get_parameters': 0.000 seconds\n", "'optimise_parameters': 0.066 seconds\n", "'get_objective_function_value': 0.000 seconds\n", "'get_parameters': 0.000 seconds\n", "parameters:\n", "lengthscales: 0.0321035488284147\n", "kernel_variance: 0.6388633229513591\n", "likelihood_variance: 0.0025000000000000005\n", "'predict': 0.001 seconds\n", "total run time : 0.39 seconds\n", "------------------------------\n", "2 / 2\n", " x\n", "1 0.45\n", "'_max_dist_bool': 0.000 seconds\n", "'_from_dataframe': 0.000 seconds\n", "'_update_global_data': 0.000 seconds\n", "'local_data_select': 0.001 seconds\n", "number obs: 59\n", "'__init__': 0.020 seconds\n", "'optimise_parameters': 0.041 seconds\n", "'get_objective_function_value': 0.000 seconds\n", "'get_parameters': 0.000 seconds\n", "parameters:\n", "lengthscales: 0.16317534178011256\n", "kernel_variance: 0.3296724457270036\n", "likelihood_variance: 0.0025000000000000005\n", "'predict': 0.000 seconds\n", "total run time : 0.22 seconds\n", "storing any remaining tables\n", "SAVING RESULTS\n", "run_details\n", "preds\n", "lengthscales\n", "kernel_variance\n", "likelihood_variance\n", "'run': 1.058 seconds\n" ] } ], "source": [ "# path to store results\n", "store_path = get_parent_path(\"results\", \"1d_tutorial_example.h5\")\n", "\n", "# for the purposes of a simple example, if store_path exists: delete it\n", "if os.path.exists(store_path):\n", " os.remove(store_path)\n", " \n", "# run local expert optimal interpolation\n", "locexp.run(store_path=store_path)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We can extract the results from the HDF5 with the ``local_experts.get_results_from_h5file()`` method." ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "reading in results\n", "getting all tables\n", "'data_select': 0.001 seconds\n", "'load': 0.001 seconds\n", "merging on expert location data\n", "table: 'oi_config' does not have all coords_col: ['x'] in columns, not merging on expert_locations\n" ] } ], "source": [ "# extract, store in dict\n", "dfs, _ = GPSat.local_experts.get_results_from_h5file(store_path)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Check the results that are stored by accessing the keys of the dictionary ``dfs``:" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "dict_keys(['kernel_variance', 'lengthscales', 'likelihood_variance', 'oi_config', 'preds', 'run_details'])" ] }, "execution_count": 13, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfs.keys()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see tables storing the model parameters (``'kernel_variance'``, ``'lengthscales'``, ``'likelihood_variance'``), the full configuration used to run the experiment stored in json format (``'oi_config'``), model predictions (``'preds'``) and details of the experiment run such as run time, device name, etc... (``'run_details'``).\n", "\n", "Let's check the ``'preds'`` table storing the model predictions." ] }, { "cell_type": "code", "execution_count": 14, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
x_dim_0f*f*_varpred_loc_x
00.250-0.5014230.0032680.100000
10.251-0.0801150.0009200.105051
20.2520.3106460.0005720.110101
30.2530.6351140.0006980.115152
40.2540.8665150.0007600.120202
\n", "
" ], "text/plain": [ " x _dim_0 f* f*_var pred_loc_x\n", "0 0.25 0 -0.501423 0.003268 0.100000\n", "1 0.25 1 -0.080115 0.000920 0.105051\n", "2 0.25 2 0.310646 0.000572 0.110101\n", "3 0.25 3 0.635114 0.000698 0.115152\n", "4 0.25 4 0.866515 0.000760 0.120202" ] }, "execution_count": 14, "metadata": {}, "output_type": "execute_result" } ], "source": [ "dfs['preds'].head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As in the previous tutorial, we can glue overlapping predictions from different experts by running the ``glue_local_predictions_1d()`` method." ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", "\n", "\n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
pred_loc_xf*f*_var
00.100000-0.5014230.003268
10.105051-0.0801150.000920
20.1101010.3106460.000572
30.1151520.6351140.000698
40.1202020.8665150.000760
\n", "
" ], "text/plain": [ " pred_loc_x f* f*_var\n", "0 0.100000 -0.501423 0.003268\n", "1 0.105051 -0.080115 0.000920\n", "2 0.110101 0.310646 0.000572\n", "3 0.115152 0.635114 0.000698\n", "4 0.120202 0.866515 0.000760" ] }, "execution_count": 15, "metadata": {}, "output_type": "execute_result" } ], "source": [ "glued_preds = glue_local_predictions_1d(preds_df = dfs['preds'],\n", " pred_loc_col = 'pred_loc_x',\n", " xprt_loc_col = 'x',\n", " vars_to_glue = ['f*', 'f*_var'],\n", " inference_radius = inference_radius)\n", "glued_preds.head()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We plot the results below" ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "" ] }, "execution_count": 21, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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hZx22mlRjrpru/nmmzGbzWzYsIFLL72UkSNHMnbsWC6++GI+/fRTzjvvvMPeb9myZSiKQn1ktSLAli1bUBSF/EjLEYBVq1Zx6qmnYrfb6du3L7/4xS9avRFWVlZy3nnnYbfbGThwIP/85z+/M+ZrrrmGCy64gIceeoi0tDTi4uL46U9/2urNau7cudx6663ceeedpKSkcNZZZwGwa9cuzj33XFwuF+np6Vx11VVUV1e33M/j8XD11VfjcrnIyMjgqaeeOuTxD/4kX19fz09+8hPS09OJiYlhzJgxfPLJJyxbtoxrr72WhoYGFEVBURQefPDBw56jsLCQBQsW4HK5iIuL49JLL6WioqLl9gcffJAJEybwxhtvMGDAAOLj4/nhD39IU2TBBcB///tfxo4di91uJzk5mTPPPPOoScfbb7/N+ZHWGc0+//xzrrnmGkaPHs348eNZuHAhhYWFbNy48aj/Tz7++GOysrKIiYlh0KBBPPTQQ2iaBsDvfvc7MjMzqan53+ah559/PqeeeipG5MOzoig899xznHPOOS2/C//5z39aPUZJSQmXXXYZiYmJJCcns2DBgla/a82/F4888giZmZkMGzaMuXPnUlBQwB133NHy/wCgoKCA8847j8TERJxOJ6NHj2bRokUt55o/fz41NTV88803R33eJ0omL8dJi9SFGELgzOieTRkPFoysONLKymTRbg8TKixEq6nGFB9H/b/DL2yu007DkhEu0jWCQXauXcc7mzbhVlWeeOKJqMUqhMDweqNyOdYRx5qaGhYvXswtt9yC0+k87DEn8oFm+/btzJ8/n4suuoht27bxzjvvsGLFCm699daWY6655hry8/P56quv+O9//8uzzz5LZWXld5576dKlZGdn8/XXX/PWW2/x/vvv89BDD7U65rXXXsNsNrNy5Ur+8Y9/UFZWxpw5c5gwYQIbNmzg888/p6KigksvvbTlPnfffTdff/0177//PosXL2bZsmVHfeM2DINzzjmHVatW8eabb7Jr1y4effRRVFVl5syZPP3008TFxVFWVkZZWRm//OUvDzmHEIILLriA2tpavvnmG5YsWcK+ffu47LLLWh23b98+PvjgAz755BM++eQTvvnmGx599FEAysrKuPzyy7nuuuvIzs5m2bJlXHTRRUf8Xairq2PHjh1Mjky1H0lDQwMASUfZ2PGLL77gRz/6Eb/4xS/YtWsX//jHP3j11Vd5+OGHAbj33nsZMGAAN9xwAwDPP/88y5cv54033sBk+t/b93333cfFF1/M1q1b+dGPfsTll19OdnY2AF6vl9NOOw2Xy8Xy5ctZsWIFLpeLs88+u1XS2vx7sWTJEj755BPee+89+vTpw+9+97uW/wcAt9xyC4FAgOXLl7N9+3Yee+wxXC5Xy3msVivjx4/n22+/PerP50R177mOKApVVQEQNAziunFTxgOZ+/eH6mrMDZEVR6k943md7EQwiH/PHpQYO95Vq9GqqjDFxRL3vXNbjvEXFfHcxx+RGwhw169+xeDBg6MXr89HzqSsqDz28E0bUY5hSiI3NxchBMOHD291fUpKCv5IIf8tt9zCY489dlxxPPHEE1xxxRUtxa5Dhw7lmWeeYc6cOTz33HMUFhby2WefsWbNGqZNmwaEpzJGjhz5nee2Wq288sorOBwORo8eze9+9zvuvvtufv/737e8IQ4ZMoTHH3+85T73338/kyZN4o9//GPLda+88gp9+/Zlz549ZGZm8vLLL/P666+3jNS89tpr9OnT54hxfPnll6xbt47s7GyGDRsGwKBBg1puj4+PR1EUevXqddRzbNu2jby8PPr27QvAG2+8wejRo1m/fj1TpkwBwonSq6++SmxsLABXXXUVS5cu5eGHH6asrAxN07jooovo3z/c523s2LFHfMyCggKEEGRmHvlDqxCCO++8k9mzZzMmMiV/OA8//DC/+c1v+PGPf9zy/H//+9/zq1/9igceeABVVXnzzTeZMGECv/nNb/jrX//KCy+80BJns0suuaQlwfn973/PkiVL+Otf/8qzzz7L22+/jclk4qWXXmpJqBcuXEhCQgLLli1jXqRY3+l08tJLL2G1WlvOq6oqsbGxrf4fFBYWcvHFF7f8jA78f9asd+/erUZ2OoJMXo6Tt7QUCDdl7JuSEuVo2kfShPEEN27EGQgQqG/A+t13kbqBYHEJWmUl5vR0GpcsASDue9/DFGMHwpstLl+/js/37SM5LY177703muF2KwePrqxbtw7DMLjyyisJnMBmjxs3biQ3N7fVVJAQAsMwyMvLY8+ePZjN5laf/keMGHHYAteDjR8/vlXNyIwZM3C73RQVFbW8KR48qrBx40a+/vrrVp+wm+3btw+fz0cwGGTGjBkt1yclJR2S3B1oy5Yt9OnTpyVxOR7Z2dn07du3JXEBGDVqFAkJCWRnZ7ckLwMGDGhJXAAyMjJaRqnGjx/PGWecwdixY5k/fz7z5s3jBz/4AYmRkeiD+SJT6jExMYe9HeDWW29l27ZtrFix4qjxb9y4kfXr17eMtADouo7f78fr9eJwOBg0aBBPPvkkP/3pT7nsssu48sorDznPgT/35u+3bNnS8hi5ubmtnj+A3+9n3759Ld+PHTu2VeJyJL/4xS/42c9+xuLFiznzzDO5+OKLGRdZrdrMbrd3eMG6TF6OU1NREQA+IXDGxUU5mvaRNm0axS+/QorZTNHOHYyaMD7aIUknSOg6gb17UCxWvBs2YtTXY4qPxxl5sROGQUNREX9+/33qdJ0XH36YuCj/Pit2O8M3Hb1OoCMf+1gMGTIERVHYvXt3q+ubP4Xaj3Ke5tGNA6clQqFQq2MMw+CnP/0pv/jFLw65f79+/VpWsbRnrd2B5zp4KswwDM4777zDjiRlZGSwd+/eNj/e0X5Gx0oIcdifwcHXWw5aDaooSkvNiKqqLFmyhFWrVrF48WL++te/cu+997J27VoGDhx4yLlTIh9W6+rqSD3M6PTPf/5zPvroI5YvX37UkScI/1wfeughLrrookNuOzA5Wr58Oaqqkp+fj6ZpmI9hgUjz8zcMg6ysrMPWRB0Y/5GmPw92ww03MH/+fD799FMWL17MI488wlNPPcXPf/7zlmNqa2s7fPRW1rwcJ3dk5KW7d5Q+kH30aACcqkrZlq2IyB+31H1pFRWEysoxJSXS9MUXAMTNOwvFHP6d1aqq+OCbZWypqWH8+PFc2wX6FymKgsnhiMrlWJOB5ORkzjrrLP72t7+1eTVJ8xtGcw0B0PIpudmkSZPYuXMnQ4YMOeRitVoZOXIkmqaxYcOGlvvk5OS0KgI+kq1bt7aMHgCsWbMGl8t11Dfa5ngGDBhwSDxOp5MhQ4ZgsVhYs2ZNy33q6urYs2fPEc85btw4iouLj3iM1Wr9zhUro0aNorCwkKLIh0kIFxY3NDQc0xRaM0VRmDVrFg899BCbN2/GarXy/vvvH/bYwYMHExcXx65du1pdL4Tg1ltv5b333uOrr746bOJzsEmTJpGTk3PY/8/NSe4777zDe++9x7JlyygqKuL3v//9Iec58Ofe/P2IESNaHmPv3r2kpaUd8hjx8fFHje9I/w/69u3LTTfdxHvvvcddd93Fiy++2Or2HTt2MHHixO98/idCJi/HyR+peQmZ1ZY3gu7OnJyMJ5LRN+7dg+GVK466u2B+AQhBYOtW9JoaTC4XzlmzgHAtTEVBPn/77DN8QvDnP/9ZLo1ug2effRZN05g8eTLvvPMO2dnZ5OTk8Oabb7J79+4j/iyHDBlC3759efDBB9mzZw+ffvrpIStzfv3rX7N69WpuueUWtmzZwt69e/noo49aPt0OHz6cs88+mxtvvJG1a9eyceNGbrjhhmMazQgGg1x//fXs2rWLzz77jAceeIBbb721VQHowW655RZqa2u5/PLLWbduHfv372fx4sVcd9116LqOy+Xi+uuv5+6772bp0qXs2LGDa6655qjnnDNnDqeeeioXX3wxS5YsIS8vj88++4zPP/8cCE/1uN1uli5dSnV19WGnIc4880zGjRvHlVdeyaZNm1i3bh1XX301c+bM+c6C2mZr167lj3/8Ixs2bKCwsJD33nuPqqqqIyY/JpOJM88885ApoVtuuYU333yTf/3rX8TGxlJeXk55eXmrRPFg999/P6+//joPPvggO3fuJDs7m3feeYff/va3ABQXF/Ozn/2Mxx57jNmzZ/Pqq6/yyCOPHJKs/Oc//+GVV15hz549PPDAA6xbt66luPvKK68kJSWFBQsW8O2335KXl8c333zDbbfdRnFx8VF/NgMGDGD58uWUlJS0rCy7/fbb+eKLL8jLy2PTpk189dVXrX5W+fn5lJSUcOaZZx713CdM9DANDQ0CEA0NDR36OCt/dJXYNXyEeH/UKBEoLOzQx+pMK2afInYNHyH+M3WqCJZXRDsc6QRoDQ2i9u13RO2774k9p84Ru4aPEMW//rVoXPqVaFz6lah+9VXxq7lzhQpiwYIFUYvT5/OJXbt2CZ/PF7UYjldpaam49dZbxcCBA4XFYhEul0tMnTpVPPHEE8Lj8bQcB4j333+/5fsVK1aIsWPHipiYGHHKKaeI//znPwIQeXl5LcesW7dOnHXWWcLlcgmn0ynGjRsnHn744Zbby8rKxPe+9z1hs9lEv379xOuvvy769+8v/vznPx8x3h//+MdiwYIF4v777xfJycnC5XKJG264Qfj9/pZj5syZI2677bZD7rtnzx5x4YUXioSEBGG328WIESPE7bffLgzDEEII0dTUJH70ox8Jh8Mh0tPTxeOPP37IuQ6Or6amRlx77bUiOTlZxMTEiDFjxohPPvmk5fabbrpJJCcnC0A88MADhz1HQUGBOP/884XT6RSxsbHikksuEeXl5S23P/DAA2L8+PGtnsuf//xn0b9/fyGEELt27RLz588XqampwmaziWHDhom//vWvR/wZCiHE559/Lnr37i10XW+5DjjsZeHChd95rpkzZwq73S7i4uLE1KlTxQsvvCAMwxBnnHGGmD9/fsvPWAgh7rjjDjF48GDR1NTU8rh///vfxVlnnSVsNpvo37+/eOutt1o9RllZmbj66qtFSkqKsNlsYtCgQeLGG29seZ9s/r042OrVq8W4ceOEzWYTzenCrbfeKgYPHixsNptITU0VV111laiurm65zx//+Ecxf/78oz7nI/3Nt+X9W4k8+R6jsbGR+Ph4GhoaOnTufsX555O8Zy+77Xa+v+jTliWn3d3aq64mbv16dgPnLlqEbdB3D31KXZM/OxvPqlWEamupe/kVFLudjIf/gCnGjuH1kr12LRc9+ghVwM6dO0+ocPKE4vT7ycvLY+DAgUctgpRO3DXXXEN9fX2ntCroyYQQTJ8+ndtvv53LL788qrEoisL777/PBRdcENU4AAKBAEOHDuWtt95iVmSE93CO9DfflvdvOW10nERTuPOyYbOhdPPddQ+UND5cpOsMBgk21Ec3GOm4iVCIwL59KE4nTZ+Ha11cp52GKcaOEIJgWRl/+/ADyjSNn/3sZ1FLXCSpO1IUhRdeeKFlMzkprKCggHvvvfeoiUt7kcnLcVIi86+K3d7tWwMcqNeM6QAkqyrFBxWkSd1HqLwcrbqaUGkpWkkJitVK7GlzgfDS6HU7d/DJzp3Ex8dz//33RzVWSeqOxo8fz1VXXRXtMLqUYcOGdVo/tJ7zrtvJ1OaO0q7u31H6QPbRozEAh6pSvmULI374QxRZxNntBPMLAAX34vC+Lq65czA5XQgh8FdW8NS779JgGDx+770tSz+lnu/VV1+NdghSO+thlR/HTI68HCdLZF8Gc2xsj5o2MicktKw4atq7F0N2xu12tLo6gsXFGG43wfx8MJtxnX4GEB51+XLNGtaXljJgwIBWezNIkiR1FzJ5OQ7CMLBG9kAxx8f1qOQFIBDZWVIvr5A9jrqhUEkJhteDd/06ABxZWahxcQghqC8s4G8ffYzbMHj00UdlgawkSd2STF6Og97URPNEUUxyco9LXiyRNu9qQwPGAZ1Xpa7PCAYJ5O4DkwnvhvAuta65c8K3NTTw8Vdfk93YwPTp01s11ZMkSepOZPJyHPTIZj2aEDh6YL1AYqQtgD0YJHhAK3ap69NKS9Fra/Dv3AW6jqV/f6z9ByCEoGx3NguXLqXJMHjyySfbdWt5SZKkziSTl+OgRZIXv2EQm5wc5WjaX+bMmQAkm0yU7tx50haEdTdCCAL5+QiTCc+qlQC45vxv1OXdL75gf8DPhRde2ClLGSVJkjqKTF6OQ6g6PBrhMwxcPTB5sY8Zgw7YVZWK7TswPLJotzvQ6+oIlZWhlZVh1NZhcjpxZGUhhGDvxo28u24dHkXhkUceiXaoJ8Qd0Fi9rwZ3oG17bBzv/SRJ6npk8nIc3CUlAPiFIK4HThuZY2PxRJZ/N+7di+GWdS/dQai0FMPrxbt2LQDOWbNQLBb0xgb+s+hT8oJBfvKTnzB8+PAoR3pivAGNNftr8LYxCTne+3VVDz74IBMmTIh2GB1u7ty53H777dEOg2uuuaZL7GIrhcnk5Th4KsoBCCCwOo6tjXh3E4x0vtXKy9EbG6McjfRdRDBIcP9+jECAwO4cUBRcp5wCwOZly1iyezea3c4DDzwQ5Ug7jmEIimq97C5vpKjWi2F07HSnfDM7MV3155efn4+iKId0+v7LX/4i98npQnrWMplO4q+sxAqETCqKpWf+CG0jhkNpKVZ3E3p9fbTDkb5DqKICrbYO35atAMSMHYuanEywro73Fn1GXjDI3fffT3p6epQj7Ri5lU18saOCfVVu/JpOjFllcKqL+WPSGZIWG+3wpAPout4ti8Xj4+OjHYJ0ADnychyCdXUAGBZzj1sm3SwjUtAZr+u4i4pk0W4XFywowAgG8UWmjFxzTgVgxaJP2VBSTExqKnfddVc0Q+wwuZVNLFyZz47SBhIcFgaluEhwWNhR2sDClfnkVkZn2vObb75h6tSp2Gw2MjIy+M1vftOqF45hGDz22GMMGTIEm81Gv379ePjhh1tu//Wvf82wYcNwOBwMGjSI++67j1Bkc8xjtWvXLs4991xcLhfp6elcddVVVEcWHCxbtgyr1cq3337bcvxTTz1FSkoKZWVlQHjK5tZbb+XWW28lISGB5ORkfvvb37Z6PQgGg/zqV7+id+/eOJ1Opk2bxrJly1puf/XVV0lISOCTTz5h1KhR2Gw2rr32Wl577TU+/PBDFEVBUZRW9zmauro6rr76ahITE3E4HJxzzjns3bu31TErV65kzpw5OBwOEhMTmT9/PnWR1+3PP/+c2bNntzyf73//++zbt6/lvgMHhpvRTpw4EUVRmDt3LnDoSFEgEOAXv/gFaWlpxMTEMHv2bNavX99y+7Jly1AUhaVLlzJ58mQcDgczZ84kJyen5ZitW7dy2mmnERsbS1xcHFlZWWzYsOGYfg4nO5m8HAejrh4A3WLtsclL2uzZACSZLRRv2y43q+vC9Pp6QsXFBPfvQwQCmNPTsY0Ygae+jkVfLKYgFOKhhx7C5XJFO9R2ZxiCL3ZUUOsJMjTNRWyMBdWkEBtjYWiai1pPkMU7Kzp8CulgJSUlnHvuuUyZMoWtW7fy3HPP8fLLL/OHP/yh5Zh77rmHxx57jPvuu49du3bxr3/9q9XIWGxsLK+++iq7du3iL3/5Cy+++CJ//vOfjzmGsrIy5syZw4QJE9iwYQOff/45FRUVLfv7NNeSXHXVVTQ0NLB161buvfdeXnzxRTIyMlrO89prr2E2m1m7di3PPPMMf/7zn3nppZdabr/22mtZuXIlb7/9Ntu2beOSSy7h7LPPbpVQeL1eHnnkEV566SV27tzJM888w6WXXsrZZ59NWVkZZWVlzIyscvwu11xzDRs2bOCjjz5i9erVCCE499xzWxK7LVu2cMYZZzB69GhWr17NihUrOO+889B1HQCPx8Odd97J+vXrWbp0KSaTiQsvvBAjsvHounXhzR2//PJLysrKeO+99w4bx69+9SveffddXnvtNTZt2sSQIUOYP38+tbW1rY679957eeqpp9iwYQNms5nrrruu5bYrr7ySPn36sH79ejZu3MhvfvMbLD2o3UyHEj1MQ0ODAERDQ0OHPcbqU04Vu4aPEO9MniyCxcUd9jjRpPv9Yu3IUWLX8BHiyx9cIoKlpdEOSToC365dovqll0TOGWeIXcNHiNJ77xWNS78Sr//wcnGGyyVGDB8uQqFQtMM8Ip/PJ3bt2iV8Pt8xHV/R4BN3/2eL+NPi3eKJz7PF959ZLi55bqX40UtrDrlc8txK8f1nlosnPs8Wf1q8W9z9ny2iouHYHue7/PjHPxYLFiw47G3/93//J4YPHy4Mw2i57u9//7twuVxC13XR2NgobDabePHFF4/58R5//HGRlZXV8v0DDzwgxo8ff8Tj77vvPjFv3rxW1xUVFQlA5OTkCCGECAQCYuLEieLSSy8Vo0ePFjfccEOr4+fMmSNGjhzZ6nn8+te/FiNHjhRCCJGbmysURRElJSWt7nfGGWeIe+65RwghxMKFCwUgtmzZ0uqYo/38Do7htttuE0IIsWfPHgGIlStXttxeXV0t7Ha7+Pe//y2EEOLyyy8Xs2bN+s7zNqusrBSA2L59uxBCiLy8PAGIzZs3HzFet9stLBaL+Oc//9lyezAYFJmZmeLxxx8XQgjx9ddfC0B8+eWXLcd8+umnAmj5XY+NjRWvvvrqMcfaUxzpb74t799y5OU4mHy+8D9i7GDumVmyyWbDG5njDZSUoDfKFUddkdA0Avv3ozU0oheXgKpinzqNupoavv36K/YFgjz8xz9i7mEjhLoh8AR06rwhfEEdAQQ145CLAHyh8HGegI7eSSMw2dnZzJgxo1Vtx6xZs3C73RQXF5OdnU0gEOCMM8444jn++9//Mnv2bHr16oXL5eK+++6jsLDwmGPYuHEjX3/9NS6Xq+UyYsQIgJZpEqvVyptvvsm7776Lz+fj6aefPuQ806dPb/U8ZsyYwd69e9F1nU2bNiGEYNiwYa0e55tvvmk1FWO1Whk3btwxx34k2dnZmM1mpk2b1nJdcnIyw4cPJzs7G/jfyMuR7Nu3jyuuuIJBgwYRFxfXMk3Ulp/tvn37CIVCrfZLslgsTJ06tSWOZgc+7+YRrcrKSgDuvPNObrjhBs4880weffTRVj8z6eh61itaJxCGgSkQAEBxOntswS6AadBA2FiHqaEBvb4u2uFIh6FVVKBVV+PftRMA+4QJqC4XH7/yMmVeL70nTuDCCy+McpTtTzUpOG0qMRYTdquKAljNh34WC4R07BaVREd4OqnR3zmFokKIQ4pSRaRORFEU7Hb7Ue+/Zs0afvjDH/LQQw8xf/584uPjefvtt3nqqaeOOQbDMDjvvPN47LHHDrntwGmhVatWAVBbW0ttbS1O57GvoDQMA1VV2bhxI+pB3ecPnKa02+3tUqQrjlB7d+DP+7t+tueddx59+/blxRdfJDMzE8MwGDNmDMFgsM1xHO7/8cHXHTgN1Hxb8xTVgw8+yBVXXMGnn37KZ599xgMPPMDbb7/dI/9m25sceWkjEQphjhTdmeN6VkfpgyVPDX+6cQWDBCsqEJE/OKnrCBYWIYJBfJE+Rs7ZsyktLWXzipXsCwZ5+PHHu+XKju+SEW/nymn9ufOs4Zw9OoNkl42JfROY1C+x5TKxbwLJLhvnjMngzrOGc+W0/mTEH/2Nrb2MGjWKVatWtXqzXbVqFbGxsfTu3ZuhQ4dit9tZunTpYe+/cuVK+vfvz7333svkyZMZOnQoBQUFbYph0qRJ7Ny5kwEDBjBkyJBWl+YEZd++fdxxxx28+OKLTJ8+nauvvrrljbXZmjVrDvl+6NChqKrKxIkT0XWdysrKQx6jV69eR43ParW21KEcq1GjRqFpGmsjhekANTU17Nmzh5EjRwLhkY4j/VxramrIzs7mt7/9LWeccQYjR45sKeQ9MC7gqLENGTIEq9XKihUrWq4LhUJs2LChJY5jNWzYMO644w4WL17MRRddxMKFC9t0/5OVTF7ayAgEMEf+uC1xPa+j9IEGzDsLgGRVpXLPHgyv3Gm3K9HdboJFheEExu9HTUnBNmwo777+Gg1aiBFz5jAn0h6gpzKZFOaPSSfJaWVvpZsmfwjNMGjyh9hb6SbJaWXe6HRMpo5J4BoaGtiyZUurS2FhITfffDNFRUX8/Oc/Z/fu3Xz44Yc88MAD3HnnnZhMJmJiYvj1r3/Nr371K15//XX27dvHmjVrePnll4Hwm2NhYSFvv/02+/bt45lnnuH9999vU2y33HILtbW1XH755axbt479+/ezePFirrvuOnRdR9d1rrrqKubNm8e1117LwoUL2bFjxyGjO0VFRdx5553k5OTw1ltv8de//pXbbrsNCL/xXnnllVx99dW899575OXlsX79eh577DEWLVp01PgGDBjAtm3byMnJobq6+phWUg0dOpQFCxZw4403smLFCrZu3cqPfvQjevfuzYIFC4BwIfT69eu5+eab2bZtG7t37+a5556jurqaxMREkpOTeeGFF8jNzeWrr77izjvvbPUYaWlp2O32lgLnhoaGQ+JwOp387Gc/4+677+bzzz9n165d3HjjjXi9Xq6//vrvfB4APp+PW2+9lWXLllFQUMDKlStZv359m5Ofk5VMXtpIr6+neXDUlpDYo5MXe79+NG9PV71tO4bcrK5LCUVqkbwbI6MuM2eyf/9+9mzYQGEwxAOPPx7lCDvHkLRYrp01gDGZ8dR7Q+RXe6j3hhjbO55rZw3o0H1eli1bxsSJE1td7r//fnr37s2iRYtYt24d48eP56abbuL666/nt7/9bct977vvPu666y7uv/9+Ro4cyWWXXdZSC7FgwQLuuOMObr31ViZMmMCqVau477772hRbZmYmK1euRNd15s+fz5gxY7jtttuIj4/HZDLx8MMPk5+fzwsvvABAr169eOmll/jtb3/baoO2q6++Gp/Px9SpU7nlllv4+c9/zk9+8pOW2xcuXMjVV1/NXXfdxfDhwzn//PNZu3Ytffv2PWp8N954I8OHD2fy5MmkpqaycuXKY3peCxcuJCsri+9///vMmDEDIQSLFi1qmZ4ZNmwYixcvZuvWrUydOpUZM2bw4YcfYjabMZlMvP3222zcuJExY8Zwxx138MQTT7Q6v9ls5plnnuEf//gHmZmZLUnRwR599FEuvvhirrrqKiZNmkRubi5ffPEFiYmJx/Q8VFWlpqaGq6++mmHDhnHppZdyzjnn8NBDDx3T/U92ijjSJGI31djYSHx8PA0NDcTFxbX7+b2bN1Nw+RUEDAP31Vcz697/65HD8hCev/1q8hQyPR5KMjOY/dzzxAwfFu2wJMKFuo2LFxPYt4+avz8LJhMZf/gDf3zySUqzdxE7bx7PvfNOtMM8Jn6/n7y8PAYOHEhMTMx3Hl/Z6Oefawu5clo/0uL+d7xhCErqfXiCGk6rmd4J9lYjLke6n3Rkc+fOZcKECYct5JWk43Wkv/m2vH/33GGDDqLV/K8pozMhvscmLhAuLtP79IGcHKipRT9o/wIperSKCrSqKvy7wisbYsaMYUdBPqXZ2VQIwe+7efPF42EyKfRNckQ7DEmSOoGcNmqj5jdwv2HgSkqKcjQdL27iRABi/D606mpZtNtFBAsKQNPwRXb0dMycyeuvvooZmPmDSxg4aFB0A+xADpuZ6YOScdja9tnreO8nSVLXI/+K2yhQFd5a2ycEcSdB8jJw3jxq336bRBTcpaW4PB7UWNkrJpr0hgaCRUUES8sw3G5McXFsbmygOr8Am83GLQ/23OaLAC6bmRmDkzvtfiezY92yX5I6mxx5aSNvpKO0zzBwngTJS8rYMTQZBiZFoWLLZowmuVldtIVKSzHc7pZCXfv06bz5r38RbzIx85IfkNanT5QjlCRJ6lgyeWkjf0V4NYCumlC/YzOknsDkdFJvDxdUNeUXoMvkJapEKEQgdx8ipBHcvRuArQiqS0qxOp38qBs3X+xhawckSTqC9vhbl8lLGwUjNS+aued2lD6QYjIRjDSL06uq0Gpk0W40hSoq0Gqq8UW2ILcMHcrrH31Ekqpy6kUXkjBgQHQDPA7NO7O2ZYdTSZK6L29kz7ATaULZ899925neFN7rRPTgjtIHixkzFgqLsLnd6NVVCF1HOWgrcKlzBPPyQQi8kc63u+0x1FTXMD4tlfN++lMUU/f7PGI2m3E4HFRVVWGxWDB1w+cgSdJ3E0Lg9XqprKwkISHhkJYSbXFyvPu2E2EYCLcn/G+bDU6S5KX3nFNh0SLihSBYXYPe2Ij5GDdiktqPVldHsLgYrboao64O7HZe+fZb4kwmzjj/fFzdcNQFwkvyMzIyyMvLa/MW+JIkdT8JCQnf2T7iu5wc777tRIRCKH4/AKYYG8oJDHl1J4Nnn8IWXSdWVanetZO40+bK5CUKQiWlCK8H38ZNABQnJFC3dy9T+vTh1Msuw9SGhnpdjdVqZejQoXLqSJJ6OIvFckIjLs1k8tIGIqShRF5cFbvjpJk2ssTHUWsxE2sIGnL3odfVQaSNvNQ5jECAQG4uQlHwbdsGwL927cKiKJzzvXOxd9NRlwM19/yRJEn6LnJyuU1ES0dpNdZ10iQvitmMNym8P0agspJQWZlcGdLJQiWl6DU1BHL2gGFQ53CQ7/EwcdAgJp1xBua0tGiHKEmS1Glk8tIGQtOwRHaYNcfFnzTJC4Aa6WlkaWhAb2yS+710ImEYBPbvA6sF75o1AHxeVgbABeecjW3wYFlALUnSSUUmL22gH9BV2RofD+aTo+YFIO3UOQDEaxp6fR16fX10AzqJaJWVaKVlGI2NaBUVhBSFde4mpo4ZzfCJE7FkZEQ7REmSpE4lk5c2MCLJi1fXccbFoVhOnpGX0WecTo2mYVIUGvbuRZPJS6cJ7s9D6BredeE+RuvcbgICLjvnHKx9+qB2QPd0SZKkrkwmL23QPNrgNwwcJ1HNC0BsWhpVkedbl7sPTda9dAq9vp5gUSGK3Y53U3iV0UqPm+lTp9K/f3+s/fpFOUJJkqTOJ5OXNtAbGoBwU0ZnXPxJVWegWK14I+vytdIS9PoGDI83ylH1fMHiYgy3G392NoRClISCFIRCXHn++agJCZgjux9LkiSdTGTy0gbNUyUBwyA2uec3ZTxYzKSJADjdHnR3k6x76WDNy6OV2Fg8K1YCsNLtYc7cufSKjcU6cCAmqzXKUUqSJHU+mby0ga+qCgA/AtdJ0FH6YINPPx2vrmMBQqVl6A310Q6pRwuVlKDX1qLX1aGVlBAwDDYEAlx+8cWYbFasmZnRDlGSJCkqZPLSBt7KcPISRCEmNjbK0XS+4ZMnUxzZ56Z+/z5CZeVRjqjnEoYRHnWx2vB8uwKA9V4vp8w7ixSzBXNaGmpycpSjlCRJig6ZvLRBoKYaAENVUU7CnUBjkpOpd7kA8OTlo9fVYfh8UY6qZ9LKy9HKy8FqbSnUXRMMctkll2AE/NgGDuyWTRglSZLag3z1a4NQXT0AwmI5afoaHUixWNAGDQLAXFWF4fHIupcOIIQgsG8/wjDwrluHYhjsDwSYcM7ZxJstqLGxmOXeLpIkncQ6NHmpq6vjqquuIj4+nvj4eK666irqv+PN7pprrkFRlFaX6dOnd2SYx6x5tZFhtaKcRBvUHShp9iw0w8Cm62jV1S0/E6n96NXVBAsLURMTqV26FIA1oRAXX3QRekM91j59USMjYJIkSSejDk1errjiCrZs2cLnn3/O559/zpYtW7jqqqu+835nn302ZWVlLZdFixZ1ZJjHrnlL/BjbSbVB3YHGzJpFWaTuJVBaSqiiIsoR9TyBvHxEwI8vdx8Wn48mXWfAOWfjsjsAsPTrG+UIJUmSoqvD3oGzs7P5/PPPWbNmDdOmTQPgxRdfZMaMGeTk5DB8+PAj3tdms9ErsqdIV6JG6jtOpo7SBxs0bhwrhKAv0Lh/P3HV1RjBoFyy2070+nqCeftRE5MoXvgqLmCjpnHxBRei19djTkzCIpswSpJ0kuuwkZfVq1cTHx/fkrgATJ8+nfj4eFatWnXU+y5btoy0tDSGDRvGjTfeSGVl5RGPDQQCNDY2trp0FEsgAIDqdJ60yYvJ6aQpJbzKJVRUiOHxyrqXdhQoKEB3uwk0NeKqqsIQgpSzzsJut6M3NWEZNBBFJoqSJJ3kOix5KS8vJ+0wnxDT0tIoLz/yEttzzjmHf/7zn3z11Vc89dRTrF+/ntNPP51AJHE42COPPNJSUxMfH0/fvh0zpG74/ZgjHaXVuLiTsmAXQFEU1PHjAYjxeNEbG9EjhczSiTE8HoJ796LGJ5D9r38BsMcwOOPiizC8Xkz2GLm3iyRJEseRvDz44IOHFNQefNmwYQMQfqM7mBDisNc3u+yyy/je977HmDFjOO+88/jss8/Ys2cPn3766WGPv+eee2hoaGi5FBUVtfUpHbPFaWl809SELS4WTtKRF4DBM2dSHQoBEKqoIFRaGuWIeoZgURFafQMBBWL35wFgnz0bi8WKVlODJTMT9STcHFGSJOlgbX4HvvXWW/nhD3941GMGDBjAtm3bqDhMMWdVVRXpbejHkpGRQf/+/dm7d+9hb7fZbNhstmM+3/EyxcTwhUkh1uPm+tjYk3bkBWDczFksC4VIsVgIlJZir64Kjww4HNEOrdsyAgECOXtQXS7WvLKQwSYTtUIw/fIfInQddA3bgAFHTfwlSZJOFm1OXlJSUkhJSfnO42bMmEFDQwPr1q1j6tSpAKxdu5aGhgZmzpx5zI9XU1NDUVERGV1gX4v6+npiAYfLdVI1ZTxYxpDBlFksTASa9u0jzu1Gq63FKpOX4xYqLkarqcYXG0fCnj2gqhhTpqCaLWjV1ahJSZjllJEkSRLQgTUvI0eO5Oyzz+bGG29kzZo1rFmzhhtvvJHvf//7rVYajRgxgvfffx8At9vNL3/5S1avXk1+fj7Lli3jvPPOIyUlhQsvvLCjQj1mdXV1ADhiY0/agl0AxWzG178fAKbKSgxNQ6uqjnJU3ZcIhQjk7EGxxbBq4UKSVRUPMPbKKwHQGxuxDh4sV3RJkiRFdOg+L//85z8ZO3Ys8+bNY968eYwbN4433nij1TE5OTk0RDY6U1WV7du3s2DBAoYNG8aPf/xjhg0bxurVq4ntAr2EmjfYc8bGndQ1LwDJU6bg0XVUw8CobyBUUhye3pDaLFhUTKiinAaTQmJODgBi0iRUmw3D48HkdGDt3TvKUUqSJHUdHfoOnJSUxJtvvnnUY4QQLf+22+188cUXHRnScQuFQjS53RAbiysp8aSvPRg1bRpF7/ybEapKqKwUS2YGekMDZllQ2iYiFCKwezeK1cbXr77KDIuFIDA0Ulem1dVi7dcPNTExuoFKkiR1IbK30THy+/3MOfVU+vTtiytRvkGPnzWLPZHl657sbAyfH72mJspRdT/Noy6VWoikPeGidDF+HKrLFR7J0rRwE8aTPFmWJEk60Mk999EGsbGxfPTxxzR+8gmqwx7tcKIuIT2d8vh4APSCQhCCUHk5tqFDoxxZ93HgqMsXL7/MPJsNHRhw6aUA6HV1qEnJsgmjJEnSQeTIy3EwdcLS7O7AMXYstZqGYhhoVZVo5RUYkRYK0ndrHnUp9rhJyc0NXzlqFGpkZE9vasQ2RBbqSpIkHUwmL22lmFCsMnkBGD97FvnBIACB/AJ0jxu9tjbKUXUPB466fPj6G0ywh0fzMi8Kr6rT3W5MDgcWuTxakiTpEDJ5aSNFNZ20HaUPNu2MM9gbqXvx794dnjqqlkumj0XzqMve6ip65edjUhQYMgRLZnhVkV5Tg7VvX1moK0mSdBgyeWkrVT2p93g5UL+RI6l0udCFwKisRASChEpKEJEeUNLhNY+6YLXyweuvM8PpBCB1wflAuI+WoqrYBg+WhbqSJEmHIZOXtlLNMnmJUFSVlPHjKG3uc1Rail5fjx7Zt0c6vGBREaGKcrYUFDCqqhpVUTANG4Zt8BAAtOoqLH37YG5DGw1JkqSTiUxe2khR1ZO6r9HBRs+eTUFz3cu+XAyfT9a9HIXh9+PfuRNhsbL4zX8y2eFAAKmX/AAAEQyCIbANGYJikn+ekiRJhyNfHdtIUU0n/e66B5p6xhkt+734s3eDaiZUXh7lqLquQO4+QhWVrMzexRSvBwDrxAlYevcBQKuuxpLRC4tcHi1JknREMnlpKzny0sqAsWOpjnXh03WE14vR2IhWVobh90c7tC5Hb2wkkJ2NcDpZ9fY7jI6xYwDJkb5dQtMQwQC2ocPk1KQkSdJRyOSlDRRzuN5F7vPyP4rJRMaECRRG6l6ChYXobjdaVVWUI+t6/Ltz0BoaWLJ2DXMiRc3O2bMxp6QCoNXUYE5Lw9pH9jGSJEk6Gpm8tIEpJgbXrFmYIqtDpLAxs2eTH4rUveTkgIBQmZw6OpBWVUVgXy5abCw73nufgTYbuslEwve/B4AwDITXg23YMBS5KZ0kSdJRyeSljeQby6Gmn3UWu/3hupfgvn0oNiuh4mKMSC3MyU4YBr7s3Qi/n48Wf8GZkWnHuDPPRI2LtFiorUVNSsbar180Q5UkSeoWZPIinbABo0fTGBtLbSgEhkGoogK9sQGtSm5YBxAqKSGUn4fbZqPii8VkWCzoVivx8+cD4eRGb2zENmwoppiYKEcrSZLU9cnkRTphJpOJvhMnUhCpewnk7AEh0Crk1JEIBvHvykag8P5//sO5kTYAyRcswBT5t1ZVhSU1FdvAgdEMVZIkqduQyYvULsaeMpu8YHiaKJCdjckVS7CwKLxvyUnMv3cvoeIiKnWN+I2bcKgqWkoKzlPnAOHddoXPS8zoUZgcjihHK0mS1D3I5EVqF9PnzSPbH0ATAq2iAsPvR29oQDuJex1ptbX4d+7EFJ/AF6+8wnSHAwPIvO66lg3oQhXlWPr2xdq/f3SDlSRJ6kZk8iK1i8GjRxOIjyM/Mvri37kDRLj+5WQkdB3f9u0Ybg+5ZaWMLS0DQJkwAeuAAQAYPh8KCvZRo+TeQZIkSW0gkxepXSiKQr+sLPYFwtNEvi1bMTldBAsKEZFamJNJMD+f4P79qBm92PLiS2RaLARMJnpfeUXLMVpFOdbBgzBnZkYxUkmSpO5HJi9Suxk3ezZ7AgEMIJSfD8LAaKhH+//27j66qvrO9/h7n+dz8sxDQiDIM0EEAUER6Ygjik5tbbXWqrWrttqq1I5eO7cXrzMj3plOr12tzm21s5yOD4yKtbZ1tO20igpUAUElUQNKIDwFEvKcnJyc571/949gKlUrCTk5OeHzWou1Tg4753zOd+3sfLN/e/9+bW3Zjjak7EiE2NtvYwVDVG3axJlHZxsu+PzncOXl927T1YUrL4/Aqadq5WgRkX5S8yKD5pyLL6YpneJg39DRTozjnFRrHRljiNfUkG5rh+IiOn/5S/wuF50FBYxdvrx3G8fBbm/DX1mJZ9SoLCcWEck9al5k0MyYPRvvuHHsPjphXfSt3qGjVH09Jp3OcrqhkTp0iETtbrzjxrFtzRpmYWEbwynfuAHL6v1xS7e04B49msCMGVlOKyKSm9S8yKA6/bzz2Hv09ujk7t3gdmN3nBxDR05PD7HqanC5iIS7GP3mdgBaZ1VSOL23UXFiMUwiQfD007XMhIjIAKl5kUH1V5/5DC3pNI12GhyHxHvvYVKpET90ZByH2Ntvk2puxj2ujN0//gn5LhdHgPk339y3TaqxEf+M6X13HImISP+peZFBdfaKFaSDQXZGYwDEqqtxFRSQ3Ld/RE9Yl9x/gPiuWrxl4zjy0suUdXaSNgbvZZfh9vWuQp5uacEzejTB00/vm+dFRET6T0dQGVRev59Jixdz4GijEn/3XVzBAHZnJ6nm5iynyww7HCb2VjWW349Jp4g9+ywA1fl5zLvwQuADw0XzTsddUJDNuCIiOU/Niwy6cy75NE3pFG3GQDpNfNcuwJA6WJ/taIPO2DbR6rew2ztwjx3DwQcfxO84HEgmWbByZe827w8XzZyh4SIRkUGg5kUG3V9fdhlRy2JHTwTonbDOXVRM8lA9diSS5XSDK1FXR3LPbjzl5US3vY53337SxrB39qlMmjIV+MBw0dy5Gi4SERkEOpLKoCsaM4axc+aw7/2ho5oarGAAO9xNurExy+kGT7q9ndhbb+PKL8D09NC2di0Az0ejfPbr1wPgRKNHh4vmabhIRGSQqHmRjFh00UU0pdNEABOPk9y9G1cgQGL/fozjZDveCTOpFLGqKpxIN65RJbQ88gjudJq6RIIxn7mE4uJijG2TbjpCYFYlvslaeFFEZLCoeZGMWH7FFYRth7d7egCIvvEG7pIS0s3N2CNgzpf4rlqS+w/gHT+BnpfXk967l4Tj8Aevh0s/fxkAqSONeMaN091FIiKDTEdUyYjJlZUEJ1ZQm+hd1ydaVQ2WhRNPkGxoyG64E5RqaiL2zjtHm7Emuv7rvwB4uquTL3zjG3i9XuyuLiy3m9CCBbhCoewGFhEZYdS8SMbMW76c5nSaLrcbkkli27fjLiggtf9Azs754iQSxKqrMYkErvw82h55FByHt2JRUrNns2jhIkwqhd3eRmDOHLxaMVpEZNCpeZGMOe+yy4g6Dlu7wwD0vPYa7uJi0h0dOTnnizGG+I4dJOsP4Z0wga7f/IZ0QwNh2+YX3RFuuOEbGGNIHT6Mb/JkgrNmZTuyiMiIpOZFMuaMv/orUgUF7OjpwQDJPXuwOzrI1TlfUocPE9+xE8/YsST21hFZ9yIAazs7uOBzn6O8vBy7tRV3QQHBM87A8vmynFhEZGRS8yIZ43a7mXXuMlLG0JTXe91Hz9atf5rzpbs7ywmPnxON9i66CFheDx1r/hOAzZEIDXl5fPHKL+LEYjixKMEF8/GUlGQxrYjIyKbmRTLqkmu/TNwxbGjsXZgx+tprWAX5ON3dJA8ezHK642OMIfbOO6SbmvCUl9P59C+x29tps9P8MtzF179+PX6v7+gsujPxTZ2a7cgiIiOamhfJqCUrVhAoK6UuFsX2eLDb20nuqcNVUEhi9x6cRCLbET9R6uBBErtq8ZSWEa95h+iWLTjAmvZ2Zp1+Oks/tZT0kSN4S8fqtmgRkSGgo6xklMvt5qxLL8VnWew8+lx0yxbcJSXY7W2kDh3Kar5PYkcixKrfArcb49h0PP4EAC92hzloDCtXrsSJ9IBxCC5YgDs/P8uJRURGPjUvknGfu/564sCGo0sDRKuqIJ3C8gdI7NmDSaezG/BjGMch/vY7pFpacJeV0vHEWpxIhEbb5rfhMFddfTVlY0tJNzcTmD0bb0VFtiOLiJwU1LxIxpVXVjJxwQLCjkOP3w/JJNGqajyjR5NqPELqyJFsR/xIyf0HiNfW4i0vJ7Z1G/G338YGHm5tYcKkSVz2+c/33hY9sYLAnDlYlpXtyCIiJwU1L5JxlmWx7Kqr8FrwavjonC9btvTeSmz1rsxsjMlyymPZ4TCxt6qx/H5MLErn008D8JuuThrSab59yy3QHcHy+wnOX4DL789yYhGRk4eaFxkSy6+8EvLyqers6J3zZffu3rV/Ro8hdegQ6ZaWbEfsY9JpotXV2O0duMeMpu2xxzHxOPXGYV13hE9fcgkzpkzF7uggOHcu3rLSbEcWETmpqHmRIeEvKmLOhReAZXHg6FmKyEsv4QqFMMkkyf37sxvwA+K1tSR378EzfjzRV18luWsXtmXxUFMTo0aP4tprryXVcBjflMkEKmdmO66IyElHzYsMmU9fdx3GGJ49eodRz9Zt2OEw7uISkvv2Y3d1ZTkhpJqaib/9Nq6iIpyuTjp//QwAv+popzltc/PKlfhjcVz5+QTnz8fyerOcWETk5KPmRYbMrCVLGDNtOu3pNN2FBZBOE/njRlyFhTiRbhJZPvvixOPEqqtwEgncxcW0r/lPSKWos202RnpYseJCFs09HSfSTfD0eXhGjcpqXhGRk5WaFxkyltfL4ssvI8/t4g8dnQD0bNgIqSTuklEk3ttFuqMjK9mMMcRqanoXXRw/gchLL5Lct4+Uy+KR5iZKy8r4+tevJ93YiG/adPzTp2Ulp4iIqHmRIXbxtdeC38/WI0dI5eXhRKP0bOldbdrpiRDfsQPjOEOeK3XgAImd7+IpLSV9pJGu534DwM9b2+gwhttv/x94IxHco0oIzTsdy+0e8owiItJLzYsMqcKJEznns5+l2O3mpZ4IAN0vv4RxHDxl40ju3Tvks+6mW1uJvvkmeDy4An7aHnkUbJudqRRbolG+cPnlVE6egonHCc6bh7uoaEjziYjIsdS8yJCyLIvLv/UtivPzeP7wYWyvF7ulldjbb+EKBsHlJl6zY8jWPLIjEXq2bcPu7sZTVkb4N78l3dBAzLJY09LClCmTufqqq0g1NhKYOQPf5MlDkktERD6emhcZciXTp/Opiy8m6HKzKR4HIPLiSwB4yspINjSQ2L0n4zmcZJLo62+QamjEO6GC5J49dK9bB8B/trYQc7m4/TvfgbZ2vGPHEtCiiyIiw4KOxDLkXHl5rLj+eiYWFfHfTU04LhfJvXtJ7K3DcrtxFxcTf3dnRi/eNY5DrKqKRF0dvokTMakk7WvWALC5J8JbsTg33XwTE0ePAdsmOH+eFl0UERkm1LxIVhTNmsWyiy/GAaqSvUNEXb/5LQaDu6QEp7ub+LvvZmzZgPjOd4nv2IF33Dgsr5fOp3+J3d5Om23zdGcXF120gguXX0C6uQl/5Uy8p5ySkRwiItJ/al4kKzwlJZx/7ZeZNno0z7a2YrtcJHftIlZVjWVZeMrGkajdTaJ296C+rzGG+HvvEavajru4BFcoRLSqiuiWLTjAo+1tTJoxnW9+80bSjY14ysoIzp2rRRdFRIYRNS+SNfmVs7jgby4mYjtsjMUA6PrVrzCpJK5gEFd+PtHXt5GoqxuU9zPpNLHqt+h5bStWMIS7uJh0Swsdjz8OwLpwmNZgkDvuuAPX0QuGg/Pn4wqFBuX9RURkcKh5kazxlI7lU5d/gcqyUp5rbSHu82G3txM+etGsZ9QoLJ+fnm3bTnjto96Lc1/vPeNSUoJn1ChMKknrz36GicWoSyT470iE//Xd/8Wo4hLslmYCs0/FO2HCIHxSEREZTGpeJGssyyI0q5LPfuYzGANPHGkEoPsPz2O3tQHgGTMGsOh57TWS9fUDeh+np4eezZuJ7diJp2wc7oICADqeeor0oUOEbZv/aG/juuu/zpw5c0gdacRbPp7A7NkaLhIRGYbUvEhWecvLOfNv/oZLPrWUN6Mx9to2pNN0/vrXf9qmrAxjO30NzPFexGuSSRJ1dXSvX09iTx2+ioreuWSAns2biW7egmMMj7a3s+Lyy/nsZy/FDoexXC6C8+f1bSsiIsOLmhfJKsvtxj9jBld+/jImVVSwtqUFB4hVVRHf9V7fdt7yckwiSWTDRiIbNpA8eBCTSn3ka5pUisTefXS/+BKRDRuxw934Jk3C8vkASB2qp23tWgB+Gw4zY8WFXPuVr2Bsm3RrK4HZp+EdPz7jn11ERAbGk+0AIt6KCkLjy/mfN97I7f/8T/wxEuG8/Hw6f/ELylbdgeX19m43fjxOLEayvp7kgYN4Ssfinz4dl8+HSaUwqRROIkG6qYlUQwOWP4B34kQsz592c7s7zOGf3I/HcaiJxbDPXszNN9yAhUWy4TC+iRUEZp+arVKIiMhx0JkXyTqXz4e/spJxhQXc/M0b+V24i27bJt14hPY1azDmTws1uoJBfBUT8ZaXY3d2EXnlFbpffpnIq6/Ss3Ursapq0m3teCdU4C0vP7ZxiUTY98/fw9PdTVs6Te2ps/jWt27BslzYXV1YPh/BefNw+f3ZKMOQiyTSbKlrI5JIZzuKiOSQ4XDs0JkXGRZ8U6aQrNvLuf4A7/z1X/PQq5u4ZcwYYtu301VSQvEXvnDM9pbXi3fcuON+/XhXJ7tX301JIkGXbbPplIl86zvfweVyYVIp0m1thM5c1K/XzHXRRJrX9rYxbWwe+X4dCkTk+AyHY4fOvMiw4PL5CMw5DWOn+eZ115EYV8Zj7e0ARF56icj69QN+7eZD9bzzv++kJJEgbNvsW7KEm++8E7fbgzGGVMNhfJMnEzxVw0UiAI5jqG+P8t6RMPXtURwnMzNdiwxURpuX733ve5xzzjmEQiGKi4uP63uMMaxevZrx48cTDAY577zz2LFjRyZjyjDhrajAN2UKno5Ovv/9/4s5bTb/1dUJQMfTTxPZ/ma/Xs9xHDatf5nd/+efKDeGiOOQvvKLfOa667Cs3l3fbmvDlZ9PaMH8vgt6RU5me5q7+bcNddy3rpYfv7Sb+9bV8m8b6tjT3J3taCJ9Mtq8JJNJvvjFL3LzzTcf9/f84Ac/4N577+X+++/n9ddfZ9y4cVx44YV0d+sHZ6SzXC6Cs2djBYMEbZt/+Id/oOTTn2ZjJIIFtPzHQxzauOETXyedTvHii+v44bdWElj7JJM8HmJA8cqbOX35BX3bOfE4Tk+E4Lx5eEaPztjnEskVe5q7eWTTfmoauigOeZk6Jp/ikJeahi4e2bRfDYwMGxkdrLr77rsBePTRR49re2MM//qv/8qdd97J5ZdfDsCaNWsoKytj7dq13HjjjZmKKsOEZ8wYApUziW3fjquggC9/+Vq2TZvGzv94iNk+Hzz1CzY+9Qva5szhtOXLmT5jOuFwmLbWVlpbW6mvr2fTH/7A+bbDNaEQeF0kvF7Gf/vb5E2f3vc+xnFINTQQOHUW/mnTsviJRYYHxzE8X9NEe0+SGaX5fRM0FgS85Ps97G6O8MKOJqaOycfl0uSNkl3D6iq9ffv2ceTIEVasWNH3nN/vZ9myZWzevPkjm5dEIkHi6Do0AOFweEiySuYEKitJHjiI3dqKp7SUs85ewqFx5ez4yU+ojEaZZllMq6nhzW3b+Lee3rMyIctFyGVR5vHy7fx8/H4XDhA691zGf/5zuALHTjiXbmrCWzqW4Lx5WG53Vj7ncNDYFeOJrQcoCHizHUWyrCOa5I+1LQS97o+8iySRsvl9TSM9yTQlIQ2xnsy64ykau+JZzTCsmpcjR44AUFZWdszzZWVlHDhw4CO/5/vf/37fGR4ZGVx5eQTnnEbkj69gUiksr5eKyZOp+NGP6K4/yKEnf07+/v0sDIVY+DGLJnqmTmX01VfhnVDxof+zu7vBsQnOn487Pz/TH2dYsx1DT8IG9Jf0ya4zmiKWsgl43cSSNm8c6ABg0aQS3C4LA8RTNp3RFB6X7vU4mfUkbOwsX8Td7+Zl9erVn9gsvP766yxatGjAof58PRljzMeuMXPHHXdw++23930dDoeZOHHigN9bhgff5Mn46utJ7tuPd9IkrKMHy4KJp3Dqd79L6vBhOp57juTevbiPrkDtCgZ7G5+5cwieeSbWR/xCdmIx7LZWgmecgVf7CW6XRZ7fTUFgWP0dI1mQdhyCXjcW4PX8qTnxeVy4XRaJo41Nccir/eWkZwjHs/sHT7/3wFtuuYWrrrrqL24zefLkAYUZd3SOjSNHjlBeXt73fHNz84fOxrzP7/fjP0kmFTuZWF4voUWLcHp6em9lrji20fBOmEBpPy4Eh95lA1KNjQRPm01wzhwtugiUFwX58uJTKC0MZDuKZJnjGEJeDzUNXUweHWJzXe/iqPMnFuNxWexujjB3QhE3LZuma15Ocs3hOE9sPZjVDP1uXsaMGcOYMWMykYUpU6Ywbtw41q1bx4IFC4DeO5Y2btzIPffck5H3lOHLXVhI6KyziGzYSLqlBc/YsQN+LWPbJA8dwj91CsEzzjhm5l0RAZfL4qI5ZTR0xahr6WFMvg+XZRGJp2iJJBmV52PFaWVqXGRYyOjA5cGDB6murubgwYPYtk11dTXV1dVEIpG+bWbNmsUzzzwD9A4X3XbbbfzLv/wLzzzzDDU1NVx33XWEQiGuueaaTEaVYcpbVkZo0UJMIt57rcoAGGNIHTqEr7yc0FlnnTTT/4v01/TSAr62dDLzKoo5d8ZYzpxcQiRhM3dCEV9bOpnppQXZjigCZPiC3X/8x39kzZo1fV+/fzZl/fr1nHfeeQDs2rWLrq6uvm2++93vEovFWLlyJR0dHSxevJgXXniBggL90JysfFOnYnd3E9u+HcvrxRU4/iGO92+JdhcXEVp81kl/ga7IJ5leWsDU8/I53BmjJ5kmz+dhQnFQZ1xkWLGMMSNq3udwOExRURFdXV0UFhZmO44MEpNO07PlNeK7duEZPRp3UdEnfo8Tj5NqbMAzajR5i8/CO378ECTNHe+PW+uaFxHpj0wdO/rz+1sD/5ITLI+H0JmLcOXnEX/vPeyuTrzjyj9ySn9jDHZbG05PhMDMSoLzTsetRvZDQn4PZ08dTUiLMsqfiSVtLrh3IwAv3r6MoO/knQtJPmw4HDt01JKc4QoECC1YgHf8BOI175Dcf6D3FulQCOM4YNsYx8EJh3EVFJC3dCn+adNO6kno/pJ8v4cl07QsgnyYwXC4M9b3WOSDhsOxQ82L5BxvWSme0ctITNxLfMcOnGgPuNxYbjeWx4Nv+jSCc+bgGTUq21FFRCQD1LxITrI8HgIzZ+I75RSwbfB4es+wuN2av0VEZIRT8yI5rT93HomIyMigBSpEREQkp6h5ERERkZyiYSMRETmGhcWM0vy+xyLDjZoXERE5RtDnZt3ty7IdQ+RjadhIREREcoqaFxEREckpal5EROQYsaTNhfdu5MJ7NxJL2tmOI/IhuuZFRESOYTDsbo70PRYZbnTmRURERHKKmhcRERHJKWpeREREJKeoeemHSCLNlro2Iol0tqOISA7RsUNkcKl56YdoIs1re9uI6gAkIv2gY4fI4NLdRiInyHEMhztj9CTT5Pk8TCgO4nJpSnXJXRYWE4qDfY9Fhhs1LyInYE9zN8/XNFHXEiGetgl43Ewbm89Fc8qYXlqQ7XgiAxL0udm06vxsxxD5WGpeRAZoT3M3j2zaT3tPkvKiACFfkGgyTU1DFw1dMb62dLIaGBGRDNA1LyID4DiG52uaaO9JMqM0n4KAF7fLoiDgZUZpPu09SV7Y0YTjaIIvEZHBpjMv/dTYFeOJrQcoCHizHUWyqCOa5I+1LQS97o+8gySRsvl9TSM9yTQlIV8WEspw0h1P0dgVz3aM4xZP2Vz54BYAfnHjEgJed5YTiRxLzUs/2Y6hJ2GDLmI7qXVGU8RSNgGvm1jS5o0DHQAsmlSC22Vh6P0F0BlN4XHpBOfJridhY+fQWTjHGN4+1NX3WGS4UfPST26XRZ7fTUFApTuZpR2HoNeNBXg9f2pOfB4XbpdF4mhjUxzyal8RwBCO6w8ekcGio2o/lRcF+fLiUygtDGQ7imSR4xhCXg81DV1MHh1ic10bAPMnFuNxWexujjB3QhE3LZum26aF5nCcJ7YezHYMkRFDzYvIALhcFhfNKaOhK8aelkjf893xFK2RJKPyfKw4rUyNi4hIBmgwXmSAppcW8LWlk5k9rqjvua5oirkTinSbtIhIBunMi8gJmF5awDfODfD/Xt4NwC3nz2B6ab7OuIiIZJCaF5ET5HJZjMrrvR26YpSWBpCR4f19WmQ4sowZWffBhcNhioqK6OrqorCwcFBfO5JI886hLuZWFJHvV98nIsdHxw6RT9af39/6KeqHfL+HJdNGZzuGiOQYHTtEBpcu2BUREZGcouZF5ATFUzZfenALX3pwC/GUne04IidM+7QMdxo2EjlBjjFs3dfe91gk12mfluFOZ15EREQkp6h5ERERkZyi5kVERERyipoXERERySlqXkRERCSn6G4jkUEQ9LqzHUFkUGmfluFMywOIiIhI1vXn97eGjURERCSnqHkRERGRnKLmReQExVM2X3tkG197ZJumUpcRQfu0DHe6YFfkBDnGsH5XS99jkVynfVqGO515ERERkZyi5kVERERyipoXERERySlqXkRERCSnqHkRERGRnDLi7jZ6f8LgcDic5SRysogm0ziJKNC736V9I+7HSk4y2qclG97/vX08E/+PuOUBDh06xMSJE7MdQ0RERAagvr6eioqKv7jNiGteHMehoaGBgoICLMsa1NcOh8NMnDiR+vp6rZuUQarz0FCdh45qPTRU56GRqTobY+ju7mb8+PG4XH/5qpYRdy7Q5XJ9Ysd2ogoLC/WDMQRU56GhOg8d1XpoqM5DIxN1LioqOq7tdMGuiIiI5BQ1LyIiIpJT1Lz0g9/v56677sLv92c7yoimOg8N1XnoqNZDQ3UeGsOhziPugl0REREZ2XTmRURERHKKmhcRERHJKWpeREREJKeoeREREZGcoublz/z0pz9lypQpBAIBFi5cyCuvvPKx2zY2NnLNNddQWVmJy+XitttuG7qgOa4/df71r3/NhRdeyNixYyksLGTJkiU8//zzQ5g2d/Wnzq+++ipLly5l9OjRBINBZs2axX333TeEaXNXf+r8QZs2bcLj8TB//vzMBhxB+lPrDRs2YFnWh/699957Q5g4N/V3n04kEtx5551MmjQJv9/PtGnTePjhhzMX0Eifn//858br9Zqf/exnZufOnebWW281eXl55sCBAx+5/b59+8zf/u3fmjVr1pj58+ebW2+9dWgD56j+1vnWW28199xzj9m2bZupra01d9xxh/F6vWb79u1DnDy39LfO27dvN2vXrjU1NTVm37595rHHHjOhUMg8+OCDQ5w8t/S3zu/r7Ow0U6dONStWrDDz5s0bmrA5rr+1Xr9+vQHMrl27TGNjY9+/dDo9xMlzy0D26UsvvdQsXrzYrFu3zuzbt89s3brVbNq0KWMZ1bx8wFlnnWVuuummY56bNWuWWbVq1Sd+77Jly9S8HKcTqfP7Zs+ebe6+++7BjjaiDEadL7vsMnPttdcOdrQRZaB1/tKXvmT+/u//3tx1111qXo5Tf2v9fvPS0dExBOlGjv7W+fe//70pKioybW1tQxHPGGOMho2OSiaTvPnmm6xYseKY51esWMHmzZuzlGrkGYw6O45Dd3c3o0aNykTEEWEw6lxVVcXmzZtZtmxZJiKOCAOt8yOPPEJdXR133XVXpiOOGCeyTy9YsIDy8nKWL1/O+vXrMxkz5w2kzs899xyLFi3iBz/4ARMmTGDmzJn83d/9HbFYLGM5R9zCjAPV2tqKbduUlZUd83xZWRlHjhzJUqqRZzDq/KMf/Yienh6uvPLKTEQcEU6kzhUVFbS0tJBOp1m9ejU33HBDJqPmtIHUeffu3axatYpXXnkFj0eH4OM1kFqXl5fz7//+7yxcuJBEIsFjjz3G8uXL2bBhA+eee+5QxM45A6nz3r17efXVVwkEAjzzzDO0traycuVK2tvbM3bdi35y/oxlWcd8bYz50HNy4gZa5yeffJLVq1fz7LPPUlpamql4I8ZA6vzKK68QiUR47bXXWLVqFdOnT+fqq6/OZMycd7x1tm2ba665hrvvvpuZM2cOVbwRpT/7dGVlJZWVlX1fL1myhPr6en74wx+qefkE/amz4zhYlsUTTzzRtyr0vffeyxVXXMEDDzxAMBgc9HxqXo4aM2YMbrf7Q51lc3PzhzpQGbgTqfNTTz3F9ddfz9NPP80FF1yQyZg570TqPGXKFADmzp1LU1MTq1evVvPyMfpb5+7ubt544w2qqqq45ZZbgN4DvzEGj8fDCy+8wPnnnz8k2XPNYB2jzz77bB5//PHBjjdiDKTO5eXlTJgwoa9xATj11FMxxnDo0CFmzJgx6Dl1zctRPp+PhQsXsm7dumOeX7duHeecc06WUo08A63zk08+yXXXXcfatWu55JJLMh0z5w3W/myMIZFIDHa8EaO/dS4sLOSdd96hurq6799NN91EZWUl1dXVLF68eKii55zB2qerqqooLy8f7HgjxkDqvHTpUhoaGohEIn3P1dbW4nK5qKioyEzQIbs0OAe8f3vYQw89ZHbu3Gluu+02k5eXZ/bv32+MMWbVqlXmK1/5yjHfU1VVZaqqqszChQvNNddcY6qqqsyOHTuyET9n9LfOa9euNR6PxzzwwAPH3O7Y2dmZrY+QE/pb5/vvv98899xzpra21tTW1pqHH37YFBYWmjvvvDNbHyEnDOS48UG62+j49bfW9913n3nmmWdMbW2tqampMatWrTKA+dWvfpWtj5AT+lvn7u5uU1FRYa644gqzY8cOs3HjRjNjxgxzww03ZCyjmpc/88ADD5hJkyYZn89nzjjjDLNx48a+//vqV79qli1bdsz2wIf+TZo0aWhD56D+1HnZsmUfWeevfvWrQx88x/Snzj/+8Y/NaaedZkKhkCksLDQLFiwwP/3pT41t21lInlv6e9z4IDUv/dOfWt9zzz1m2rRpJhAImJKSEvOpT33K/O53v8tC6tzT33363XffNRdccIEJBoOmoqLC3H777SYajWYsn2WMMZk5pyMiIiIy+HTNi4iIiOQUNS8iIiKSU9S8iIiISE5R8yIiIiI5Rc2LiIiI5BQ1LyIiIpJT1LyIiIhITlHzIiIiIjlFzYuIiIjkFDUvIiIiklPUvIiIiEhOUfMiIiIiOeX/Ayr4sqROlGh8AAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Extract glued mean and variance predictions\n", "f_mean = glued_preds['f*']\n", "f_var = glued_preds['f*_var']\n", "f_std = np.sqrt(f_var)\n", "X_test = glued_preds['pred_loc_x']\n", "\n", "# Plot results\n", "plt.plot(X_grid, f_truth, 'k', zorder=0, label='Ground truth')\n", "plt.plot(X_test, f_mean, color='C3', zorder=1, label='Glued predictions (2 experts)')\n", "plt.fill_between(X_test, f_mean-1.96*f_std, f_mean+1.96*f_std, color='C3', alpha=0.3)\n", "\n", "xvals = [0.25, 0.45]\n", "yvals = [-1.2, -1.]\n", "plt.errorbar(xvals, yvals, xerr=0.15, fmt='o', elinewidth=2, barsabove=True, capsize=5, alpha=0.5, label='Local expert locations')\n", "for (x, y) in zip(xvals, yvals):\n", " plt.vlines(x, -1.4, y, linestyles='dashed')\n", "ax = plt.gca()\n", "ax.set_ylim([-1.4, 1.1])\n", "\n", "plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "In the above, we have also illustrated the local expert locations (blue circle) and the inference regions (blue horizontal bars).\n", "\n", "Below, we assess the performance of the model." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean squared error: 0.0005\n", "Mean log likelihood: 2.5734\n" ] } ], "source": [ "print(f\"Mean squared error: {np.mean((f_truth - f_mean)**2):.4f}\")\n", "print(f\"Mean log likelihood: {scipy.stats.norm.logpdf(f_truth, f_mean, f_std).mean():.4f}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Using more local experts\n", "Finally, let's see what happens when we double the number of local experts. Below, we set up the configurations for an experiment using the expert locations at x = [0.2, 0.3, 0.4, 0.5] and training radius = 0.1." ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [], "source": [ "# Set new expert locations\n", "xprt_locs = [0.2, 0.3, 0.4, 0.5]\n", "\n", "# Set training and inference radii\n", "training_radius = 0.1\n", "inference_radius = training_radius + 1e-8\n", "\n", "# Set up configs\n", "expert_loc_config = ExpertLocsConfig(source=pd.DataFrame({'x': xprt_locs}))\n", "\n", "model_config = ModelConfig(oi_model=\"sklearnGPRModel\",\n", " init_params={\"likelihood_variance\": noise_std**2,\n", " \"kernel\": 'RBF',\n", " \"verbose\": False}\n", " )\n", "\n", "data_config = DataConfig(data_source=data_df,\n", " obs_col=[\"y\"],\n", " coords_col=[\"x\"],\n", " local_select=[{\"col\": \"x\", \"comp\": \"<=\", \"val\": training_radius},\n", " {\"col\": \"x\", \"comp\": \">=\", \"val\": -training_radius}]\n", " )\n", "\n", "pred_loc_config = PredictionLocsConfig(method=\"from_dataframe\",\n", " df=prediction_locs_df,\n", " max_dist=inference_radius\n", " )" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We run this experiment below using ``LocalExpertOI``." ] }, { "cell_type": "code", "execution_count": 26, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "'data_select': 0.001 seconds\n", "'load': 0.002 seconds\n", "---------\n", "storing expert locations in 'expert_locs' table\n", "exception occurred: 'No object named expert_locs in the file'\n", "will now close object\n", "\n", "\u001b[96m---------\n", "dropping expert locations that already exists in 'run_details' table\u001b[0m\n", "exception occurred: 'No object named run_details in the file'\n", "will now close object\n", "\n", "------------------------------\n", "1 / 4\n", " x\n", "0 0.2\n", "'_max_dist_bool': 0.000 seconds\n", "'_from_dataframe': 0.000 seconds\n", "'data_select': 0.000 seconds\n", "'load': 0.000 seconds\n", "'_update_global_data': 0.000 seconds\n", "'local_data_select': 0.001 seconds\n", "number obs: 41\n", "'__init__': 0.023 seconds\n", "'get_parameters': 0.000 seconds\n", "'optimise_parameters': 0.172 seconds\n", "'get_objective_function_value': 0.000 seconds\n", "'get_parameters': 0.000 seconds\n", "parameters:\n", "lengthscales: 0.03354575999266631\n", "kernel_variance: 1.536162773874243\n", "likelihood_variance: 0.0025000000000000005\n", "'predict': 0.023 seconds\n", "SAVING RESULTS\n", "run_details\n", "preds\n", "lengthscales\n", "kernel_variance\n", "likelihood_variance\n", "total run time : 1.07 seconds\n", "------------------------------\n", "2 / 4\n", " x\n", "1 0.3\n", "'_max_dist_bool': 0.000 seconds\n", "'_from_dataframe': 0.000 seconds\n", "'_update_global_data': 0.000 seconds\n", "'local_data_select': 0.001 seconds\n", "number obs: 37\n", "'__init__': 0.039 seconds\n", "'optimise_parameters': 0.059 seconds\n", "'get_objective_function_value': 0.000 seconds\n", "'get_parameters': 0.000 seconds\n", "parameters:\n", "lengthscales: 0.0887015158885798\n", "kernel_variance: 0.19701393313984264\n", "likelihood_variance: 0.0025000000000000005\n", "'predict': 0.001 seconds\n", "SAVING RESULTS\n", "run_details\n", "preds\n", "lengthscales\n", "kernel_variance\n", "likelihood_variance\n", "total run time : 0.43 seconds\n", "------------------------------\n", "3 / 4\n", " x\n", "2 0.4\n", "'_max_dist_bool': 0.000 seconds\n", "'_from_dataframe': 0.000 seconds\n", "'_update_global_data': 0.000 seconds\n", "'local_data_select': 0.001 seconds\n", "number obs: 44\n", "'__init__': 0.037 seconds\n", "'optimise_parameters': 0.054 seconds\n", "'get_objective_function_value': 0.000 seconds\n", "'get_parameters': 0.000 seconds\n", "parameters:\n", "lengthscales: 0.1793349088554155\n", "kernel_variance: 0.29543246711988835\n", "likelihood_variance: 0.0025000000000000005\n", "'predict': 0.001 seconds\n", "SAVING RESULTS\n", "run_details\n", "preds\n", "lengthscales\n", "kernel_variance\n", "likelihood_variance\n", "total run time : 0.41 seconds\n", "------------------------------\n", "4 / 4\n", " x\n", "3 0.5\n", "'_max_dist_bool': 0.000 seconds\n", "'_from_dataframe': 0.000 seconds\n", "'_update_global_data': 0.000 seconds\n", "'local_data_select': 0.001 seconds\n", "number obs: 38\n", "'__init__': 0.021 seconds\n", "'optimise_parameters': 0.031 seconds\n", "'get_objective_function_value': 0.000 seconds\n", "'get_parameters': 0.000 seconds\n", "parameters:\n", "lengthscales: 0.2911974656858733\n", "kernel_variance: 0.23445334006310356\n", "likelihood_variance: 0.0025000000000000005\n", "'predict': 0.000 seconds\n", "SAVING RESULTS\n", "run_details\n", "preds\n", "lengthscales\n", "kernel_variance\n", "likelihood_variance\n", "total run time : 0.28 seconds\n", "'run': 2.582 seconds\n" ] } ], "source": [ "# Set up local expert experiment\n", "locexp = LocalExpertOI(data_config = data_config,\n", " model_config = model_config,\n", " expert_loc_config = expert_loc_config,\n", " pred_loc_config = pred_loc_config)\n", "\n", "# path to store results\n", "store_path = get_parent_path(\"results\", \"1d_tutorial_example.h5\")\n", "\n", "# for the purposes of a simple example, if store_path exists: delete it\n", "if os.path.exists(store_path):\n", " os.remove(store_path)\n", " \n", "# run local expert optimal interpolation\n", "locexp.run(store_path=store_path, store_every=1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Plot results:" ] }, { "cell_type": "code", "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "reading in results\n", "getting all tables\n", "'data_select': 0.001 seconds\n", "'load': 0.001 seconds\n", "merging on expert location data\n", "table: 'oi_config' does not have all coords_col: ['x'] in columns, not merging on expert_locations\n" ] }, { "data": { "text/plain": [ "" ] }, "execution_count": 27, "metadata": {}, "output_type": "execute_result" }, { "data": { "image/png": "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06bxySef8OGHH7JkyRIURX8PC4fDLF26lLVr1/LOO+9gNBr55je/iarqS+Vr1qwB4O2336auro6XX355j+P44Q9/yEsvvcSzzz7Lp59+yvjx41m0aBGtra1djrvrrrt4+OGHWbduHWazmSuvvLLztosvvpgRI0awdu1a1q9fzx133IHFYjmg12Gok2WjgxAPJwEHhkHWUXpXrkwbsVQIu9lNbUUz8WgKq0N+XfqzZFyhuTpE9Rb9zTNmbqGhuZYp42ZyzsVnYLUPnp9fnT/K31fvRFE13t/WhMNi2uMuonhS4b+b6ogkUpiMBur8fVO36NFHH6W4uJg//vGPGAwGJk+eTG1tLT/60Y/48Y9/TDgc5ne/+x1//OMf+c53vgPAuHHjOPbYYzsf4+677+78/+jRo/nBD37Aiy++yA9/+MMDGsNjjz3G4Ycfzs9//vPO65566imKi4vZtm0bEydO5Gc/+xlvv/021157LV9++SWXXnop3/zmN7s8TnFxMb/97W8xGAxMmjSJL774gt/+9rdcc801bN++neeff57q6mqGDRsGwG233cabb77J008/3fncyWSSRx99tEsjQ4fDQTwep7Cw8IBf19LSUv7zn//w0UcfdQY7f//73ykuLuZf//oX5513Hr/85S+ZO3cujz76aOf9pk2b1vn/c889t8tjPvnkk+Tn57N582amT59OXp4e5Ofk5Ox1bOFwmMcee4xnnnmGxYsXA/DEE0+wfPlynnzySW6//fbOYx944AEWLFgAwB133MEZZ5xBLBbDbrdTWVnJ7bffzuTJkwGYMGHCAb8WQ93gnDboZcmYHqGbzMZBG7yYzEaw6jNMwZaIJO0OAG31YWrLfASaYxiM8K8VfyPDmcOSb55G7rDBlfehqBrhuEJbJEk0oaABiZS620UDokn9uHBcQemjGZgtW7Ywf/78LrkdxxxzDKFQiOrqarZs2UI8Hufkk0/e62P885//5Nhjj6WwsBC3280999xDZWXlAY9h/fr1vPfee7jd7s5Lx0myY5nEarXy3HPP8dJLLxGNRnnkkUd2e5x58+Z1+T7mz59PaWkpiqLw6aefomkaEydO7PI877//fpelGKvVyowZMw547HuzZcsWzGYzRx11VOd1OTk5TJo0iS1btgBfzbzszfbt27nooosYO3YsXq+3c5moO6/t9u3bSSaTHHPM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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# extract, store in dict\n", "dfs, _ = GPSat.local_experts.get_results_from_h5file(store_path)\n", "\n", "glued_preds = glue_local_predictions_1d(preds_df = dfs['preds'],\n", " pred_loc_col = 'pred_loc_x',\n", " xprt_loc_col = 'x',\n", " vars_to_glue = ['f*', 'f*_var'],\n", " inference_radius = inference_radius)\n", "\n", "# Extract glued mean and variance predictions\n", "f_mean = glued_preds['f*']\n", "f_var = glued_preds['f*_var']\n", "f_std = np.sqrt(f_var)\n", "X_test = glued_preds['pred_loc_x']\n", "\n", "# Plot results\n", "plt.plot(X_grid, f_truth, 'k', zorder=0, label='Ground truth')\n", "plt.plot(X_test, f_mean, color='C4', zorder=1, label='Glued predictions (4 experts)')\n", "plt.fill_between(X_test, f_mean-1.96*f_std, f_mean+1.96*f_std, color='C4', alpha=0.3)\n", "\n", "xvals = [0.2, 0.3, 0.4, 0.5]\n", "yvals = [-1.3, -1.2, -1.1, -1.]\n", "plt.errorbar(xvals, yvals, xerr=0.1, fmt='o', elinewidth=2, barsabove=True, capsize=5, alpha=0.5, label='Local expert locations')\n", "for (x, y) in zip(xvals, yvals):\n", " plt.vlines(x, -1.4, y, linestyles='dashed')\n", "ax = plt.gca()\n", "ax.set_ylim([-1.4, 1.1])\n", "\n", "plt.legend()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We see that the results look much better and this is also reflected in the metrics:" ] }, { "cell_type": "code", "execution_count": 28, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Mean squared error: 0.0003\n", "Mean log likelihood: 2.7179\n" ] } ], "source": [ "print(f\"Mean squared error: {np.mean((f_truth - f_mean)**2):.4f}\")\n", "print(f\"Mean log likelihood: {scipy.stats.norm.logpdf(f_truth, f_mean, f_std).mean():.4f}\")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "**Note:** To achieve the best performance using local experts model, each local experts should have sufficiently many data points to prevent overfitting on a particular region. However, if this happens, we can prevent this by *hyperparameter smoothing*.\n", "\n", "**Note:** In ``GPSat``, we have not yet considered learning the optimal distribution of expert locations and the corresponding inference/training radii that best fit the data. We typically assume the expert locations to be distributed on an even grid and use the same inference/training at every expert locations. However it might be interesting in the future to consider the learning of such hyperparameters to further improve performance.\n" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [] } ], "metadata": { "kernelspec": { "display_name": "Python 3.8.17 ('gpsat2')", "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.17" }, "orig_nbformat": 4, "vscode": { "interpreter": { "hash": "42c89ee418f45ab16d4cd7d85b9f5fd46783f67990f590db7ef8d9e48f3f848d" } } }, "nbformat": 4, "nbformat_minor": 2 }