GitHub_collection_pykan/tutorials/API_6_training_hyperparameter.ipynb
2024-08-11 13:02:16 -04:00

341 lines
158 KiB
Plaintext

{
"cells": [
{
"cell_type": "markdown",
"id": "134e7f9d",
"metadata": {},
"source": [
"# API 6: Training Hyperparamters\n",
"\n",
"Regularization helps interpretability by making KANs sparser. This may require some hyperparamter tuning. Let's see how hyperparameters can affect training"
]
},
{
"cell_type": "markdown",
"id": "6459e11a",
"metadata": {},
"source": [
"Load KAN and create_dataset"
]
},
{
"cell_type": "code",
"execution_count": 1,
"id": "c3faa4ed",
"metadata": {},
"outputs": [
{
"data": {
"text/plain": [
"(torch.Size([1000, 2]), torch.Size([1000, 1]))"
]
},
"execution_count": 1,
"metadata": {},
"output_type": "execute_result"
}
],
"source": [
"from kan import *\n",
"import torch\n",
"\n",
"f = lambda x: torch.exp(torch.sin(torch.pi*x[:,[0]]) + x[:,[1]]**2)\n",
"dataset = create_dataset(f, n_var=2)\n",
"dataset['train_input'].shape, dataset['train_label'].shape"
]
},
{
"cell_type": "markdown",
"id": "2571d531",
"metadata": {},
"source": [
"Default setup"
]
},
{
"cell_type": "code",
"execution_count": 2,
"id": "97111d75",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"train loss: 3.32e-02 | test loss: 3.27e-02 | reg: 4.09e+00 : 100%|██| 20/20 [00:14<00:00, 1.41it/s]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 500x400 with 22 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# train the model\n",
"model = KAN(width=[2,5,1], grid=5, k=3, seed=1)\n",
"model.fit(dataset, opt=\"LBFGS\", steps=20, lamb=0.01);\n",
"model.plot()"
]
},
{
"cell_type": "markdown",
"id": "07f400a8",
"metadata": {},
"source": [
"### Parameter 1: $\\lambda$, overall penalty strength. \n",
"\n",
"Previously $\\lambda=0.01$, now we try different $\\lambda$."
]
},
{
"cell_type": "markdown",
"id": "9916490a",
"metadata": {},
"source": [
"$\\lambda=0$"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "77e8cafd",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"train loss: 5.54e-03 | test loss: 6.12e-03 | reg: 1.56e+01 : 100%|██| 20/20 [00:14<00:00, 1.37it/s]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 500x400 with 22 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# train the model\n",
"model = KAN(width=[2,5,1], grid=5, k=3, seed=1)\n",
"model.fit(dataset, opt=\"LBFGS\", steps=20, lamb=0.00);\n",
"model.plot()"
]
},
{
"cell_type": "markdown",
"id": "d92f84a5",
"metadata": {},
"source": [
"$\\lambda=1$"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "f1a96caf",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"train loss: 1.36e+00 | test loss: 1.39e+00 | reg: 6.81e-01 : 100%|██| 20/20 [00:14<00:00, 1.42it/s]\n"
]
},
{
"data": {
"image/png": "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smyISyZt6Frznkh6rjEcx3GhLoQ3tLW14dVXX8Vnn32Gzs5OOBwO2Gw2JCUloby8HDfccAMuu+wyJCYmhrqoksK93trb22GxWBAdHY34+HjMnTuX6m0M9Ho9PvroI7z77rtoamqC0WiE3W5HTEwMMjIysHz5ctxyyy1YunQpFApFqIsrGeha855IfK6FjVxcLhf++c9/4k9/+hMsFgsuvPBCnHfeeSgoKADLsjh27Bi+/vpr7NixAxUVFXjmmWdQVlYW6mKHHKo336itrcW6detw4MABLFq0CBdffDHmzZuHhIQE6PV67Nu3D59//jmOHTuGK6+8Eo8++igyMjJCXeyQQtea90R0nXFhgMvl4p577jkuPj6eu/DCC7mff/6ZczqdXE1NDbdp0yZu06ZNXHNzM2e327mdO3dyZ5xxBjdjxgzu4MGDoS56SKF6841t27ZxOTk5XGlpKffhhx9yZrOZ0+v13Isvvsht2rSJe+ONNziLxcINDQ1xL7/8Mpebm8udd955XF9fX6iLHjLoWvOeSK+zsJDLjh07OJVKxf3617/mtFotx7Isx3Ec99///d8cAA4A984773Acx3Esy3Lt7e1cVVUVt2zZMk6n04Ww5KGF6s17WlpauKKiIm7OnDlcY2OjUGetra1ccnIyB4ArKiritFotx3En623Xrl1cXl4ed+2113JWqzWUxQ8ZdK15T6TXmeQH9C0WCx5++GFkZWXhqaeegkqlAsMw476fYRjk5+fjmWeewZEjR7B58+YgllY6UL15j8vlwt///nfodDo8++yzKCsrO2WdASfrbdmyZdiwYQP+/e9/Y+vWrUEqrXSga817JkOdSV4u+/btQ11dHe68805MmTLltDc7cPJELFiwAFdccQXefPNNmM3mIJRUWlC9ec+xY8fw+eef47LLLsOyZcsmVGfAyXq79NJLsWTJErzyyitwOp0BLqm0oGvNeyZDnUl+isv3338PpVKJc889F83NzR43bn9/v/D/HR0dOHDggPBvlUqFSy+9FJs3b8aJEyfCZxBMJKjevKempgYmkwmXX345Tpw4geHhYeG1rq4uuFwuAIDdbkdTUxOSkpKE13Nzc3HZZZfhoYceQl9fH/Ly8oJe/lBB15r3TIo6C3W/3Om49tpruenTp3NHjhzhCgoKuJiYGOFHoVAIfZNRUVEer910003c8ePH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\n",
"text/plain": [
"<Figure size 500x400 with 22 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# train the model\n",
"model = KAN(width=[2,5,1], grid=5, k=3, seed=0)\n",
"model.fit(dataset, opt=\"LBFGS\", steps=20, lamb=1.0);\n",
"model.plot()"
]
},
{
"cell_type": "markdown",
"id": "650e7432",
"metadata": {},
"source": [
"### Parameter 2: (relative) penalty strength of entropy $\\lambda_{\\rm ent}$.\n",
"\n",
"The absolute magnitude is $\\lambda\\lambda_{\\rm ent}$. Previously we set $\\lambda=0.1$ and $\\lambda_{\\rm ent}=2.0$ (default). Below we fix $\\lambda=0.1$ and vary $\\lambda_{\\rm ent}$."
]
},
{
"cell_type": "markdown",
"id": "c0d92d91",
"metadata": {},
"source": [
"$\\lambda_{\\rm ent}=0.0$"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "d57d3cee",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"train loss: 1.45e-02 | test loss: 1.54e-02 | reg: 1.52e+00 : 100%|██| 20/20 [00:13<00:00, 1.50it/s]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 500x400 with 22 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# train the model\n",
"model = KAN(width=[2,5,1], grid=5, k=3, seed=1)\n",
"model.fit(dataset, opt=\"LBFGS\", steps=20, lamb=0.01, lamb_entropy=0.0);\n",
"model.plot()"
]
},
{
"cell_type": "markdown",
"id": "25d3f9f1",
"metadata": {},
"source": [
"$\\lambda_{\\rm ent}=10.$"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "94450fdf",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"train loss: 8.31e-02 | test loss: 8.47e-02 | reg: 1.28e+01 : 100%|██| 20/20 [00:15<00:00, 1.31it/s]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 500x400 with 22 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"# train the model\n",
"model = KAN(width=[2,5,1], grid=5, k=3, seed=1)\n",
"model.fit(dataset, opt=\"LBFGS\", steps=20, lamb=0.01, lamb_entropy=10.0);\n",
"model.plot()"
]
},
{
"cell_type": "markdown",
"id": "c14919f1",
"metadata": {},
"source": [
"### Parameter 3: seed. \n",
"\n",
"Previously we use seed = 1. Below we vary seed."
]
},
{
"cell_type": "markdown",
"id": "c8debdf5",
"metadata": {},
"source": [
"${\\rm seed} = 42$"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "8fe1c782",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"train loss: 3.37e-02 | test loss: 3.31e-02 | reg: 3.30e+00 : 100%|██| 20/20 [00:13<00:00, 1.53it/s]\n"
]
},
{
"data": {
"image/png": "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\n",
"text/plain": [
"<Figure size 500x400 with 22 Axes>"
]
},
"metadata": {},
"output_type": "display_data"
}
],
"source": [
"model = KAN(width=[2,5,1], grid=3, k=3, seed=42)\n",
"model.fit(dataset, opt=\"LBFGS\", steps=20, lamb=0.01);\n",
"model.plot()"
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "1692e33b",
"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
}