377 lines
116 KiB
Plaintext
377 lines
116 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "c982abca",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Interpretability 1: Hello, MultKAN!"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "30fde2f3",
|
|
"metadata": {},
|
|
"source": [
|
|
"Motivation: The original KAN has some level of interpretability, but sometimes not fully interpretable (fully interpretable = convert the network to a symbolic formula). The biggest limitation is the lack of multiplications operators. The original KAN only has addition operators. Although multiplication can be expressed as addition and single-variable functions (which is the core idea of Kolmogorov-Arnold representation theorem), we still hope to explicitly have multiplications in the KANs so that multiplications can be more easily read out from KANs. "
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "72377ee4",
|
|
"metadata": {},
|
|
"source": [
|
|
"We first show how multiplications can be represented by addition and single variable functions. Usually KAN would find solutions leveraging linear functions and quadractic functions (the solutions are not unique). $$xy=((x+y)^2-(x-y)^2)/4=((x+y)^2-x^2-y^2)/2=\\cdots$$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"id": "76538154",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"checkpoint directory created: ./model\n",
|
|
"saving model version 0.0\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"| train_loss: 8.16e-03 | test_loss: 9.07e-03 | reg: 6.63e+00 | : 100%|█| 20/20 [00:12<00:00, 1.54it"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"saving model version 0.1\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"from kan import *\n",
|
|
"torch.set_default_dtype(torch.float64)\n",
|
|
"\n",
|
|
"model = KAN(width=[2,5,1])\n",
|
|
"\n",
|
|
"f = lambda x: x[:,0] * x[:,1]\n",
|
|
"dataset = create_dataset(f, n_var=2)\n",
|
|
"model.fit(dataset, steps=20, lamb=0.001);"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"id": "939224b9",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 500x400 with 22 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"model.plot()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "2ec84826",
|
|
"metadata": {},
|
|
"source": [
|
|
"This network seems to be using the equality $xy=((x+y)^2-(x-y)^2)/4$ but not exactly."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "b33ecf62",
|
|
"metadata": {},
|
|
"source": [
|
|
"Now we want to explicitly introduce multiplication operators, called MultKAN. Note that MultKAN and KAN are actually the same class in implementation, so you can use either class name. If you dig into MultKAN.py, there is a line 'KAN = MultKAN'. KAN is just a special case of MultKAN. To inlcude multiplications, you only need to modify the width parameter. For example, [2,5,1] KAN means 2 inputs, 5 hidden add neurons, and 1 output; [2,[5,2],1] MultKAN means 2 inputs, 5 hidden add neurons and 2 hidden mult neurons, and 1 output."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"id": "d8f94f0f",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"checkpoint directory created: ./model\n",
|
|
"saving model version 0.0\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 500x400 with 38 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"model = KAN(width=[2,[5,2],1], base_fun='identity')\n",
|
|
"model.get_act(dataset)\n",
|
|
"model.plot()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"id": "4b39ad0c",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"| train_loss: 5.94e-02 | test_loss: 6.29e-02 | reg: 6.91e+00 | : 100%|█| 20/20 [00:16<00:00, 1.18it"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"saving model version 0.1\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"model.fit(dataset, steps=20, lamb=0.01, lamb_coef=1.0);"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 7,
|
|
"id": "4c0314b5",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "iVBORw0KGgoAAAANSUhEUgAAAZcAAAFICAYAAACcDrP3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjYuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8o6BhiAAAACXBIWXMAAA9hAAAPYQGoP6dpAAA4p0lEQVR4nO3deVhU9f4H8Pcwwy4iiFuYaWh5k1LTNHPJfU1ES9RcZlQYKttcumnXW9dreX/tpVYCKuCKG65JqbkkLqlFltLVxNxFAxQUEGHm8/ujH/xcAFnOzJnl/Xoen54HhjPvM50z7/M9q0ZEBERERApyUTsAERE5HpYLEREpjuVCRESKY7kQEZHiWC5ERKQ4lgsRESmO5UJERIpjuRARkeJYLkREpDiWCxERKY7lQkREimO5EBGR4lguRESkOJYLEREpjuVCRESKY7kQEZHiWC5ERKQ4lgsRESmO5UJUQSKCvLw88MngRPfGciG6h6ysLEyZMgV+fn7w9vaGn58fpkyZgqysLLWjEdksjXAzjKhMWVlZ6NChA9LS0mAymUp+rtVqERQUhH379sHf31/FhES2iSMXonLMmjXrrmIBAJPJhLS0NPznP/9RKRmRbePIhagMIgI/Pz9kZ2eX+RpfX19cuXIFGo3GismIbB/LhagMeXl58Pb2vufrcnNz4eXlZYVERPaDu8WIyuDp6QlfX99yX+Pr6wtPT08rJSKyHywXojJoNBqEh4dDq9WW+nutVouIiAjuEiMqBXeLEZWDZ4sRVQ1HLkTl8Pf3x759+zBx4kTUqFEDAFCjRg1MnDiRxUJUDo5ciCroxx9/RNu2bXHo0CG0adNG7ThENo0jF6IKKj62wmMsRPfGciEiIsWxXIiISHEsFyIiUhzLhYiIFMdyISIixbFciIhIcSwXIiJSHMuFiIgUx3IhIiLFsVyIiEhxLBciIlIcy4WIiBTHciEiIsWxXIiISHEsFyIiUhzLhYiIFMdyISIixbFciIhIcSwXIiJSHMuFiIgUx3IhIiLFsVyIiEhxLBeiCjCZTLh69SoA4ObNm+qGIbIDGhERtUMQ2bLdu3djzpw5uHz5Mq5evQo/Pz8MHz4cBoMB7u7uascjskksF6JyLFu2DPPmzcN7772HzMxMnDx5EqGhoYiLi8PZs2cRExMDnU6ndkwim8NyISrDxYsX0b17d+zcuRN169bF2LFjsWTJEmRnZ8PT0xP//ve/cf/992P8+PFqRyWyOTzmQlSG2NhYvPTSS3BxcUFGRgZu3LgBAMjIyEBmZiYmTJiAuXPnqpySyDZxPE9UhuTkZEyZMgVt2rQBAGRlZcFkMqFTp07QaDSYNGkStFotbt68CTc3N5XTEtkWlgtRGby8vFBUVIQnn3wSAHDgwAHk5eXhiSeegE6nQ2BgIEwmE1xcuAOA6E485kJUhiVLluDHH3/Exx9/DAAYN24clixZgitXrsDb2xvnz59HcHAw3n33XYwePRq1atVSNzCRDeEmF1EZhgwZgh07diA5ORkajQZarRY6nQ4uLi7Izc3FhAkT0KZNG0yePBmBgYEYN24cfvjhB3B7jYgjF6JypaamIiIiAr1790bjxo2Rk5ODevXqIS4uDkOGDEF4eDjS09MRGxuLmJgYnDp1Ci1btkRkZCRGjhwJHx8ftWeBSBUsF6J7yMzMxMqVK7F//34UFhYiKCgIw4YNQ3Bw8G2vM5vN2LJlC6Kjo7Fx40Z4eHhg5MiRMBqNePzxx1VKT6QOlgtRBYkIRKRCB/DPnz+PBQsWYP78+Th37hzatm2LyMhIDB8+HN7e3lZIS6QulguRBRUVFSEpKQlRUVFISkqCj48PRo0aBaPRiMcee0zteEQWw3IhspLTp0+XjGbS09PRoUMHREZGYujQofD09FQ7HpGiWC5EVlZYWIiNGzciKioKW7duhZ+fH/R6PYxGI5o3b652PCJFsFyIVJSWlob58+dj4cKF+PPPP9GlSxdERkZiyJAhvOMy2TWWC5ENKCgowLp16xAVFYWdO3ciICAABoMBERERaNasmdrxiCqN5UJkY/773/8iJiYG8fHxyMrKQo8ePRAZGYlBgwbB1dVV7XhEFcJyIbJRN27cwOrVqxEVFYU9e/agXr16GD9+PMLDw9G4cWO14xGVi+VCZAeOHDmC6OhoLF68GDk5OejTpw8iIyMxYMAAPqyMbBLLhciO5ObmYsWKFYiOjsaBAwcQGBiI8PBwjB8/Hg0bNlQ7HlEJlguRnUpJSUF0dDSWLl2KvLw8PPPMMzAajejTpw+0Wq3a8cjJsVyI7Ny1a9ewfPlyREVFISUlBQ888ADCw8Mxbtw4NGjQQO145KRYLkQOQkRw6NAhREVFYfny5SgsLMSgQYNgNBrRo0cPPtSMrIrlQuSArl69iiVLliA6OhpHjhxBUFAQIiIiYDAYULduXbXjkRNguRA5MBHBvn37EBUVhZUrV8JsNuPZZ5+F0WjE008/DY1Go3ZEclAsFyInkZWVhUWLFiEqKgrHjh3Dww8/DKPRCL1eD39/f7XjkYNhuRA5GRHB999/j6ioKKxZswYuLi4ICwuD0WjEU089xdEMKYLlQuTELl++jLi4OMTExCAtLQ3BwcEwGo0YPXo0fH191Y5HdozlQkQwm83Yvn07oqKisH79eri5uWH48OEwGo144oknOJqhSmO5ENFtLl68iIULF2L+/Pk4ffo0WrduDaPRiOeffx4+Pj5qxyM7wXIholKZTCZs2bIFUVFR2LRpE7y8vDBy5EgYjUa0bt1a7Xhk41guRHRPZ8+eLRnNnD9/Hu3atYPRaMSwYcPg7e2tdjyyQSwXIqqwoqIifP3114iOjsY333yDmjVrYvTo0TAajQgODlY7HtkQlgsRVcmpU6cwf/58LFiwAJcuXULHjh1hNBrx3HPPwdPTU+14pDKWCxFVS2FhIdavX4/o6Ghs27YNfn5+JY9obt68udrxSCUsFyJSzIkTJxATE4PY2FhkZGSga9euMBqNGDx4MNzd3dWOR1bEciEixRUUFCAxMRHR0dHYtWsX6tSpg7FjxyIiIgJBQUFqxyMrYLkQkUX99ttviImJQXx8PK5cuYJevXrBaDQiJCQErq6uascjC2G5EJFV5OfnY9WqVYiOjsbevXtRv359jB8/HuHh4XjggQfUjkcKY7kQkdX9+uuviI6OxuLFi3Ht2jX069cPRqMR/fv3h06nUzseKYDlQkSqyc3NRUJCAqKjo3Hw4EE0bNiwZDQTGBiodjyqBpYLEdmEn376CdHR0Vi6dClu3LiBZ555BkajEb1794ZWq1U7HlUSy4WIbEpOTg6WLVuGqKgoHD58GI0bN0Z4eDjGjRuH+vXrqx2PKojlQkQ2SURw4MABREdHIyEhAYWFhQgNDUVkZCS6desGFxcXtSNSOVguRGTzrl69isWLFyM6OhpHjx5F06ZNERERAYPBgDp16qgdj0rBciEiuyEi2LNnD6Kjo7Fq1SqICJ599lkYjUZ06dKFDzWzISwXIrJLmZmZiI+PR3R0NI4fP47mzZvDaDRizJgx8Pf3Vzue02O5EJFdExHs3LkT0dHRSExMhFarRVhYGCIjI/Hkk09yNKMSlgsROYzLly8jNjYWMTExOHnyJB599FEYjUaMGjUKvr6+asdzKiwXInI4ZrMZ27ZtQ3R0NNavXw93d3fs2bMHLVu2VDua02C5EJHDyMzMxKuvvop+/fqhX79+AP7abSYi5Z66XLt2bWtFdBosFyJyGCKCK1euYMWKFThw4AAWLFjA62FUwnIhIochIiUH8FNSUvCvf/0L69at40F9FbBciMhh3FouALB7925s374d77zzjoqpnBPHi0TksDp37oyMjAxcvHhR7ShOhyMXInIYd45cin92//3349y5cyqlck4cuRCRQ9NoNPjmm2+wYMECtaM4FY5ciMhhlDZyKda+fXvs27ePZ49ZCT9lInIKycnJGDBggNoxnAbLhYicgqurK7p164Zjx46pHcUpcLcYETmM8naLFf++adOm+P3337l7zML46RKR09BoNPjhhx8QGhqK4u1qbl9bBsuFiJxKQEAApkyZgrFjxyI5ORlGo1HtSA6Ju8WIyGEcOXKkwq89ffo0duzYgU6dOiE0NNRyoZwUy4WIHEZhYeFdP7v1K66s4zGurq4Wy+SsuFuMiByGq6vrXf+OHDkCDw8PHDlypNTfs1gsg+VCRESKY7kQEZHiWC5ERKQ4lgsRESmO5UJERIpjuRARkeJYLkREpDiWCxERKY7lQkREimO5EBGR4lguRESkOJYLEREpjuVCRESKY7kQEZHiWC5ERKQ4lgsRESmO5UJERIpjuRARkeJYLkREpDiWCxERKY7lQkREimO5EBGR4lguRESkOJYLEREpjuVCRESKY7kQEZHiWC5ERKQ4lgsRESmO5UJERIpjuRARkeJYLkREpDiWCxERKY7lQkREimO5EBGR4lguRESkOJYLEREpjuVCRESKY7kQEZHiWC5E5NBMJhNEBJmZmSgoKFA7jqJMJhMyMzNx6dIlm5s3jYiI2iHuJCLIz8+Hp6cnNBqN2nEUxXmzX448f446b7t378bMmTNx6tQpNG7cGG5ubhg4cCAMBgPc3d3Vjlctu3fvxpw5c5CdnQ2tVgsXFxfbmjexIZmZmTJ58mTx9fUVAOLr6yuTJ0+WzMxMtaNVG+fNfjny/DnyvEVFRUm7du1k8+bNkpOTI/n5+XLixAmZNm2aGAwGKSwsVDtilS1dulQ6deokSUlJt83bm2++KSNGjLCJebOZcsnMzJSHHnpItFqtACj5p9Vq5aGHHrLrhZ3zZr8cef4ced6OHj0qgYGBsm3bNuncubOkpaVJfn6+jB8/XqZNmyb//Oc/Zf78+WrHrJILFy7Iww8/XOa8TZ8+XT7//HO1Y9pOuUyePPmuhfzWhX3KlClqR6wyzpv9cuT5c+R569Spk8yePVvWrVsn7u7u0rx5cxk1apRoNBoZNWqU5OTkSKtWrdSOWSXvvfeezJkzp9x5a9iwodoxbaNczGZzybC8rH++vr5iNpvVjlppnDf7nDcRx54/R583nU4nqampYjabJSoqqmSe+vTpI3l5eWI2m6VNmzZSUFCgdtxK69ev3z3nLTg4WG7cuKFqTps4Wyw/Px/Z2dnlviY7Oxv5+flWSqQczpt9zhvg2PPn6PNWVFSEvLw8FBQUYP/+/QAAnU6HkydP4uLFiwCAoqIiuLjYxFdgpbi7u99z3m7cuKH62WM28cl6enrC19e33Nf4+vrC09PTSomUw3mzz3kD/po/Ly+vcl9jr/NnNpvh5uZW7mvsdd4OHz4MjUaDxYsXY+7cuYiLi8OIESMwb948nDlzBkOGDMGpU6fg7+8PnU6ndtxKGzJkyD3n7ezZs/Dx8VE3qKrjpls48v7fyZMni4uLi0PO2+uvv17mbhV7njez2SyffPKJaDQah5u/pKQkady4seh0ujLnzx7n7aeffpIBAwYIAKldu7a4u7vLsmXLZOLEiSW7i+Li4mTOnDnSv39/2bNnj9qRq+T8+fPi7e1d5rz17t1bRowYoXZM2zjmIvL/Z67cubA7wpkrmZmZpe7ftvd5M5vNMnLkSAFwV3na87zl5+fLmDFjBIC88sor0qxZM4c4oyo9PV1GjBghAKRnz55y6NAhhzhbLDU1VZ577jkBIM2aNZNly5bJ2bNnxdXVVXx8fOTtt9+WAwcOyJEjR2TFihXy1FNPyWeffaZ27Cq5fPmytG7dWnx8fMTf3/+ueXvyySelXr16NvH/zmbKReSvL+GAgABxc3MrOaA4ZcoUm/igquP48eOi1Wrl6aefvu16AnuftxkzZggA+eKLL2TKlCkOMW/nzp2TJ554Qjw8PGTp0qUi8tdyac/zZzabZcGCBeLn5ye1a9eWRYsWlRyot+d5O3HihIwePVpcXFzkgQcekIULF5Zc3zFp0iRxc3OTYcOGiYeHh7i6ukqNGjWkQ4cOkpycrHLyqjl//rz87W9/k7p168rhw4fl999/l549e4qnp2fJPOr1epv5f2dT5VJQUCA6nU7mzJkjubm5dnmmSmmGDx8ugYGBJcNXR5i32NhYASAzZ84s+Zm9z9vevXulfv360rBhQzl06NBdv7fH+Tt27Jh07dpVAMiYMWPkzz//LPV19jRvZ86cEaPRKDqdTho0aCBffPHFbWdGbdu2TQDIRx99JCJ/zdv169elqKhIrcjVdvLkSXnwwQfl/vvvl2PHjt32u6KiIvH395d33nlHnXBlsKly+eWXXwSA7Nq1S+0oiklJSREAEh0drXYUxXz77bei0+kkPDzcLr6MKmLhwoXi5uYmHTt2lPT0dLXjVFtBQYHMnDlT3N3dJSgoSLZu3ap2pGpLT0+X1157Tdzd3aV27dry0UcfSW5u7m2vyczMlMDAQOnWrZuYTCaVkirrt99+k8DAQAkKCpJTp06V+pquXbvKs88+a+Vk5bOpclm6dKkAkKysLLWjKKZ///7SrFkzm7gdgxJ+/vln8fHxkX79+jnEPBUWFsqrr74qACQiIsIur3u40549e+SRRx4RnU4n06ZNk7y8PLUjVUtmZqZMnTpVvLy8xNfXV2bOnCk5OTl3vc5sNktYWJjUqlVLzpw5o0JS5aWkpEidOnWkRYsWcuHChTJf98orr8hDDz1kxWT3ZlPlMnXqVAkMDFQ7hmJ2794tACQhIUHtKIo4c+aM3HffffL444/LtWvX1I5TbRkZGdK9e3fR6XTy5Zdf2v0o7OrVq/Liiy8KAGnfvr0cPnxY7UjVkp2dLTNmzJCaNWuKt7e3vPXWW+UeT1i8eLFDrW979+6VWrVqSdu2bSUjI6Pc10ZHR4uLi4tNbUjYVLkMGDBA+vbtq3YMRZjNZunUqZO0atXKIYbnV65ckeDgYHnggQfk4sWLaseptl9++UWaNGkiAQEBsnPnTrXjVIvZbJbVq1dLgwYNxMfHR+bMmWPXxxdyc3Pl/fffF39/f3F3d5eJEyfKpUuXyv2bP/74Q2rWrCmjRo2yUkrL+u6778Tb21s6d+4s2dnZ93z9vn37BECpxwrVYlPl0qhRI3njjTfUjqGIr7/+WgDI5s2b1Y5SbQUFBdKtWzfx8/OT1NRUteNU25o1a8Tb21tatmxZ5j5se3HmzBkJCQkRABISEiJnz55VO1KV3bhxQ2bPni316tUTnU4nL7zwgpw7d+6ef1dUVCSdO3eWRo0aydWrV62Q1LI2btwo7u7u0rt377uOKZUlJydHAEhsbKxlw1WCzZTL1atXBYAsWrRI7SjVZjKZpGXLltK5c2e739ViNptl1KhR4ubmJt9//73acarFZDLJO++8IwAkLCxMrl+/rnakKisqKpLZs2dLjRo1pEGDBrJmzRq7XdZu3rwpMTExcv/994uLi4vo9Xo5efJkhf/+P//5j2g0Goc4ESghIUF0Op0MHjy40vcGa9KkiUyaNMlCySrPZsolOTlZAEhKSoraUapt+fLlAsBuz6e/1VtvveUQ+7FzcnIkNDRUNBqNzJo1y26/iEVEDh8+LO3atRONRiMvvfSS3W6tFxUVyZIlS6Rp06Ylhf/bb79Vaho//vij6HQ6mTp1qoVSWs/8+fNFo9HI6NGjq3SyTEhIiPTq1csCyarGZspl3rx5otVqVb+TZ3XdvHlTmjZtKgMGDFA7SrUV33H1ww8/VDtKtZw4cUJatGghPj4+smHDBrXjVFlubq68+eabotVqpUWLFnZ7+xKz2Sxr1qyRFi1aCAAZOHCg/Pzzz5WeTm5urjRv3lxat25t92f5ffbZZwJAXnjhhSofo/3HP/4hDRo0UDhZ1dlMuUyYMEH+9re/qR2j2oq/kKuystiSTZs2iYuLi7z88st2vZW/detW8fPzk6ZNm9r18aItW7bIgw8+KO7u7vLuu+/a5Zep2WyWzZs3y+OPPy4ApFevXrJ///4qT2/ChAni4eFh1/9fzWazzJw5UwDIG2+8Ua11LSEhQQDc88wya7GZcunSpYuEhYWpHaNa8vLy5L777rOJm8ZVx8GDB8XLy0sGDRpkt2cdmc1m+fTTT8XFxUX69Oljt9dOXb58WUaPHi0ApFu3bnddnW0vduzYIR07dhQA0rFjx2qfoVd8wszcuXMVSmh9ZrNZ/v73v5fc6aK6G3FHjx4VALJjxw5lAlaTTZSL2WwWPz+/224lYo8+/PBD0el08vvvv6sdpcpOnjwpdevWlfbt21f4TBVbk5+fL3q9vmRr0B4L0mw2S3x8vNSuXVv8/f0lNjbWLkeQ+/btkx49eggAadOmjSQlJVV7Pi5fviz16tWTvn372uVnIvLXySXF1yR9+umnikzz5s2b4ubmJrNnz1ZketVlE+Vy7tw5ASDr1q1TO0qVXb16Vfz9/SUyMlLtKFWWkZEhDz/8sAQFBcnly5fVjlMl58+fl3bt2om7u7ssXrxY7ThV8vvvv5d8IY8cOfKe13jYopSUFHnmmWcEgAQHB8vatWsVKQKz2SyDBg2SgIAAu73eqrCwUEaPHi0ajUZiYmIUnXbLli0lIiJC0WlWlU2US1JSkgCQtLQ0taNU2T//+U/x8PCo0Hn5tig/P186duwoAQEBcvz4cbXjVMm+ffukQYMGEhgYKAcPHlQ7TqXdvHlTZs2aJR4eHtKkSRP55ptv1I5UaampqTJ06NDbbn+v5MgxJiZGAMjatWsVm6Y13bhxQ4YMGSI6nU6WL1+u+PRHjRolTz75pOLTrQqbKJcPPvhAvL297fZK9kuXLom3t7fdXgBqMplk6NCh4uHhIfv27VM7TpXExsaKm5ubPPXUU3a5Rbtv3z559NFHRavVyt///ne72yWZlpYmY8aMERcXF2nUqJEsWLBA8XvPHT9+XLy8vCQ8PFzR6VpLbm6u9O3bV9zd3S121uL7778vNWrUsInvUpsol9GjR0v79u3VjlFlr732mtSsWdNmztKorMmTJ4tGo5HExES1o1RaYWGhvPbaawJAxo8fb3ensmdnZ8vLL78sGo1G2rZta3fXeZ09e1YiIyNFp9NJ/fr1Ze7cuRb5f3Dz5k1p166dBAUF2eV97bKzs6VLly7i5eUl27Zts9j7bN68WQBU6iJUS7GJcmnVqpXdbo2cOnVK3Nzc7PZkhNmzZwsAmzkIWBkZGRnSo0cP0Wq1MnfuXLs7uLt27VoJDAwUb29v+eyzz+zqxIP09HR5/fXXS25//+GHH1p0tPXOO++IVqu1y5F1RkaGPPHEE+Lr62vxa5POnj0rAGT9+vUWfZ+KUL1cCgsLxd3dXT7//HO1o1TJ2LFjpW7duna5NZWYmCgajUYmT56sdpRK+/XXX+XBBx+U2rVr28yplxV17tw5GTx4sACQAQMGyOnTp9WOVGG33v6+Zs2a8u9//7vU298rae/evaLVauVf//qXRd/HEi5evCjBwcESEBAgP/30k8Xfz2w2S61ateTdd9+1+Hvdi+rlkpqaKgBk+/btakeptNTUVHFxcbHLYty7d694eHhIWFiYTeyfrYzExETx9vaWxx57TP744w+141SYyWSSL774Qnx8fKRevXqycuVKuxltZWdny7///W+pWbOmeHl5ybRp06zyON2cnBwJCgqS9u3b293zg06dOiVNmzaV++67z6oXenbu3FmGDRtmtfcri+rlsmLFCgFQ5uNXbdmzzz4rjRo1srv9/MePH5fatWtL586dJT8/X+04FWYymWTGjBkCQJ577jm7uvHkr7/+Kh06dBAAYjQa7eaiztzcXPnggw+kdu3a4u7uLq+//rpVn9Q5fvx48fb2trtrx44fPy7333+/NGnSxOpnwb700kvyyCOPWPU9S6N6uUyfPl3q16+vdoxKO3jwoACQhQsXqh2lUi5duiRBQUHSvHlzq2x5KuXatWsyZMgQASDvvvuu3Wzx5+fnyz/+8Q/R6XTyt7/9TXbv3q12pAq5ceOGzJkzR+rXry86nU4iIyOtfjv/xMREASDz58+36vtW1y+//CL16tWT5s2bq3JpwldffWUT92lUvVwGDRpkU3fyrKhevXpJ8+bN7WqonpubK+3atZN69erZ1e6ktLQ0CQ4OFh8fH5s4UFlR27dvl2bNmombm5vMmDFD9ZW9IgoLC2X+/PnSqFEjcXFxkTFjxqhy/dmFCxekdu3aEhoaajcbEiIiP/zwg/j5+UmrVq1UuxC5+A7zat/fUPVyefDBB23qGQQVsX37dgEgq1evVjtKhRUVFcmgQYPEy8vLpp5Wdy/btm0Tf39/CQoKkqNHj6odp0IyMjLEYDAIAOnSpUulbyOvhqKiIlm6dOltt79X64aQZrNZ+vTpI/Xq1bOrO0Xs3LlTatSoIR06dJArV66olqP42Vhq36FC1XK5du2azT097V7MZrO0b99e2rZtazdbVGazWSZMmCAuLi6yadMmteNUiNlsls8//1y0Wq306tXLLnbhmc1mWbJkiQQEBEitWrVk/vz5Nn+yhNlslsTExNtuf6/2tTZz5syxu6e4JiUliYeHh/To0cMmzhxt1KiR/P3vf1c1g2rlUlRUJN9++60AkL1796oVo0KKiookIyND0tPTZdWqVQJAtmzZonasUt2atXg3zAcffCAAJCoqSuV0tystq8hf+/vHjh0rAGTy5Mk2seuxrKzF0tLSpHfv3gJAhg0bpupdAu6VVeSvUklKSpI2bdoIAOnZs6cq15DcmfXo0aPi4eEhEyZMsHqWeynrc129erW4urrKwIEDbeYEmf79+0uPHj3KXQYsTSMiAivbvXs35syZg3PnziEvLw/33XcfBg0aBIPBAHd3d2vHKVdx1uzsbOh0Ohw+fBje3t44fPgwPDw81I53m1uzurq6AgDq16+PBQsW4K233sJ7772ncsL/V1rWgQMHok+fPhgxYgRSUlIQExOD0aNHq5y07KwGgwEuLi749NNP8a9//Qt16tTBV199hf79+9tk1uJ1a9euXZg+fTqSk5Px1FNP4b333kPXrl1Vzyoi+PXXX+Hp6YmUlBR4eXlZPVNZyvpctVotIiMjERYWhkWLFpX8Tk27d+/Giy++CLPZjAcffBDA3cuAVVi7zZYuXSqdO3eW77//XtauXSsff/yxpKWlyT//+U8xGAw2sZVarKys06dPt5us06ZNk6ZNm8rNmzfVjliivM+1+JnwBw4cUDumiJS/vA4cOFAee+wxcXFxkUmTJqm+O+Re61ZycrL07NlTAMjjjz8umzdvVm3XbnnLa0hIiF2sW//4xz9Eq9XKuHHjbObuCsVZd+3apfr3q1XL5cKFC9K8eXNJT08Xs9kser1etFqtXL9+XUwmk7zzzjs2c9ohs1rGvbK+/fbb8tFHH6kdU0QqlrVRo0Y2cYJERbICkBYtWkhiYqKqxwsdbXlV+rb5VWVrn6uL9cZIQGxsLF566SW4uLggIyMDN27cAABkZGQgMzMTEyZMwNy5c60ZqUzMahn3yvryyy9jyZIlKqf8S0Wy+vv7o02bNionrVjWoKAgHD58GIMHD4ZGo7HZrPa2vH7xxRcqp/yLrX2uOqu9E4Dk5GRMmTKlZGXMysqCyWRCp06doNFoMGnSJGi1Wty8eRNubm7WjMaszOrwWWvVqgWTyQStVmvzWe3pc2XW0lm1XLy8vFBUVIQnn3wSAHDgwAHk5eXhiSeegE6nQ2BgIEwmE1xcrDqgKhWzWgazWoaI2E1We/pcmbUarLYDTkQWL14sr7/+uphMJjGZTCX7BHNycsRkMsmZM2ekW7du1oxUJma1DGZVTm5urixatEi6d+8uAOTVV1+12axms1nMZrOYTCaJj4+36c/1Vra+DNzK1rJatVxyc3OlZcuWsmvXLjGbzTJu3Dhxd3eX69evS05OjgwaNMjizzuoKGa1DGatHrPZLMnJyRIeHi41a9YUjUYj3bt3l5iYGHn00UfLzZqcnGz1rMWFUvzPbDbf83Pt16+frFy50qpZy2KLy0BZbC2r1a9zSU1NRUREBHr37o3GjRsjJycH9erVQ1xcHIYMGYLw8HBrxikXs1oGs1beuXPnsGjRIsTHx+P3339H48aNodfrMWbMGDRp0qRCWcePH18yPUsd0Je/Nljvep8736+srAsWLEBKSgpEBGvWrEGXLl0skrMybGUZqAhbyqrKRZSZmZlYuXIl9u/fj8LCQgQFBWHYsGEIDg62dpR7YlbLYNZ7u3HjBtatW4f4+Hhs3boV7u7ueO6552AwGPD000+Xuu+8IllL+/KvjooWSkWzNmjQAGFhYUhOTsaXX355Wymqhctr5alSLsWKF0pbOBh2L8xqGcx693scPHgQ8fHxWL58Oa5evYqOHTvCYDBg6NChqFmzpmJZi1f9qhRMVQulvGndmrWwsBCvvfYa5s2bh4kTJ+KDDz5Q/Sw3gMtrZahaLkT0l/T0dCxZsgRxcXFITU1FYGAg9Ho99Ho9mjVrZrH3regopvh1ShVKRbN98cUXmDhxInr16oXly5fD19fXIu9FymO5EKnk5s2b2LRpE+Li4pCUlASdTofBgwfDYDCgR48eVt1SL600yioUa1+AuXXrVoSFheG+++7Dhg0bEBQUZNX3p6phuRBZ2c8//4y4uDgsXboUmZmZaNeuHfR6PYYPHw4/Pz9Vs5nN5rt+pkah3OnYsWMICQlBZmYmVq9ercqNNqlyWC5EVpCRkYGlS5ciPj4eP//8M+rVq4fRo0dDr9ejRYsWqma7c4QiIiWFonap3OrKlSsYNmwYdu7ciblz58JoNKodicrBciGykKKiIiQlJSE+Ph4bN24E8P+3Pu/bty90OqveIOM2FdnlpfRZZUooKirCpEmTMHfuXLzyyiv4+OOPVf0cqWwsFyKFpaamIi4uDosXL8alS5fQqlUrGAwGPP/88wgICFAtV1XP8LLFkpk3bx5eeeUVdO/eHQkJCarvTqS7sVyIFHDlyhUkJCQgLi4OBw8eRO3atTFq1Cjo9Xq0atVKtVxKnzJc1b+1hO3bt2Po0KGoU6cONmzYgIceekjtSHQLlgtRFZlMJmzbtg1xcXFYt24dioqK0L9/f+j1ejzzzDOq3SVXyUIpbdp3TldNJ06cQEhICNLT07Fy5Ur07NlT7Uj0f1guRJV0/PhxxMfHY9GiRTh//jweeeQRGAwGjBo1CvXr17d6HrWuQbnzvdRy9epVjBgxAtu2bcPnn3+Ol156SdU89BeWC1EF5OTkYOXKlYiPj8eePXtQq1YtjBgxAgaDAW3btrX6F6ytXINiK7vKioqK8MYbb+Dzzz/Hiy++iM8++8wmnmfvzFguRGUwm83YuXMn4uPjsXr1aty4cQO9e/eGwWDAoEGD4OHhYdU8tlIod7KlUUxMTAwmTJiAp59+GitWrIC/v7+qeZwZy4XoDn/88UfJHYhPnTqFZs2awWAwYPTo0WjYsKFVs9hqoZTGVkpm165deO655+Dn54cNGzagefPmqmVxZiwXIgC5ublYs2YN4uLisHPnTvj4+GDYsGHQ6/V46qmnrPplackD8tZgC7vKTp48iZCQEJw/fx4rVqxA7969VcvirFgu5LREBHv27EFcXBxWrlyJ69evo1u3bjAYDBgyZAi8vb2tmsWeC+VOtjCKycnJwfPPP49vvvkGn3zyCV555RW7/TztEcuFnM7Zs2dLdnudOHGi5MFber0ejRs3tloORyuU0qhdMiaTCVOnTsXHH38Mo9GIOXPm8EC/lbBcyCnk5+ff9uAtT0/PkgdvdenSxWrPvHCGQimN2rvKFi5ciBdffBEdO3bEqlWrULt2bVVyOBOWCzms4gdvxcXFYfny5cjOzkanTp2g1+sRFhYGHx8fq2S49b+A8xTKndQexezevRvPPvssatasiQ0bNuCRRx6xegZnwnIhh5Oeno7FixcjPj4eqampaNiwIcaMGWPxB28Vs6czvNSgZsmcOnUKISEhOH36NJYvX47+/ftb9f2dCcuFHMLNmzexceNGxMXF4ZtvvrH6g7dYKJWn1q6ya9euYdSoUfj666/xwQcfYOLEifz/ZAEsF7JrKSkpiIuLw7Jly0oevGUwGDB8+HDUqlXLou/NQqk+tUYxJpMJ06dPx/vvv49x48bhyy+/VO1ecI6K5UJ2588//yx58Nbhw4dRv379kgdvWXo/urMekLc0tUpm0aJFMBqNaN++PVavXo06depY7b0dHcuF7EJhYSG++eYbxMXFYdOmTQCAkJAQ6PV6iz94i4ViPWqUzN69ezFkyBB4eXlhw4YNCA4Otsr7OjqWC9m0o0ePIi4uDkuWLMGlS5fQunVr6PV6iz94i4WiHjUK5vTp0wgNDUVaWhqWLVuGZ555xirv68hYLmRzsrKySh68dejQIQQEBGDkyJEwGAxo2bKlRd6TpwzbHmuXzPXr1zFmzBisX78e//M//4MpU6bw/301sFzIJphMJmzdurXkwVsmkwn9+/eHwWDAgAEDLHKwlQfk7YM1S8ZsNuPtt9/GrFmzoNfrMW/ePLi7u1v0PR0Vy4VUdfz4ccTFxWHRokW4cOECWrRoAYPBgJEjR1rkwVssFPtlzVOXly5divDwcLRp0waJiYmoW7euxd/T0bBcyOpycnKwYsUKxMfHY+/evahVqxaef/556PV6izx4i4XiOKw5ivnhhx8wePBguLm5YcOGDXjssccs+n6OhuVCVmE2m7Fjxw7Ex8djzZo1Fn/wFgvFsVmrZM6ePYvQ0FAcP34cixcvRmhoqMXey9GwXMiiTp48WXIH4tOnT1v0wVs8w8v5WGNXWW5uLgwGA9asWYP33nsPU6dO5TJVASwXUtz169dLHry1a9eukgdvGQwGdOjQQdEVk4VC1hjFmM1mzJgxAzNnzsTIkSMRExNj9cdc2xuWCylCRJCcnIy4uDisWrUK169fR/fu3aHX6xV/8BYLhUpjjZJZsWIFxo4di5YtW2Lt2rUWOenEUbBcqFrOnj2L+Ph4xMfHIy0tzSIP3uI1KFQZlt5VdujQIYSGhsLFxQXr169H69atLfI+9o7lQpWWn5+PtWvXIj4+Htu2bbPIg7d4QJ6qw9KjmPPnz2Pw4MFITU1FfHw8nn32WcXfw96xXKhCRAQ//PAD4uPjkZCQUPLgLYPBgKFDhyry4C0WCinNkiWTl5eH8ePHY8WKFZgxYwamT5/OZfUWlrvbHzmECxcuYMmSJYiPj8dvv/2Ghg0b4uWXX4Zer0fTpk2rPX0WCllS8XJUfJxOyeXKy8sLy5YtwyOPPIJ33nkHv/32GxYsWABPT0/F3sOeceRCdykoKLjtwVuurq4YMmQI9Hq9Ig/eYqGQGiw5ilm9ejX0ej2Cg4Oxdu1a3HfffYpO3x6xXAjAXyverQ/eysrKQvv27aHX6xV58BbP8CJbYamS+emnnzBo0CCICNatW4e2bdsqNm17xHJxcn/++WfJbq9ffvlF0QdvsVDIllnirLKLFy9i8ODB+PXXXxEbG4uwsDDFpm1vWC5ObNOmTRgyZAg0Gg1CQkJgMBjQp0+faj9469ZSYaGQLbPEKCY/Px8RERFYtmwZYmNjodfrFZmuvWG5OIn09HRs2rQJgwcPvu3nZrO53OMdtWvXLnOaZS06txZLaVuHLBpyJJmZmaX+3Gw2l3pafn5+PkJCQvDTTz9ZOpqqeLaYk6hXrx6OHj2K+vXrK/qUvdKK4tYzdFgq5Oj8/f0rvGzn5eUhNDQUW7dutXAq9VX/ajeyG5988gm+/vprqy3YxeVy6wiGyFnl5+ejb9++WLt2bbl7BBwFy8WJaDQafPnll0hISMDOnTut/t4sGHJW+fn56NOnDxITExEQEKB2HKtguTgZjUaD+fPnIy4uDjt27LDY+5S2S4zlQs4oLy8Pffr0wZo1a5ymWACWi1PSaDSIjY3FsmXLsHnz5mpNq7yD+nfuh2bBkLPJy8tD3759sWbNGtSpU0ftOFbFcnFSGo0G0dHR2LJlC1atWmW192S5kLPIzc1F3759kZiY6HTFArBcnJpGo8Gnn36KX375BQsXLqzSNEori/Lu4cQzxsgZ5Obmol+/fli7dq1T7Qq7Fa9zcRLlfeGLCD766CN4enri5ZdfrtQ0i906bWs8epbIVty5bl2/fh39+vXD+vXr4e/vr2IydXHkQtBoNHjjjTdQVFSEuXPnVvpv79w+Ufrus0T2onjEsmHDBqcuFoDlQrd4/fXXUVBQgOjo6Er93a0Fw4EwOaviYywbNmyAn5+f2nFUx3Kh20yePBl//vknFi1aVKm/s8bzy4lsVXGxrF+/nsXyf1gudJe33noLv//+O1asWFGh1996FT53iZGzMZvNJcXi7LvCbsUD+k7iyJEjlf6bd999FwkJCWX+vqrHWlg+5EgOHz6MnJycSo9YgoODLZTINrBcnERhYeFdP7t1pFHWF76rq2uZ06zMBZS3YrmQIylt3QLufcfx8tYtR8DdYk7C1dX1rn8fffQRatWqhczMzFJ/f6+Fv3jFufXfvX7PYiFbc+dD7SqrtPVm1qxZ8PT0REJCQpXWLUfAcnFSubm5+PTTTzF+/Hg0aNBAkWlWZCREZIuUXF7ff/99zJgxA7NmzcKYMWMUm669Ybk4qejoaGRnZ+ONN95QbJosFrI3Sh8VmD17NqZNm4a3334bU6dOVXTa9obHXJxQQUEBgoKC0Lt37yrf9uVOZrMZAEp98h6RrVLy7Mbo6Gi88MILmDJlCt5//32n38jiN4ETiouLw8WLF/Hmm28qMj0WC9kjJberFy9ejBdffBETJkxgsfwfjlycTGFhIR5++GG0b98ey5cvr/b0WCxkr5QataxatQojRozA2LFjERUVxXXh/+jUDkDWtXz5cpw6dQrr1q2r9rRYLGSvlNqm3rhxI0aOHInhw4dj3rx5XBduwZGLEzGbzQgODkazZs2wfv36ak8LYLGQfVJi1LJ161YMHDgQzzzzDBISEqDTcVv9Vvw0nEhiYiL++9//IjY2tlrTYbGQPVNie3rXrl0IDQ1Fz549sWzZMhZLKThycRIigjZt2iAgIABbtmyp8nRYLGTvqjtq2b9/P3r37o327dtj48aN8PDwUDCd42DdOonNmzfj559/xvbt26s8DRYL2bvqbkv/9NNP6NevH1q1aoV169axWMrBkYsTEBF06tQJGo0Gu3fvrtJWG4uFHEF1npJ65MgRdOvWDUFBQdiyZQtq1qypdDyHwpGLE9i5cyf27duHTZs2sVjIaVWnWI4fP45evXrh/vvvR1JSEoulAjhycQK9evVCVlYWDh06VOkVq/h+YSwWsndVLZc//vgDXbp0Qc2aNbFz507UqVPHEvEcDkcuDm7//v347rvvsGrVKhYLOb3KrgPnzp1Djx494OnpiW3btrFYKoEjFwcXEhKCtLQ0/Prrr5UqCd7hmBxJVUYt6enp6Nq1KwoKCrBr1y40atTIUvEcEkcuDuzw4cPYtGkT4uPjWSzk9CqzLGdkZKBXr164fv06i6WKOHJxYMOHD8fBgwdx7NixCl/kxWIhR1PZUcuVK1fQs2dPnD9/Hjt37kTz5s0tGc9hceTioI4dO4ZVq1bhq6++YrGQ06vo8nzt2jX0798fp0+fxo4dO1gs1cCRi4MaO3Ystm3bhhMnTsDd3f2er2exkCOqzKglLy8P/fv3x88//4zvvvsObdq0sXQ8h8aRiwM6deoUlixZgg8//JDFQk6vIsv0jRs3MHjwYPz444/49ttvWSwKYLk4oA8//BB+fn6IiIi452tZLOSoKrpT5ubNmwgLC8Pu3buxefNmPPXUUxZO5hx4AYODuXDhAhYuXIjXX38d3t7e5b6WxUKO7l7LdVFREUaNGoUtW7Zg7dq16Nq1q3WCOQGOXBzMJ598Ag8PD0yYMKHc17FYyJFVZNRiNpsxbtw4rFu3DqtXr0afPn2skMx5cOTiQDIyMjBv3jy88sor8PX1LfN1LBZyBuUt2yKCF198EcuWLcOSJUsQEhJixWTOgSMXBzJ79mwAwKuvvlrma1gs5OjuNWoREUycOBExMTGIi4tDWFiYlZI5F45cHER2djbmzJmDF154AQEBAaW+hsVCzqKs5VtE8NZbb2H27Nn46quvMGbMGCsncx4sFwfx5Zdf4saNG5g0aVKpv2exkDO416hl5syZeP/99/HJJ58gMjLSSqmcEy+idAC5ublo0qQJhg4dii+++KLU15jNZhYLObzyHmH84Ycf4s0338R7772HadOmWTmZ8+HIxQHExMTgypUreOONN0r9PYuFnEF528lz587Fm2++ienTp7NYrIQjFztXUFCAoKAg9OrVC7GxsXf9nk+RJGdR1qhlwYIFiIiIwOTJk/HBBx9wI8tK+I1j5+Lj43Hx4kVMnTr1rt+xWMhZlLWNvHTpUhiNRrz00kssFivjyMWOFRUV4eGHH8YTTzyBhISE237HYiFnUtqoZc2aNRg+fDjGjBmDmJgYrgtWxutc7Njy5cvxxx9/IDEx8bafs1jImZS2ffz111/j+eefR1hYGKKjo7kuqIAjFztlNpvx6KOPIigoCBs2bLjt5wCLhZzHnaOWbdu2YeDAgejfvz8SEhLg6uqqYjrnxZGLnVq7di1+++03LFiwoORnLBZyNnduG+/evRuDBg1C9+7dsWzZMhaLijhysUMigrZt28Lf3x9bt24FwGIh53TrqOWHH35Ar1690K5dO2zcuBGenp4qp3NuHLnYoaSkJKSkpOC7774DwGIh53TrdnFKSgr69euHli1bYv369SwWG8CRi50REXTu3BkiguTk5JIVjMVCzqZ42U9NTUW3bt3QpEkTbN26FTVr1lQ5GQEcudidXbt2Ye/evdi4cSOLhZxW8bJ/4sQJ9OrVC4GBgUhKSmKx2BCOXOyEiCA/Px+hoaHIyMjAoUOHALBYyLkUrwceHh44ffo0unbtiho1amDHjh2oW7eu2vHoFvxmsnFZWVmYMmUK/Pz84O3tja1btyIwMBBZWVksFnIad64Hvr6+aN26NXQ6HbZu3cpisUEcudiwrKwsdOjQAWlpaTCZTCU/12g0aNq0Kfbv3w9/f38VExJZXlnrAQA0adIEhw4d4npgg7jpa8NmzZpV6golIjh58iT+85//qJSMyHrKWg8A4MyZM1wPbBRHLjZKRODn54fs7OwyX+Pr64srV67wZnzksLge2C+Wi43Ky8uDt7f3PV+Xm5sLLy8vKyQisj6uB/aLu8VslKenJ3x9fct9ja+vLy8WI4fG9cB+sVxslEajQXh4OLRabam/12q1iIiI4K4AcmhcD+wXd4vZsLLOktFqtQgKCsK+fft4lgw5PK4H9okjFxvm7++Pffv2YeLEiSW7Bnx9fTFx4kSuUOQ0uB7YJ45c7ETxlcmenp7cBUBOi+uB/WC5EBGR4rhbjIiIFMdyISIixbFciIhIcSwXIiJSHMuFiIgUx3IhIiLFsVyIiEhxLBciIlIcy4WIiBTHciEiIsWxXIiISHEsFyIiUhzLhYiIFMdyISIixbFciIhIcSwXIiJSHMuFiIgU978MfHHi1ZFOlQAAAABJRU5ErkJggg==\n",
|
|
"text/plain": [
|
|
"<Figure size 500x400 with 38 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"model.plot()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 8,
|
|
"id": "2af1c553",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"saving model version 0.2\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"model = model.prune()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 9,
|
|
"id": "aac1fb1c",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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\n",
|
|
"text/plain": [
|
|
"<Figure size 500x400 with 10 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"model.plot()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 10,
|
|
"id": "97851f1f",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"| train_loss: 3.09e-08 | test_loss: 3.61e-08 | reg: 6.34e+00 | : 100%|█| 20/20 [00:02<00:00, 6.80it"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"saving model version 0.3\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"model.fit(dataset, steps=20);"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 11,
|
|
"id": "f27281df",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"fixing (0,0,0) with x, r2=0.9999999999999994, c=1\n",
|
|
"fixing (0,0,1) with 0\n",
|
|
"fixing (0,1,0) with 0\n",
|
|
"fixing (0,1,1) with x, r2=0.9999999999999898, c=1\n",
|
|
"fixing (1,0,0) with x, r2=0.999999999999985, c=1\n",
|
|
"saving model version 0.4\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"model.auto_symbolic()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 12,
|
|
"id": "fd45a429",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"| train_loss: 5.83e-16 | test_loss: 3.93e-16 | reg: 0.00e+00 | : 100%|█| 20/20 [00:00<00:00, 34.44it"
|
|
]
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"saving model version 0.5\n"
|
|
]
|
|
},
|
|
{
|
|
"name": "stderr",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"model.fit(dataset, steps=20);"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 13,
|
|
"id": "ffb84f4c",
|
|
"metadata": {},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"text/latex": [
|
|
"$\\displaystyle x_{1} x_{2}$"
|
|
],
|
|
"text/plain": [
|
|
"x_1*x_2"
|
|
]
|
|
},
|
|
"execution_count": 13,
|
|
"metadata": {},
|
|
"output_type": "execute_result"
|
|
}
|
|
],
|
|
"source": [
|
|
"sf = model.symbolic_formula()[0][0]\n",
|
|
"nsimplify(ex_round(ex_round(sf, 3),3))"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": null,
|
|
"id": "900f7788",
|
|
"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.9.7"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|