{ "cells": [ { "cell_type": "markdown", "metadata": { "slideshow": { "slide_type": "slide" } }, "source": [ "# Tutorial 9: Learning the Inverse Design Map\n", "\n", "In this tutorial, we explore how to infer device geometry from Hamiltonian parameters by learning the inverse design map. We introduce a custom machine learning architecture tailored to capture the underlying physics of this mapping. Specifically, we aim to answer:\n", "\n", "1) Which design space parameters most significantly influence a given set of Hamiltonian parameters?\n", "2) How does each Hamiltonian parameter quantitatively depend on these key design variables?\n", "\n", "\n", "**Note: This tutorial was originally created for the [Quantum Device Workshop](https://qdw-ucla.squarespace.com/), and includes some optional \"tasks\" for workshop participants. Feel free to skip these if you're just interested in the main content.**\n", "\n", "### Environment Setup Recommendation\n", "\n", "**We strongly recommend creating a separate Python environment for this notebook to ensure all dependencies are installed and to avoid conflicts with your base environment.**\n", "\n", "Please follow the setup instructions here: \n", "https://github.com/LFL-Lab/QDW2025/blob/main/notebooks/advance-track/setup_instructions.md" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "%load_ext autoreload\n", "%autoreload 2\n", "%matplotlib inline" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Our Model:\n", "\n", "We propose a two-model architecture to understand the physics of the Hamiltonian-Design space mapping. \n", "\n", "1. **Design-Relevance Encoder**\n", " The first stage is a lightweight model (e.g., Random Forest or Lasso) that **identifies the subset of geometric design parameters most relevant** to each Hamiltonian parameter. This compresses the full design space into a minimal, interpretable feature subset for each target Hamiltonian.\n", "\n", "2. **KAN-based Symbolic Decoder**\n", " The second model, a **Kolmogorov–Arnold Network (KAN)** is trained to **symbolically model the Hamiltonian parameter** as a function of only its relevant design variables. The KAN outputs a closed-form symbolic expression, enabling direct interpretation of the underlying physics-driven dependency." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Design-Relevance Encoder\n", "\n", "The **Design-Relevance Encoder** identifies which geometric parameters $\\boldsymbol{\\xi}$ most influence each target Hamiltonian parameter $\\hat{\\mathcal{H}}$. To do this, we train an interpretable model — **Lasso regression** — to predict each Hamiltonian component from the full set of geometric inputs.\n", "\n", "* **Lasso (Least Absolute Shrinkage and Selection Operator)** selects relevant features via coefficient shrinkage, automatically zeroing out irrelevant ones.\n", "\n", "By using this model's outputs we construct a relevance mask that tells us which subset of design parameters significantly affect each $\\hat{\\mathcal{H}}$. This subset is then used as input to symbolic regression (e.g. KAN) to extract compact, human-readable expressions.\n" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "import pandas as pd\n", "import numpy as np\n", "from sklearn.model_selection import train_test_split\n", "from sklearn.preprocessing import StandardScaler\n", "import json\n", "from sklearn.ensemble import RandomForestRegressor\n", "from sklearn.linear_model import MultiTaskLassoCV\n", "from sklearn.preprocessing import StandardScaler\n", "from sklearn.tree import plot_tree\n", "import torch\n", "import sympy as sp\n", "import matplotlib.pyplot as plt\n", "import random" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Let's use the training dataset we generated in [Tutorial 7](https://lfl-lab.github.io/SQuADDS/source/tutorials/Tutorial-8_ML_interpolation_in_SQuADDS.html)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [], "source": [ "training_df = pd.read_parquet(\"data/training_data.parquet\")" ] }, { "cell_type": "code", "execution_count": 4, "metadata": {}, "outputs": [], "source": [ "hamiltonian_parameters = ['qubit_frequency_GHz', 'anharmonicity_MHz', 'cavity_frequency_GHz', 'kappa_kHz', 'g_MHz']\n", "design_parameters = ['cross_length', 'claw_length','coupling_length', 'total_length','ground_spacing']" ] }, { "cell_type": "code", "execution_count": 5, "metadata": {}, "outputs": [], "source": [ "Y_hamiltonian = training_df[hamiltonian_parameters].values # Hamiltonian parameters\n", "X_design = training_df[design_parameters].values # Design parameters" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The following object implemets the `LASSO` model to serve as the Design-Relevance Encoder" ] }, { "cell_type": "code", "execution_count": 6, "metadata": {}, "outputs": [], "source": [ "class DesignRelevanceEncoder:\n", " def __init__(self, X_design, Y_hamiltonian, design_labels, hamiltonian_labels):\n", " \"\"\"\n", " Initialize the analyzer with design inputs and Hamiltonian outputs.\n", " \"\"\"\n", " self.X_raw = X_design\n", " self.Y_raw = Y_hamiltonian\n", " self.design_labels = design_labels\n", " self.hamiltonian_labels = hamiltonian_labels\n", "\n", " self.scaler_X = StandardScaler()\n", " self.scaler_Y = StandardScaler()\n", "\n", " self.X = self.scaler_X.fit_transform(self.X_raw)\n", " self.Y = self.scaler_Y.fit_transform(self.Y_raw)\n", "\n", " def run_random_forest(self, n_estimators=200, random_state=42):\n", " \"\"\"\n", " Trains a random forest for each Hamiltonian parameter.\n", " Stores and returns a feature importance DataFrame.\n", " \"\"\"\n", " importance_matrix = np.zeros((self.X.shape[1], self.Y.shape[1]))\n", "\n", " for i, h_name in enumerate(self.hamiltonian_labels):\n", " rf = RandomForestRegressor(n_estimators=n_estimators, random_state=random_state)\n", " rf.fit(self.X, self.Y[:, i])\n", " importance_matrix[:, i] = rf.feature_importances_\n", "\n", " self.rf_importance_df = pd.DataFrame(importance_matrix,\n", " index=self.design_labels,\n", " columns=self.hamiltonian_labels)\n", " return self.rf_importance_df\n", "\n", " def run_multitask_lasso(self, alpha_grid=np.logspace(-4, 1, 20)):\n", " \"\"\"\n", " Trains a multi-task Lasso model.\n", " Stores and returns the coefficient matrix as DataFrame.\n", " \"\"\"\n", " model = MultiTaskLassoCV(alphas=alpha_grid, cv=5, random_state=42)\n", " model.fit(self.X, self.Y)\n", " coef_matrix = model.coef_.T # (n_design, n_hamiltonian)\n", "\n", " self.lasso_coef_df = pd.DataFrame(coef_matrix,\n", " index=self.design_labels,\n", " columns=self.hamiltonian_labels)\n", " return self.lasso_coef_df\n", "\n", " def plot_heatmaps(self):\n", " \"\"\"\n", " Plots side-by-side heatmaps of RF and Lasso results.\n", " \"\"\"\n", " fig, axs = plt.subplots(1, 2, figsize=(16, 6))\n", "\n", " sns.heatmap(self.rf_importance_df,\n", " annot=True, cmap=\"YlOrRd\", ax=axs[0], cbar_kws={'label': 'Feature Importance'})\n", " axs[0].set_title(\"Random Forest: Design Parameter Importance\")\n", " axs[0].set_xlabel(\"Hamiltonian Parameter\")\n", " axs[0].set_ylabel(\"Design Parameter\")\n", "\n", " sns.heatmap(self.lasso_coef_df,\n", " annot=True, center=0, cmap=\"coolwarm\", ax=axs[1], cbar_kws={'label': 'Coefficient Value'})\n", " axs[1].set_title(\"Multi-Task Lasso: Design Influence\")\n", " axs[1].set_xlabel(\"Hamiltonian Parameter\")\n", " axs[1].set_ylabel(\"Design Parameter\")\n", "\n", " plt.tight_layout()\n", " plt.show()\n", "\n", " def print_dependency_summary(self, top_k=3, threshold=1e-3):\n", " \"\"\"\n", " Prints top-k most important design variables per Hamiltonian parameter\n", " from both Random Forest and Lasso results.\n", " \"\"\"\n", " print(\"\\n=== Top Influencers from Random Forest ===\")\n", " for h in self.hamiltonian_labels:\n", " top = self.rf_importance_df[h].sort_values(ascending=False)\n", " print(f\"\\n- {h}:\")\n", " for i in range(top_k):\n", " print(f\" • {top.index[i]} → importance = {top.values[i]:.4f}\")\n", "\n", " print(\"\\n=== Top Influencers from Lasso (with direction) ===\")\n", " for h in self.hamiltonian_labels:\n", " top = self.lasso_coef_df[h].abs().sort_values(ascending=False)\n", " print(f\"\\n- {h}:\")\n", " for i in range(top_k):\n", " param = top.index[i]\n", " coef = self.lasso_coef_df[h][param]\n", " print(f\" • {param} → coef = {coef:.4f} ({'↑' if coef > 0 else '↓'})\")\n", "\n", " def plot_heatmap(self):\n", " \"\"\"\n", " Plots a single heatmap depending on which model was run.\n", " If both are run, plots both side by side.\n", " If only one is run, plots only that one.\n", " \"\"\"\n", " has_rf = hasattr(self, 'rf_importance_df')\n", " has_lasso = hasattr(self, 'lasso_coef_df')\n", "\n", " if has_rf and has_lasso:\n", " self.plot_heatmaps()\n", " elif has_rf:\n", " plt.figure(figsize=(8, 6))\n", " sns.heatmap(self.rf_importance_df, annot=True, cmap=\"YlOrRd\", cbar_kws={'label': 'Feature Importance'})\n", " plt.title(\"Random Forest: Design Parameter Importance\")\n", " plt.xlabel(\"Hamiltonian Parameter\")\n", " plt.ylabel(\"Design Parameter\")\n", " plt.tight_layout()\n", " plt.show()\n", " elif has_lasso:\n", " plt.figure(figsize=(8, 6))\n", " sns.heatmap(self.lasso_coef_df, annot=True, center=0, cmap=\"coolwarm\", cbar_kws={'label': 'Coefficient Value'})\n", " plt.title(\"Multi-Task Lasso: Design Influence\")\n", " plt.xlabel(\"Hamiltonian Parameter\")\n", " plt.ylabel(\"Design Parameter\")\n", " plt.tight_layout()\n", " plt.show()\n", " else:\n", " raise ValueError(\"Neither Random Forest nor Lasso results are available. Run one of the analysis methods first.\")\n", "\n", " def get_dependency_summary_json(self, top_k=3, threshold=1e-3, pretty_print=True):\n", " \"\"\"\n", " Returns a JSON-like dict of top design parameters (and their scores) for each Hamiltonian parameter.\n", " Only includes parameters with absolute score above the threshold.\n", " If both models are run, returns both. Otherwise, returns only the available one.\n", " If pretty_print is True, also prints the summary in a human-readable format.\n", " \"\"\"\n", " summary = {}\n", " if hasattr(self, 'rf_importance_df'):\n", " rf_summary = {}\n", " for h in self.hamiltonian_labels:\n", " top = self.rf_importance_df[h].sort_values(ascending=False)\n", " filtered = [\n", " {\"parameter\": top.index[i], \"importance\": float(top.values[i])}\n", " for i in range(len(top))\n", " if abs(top.values[i]) >= threshold\n", " ][:top_k]\n", " rf_summary[h] = filtered\n", " summary['random_forest'] = rf_summary\n", " if hasattr(self, 'lasso_coef_df'):\n", " lasso_summary = {}\n", " for h in self.hamiltonian_labels:\n", " top = self.lasso_coef_df[h].abs().sort_values(ascending=False)\n", " filtered = [\n", " {\n", " \"parameter\": top.index[i],\n", " \"coef\": float(self.lasso_coef_df[h][top.index[i]])\n", " }\n", " for i in range(len(top))\n", " if abs(top.values[i]) >= threshold\n", " ][:top_k]\n", " lasso_summary[h] = filtered\n", " summary['lasso'] = lasso_summary\n", "\n", " if pretty_print:\n", " print(\"\\n=== Dependency Summary (Top {} per Hamiltonian parameter, threshold={}) ===\".format(top_k, threshold))\n", " print(json.dumps(summary, indent=4))\n", "\n", " return summary\n" ] }, { "cell_type": "code", "execution_count": 7, "metadata": {}, "outputs": [], "source": [ "ml_analyzer = DesignRelevanceEncoder(\n", " X_design, \n", " Y_hamiltonian, \n", " design_labels=design_parameters,\n", " hamiltonian_labels=hamiltonian_parameters\n", ")\n" ] }, { "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", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", " \n", "
qubit_frequency_GHzanharmonicity_MHzcavity_frequency_GHzkappa_kHzg_MHz
cross_length-0.9566450.9048950.0002070.000060-0.574872
claw_length-0.0059580.007807-0.220192-0.1417990.932547
coupling_length-0.0002770.000236-0.1530450.877849-0.073914
total_length0.000482-0.000646-0.924025-0.484510-0.394851
ground_spacing-0.0017150.0022700.0000090.000282-0.350630
\n", "
" ], "text/plain": [ " qubit_frequency_GHz anharmonicity_MHz cavity_frequency_GHz \\\n", "cross_length -0.956645 0.904895 0.000207 \n", "claw_length -0.005958 0.007807 -0.220192 \n", "coupling_length -0.000277 0.000236 -0.153045 \n", "total_length 0.000482 -0.000646 -0.924025 \n", "ground_spacing -0.001715 0.002270 0.000009 \n", "\n", " kappa_kHz g_MHz \n", "cross_length 0.000060 -0.574872 \n", "claw_length -0.141799 0.932547 \n", "coupling_length 0.877849 -0.073914 \n", "total_length -0.484510 -0.394851 \n", "ground_spacing 0.000282 -0.350630 " ] }, "execution_count": 8, "metadata": {}, "output_type": "execute_result" } ], "source": [ "ml_analyzer.run_multitask_lasso()" ] }, { "cell_type": "code", "execution_count": 9, "metadata": {}, "outputs": [ { "data": { "image/png": "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duwYDAwM4OLi8h8/TdlhnwciIiIiUmrKPM+Ds7MzOnTogGHDhuHChQsIDw/H2LFj0bdvX9lIS48ePYKTk5OsJiEuLg4LFixAREQE7t27hwMHDsDHxwctW7ZE3bp1AQDt2rWDi4sLBg4ciKioKBw5cgQzZ87EmDFjFK49KQ9MHoiIiIiIPsDWrVvh5OSEtm3bolOnTvjss8/w008/ybbn5uYiNjZWNpqSpqYmjh8/jnbt2sHJyQmTJ09Gr1698Pvvv8v2EYvF+OOPPyAWi9G0aVMMGDAAPj4+cvNCCIHNloiIiIhIqUmEaLf0H5iYmLx1Qjg7OztIi3wGW1tbhIWFvfO41apVw6FDh8okxrLC5IGIiIiIlJpUInQEVIjNloiIiIiISCGseSAiIiIipSZV8mZLqoTJAxEREREpNQmbLSkNNlsiIiIiIiKFsOaBiIiIiJQamy0pDyYPRERERKTUJMwdlAaTByIiIiJSalJmD0qDfR6IiIiIiEghrHkgIhLApuWWQodAcu4JHQC94fzj6kKHQMWIBHtndnlQHkweiIiIiEipSdhsSWmw2RIRERERESmENQ9EREREpNQ4VKvyYPJAREREREpNyhmmlQabLRERERERkUJY80BERERESk3CZktKg8kDERERESk19nlQHkweiIiIiEipcahW5cE+D0REREREpBDWPBARERGRUmOrJeXB5IGIiIiIlJqUzZaUBpstERERERGRQljzQERERERKjUO1Kg8mD0RERESk1NhsSXkweSAiIiIipcbkQXmwzwMRERERESmENQ9EREREpNRY8aA8mDwQERERkVJjsyXlwWZLRERERESkENY8EBEREZFSk3KoVqXB5IGIiIiIlJqEzZaUBpstERERERGRQljzQERERERKjc2WlAeTByIiIiJSahxtSXkweSAiIiIipcbkQXmwzwMRERERESmENQ9EREREpNQk7POgNFjzQERERERKTSqRlsmrvCQnJ8Pb2xsGBgYwMjLCkCFDkJ6eXmr5e/fuQSQSlfjavXu3rFxJ23fs2FFun0MRTB7+o+DgYBgZGQkdhkJOnToFkUiEFy9eCB0KERER0SfL29sb169fx7Fjx/DHH3/g9OnTGD58eKnlbW1tkZCQIPeaN28e9PT00LFjR7myQUFBcuW6d+9ezp/m7dhs6RPWrFkzJCQkwNDQUOhQ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ACCbVDAkJATPnz+HoaEhGjVujEGDBpXX6VJqzTsORW5OFn7fPBuvMtNQ1cEdAyb9LDfHQ3JSPDLT/212lpGWjH0bA5CemgQtbX1YVHHEgEkbYF+7YNABsboG7kafwfljm5GTnQVDEys4u7dDyy9GFXt/IqGJpEqWymVkZMDGxgYrVqwocciqT0VwcDAmTpwoV4WvjCQSCZydndG7d2+FkqZCcXfulGNURET0qTv/uLrQIdAb+n8m3MRkX00qPgHr+9j9HX+uPpTgNQ9XrlzBjRs30KhRI6SmpsqGDX3b7KdUfu7fv4+jR4+iVatWyM7Oxpo1a3D37t1PfkQNIiIiUl5SJZ5hWtUoxRAJhZPAeXl5ISMjA3/99ddH0Tmudu3a0NPTK/G1detWocN7L2pqaggODkbDhg3RvHlzXLt2DcePH5d14iYiIiKqaBKppExe9OGUrtnSx+T+/fslDv8KABYWFnIzdKoaNlsiIqIPwWZLykfIZks9x98uk+PsDaz57kL0VoI3W/qYFZ1Eh4iIiIjKB5stKQ8mD0RERESk1Jg8KA+l6PNARERERETKjzUPRERERKTU2EVXeTB5ICIiIiKlJpFwpCRlwWZLRERERESkENY8EBEREZFSY4dp5cHkgYiIiIiUmpQTvCkNJg9EREREpNRY86A82OeBiIiIiIgUwpoHIiIiIlJqrHlQHkweiIiIiEipSdjnQWmw2RIRERERESmENQ9EREREpNTYbEl5MHkgIiIiIqUm5QzTSoPNloiIiIiISCGseSAiIiIipcZmS8qDyQMRERERKTXOMK08mDwQERERkVKTsOZBabDPAxERERERKYQ1D0RERESk1DjakvJg8kBERERESo0dppUHmy0REREREZFCWPNAREREREqNoy0pDyYPRERERKTU2GxJebDZEhERERERKYQ1D0RERESk1DjakvJgzQMRERERESlEJJVK2YiMqATZ2dlYvHgxZsyYAS0tLaHDIfCaKBteD+XDa6JceD3oU8TkgagUaWlpMDQ0RGpqKgwMDIQOh8Bromx4PZQPr4ly4fWgTxGbLRERERERkUKYPBARERERkUKYPBARERERkUKYPBCVQktLC3PmzGEnNyXCa6JceD2UD6+JcuH1oE8RO0wTEREREZFCWPNAREREREQKYfJAREREREQKYfJAREREREQKYfJARERE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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "ml_analyzer.plot_heatmap()" ] }, { "cell_type": "code", "execution_count": 10, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "\n", "=== Dependency Summary (Top 2 per Hamiltonian parameter, threshold=0.1) ===\n", "{\n", " \"lasso\": {\n", " \"qubit_frequency_GHz\": [\n", " {\n", " \"parameter\": \"cross_length\",\n", " \"coef\": -0.9566450702946909\n", " }\n", " ],\n", " \"anharmonicity_MHz\": [\n", " {\n", " \"parameter\": \"cross_length\",\n", " \"coef\": 0.9048951896956229\n", " }\n", " ],\n", " \"cavity_frequency_GHz\": [\n", " {\n", " \"parameter\": \"total_length\",\n", " \"coef\": -0.9240245095002161\n", " },\n", " {\n", " \"parameter\": \"claw_length\",\n", " \"coef\": -0.22019159774679983\n", " }\n", " ],\n", " \"kappa_kHz\": [\n", " {\n", " \"parameter\": \"coupling_length\",\n", " \"coef\": 0.8778486103719524\n", " },\n", " {\n", " \"parameter\": \"total_length\",\n", " \"coef\": -0.48451014050957547\n", " }\n", " ],\n", " \"g_MHz\": [\n", " {\n", " \"parameter\": \"claw_length\",\n", " \"coef\": 0.932547254832365\n", " },\n", " {\n", " \"parameter\": \"cross_length\",\n", " \"coef\": -0.5748717548177499\n", " }\n", " ]\n", " }\n", "}\n" ] } ], "source": [ "dependency_summary = ml_analyzer.get_dependency_summary_json(top_k=2, threshold=0.1)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## KAN Decoder\n", "\n", "The KAN (Kolmogorov–Arnold Network) decoder learns a compact symbolic expression for a Hamiltonian parameter based on a subset of relevant geometric features. Unlike traditional neural networks, KAN explicitly fits interpretable functional forms using trainable basis functions, revealing the underlying physics in closed-form expressions. After training, the network can be pruned and symbolic expressions extracted using a user-defined library of functions, yielding formulas that capture how design geometry affect the Hamiltonian parameters" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Example: Selecting Features and Target for KAN\n", "\n", "In this example flow, we demonstrate how to set up the KAN model for inverse design. \n", "First, we select the Hamiltonian parameter to model—in this case, the cavity frequency $f_{cav}$ (in GHz).\n", "Next, using the results from the Design-Relevance Encoder, we identify **`total_length`** and **`claw_length`** as the two most influential design parameters for predicting `cavity_frequency`.\n", "\n", "We then proceed to extract and process the relevant features from the training dataset to prepare for model training." ] }, { "cell_type": "code", "execution_count": 11, "metadata": {}, "outputs": [], "source": [ "target_feature = 'cavity_frequency_GHz'" ] }, { "cell_type": "code", "execution_count": 12, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "['total_length', 'claw_length']" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ "input_features = [i[\"parameter\"] for i in dependency_summary[\"lasso\"][target_feature]]\n", "input_features" ] }, { "cell_type": "code", "execution_count": 13, "metadata": {}, "outputs": [], "source": [ "X = training_df[input_features].values\n", "y = training_df[target_feature].values.reshape(-1, 1)\n", "\n", "# Split into train/val\n", "X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.25, random_state=42)\n", "\n", "\n", "# Convert to PyTorch tensors\n", "train_input = torch.tensor(X_train, dtype=torch.float32)\n", "test_input = torch.tensor(X_val, dtype=torch.float32)\n", "train_label = torch.tensor(y_train, dtype=torch.float32)\n", "test_label = torch.tensor(y_val, dtype=torch.float32)\n", "\n", "# Final dataset dict for pykan\n", "dataset = {\n", " \"train_input\": train_input,\n", " \"test_input\": test_input,\n", " \"train_label\": train_label,\n", " \"test_label\": test_label\n", "}\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### KAN Model Setup\n", "\n", "We now define and initialize the Kolmogorov–Arnold Network (KAN) model to learn a symbolic expression for the Hamiltonian parameter $f_{cav}$. The chosen architecture `KAN(width=[2, 2, 1], grid=5, k=3)` reflects:\n", "\n", "* **Input layer** with 2 neurons for the two most relevant geometric features: `total_length` and `claw_length`.\n", "* **One hidden layer** with 2 units, each equipped with a set of grid-based basis functions.\n", "* **Output layer** producing a single scalar value corresponding to `cavity_frequency_GHz`.\n", "\n", "The `grid` parameter sets how many grid points each neuron's nonlinear activation uses: increasing `grid` allows the model to capture more complex, detailed functions, but may reduce smoothness and interpretability; decreasing it makes the model simpler and smoother, but less expressive. The `k` parameter controls local smoothing by determining how many nearby grid points influence each output: higher `k` values produce smoother, more robust functions, while lower `k` values allow for sharper, more localized changes in the learned function.\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Setting random seed to 0 to ensure reproducibility 🤞🏽" ] }, { "cell_type": "code", "execution_count": 15, "metadata": {}, "outputs": [], "source": [ "torch.manual_seed(0)\n", "np.random.seed(0)\n", "random.seed(0)" ] }, { "cell_type": "code", "execution_count": 16, "metadata": {}, "outputs": [], "source": [ "from kan import *" ] }, { "cell_type": "code", "execution_count": 17, "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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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "model = KAN(width=[2,2,1], grid=5, k=3)\n", "model(dataset['train_input']);\n", "model.plot(beta=100)" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "This plot shows the untrained KAN model for predicting cavity frequency from `total_length` and `claw_length`. Each black dot represents an input, which is passed through learnable univariate function blocks (squares) that apply symbolic transformations (e.g., `x`, `x²`, `sin`). These transformed features are summed (white “+” nodes) to build the output. At this stage, all functions are uninitialized (linear ramps), and the structure reflects the model's capacity to discover symbolic patterns through training." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "### Encouraging Symbolic Simplicity\n", "\n", "Before training, we configure two key regularization terms that guide the KAN model toward interpretable symbolic solutions:\n", "\n", "* **`lamb` (L2 sparsity penalty):** This term encourages the weights of the model to be small, reducing model complexity. A higher value forces the network to use fewer basis functions and promotes sparsity in the learned representation.\n", "\n", "* **`lamb_entropy` (functional entropy penalty):** This term penalizes overly complex or chaotic nonlinear transformations by minimizing the entropy of the learned functional basis. It nudges the network to favor smooth, low-entropy functions like polynomials, sinusoids, or exponentials.\n", "\n", "Together, these regularizers bias the training process toward compact, human-readable formulas instead of overfitted black-box predictions." ] }, { "cell_type": "code", "execution_count": 18, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "| train_loss: 3.28e-01 | test_loss: 3.30e-01 | reg: 5.57e+00 | : 100%|█| 100/100 [02:39<00:00, 1.60" ] }, { "name": "stdout", "output_type": "stream", "text": [ "saving model version 0.1\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n" ] } ], "source": [ "metrics = model.fit(dataset, steps=100, lamb=0.01, lamb_entropy=10)" ] }, { "cell_type": "code", "execution_count": 19, "metadata": {}, "outputs": [ { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAk4AAAN5CAYAAAD+UbRUAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAACEJ0lEQVR4nO3deXxU9b3/8fcsmWwkIQFMCEsARQGRgAQQBYEQpdSLAooL9EqxhV9brEpKvS5XEavU5Uq51gjuqO2tWKtUraIQRAqi7G5RRGSHBAJkD1lmzu+PZCbEBJjMnGHIzOv5aB6QM2fO+c4Bmrff7+d8jsUwDEMAAAA4LWuwBwAAANBaEJwAAAC8RHACAADwEsEJAADASwQnAAAALxGcAAAAvERwAgAA8BLBCQAAwEsEJwAAAC8RnABAUrdu3fTzn/88IMdevHixLBaLdu3aFZDjAzhzCE4AWo1PPvlEDzzwgIqKioI9FABhyh7sAQCAtz755BPNnTtXP//5z9W2bVtTj71t2zZZrfy3JIBT4/8lAIQcl8ul48ePt+g9kZGRioiICNCIAIQKghOAVuGBBx7Q73//e0lS9+7dZbFYPHVDFotFt956q/7617/qwgsvVGRkpJYtWyZJ+p//+R9deumlateunaKjozVw4EC98cYbTY7/4xond13S2rVrlZ2drQ4dOig2NlYTJkzQ4cOHTflMTz/9tGe8qampmjlzZpNlyO3bt+vaa69VSkqKoqKi1LlzZ914440qLi727LN8+XINGzZMbdu2VZs2bXTBBRfonnvuMWWMABpjqQ5AqzBx4kR99913+tvf/qY//elPat++vSSpQ4cOkqSVK1fq9ddf16233qr27durW7dukqT//d//1dVXX60pU6aourpar732miZNmqR3331XV1111WnP+9vf/laJiYmaM2eOdu3apQULFujWW2/VkiVL/Po8DzzwgObOnausrCz9+te/1rZt27Rw4UJt2LBBa9euVUREhKqrqzVmzBhVVVXpt7/9rVJSUrR//369++67KioqUkJCgr7++mv9x3/8h/r166cHH3xQkZGR+v7777V27Vq/xgfgJAwAaCUef/xxQ5Kxc+fORtslGVar1fj666+bvKeioqLR99XV1Ubfvn2NzMzMRtvT0tKMqVOner5/6aWXDElGVlaW4XK5PNtnzZpl2Gw2o6io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NRSH08cJAABfBX3G6cfatm2r888/X99///1J9ykoKNCMGTM0btw4VVRUaNasWX6ds3379rLZbE2KywsKCryqvWoNWKoDAMB/Z11wKisr044dO9SxY8dmXy8sLNTo0aPVu3dvvfnmm8rNzdWSJUs0e/Zsn8/pcDg0cOBA5ebmera5XC7l5uZq6NChPh/3bEJxOAAA/gv6Ut3s2bM1btw4paWl6cCBA5ozZ45sNptuuummJvu6XC6NHTtWaWlpWrJkiex2u/r06aPly5crMzNTnTp1anb2qaysrNEM1s6dO7V161YlJSWpa9eukqTs7GxNnTpVGRkZGjx4sBYsWKDy8nLPXXatHTNOAAD4L+jBad++fbrpppt05MgRdejQQcOGDdOnn36qDh06NNnXarVq3rx5Gj58uBwOh2d7enq6VqxY0ex7JGnjxo0aNWqU5/vs7GxJ0tSpU7V48WJJ0g033KDDhw/r/vvvV35+vvr3769ly5Y1KRhvrSgOBwDAfxbDMKgWDpKSkhIlJCSouLhY8fHxAT3Xq+t26b5/fq2fXpSip6cMDOi5AABoTVry8/isq3FCYLBUBwCA/whOYaKhOJwJRgAAfEVwChMNM05n7jEvAACEGoJTmGgoDmfGCQAAXxGcwkRD53BqnAAA8BXBKUxQHA4AgP8ITmGCzuEAAPiP4BQmImx1D0FmxgkAAN8RnMIEncMBAPCfT8GpsrJSFRUVnu93796tBQsW6MMPPzRtYDBXQ3E4d9UBAOArn4LTNddco1deeUWSVFRUpCFDhuiJJ57QNddco4ULF5o6QJiD4nAAAPznU3DavHmzhg8fLkl64403lJycrN27d+uVV17Rk08+aeoAYQ6KwwEA8J9PwamiokJxcXGSpA8//FATJ06U1WrVJZdcot27d5s6QJjjxBknnusMAIBvfApO5513npYuXaq9e/fqgw8+0JVXXilJOnTo0GmfKozgcM84SVKti+AEAIAvfApO999/v2bPnq1u3bppyJAhGjp0qKS62acBAwaYOkCYw10cLlHnBACAr+y+vOm6667TsGHDdPDgQaWnp3u2jx49WhMmTDBtcDCPu4+TREsCAAB85VNwkqSUlBSlpKRIkkpKSrRy5UpdcMEF6tWrl2mDg3nsNqusFsllUCAOAICvfFqqu/766/XUU09JquvplJGRoeuvv179+vXTP/7xD1MHCPPQkgAAAP/4FJxWr17taUfw1ltvyTAMFRUV6cknn9RDDz1k6gBhnobu4RSHAwDgC5+CU3FxsZKSkiRJy5Yt07XXXquYmBhdddVV2r59u6kDhHkczDgBAOAXn4JTly5dtG7dOpWXl2vZsmWedgTHjh1TVFSUqQOEeSJsPK8OAAB/+FQcfscdd2jKlClq06aN0tLSNHLkSEl1S3gXXXSRmeODiegeDgCAf3wKTr/5zW80ePBg7d27V1dccYWs1rofyD169KDG6SzmbknAUh0AAL7xuR1BRkaGMjIyZBiGDMOQxWLRVVddZebYYDKH3SaJpToAAHzlU42TJL3yyiu66KKLFB0drejoaPXr10+vvvqqmWODyRzMOAEA4BefZpzmz5+v++67T7feeqsuu+wySdKaNWv0q1/9SoWFhZo1a5apg4Q5KA4HAMA/PgWnP//5z1q4cKFuvvlmz7arr75aF154oR544AGC01mqoTicPk4AAPjCp6W6gwcP6tJLL22y/dJLL9XBgwf9HhQCg87hAAD4x6fgdN555+n1119vsn3JkiXq2bOn34NCYDR0Dic4AQDgC5+W6ubOnasbbrhBq1ev9tQ4rV27Vrm5uc0GKpwd6BwOAIB/fJpxuvbaa/XZZ5+pffv2Wrp0qZYuXar27dtr/fr1mjBhgtljhEncfZyYcQIAwDc+93EaOHCg/vKXv5g5FgSYe6muihknAAB84nVwKikp8fqg8fHxPg0GgUU7AgAA/ON1cGrbtq0sFssp93F3EHc6nX4PDOajOBwAAP94HZw++uijQI4DZwDF4QAA+Mfr4DRixIgWH/w3v/mNHnzwQbVv377F74X5GpbqaIAJAIAvfH5WnTf+8pe/tKg2CoFFcTgAAP4JaHAyDGY2ziYUhwMA4J+ABiecXSgOBwDAPwSnMOKob4BJcTgAAL4hOIURluoAAPAPwSmMUBwOAIB/Ahqcfvazn9FF/CzCjBMAAP7x+Vl1RUVFWr9+vQ4dOiSXq/EP4ptvvlmStHDhQv9GB1M1FIdztyMAAL7wKTi98847mjJlisrKyhQfH9/oUSwWi8UTnHB2oXM4AAD+8Wmp7ne/+51uueUWlZWVqaioSMeOHfN8HT161OwxwiQs1QEA4B+fgtP+/ft12223KSYmxuzxIIDcS3XMOAEA4BufgtOYMWO0ceNGs8eCAItw93FixgkAAJ/4VON01VVX6fe//73y8vJ00UUXKSIiotHrV199tSmDg7noHA4AgH98Ck7Tp0+XJD344INNXrNYLHI6nf6NCgFBcTgAAP7xKTj9uP0AWoeG4nDaEQAA4As6h4cRisMBAPCP1zNOTz75pGbMmKGoqCg9+eSTp9z3tttu83tgMJ97xqna6ZJhGI36bwEAgNPzOjj96U9/0pQpUxQVFaU//elPJ93PYrEQnM5S7hknqW65zmEnOAEA0BJeB6edO3c2+3u0Hu7icKnuzroTgxQAADg9fnKGEXcfJ4mWBAAA+MLnh/zu27dPb7/9tvbs2aPq6upGr82fP9/vgcF8dptVVovkMigQBwDAFz4Fp9zcXF199dXq0aOHvv32W/Xt21e7du2SYRi6+OKLzR4jTBRhs6qq1kX3cAAAfODTUt3dd9+t2bNn68svv1RUVJT+8Y9/aO/evRoxYoQmTZpk9hhhIloSAADgO5+C0zfffKObb75ZkmS321VZWak2bdrowQcf1KOPPmrqAGEuB00wAQDwmU/BKTY21lPX1LFjR+3YscPzWmFhoTkjQ0A0dA9nxgkAgJbyqcbpkksu0Zo1a9S7d2/99Kc/1e9+9zt9+eWXevPNN3XJJZeYPUaYyL1UV8VSHQAALeZTcJo/f77KysokSXPnzlVZWZmWLFminj17ckfdWc7dkoAZJwAAWq7FwcnpdGrfvn3q16+fpLplu0WLFpk+MASGw26TRHE4AAC+aHGNk81m05VXXqljx44FYjwIMAczTgAA+Myn4vC+ffvqhx9+MHssOAMoDgcAwHc+BaeHHnpIs2fP1rvvvquDBw+qpKSk0RfOXhSHAwDgO5+Kw3/6059Kkq6++mpZLA3PPzMMQxaLRU6n05zRwXQR9HECAMBnPgWnl156SV26dJHNZmu03eVyac+ePaYMDIFB53AAAHznU3C65ZZbdPDgQZ1zzjmNth85ckRZWVmaOnWqKYNrbSZMmKBVq1Zp9OjReuONN4I9nGY5qHECAMBnPtU4uZfkfqysrExRUVF+D6q1uv322/XKK68Eexin5O7jxIwTAAAt16IZp+zsbEmSxWLRfffdp5iYGM9rTqdTn332mfr372/qAFuTkSNHatWqVcEexil5luqYcQIAoMVaNOO0ZcsWbdmyRYZh6Msvv/R8v2XLFn377bdKT0/X4sWLfR7MI488IovFojvuuMPnYzRn9erVGjdunFJTU2WxWLR06dJm98vJyVG3bt0UFRWlIUOGaP369aaO42xAOwIAAHzXohmnjz76SJI0bdo0/e///q/i4+NNG8iGDRv0zDPPeDqSn8zatWs1ePBgRURENNqel5endu3aKTk5ucl7ysvLlZ6erltuuUUTJ05s9rhLlixRdna2Fi1apCFDhmjBggUaM2aMtm3b5qnl6t+/v2pra5u898MPP1Rqaqq3HzWoKA4HAMB3PtU4vfTSS6aGprKyMk2ZMkXPPfecEhMTT7qfy+XSzJkzNXny5EYtD7Zt26bMzEy9/PLLzb5v7NixeuihhzRhwoSTHnv+/PmaPn26pk2bpj59+mjRokWKiYnRiy++6Nln69at+uqrr5p8tTQ05eTkqE+fPho0aFCL3mcGisMBAPCdT8HJbDNnztRVV12lrKysU+5ntVr13nvvacuWLbr55pvlcrm0Y8cOZWZmavz48brzzjt9On91dbU2bdrU6PxWq1VZWVlat26dT8c8lZkzZyovL08bNmww/din416qY8YJAICW86kdgZlee+01bd682esQkZqaqpUrV2r48OGaPHmy1q1bp6ysLC1cuNDnMRQWFsrpdDZZ5ktOTta3337r9XGysrL0+eefq7y8XJ07d9bf//53DR061OdxBUJDcTgNMAEAaKmgBqe9e/fq9ttv1/Lly1vUxqBr16569dVXNWLECPXo0UMvvPBCs+0RzrQVK1YEewinRXE4AAC+C+pS3aZNm3To0CFdfPHFstvtstvt+vjjj/Xkk0/Kbref9NEtBQUFmjFjhsaNG6eKigrNmjXLr3G0b99eNptNBQUFTc6TkpLi17HPNhSHAwDgu6AGp9GjR+vLL7/U1q1bPV8ZGRmaMmWKtm7d2uSRLlLdstro0aPVu3dvvfnmm8rNzdWSJUs0e/Zsn8fhcDg0cOBA5ebmera5XC7l5uaedUtt/nLUN8BkxgkAgJYL6lJdXFyc+vbt22hbbGys2rVr12S7VBdmxo4dq7S0NC1ZskR2u119+vTR8uXLlZmZqU6dOjU7+1RWVqbvv//e8/3OnTu1detWJSUlqWvXrpLqmntOnTpVGRkZGjx4sBYsWKDy8nJNmzbN5E8dXBSHAwDgu6AXh7eE1WrVvHnzNHz4cDkcDs/29PR0rVixQh06dGj2fRs3btSoUaM837s7oE+dOtXTsPOGG27Q4cOHdf/99ys/P1/9+/fXsmXLmu0L1ZrRORwAAN9ZDMPg9qogKSkpUUJCgoqLi03ti3Uq73x+QL/92xZd0iNJr80IrWVIAAB80ZKfx2dFHyecORSHAwDgO4JTmGnoHM5EIwAALUVwCjPMOAEA4DuCU5ihASYAAL4jOIWZiPo+TtxVBwBAyxGcwgxLdQAA+I7gFGYcLNUBAOAzglOYYcYJAADfEZzCTATtCAAA8BnBKcx4nlXndImm8QAAtAzBKcy4l+okZp0AAGgpglOYcReHSxSIAwDQUgSnMHPijBMF4gAAtAzBKczYrBZZ63pgMuMEAEALEZzCkLtAvIoZJwAAWoTgFIbcy3XMOAEA0DIEpzDkoJcTAAA+ITiFIbqHAwDgG4JTGDqxCSYAAPAewSkMRdjqbqtjxgkAgJYhOIUhh90mieJwAABaiuAUhhz1M04EJwAAWsYe7AHgzPO1OPzrA8X60/Ltqqp1+j2GzonRevCavp56KwAAWgOCUxjytTj8xTW7tOKbAtPGMbZvR11+fgfTjgcAQKARnMKQJzi1cMbpQFGlJGnq0DQN6Jro8/lfXLtTX+wr1r5jlT4fAwCAYCA4haGGzuEta4B5sLgu6Pz0oo4a0qOdz+fftPuYvthXrP1FFT4fAwCAYKDAJAw1dA73fsbJMAwdLD4uSUptG+3X+Tsl1r3/QNFxv44DAMCZRnAKQ74Uhx8tr1ZVrUsWi5QcH+XX+d3Baz9LdQCAVobgFIY8DTBbMOPknm1q3ybSE7x81ckdnIoITgCA1oXgFIZ8KQ53F4Z3TPBvtkmqa0UgSfklx1VLLykAQCtCcApDDcXhLZ9xMiM4dWgTqQibRU6XoYLSKr+PBwDAmUJwCkMOH2acGoKTf4XhkmS1WjzHOcByHQCgFSE4hSHfZpzqAk5qW/9nnKQT6pwoEAcAtCIEpzDU0Dnc+z5OB4vMm3GSTrizjhknAEArQnAKQz4Vh5s945RIcAIAtD4EpzDU0qU6l8tQQYm5M06d6gMYS3UAgNaE4BSGHO4+Tl7OOBWWVanGachqkc6JizRlDJ3axkhixgkA0LoQnMJQS2ec3HfUnRMXJbvNnL8yDY9dqZRhtOyZeQAABAvBKQw1FId7G5zqm1+aVN8kNfSDqqh2qqiixrTjAgAQSASnMNTS4nD3w3hTTapvkqSoCJvat6lb9mO5DgDQWhCcwlDLl+rMe9zKiTwF4gQnAEArQXAKQ44WLtUdcHcNb2vejJN0QksC7qwDALQSBKcw5JlxqvWuKPugiQ/4PZG7eziPXQEAtBYEpzDkrnFq6V11ZgcnuocDAFobglMYiqjv41TlRXF4rdOlQ6VVkhqCjlk6BSE4/XC4TH/5dLecLlogAABazh7sAeDMa0lx+OGyKjldhuxWi+cuOLOc2MvpTNhxuEzXLfxExypqFBdl1zX9O52R8wIAQgczTmGoJcXh7lYEyfFRslktpo7DPeNUWFat4zVOU4/9Y/nFx3XzC+t1rL5n1Kc/HAno+QAAoYngFIYaisNPH5wOmvxw3xMlREco1mGTFNjluuLKGk19cb32F1Uqpv58G3YdC9j5AAChi+AUhlrSOfxgkbkP9z2RxWLx1E0FarnueI1T01/eqG0FpeoQF6nXZlwiSfr+UJmOllcH5JwAgNBFcApDDXfVGad9TtyBADW/dAtkLyfDMHTHa1u1ftdRxUXa9fK0werXua3OO6eNJGnTbmadAAAtQ3AKQ+6lOqkuPJ1KfoBaEbgFspfT+p1HtezrfDlsVj17c4b6pMZLkgZ1S5Qkbdx11PRzAgBCG8EpDLmLw6XTL9cFqmu4m3upbl8AglPut4ckSf/Rr6OGntvOsz0jLUmStIHgBABoIYJTGGo043SaAnF313AzH/B7os4BXKpb8U2BJGl07+RG2wd3rwtOX+4vDvjdfACA0EJwCkM2q0XuzgKnmnGqrnXpcFld88uOAbirTmqYcXLXUpllZ2G5fjhcLrvVouHnt2/0WufEaCXHR6rGaejzvUWmnhcAENoITmHKc2fdKWacCkqOyzDqlvbaxToCMg53jdPBouOmdvPOrZ9tGtIjSfFREY1es1gsyujGch0AoOUITmEqKqKun9GeoxUn3cf9jLqUhChZLOY2v3RzN9asdRk6VHrctOPmflNX3zS6V3Kzrw9KqysQp58TAKAlCE5h6icXpkiSHnwn76SPXjkY4FYEUt2yYUp83fHNurOuuLLGM5M0uvc5ze7jnnHavPsYz60DAHiN4BSm7hrbS0mxDm0rKNWzq39odh/3jJPZD/f9MXcvp30mFYiv/u6wal2GzjunjdLaxTa7T6+UOLWJtKu0qlbb8ktNOS8AIPQRnMJUYqxD/31Vb0nS/+Zu167C8ib7uO+oC+SMkyR1rg9mZj12JddzN13zs02SZLdZNaBrW0nSxt3UOQEAvENwCmMTBnTSsPPaq7rWpXuXftmki3igezi5uWe0zGhJUOt06aNthyWdvL7JbZCnQJw6JwCAdwhOYcxisejhCX0Vabdq7fdH9NaW/Y1e9zzgN8AzTueeU7ec9o/N+7Ty2wK/jrV5T5GKK2vUNiZCF9fPKJ1MRn0H8Q07j5720TMAAEgEp7CX1i5Wt2f1lCQ99K9vtCKvQB9tO6SPth3y1BwF4gG/J/rpRR016oIOOl7j0vRXNukfm/b5fCz3Mt2oC86R3Xbqv94DuiTKbrUov+S4acuEAIDQRnCCpg/voV4pcTpaXq1fvrJR017aoGkvbVBRRY2kwNc4RdptevbmDE0c0ElOl6Hf/f1zPbt6h0/HcncLz+x18vomt2iHTX07JUiSNrJcBwDwgj3YA0DwRdismn99f815+ysdr2ncmuDS89opMUDNL388hv+ZlK52bRx67t87Ne+9b/XFvuJGd/RZLRaltYvRBSlxuiA5TrGRjf/67ios1476buEjLujg1XkHdUvU1r1F+sfmfeqYEKW+nRKaHBenVuN0yTAku9UiqzUw/b4A4GxhMSjuCJqSkhIlJCSouLhY8fHxwR7OWeOZj3foj+9/e9r9uiRFKzkuSu7enEfLq7XjcLkuPbed/m/6JV6dK/ebAv3i5Y2e760W6fzkOJ3boY1kkWRIhgwZhuq+6n8vSRaLZLdaZbNaPKHBvU/9/+Qy6vZ3GYYM1R3PYqnrX2WzWGSxWDzjdx/XkCGXy5DTkFwuQ676FywWyaL6nS2SYRhyuU44tjwvefa1Wut+tVjqatrqxtP4fYZ7YCfVOAxVO10qqqjWsYpqHSuvUVlVbcOelvoAZan7slnrzm211F0jm9WiCJvV89gfi6X+E9Xv47BZ5bBbFWmv+9VurbtG1vqdrPX7Wa1177WdpjGrxVL3+Sqqa1VSWauS4zUqPV6raqdL0RE2xThsinbU/Rphs9Z/WWS3WmW1SLX117/Wach1wp/7idfYTCd+nB//eRNJgQb/Mynd08jZDC35ecx/WuOs8/9GnKteHeP1yfeFjbZX1bq043CZvs0v1eHSKu09Wqm9R5vWJv30oo5en2vUBedo7tUXat2OI/p8X5EOFh/Xt/ml+pbeTj4xDKnGaejUQQwA/PPItf2Cdm5mnIKIGSffHS2v1rf5JSqprGm0vU1khIae2042H5eMCkqOa+veIu0/VtkwI+L+r/362RH3TIDLaJiNcLoM1bqMJrMRlhNmVdxDMiQ5XXUzUc6T/POzWepmsGwWyWq1uCe/GmalDKNue/1sjHtm4sS5J1f9G1xG/eyUocYzPfWzN1LDmH+sueHZrBYlxTrUNsZR92t0hKxWi1z116DuWrg8M20uo+7zure7r5XL1TDj5R5ftdOl6tq6r6pap2pdhmfWz2U0zOAZRt3xnMbJZ2JOHHqMw6b4qAjFR9sVFxUhu9WiqlqnKqrrvo7XOFVd61Kty1CN06UaZ93M3Imzie5r9eOZR7M0OtwJs4juzwugweQhaXLYzSvTZsYJIS8p1qFLz21v+nGT46M0pv5xNAAA/Bh31QEAAHiJ4AQAAOAlghMAAICXCE4AAABeIjgBAAB4ieAEAADgJYITAACAl+jjFETupnYlJSVBHgkAAOHL/XPYm2azBKcgKi2te6xHly5dgjwSAABQWlqqhISEU+7DI1eCyOVy6cCBA4qLi5PlNA8rbYmSkhJ16dJFe/fu5VEuAcI1DjyuceBxjQOPaxxYZl1fwzBUWlqq1NRUWa2nrmJiximIrFarOnfuHLDjx8fH8w81wLjGgcc1DjyuceBxjQPLjOt7upkmN4rDAQAAvERwAgAA8BLBKQRFRkZqzpw5ioyMDPZQQhbXOPC4xoHHNQ48rnFgBeP6UhwOAADgJWacAAAAvERwAgAA8BLBCQAAwEsEJwAAAC8RnAAAALxEcAIAAPASwQkAAMBLBCcAAAAvEZwAAAC8RHACAADwEsEJAADASwQnAAAALxGcAAAAvERwAgAA8BLBCQACwGKx6IEHHgj2MACYjOAEoFX65JNP9MADD6ioqChg55g3b56WLl0asOMDaH0ITgBapU8++URz584lOAE4owhOAAAAXiI4AWh1HnjgAf3+97+XJHXv3l0Wi0UWi0W7du2SJP3lL3/RwIEDFR0draSkJN14443au3dvo2Ns375d1157rVJSUhQVFaXOnTvrxhtvVHFxsaS6GqXy8nK9/PLLnuP//Oc/92vcW7Zs0dixYxUfH682bdpo9OjR+vTTTxvtU1NTo7lz56pnz56KiopSu3btNGzYMC1fvtyzT35+vqZNm6bOnTsrMjJSHTt21DXXXOP5/AACxx7sAQBAS02cOFHfffed/va3v+lPf/qT2rdvL0nq0KGDHn74Yd133326/vrr9ctf/lKHDx/Wn//8Z11++eXasmWL2rZtq+rqao0ZM0ZVVVX67W9/q5SUFO3fv1/vvvuuioqKlJCQoFdffVW//OUvNXjwYM2YMUOSdO655/o85q+//lrDhw9XfHy87rzzTkVEROiZZ57RyJEj9fHHH2vIkCGS6kLhH//4R8+5S0pKtHHjRm3evFlXXHGFJOnaa6/V119/rd/+9rfq1q2bDh06pOXLl2vPnj3q1q2bfxcXwKkZANAKPf7444YkY+fOnZ5tu3btMmw2m/Hwww832vfLL7807Ha7Z/uWLVsMScbf//73U54jNjbWmDp1qk/jk2TMmTPH8/348eMNh8Nh7Nixw7PtwIEDRlxcnHH55Zd7tqWnpxtXXXXVSY977NgxQ5Lx+OOP+zQuAP5hqQ5AyHjzzTflcrl0/fXXq7Cw0POVkpKinj176qOPPpIkJSQkSJI++OADVVRUBHxcTqdTH374ocaPH68ePXp4tnfs2FGTJ0/WmjVrVFJSIklq27atvv76a23fvr3ZY0VHR8vhcGjVqlU6duxYwMcOoDGCE4CQsX37dhmGoZ49e6pDhw6Nvr755hsdOnRIUl1dVHZ2tp5//nm1b99eY8aMUU5Ojqe+yWyHDx9WRUWFLrjggiav9e7dWy6Xy1OD9eCDD6qoqEjnn3++LrroIv3+97/XF1984dk/MjJSjz76qN5//30lJyfr8ssv12OPPab8/PyAjB1AYwQnACHD5XLJYrFo2bJlWr58eZOvZ555xrPvE088oS+++EL33HOPKisrddttt+nCCy/Uvn37gvgJpMsvv1w7duzQiy++qL59++r555/XxRdfrOeff96zzx133KHvvvtOf/zjHxUVFaX77rtPvXv31pYtW4I4ciA8EJwAtEoWi6XJtnPPPVeGYah79+7Kyspq8nXJJZc02v+iiy7Sf//3f2v16tX697//rf3792vRokWnPIcvOnTooJiYGG3btq3Ja99++62sVqu6dOni2ZaUlKRp06bpb3/7m/bu3at+/fo16UJ+7rnn6ne/+50+/PBDffXVV6qurtYTTzxhyngBnBzBCUCrFBsbK0mNGmBOnDhRNptNc+fOlWEYjfY3DENHjhyRJJWUlKi2trbR6xdddJGsVquqqqoancOMBps2m01XXnml/vnPfzZqGVBQUKD/+7//07BhwxQfHy9JnjG6tWnTRuedd55nXBUVFTp+/Hijfc4991zFxcU1GjuAwKAdAYBWaeDAgZKke++9VzfeeKMiIiI0btw4PfTQQ7r77ru1a9cujR8/XnFxcdq5c6feeustzZgxQ7Nnz9bKlSt16623atKkSTr//PNVW1urV199VTabTddee22jc6xYsULz589Xamqqunfv7mkb0FIPPfSQli9frmHDhuk3v/mN7Ha7nnnmGVVVVemxxx7z7NenTx+NHDlSAwcOVFJSkjZu3Kg33nhDt956qyTpu+++0+jRo3X99derT58+stvteuutt1RQUKAbb7zRjysKwCvBvakPAHz3hz/8wejUqZNhtVobtSb4xz/+YQwbNsyIjY01YmNjjV69ehkzZ840tm3bZhiGYfzwww/GLbfcYpx77rlGVFSUkZSUZIwaNcpYsWJFo+N/++23xuWXX25ER0cbklrUmkA/akdgGIaxefNmY8yYMUabNm2MmJgYY9SoUcYnn3zSaJ+HHnrIGDx4sNG2bVsjOjra6NWrl/Hwww8b1dXVhmEYRmFhoTFz5kyjV69eRmxsrJGQkGAMGTLEeP3111t28QD4xGIYP5rPBgAAQLOocQIAAPASNU4A4CWn06nDhw+fcp82bdqoTZs2Z2hEAM40ghMAeGnv3r3q3r37KfeZM2dOk9YBAEIHwQkAvJSSkqLly5efcp8TH6kCIPRQHA4AAOAlisNNNGHCBCUmJuq6664L9lAAAEAAMONkolWrVqm0tFQvv/yy3njjjdPu73K5dODAAcXFxZn2aAcAANAyhmGotLRUqampslpPPadEjZOJRo4cqVWrVnm9/4EDBxo9nwoAAATP3r171blz51Puc1YEp/379+u//uu/9P7776uiokLnnXeeXnrpJWVkZJhy/NWrV+vxxx/Xpk2bdPDgQb311lsaP358k/1ycnL0+OOPKz8/X+np6frzn/+swYMHmzKG5sTFxUmq+4NyP6cKAACcWSUlJerSpYvn5/KpBD04HTt2TJdddplGjRql999/Xx06dND27duVmJjY7P5r167V4MGDFRER0Wh7Xl6e2rVrp+Tk5CbvKS8vV3p6um655RZNnDix2eMuWbJE2dnZWrRo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UUJCgoqLixUfHx/Qc/31s926962vdGWfZD17c0ZAzwUAQGvSkp/HZ12NEwKD4nAAAPxHcAoTDcXhTDACAOArglOYoHM4AAD+IziFCYrDAQDwH8EpTNA5HAAA/xGcwgTF4QAA+I/gFCYc9voGmAQnAAB8RnAKE+7i8BqW6gAA8BnBKUy42xFU044AAACfEZzCREM7AmeQRwIAQOtFcAoTDcXhzDgBAOArglOYaFiqo8YJAABf+RSc9u7dq3379nm+X79+ve644w49++yzpg0M5nIv1TldhpwuZp0AAPCFT8Fp8uTJ+uijjyRJ+fn5uuKKK7R+/Xrde++9evDBB00dIMzhnnGS6OUEAICvfApOX331lQYPHixJev3119W3b1998skn+utf/6rFixebOT6YJMJm8fye5ToAAHzjU3CqqalRZGSkJGnFihW6+uqrJUm9evXSwYMHzRsdTOMuDpfo5QQAgK98Ck4XXnihFi1apH//+99avny5fvKTn0iSDhw4oHbt2pk6QJjDYrF4Zp2YcQIAwDc+BadHH31UzzzzjEaOHKmbbrpJ6enpkqS3337bs4SHs09D93CKwwEA8IXdlzeNHDlShYWFKikpUWJiomf7jBkzFBMTY9rgYC6H3aqKaqeqnTTBBADAFz7NOFVWVqqqqsoTmnbv3q0FCxZo27ZtOuecc0wdIMzT0D2cGScAAHzhU3C65ppr9Morr0iSioqKNGTIED3xxBMaP368Fi5caOoAYZ6G7uHUOAEA4AufgtPmzZs1fPhwSdIbb7yh5ORk7d69W6+88oqefPJJUwcI89A9HAAA//gUnCoqKhQXFydJ+vDDDzVx4kRZrVZdcskl2r17t6kDhHncd9XRjgAAAN/4FJzOO+88LV26VHv37tUHH3ygK6+8UpJ06NAhxcfHmzpAmMc941TFjBMAAD7xKTjdf//9mj17trp166bBgwdr6NChkupmnwYMGGDqAGGehnYEBCcAAHzhUzuC6667TsOGDdPBgwc9PZwkafTo0ZowYYJpg4O5GorDuasOAABf+BScJCklJUUpKSnat2+fJKlz5840vzzLNRSH08cJAABf+LRU53K59OCDDyohIUFpaWlKS0tT27Zt9Yc//EEuF8tAZysHncMBAPCLTzNO9957r1544QU98sgjuuyyyyRJa9as0QMPPKDjx4/r4YcfNnWQ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jRkzRocOHfLtg+GMi6EBJgDAT2d9cHr00UfVpUsXvfTSSxo8eLC6d++uK6+8Uueee26TfV0ul2bOnKnJkyfL6WyYVdi2bZsyMzP18ssvN3uOsWPH6qGHHtKECRNOOo758+dr+vTpmjZtmvr06aNFixYpJiZGL774oiQpNTW10QzT/v37lZqa2uyxcnJy1KdPHw0aNMirawBzxEYy4wQA8M9ZH5zefvttZWRkaNKkSTrnnHM0YMAAPffcc83ua7Va9d5772nLli26+eab5XK5tGPHDmVmZmr8+PG68847fRpDdXW1Nm3apKysrEbnysrK0rp16yRJgwcP1ldffaX9+/errKxM77//vsaMGdPs8WbOnKm8vDxt2LDBp/HANyc+csUwjCCPBgDQGp31wemHH37QwoUL1bNnT33wwQf69a9/rdtuu+2ks0epqalauXKl1qxZo8mTJyszM1NZWVlauHChz2MoLCyU0+lUcnJyo+3JycnKz8+XJNntdj3xxBMaNWqU+vfvr9/97nfcUXeWcbcjcBlSVa0ryKMBALRGZ307ApfLpYyMDM2bN0+SNGDAAH311VdatGiRpk6d2ux7unbtqldffVUjRoxQjx499MILL8hisQR8rFdffbWuvvrqgJ8HvomJsHl+X15Vq6gTvgcAwBtn/YxTx44d1adPn0bbevfurT179pz0PQUFBZoxY4bGjRuniooKzZo1y68xtG/fXjabrUlxeUFBgVJSUvw6Ns4cq9XiKRCvoJcTAMAHZ31wuuyyy7Rt27ZG27777julpaU1u39hYaFGjx6t3r17680331Rubq6WLFmi2bNn+zwGh8OhgQMHKjc317PN5XIpNzdXQ4cO9fm4OPNiPE0wubMOANByZ/1S3axZs3TppZdq3rx5uv7667V+/Xo9++yzevbZZ5vs63K5NHbsWKWlpWnJkiWy2+3q06ePli9frszMTHXq1KnZ2aeysjJ9//33nu937typrVu3KikpSV27dpUkZWdna+rUqcrIyNDgwYO1YMEClZeXa9q0aYH78DBdbKRNhWVSOXfWAQB8cNYHp0GDBumtt97S3XffrQcffFDdu3fXggULNGXKlCb7Wq1WzZs3T8OHD5fD4fBsT09P14oVK9ShQ4dmz7Fx40aNGjXK8312drYkaerUqVq8eLEk6YYbbtDhw4d1//33Kz8/X/37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0Uf12GOP6c9//rNnH65xy5SXlys9PV05OTnNvu7N9ZwyZYq+/vprLV++XO+++65Wr16tGTNm+D84AyFl8ODBxsyZMz3fO51OIzU11fjjH/8YxFGFhkOHDhmSjI8//tgwDMMoKioyIiIijL///e+efb755htDkrFu3bpgDbNVKi0tNXr27GksX77cGDFihHH77bcbhsE1NsN//dd/GcOGDTvp6y6Xy0hJSTEef/xxz7aioiIjMjLS+Nvf/nYmhtjqXXXVVcYtt9zSaNvEiRONKVOmGIbBNfaXJOOtt97yfO/N9czLyzMkGRs2bPDs8/777xsWi8XYv3+/X+NhximEVFdXa9OmTcrKyvJss1qtysrK0rp164I4stBQXFwsSUpKSpIkbdq0STU1NY2ud69evdS1a1eudwvNnDlTV111VaNrKXGNzfD2228rIyNDkyZN0jnnnKMBAwboueee87y+c+dO5efnN7rGCQkJGjJkCNfYS5deeqlyc3P13XffSZI+//xzrVmzRmPHjpXENTabN9dz3bp1atu2rTIyMjz7ZGVlyWq16rPPPvPr/DzkN4QUFhbK6XQqOTm50fbk5GR9++23QRpVaHC5XLrjjjt02WWXqW/fvpKk/Px8ORwOtW3bttG+ycnJys/PD8IoW6fXXntNmzdv1oYNG5q8xjX23w8//KCFCxcqOztb99xzjzZs2KDbbrtNDodDU6dO9VzH5v5/g2vsnbvuukslJSXq1auXbDabnE6nHn74YU2ZMkWSuMYm8+Z65ufn65xzzmn0ut1uV1JSkt/XnOAEeGHmzJn66quvtGbNmmAPJaTs3btXt99+u5YvX66oqKhgDyckuVwuZWRkaN68eZKkAQMG6KuvvtKiRYs0derUII8uNLz++uv661//qv/7v//ThRdeqK1bt+qOO+5Qamoq1zgEsVQXQtq3by+bzdbkjqOCggKlpKQEaVSt36233qp3331XH330kTp37uzZnpKSourqahUVFTXan+vtvU2bNunQoUO6+OKLZbfbZbfb9fHHH+vJJ5+U3W5XcnIy19hPHTt2VJ8+fRpt6927t/bs2SNJnuvI/2/47ve//73uuusu3Xjjjbrooov0n//5n5o1a5b++Mc/SuIam82b65mSktLkpqja2lodPXrU72tOcAohDodDAwcOVG5urmeby+VSbm6uhg4dGsSRtU6GYejWW2/VW2+9pZUrV6p79+6NXh84cKAiIiIaXe9t27Zpz549XG8vjR49Wl9++aW2bt3q+crIyNCUKVM8v+ca++eyyy5r0kbju+++U1pamiSpe/fuSklJaXSNS0pK9Nlnn3GNvVRRUSGrtfGPU5vNJpfLJYlrbDZvrufQoUNVVFSkTZs2efZZuXKlXC6XhgwZ4t8A/Cotx1nntddeMyIjI43FixcbeXl5xowZM4y2bdsa+fn5wR5aq/PrX//aSEhIMFatWmUcPHjQ81VRUeHZ51e/+pXRtWtXY+XKlcbGjRuNoUOHGkOHDg3iqFu/E++qMwyusb/Wr19v2O124+GHHza2b99u/PWvfzViYmKMv/zlL559HnnkEaNt27bGP//5T+OLL74wrrnmGqN79+5GZWVlEEfeekydOtXo1KmT8e677xo7d+403nzzTaN9+/bGnXfe6dmHa9wypaWlxpYtW4wtW7YYkoz58+cbW7ZsMXbv3m0YhnfX8yc/+YkxYMAA47PPPjPWrFlj9OzZ07jpppv8HhvBKQT9+c9/Nrp27Wo4HA5j8ODBxqeffhrsIbVKkpr9eumllzz7VFZWGr/5zW+MxMREIyYmxpgwYYJx8ODB4A06BPw4OHGN/ffOO+8Yffv2NSIjI41evXoZzz77bKPXXS6Xcd999xnJyclGZGSkMXr0aGPbtm1BGm3rU1JSYtx+++1G165djaioKKNHjx7Gvffea1RVVXn24Rq3zEcffdTs//9OnTrVMAzvrueRI0eMm266yWjTpo0RHx9vTJs2zSgtLfV7bBbDOKG1KQAAAE6KGicAAAAvEZwAAAC8RHACAADwEsEJAADASwQnAAAALxGcAAAAvERwAgAA8BLBCQAAwEsEJwAAAC8RnACg3uHDh/XrX/9aXbt2VWRkpFJSUjRmzBitXbtWkmSxWLR06dLgDhJAUNmDPQAAOFtce+21qq6u1ssvv6wePXqooKBAubm5OnLkSLCHBuAswbPqAEBSUVGREhMTtWrVKo0YMaLJ6926ddPu3bs936elpWnXrl2SpH/+85+aO3eu8vLylJqaqqlTp+ree++V3V7336YWi0VPP/203n77ba1atUodO3bUY489puuuu+6MfDYA5mGpDgAktWnTRm3atNHSpUtVVVXV5PUNGzZIkl566SUdPHjQ8/2///1v3Xzzzbr99tuVl5enZ555RosXL9bDDz/c6P333Xefrr32Wn3++eeaMmWKbrzxRn3zzTeB/2AATMWMEwDU+8c//qHp06ersrJSF198sUaMGKEbb7xR/fr1k1Q3c/TWW29p/PjxnvdkZWVp9OjRuvvuuz3b/vKXv+jOO+/UgQMHPO/71a9+pYULF3r2ueSSS3TxxRfr6aefPjMfDoApmHECgHrXXnutDhw4oLfffls/+clPtGrVKl188cVavHjxSd/z+eef68EHH/TMWLVp00bTp0/XwYMHVVFR4dlv6NChjd43dOhQZpyAVojicAA4QVRUlK644gpdccUVuu+++/TLX/5Sc+bM0c9//vNm9y8rK9PcuXM1ceLEZo8FILQw4wQAp9CnTx+Vl5dLkiIiIuR0Ohu9fvHFF2vbtm0677zzmnxZrQ3/F/vpp582et+nn36q3r17B/4DADAVM04AIOnIkSOaNGmSbrnlFvXr109xcXHauHGjHnvsMV1zzTWS6u6sy83N1WWXXabIyEglJibq/vvv13/8x3+oa9euuu6662S1WvX555/rq6++0kMPPeQ5/t///ndlZGRo2LBh+utf/6r169frhRdeCNbHBeAjisMBQFJVVZUeeOABffjhh9qxY4dqamrUpUsXTZo0Sffcc4+io6P1zjvvKDs7W7t27VKnTp087Qg++OADPfjgg9qyZYsiIiLUq1cv/fKXv9T06dMl1RWH5+TkaOnSpVq9erU6duyoRx99VNdff30QPzEAXxCcACDAmrsbD0DrRI0TAACAlwhOAAAAXqI4HAACjIoIIHQw4wQAAOAlghMAAICXCE4AAABeIjgBAAB4ieAEAADgJYITAACAlwhOAAAAXiI4AQAAeOn/A5TcDHKmoCehAAAAAElFTkSuQmCC", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "fig, axs = plt.subplots(len(metrics), 1, figsize=(6, 3 * len(metrics)), sharex=True)\n", "if len(metrics) == 1:\n", " axs = [axs]\n", "for i, key in enumerate(metrics.keys()):\n", " axs[i].plot(metrics[key])\n", " axs[i].set_yscale('log')\n", " axs[i].set_title(key)\n", " axs[i].set_ylabel(key)\n", "axs[-1].set_xlabel('Step')\n", "plt.tight_layout()\n", "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lets visualize the trained KAN model." ] }, { "cell_type": "code", "execution_count": 20, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "model.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "After training, the model has learned to rely primarily on the total meander length input, passing it through two distinct nonlinear transformations before summing their outputs to predict the target. The claw length input remains disconnected, indicating it was not found to be predictive by the network during optimization." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "As a best practice, we prune the model at this stage to remove redundant or low-contribution paths. This step simplifies the learned symbolic equation, making it more interpretable by eliminating unnecessary neurons and connections that do not significantly impact the prediction. Pruning refines the model architecture before further fine-tuning." ] }, { "cell_type": "code", "execution_count": 21, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "saving model version 0.2\n" ] }, { "data": { "image/png": "iVBORw0KGgoAAAANSUhEUgAAAZcAAAFICAYAAACcDrP3AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy88F64QAAAACXBIWXMAAA9hAAAPYQGoP6dpAAAhnUlEQVR4nO3df3RU5Z3H8c8zCflFEhJihFK0MDG1QEEFIygg5EiJhV3rQk/9VRYqtoiKglLLUlZQQBqLS4I/aotrDcoajw2nlkKNLYcfCrpgBLFpETBrNWQRkAwmmTCZzDz7x8IcUEQkN7kzk/frHM7pyc3oN9J73nnuc++MsdZaAQDgII/bAwAA4g9xAQA4jrgAABxHXAAAjiMuAADHERcAgOOICwDAccQFAOA44gIAcBxxAQA4jrgAABxHXAAAjiMuAADHERcAgOOICwDAcYluDwDEAmutPvnkEzU2Nio9PV05OTkyxrg9FhC1WLkAZ+Dz+VRaWqr8/Hzl5uaqb9++ys3NVX5+vkpLS+Xz+dweEYhKhk+iBE6vsrJSEydOlN/vl/T/q5cTTqxa0tLSVFFRoaKiIldmBKIVcQFOo7KyUuPHj5e1VuFw+Au/z+PxyBijtWvXEhjgJMQF+Ayfz6fevXurubn5jGE5wePxKDU1VbW1tcrKymr/AYEYwJ4L8BllZWXy+/1nFRZJCofD8vv9WrlyZTtPBsQOVi7ASay1ys/PV01Njb7KqWGMkdfr1d69e7mLDBBxAU5x+PBh5ebmtun1OTk5Dk4ExCYuiwEnaWxsbNPrGxoaHJoEiG3EBThJenp6m16fkZHh0CRAbCMuwElycnKUl5f3lfdNjDHKy8tT9+7d22kyILYQF+AkxhjNmDHjnF579913s5kPHMeGPvAZPOcCtB0rF+AzsrKyVFFRIWOMPJ4znyInntBfvXo1YQFOQlyA0ygqKtLatWuVmpoqY8znLned+FpqaqrWrVunsWPHujQpEJ2IC/AFioqKVFtbq5KSEnm93lOOeb1elZSUaP/+/YQFOA32XICzYK3Vhg0bdM0112j9+vUqLCxk8x44A1YuwFkwxkT2VLKysggL8CWICwDAccQFAOA44gIAcBxxAQA4jrgAABxHXAAAjiMuAADHERcAgOOICwDAccQFAOA44gIAcBxxAQA4jrgAABxHXAAAjiMuAADHERcAgOOIC/AlgsGg9u/fr7///e+SpPfff19HjhxROBx2eTIgevExx8AX8Pl8qqio0KpVq1RdXa2Ghga1tLQoJSVFubm5GjlypKZOnarhw4crMTHR7XGBqEJcgNN44403NGvWLO3atUsFBQUaP368Bg0apPT0dPl8PlVVVWnNmjXat2+fbrjhBi1atEi5ublujw1EDeICfMarr76qKVOmKD09XUuWLNG4cePU0tKi8vJyBQIBZWZm6sYbb1QwGFR5ebkWLFigAQMG6LnnnlOPHj3cHh+ICsQFOMmePXt07bXXqmvXriovL1f//v1ljFFNTY0GDx6so0ePqm/fvqqqqlJ2drastXr99dd18803a/To0Xr66aeVnJzs9o8BuI4NfeC4UCikhx9+WPX19Xr88ccjYTkTY4xGjBihRx55RC+//LJeeeWVDpoWiG7EBThu3759WrNmjSZMmKARI0Z8aVhOMMbo+uuv17Bhw7RixQq1tra286RA9OMWF+C4rVu3qrGxURMnTtQHH3ygpqamyLHa2lqFQiFJUktLi6qrq5WZmRk53qtXL02YMEELFizQgQMH1Lt37w6fH4gmxAU4bvfu3UpLS5PX69W0adO0ZcuWyDFrrQKBgCSprq5O3/nOdyLHjDF69NFHNXDgQPn9ftXV1REXdHrEBTiuublZiYmJSk5OViAQ0LFjx077fdbazx1rbW1VamrqKRECOjPiAhx3/vnnq7m5WT6fT0OHDlXXrl0jx5qbm7V169ZIRK666qrIg5PGGF144YU6ePCgPB6PsrOz3foRgKhBXIDjhgwZomAwqG3btqm4uPiUYzU1NSooKNDRo0fVo0cPvfjii8rKyoocN8Zo7ty56tmzJ5fEAHG3GBBxxRVXyOv1qqysTE1NTUpISDjlzwnGGHk8nsjXPR6P/vd//1e/+93vNH78eHXr1s3FnwKIDsQFOC4nJ0d33XWX3n77bS1fvvysbykOBAJauHChmpubNW3atLO+hRmIZ1wWA04yZcoUbd68WcXFxUpLS9P06dOVkpIiSUpMTFRiYmJkFWOtVUNDgxYvXqzy8nItW7ZMF198sZvjA1GDt38BPuPQoUO688479cc//lFFRUWaNWuW+vXrp/fee0/hcFhJSUm66KKLtG3bNi1dulQ7d+7UQw89pOnTp59y+QzozIgLcBpNTU1asWKFli9fro8//lher1f5+fnKyMhQfX293nvvPdXV1WnIkCGaP3++Ro0aJY+Hq8zACcQFOIMDBw5o/fr12rRpk9555x1t27ZNI0eO1PDhwzV27FgNHTpUaWlpbo8JRB3iApyl7du364orrtD27dt1+eWXuz0OENVYxwNnKSEhIXIbMoAz4ywBADiOuAAAHEdcAACOIy4AAMcRFwCA44gLAMBxxAUA4DjiAgBwHHEBADiOuAAAHEdcAACOIy4AAMcRFwCA44gLAMBxfJ4LcJastQqHw/J4PDLGuD0OENVYuQBfAZ/lApydRLcHAJwQDAb14YcfKhwOuz1KmxljdOGFFyopKcntUYBzRlwQF2pra3XHHXdoyJAhbo9yTqy1CgQCSklJUVVVlZ588knl5eW5PRZwzogL4oK1VoMGDdLixYvdHuWcvPrqq1q6dKkeeughtba2iq1QxDrigrgTS5vt1lrV1dXppz/9qaqrq5Wamiqv1+v2WECbsTsJuCgYDGr+/Pmqrq7WeeedpwceeEDJyclujwW0GXEBXGKt1UsvvaRVq1YpISFB8+bN0+DBg90eC3AEcQFcYK3Vnj179POf/1wtLS267rrrNHXq1Ji6pAecCXEBXOD3+3X//ffro48+Up8+ffSLX/xCqampbo8FOIa4AB0sHA7r17/+tf70pz8pOTlZS5YsUV5eHqsWxBXiAnQga622b9+uJUuWKBQKafLkyfqXf/kXwoK4Q1yADlRfX6/77rtPR44c0aBBgzR//nwlJvJEAOIPcQE6SGtrq4qLi/Xmm28qIyNDS5cuVY8ePVi1IC4RF6ADWGu1fv16/epXv5IxRvfcc49Gjx5NWBC3iAvQAYLBoEpLS9XU1KThw4fr3nvvVUJCgttjAe2GuADtzFqrXbt26fXXX1diYqJmzpypzMxMt8cC2hVxAdqZtVbPPfecmpqa1L9/fxUWFnI5DHGPuADt7MCBA/r9738vSbrllltYtaBTIC5AO7LW6g9/+IP279+v888/XxMnTmTVgk6BuADtqLm5WStXrpS1VuPGjdM3vvENt0cCOgRxAdqJtVZbt27Vjh07lJKSoilTprBqQadBXIB2Eg6H9eyzz6qlpUUFBQW6/PLLiQs6DeICtANrrd5++22tW7dOHo9HkydPVkpKittjAR2GuADtIBAIaNGiRTp69KgGDhyo733ve6xa0KkQF8Bh1lqtWbNGlZWVSkpK0s9//nNlZ2e7PRbQoYgL4LBPPvlEixcvVjAY1He/+1390z/9E6sWdDrEBXBQKBTSk08+qb/+9a/Kzs7WvHnzlJSU5PZYQIcjLoBDQqGQysrKtHTpUllrNXXqVF166aWsWtAp8SlFQBtZa2Wt1fPPP69Zs2apqalJY8aM0U9/+lN5PPz+hs6JuABf0YmYNDU16aOPPtK7776rzZs3a9WqVWpsbFRhYaGeffZZ5eTkuD0q4BriAnwJa62CwaAOHz6sPXv26K233tK2bdv07rvvav/+/fL7/bLWSpKuvvpqlZWVqWfPnlwOQ6dGXIDTCIfDev/997V9+3a9+eabevvtt7Vv3z7V19ertbU18n3Jycm64IIL1K9fP1155ZWaOnWqvva1rxEWdHrEBTiJtVYtLS1asWKFFi5cqE8++SSyKvF4POrWrZv69OmjSy+9VMOGDdNll12mvn37qlu3bvJ4PEQFOI64AMdZa3Xw4EH927/9m1atWqXW1lZ9/etf1yWXXKKCggIVFBSof//+6tGjh5KTkyWJmABfgLgA+v+wVFVV6a677tL27duVmJiof/3Xf9WiRYvUs2dPViXAV0Rc0OkFg0G98MIL+tnPfqaDBw8qKytLCxYs0I9//GMlJycTFeAcEBd0WtZa+Xw+Pfjgg/rNb36jQCCg/v3767HHHtPVV1/NMypAGxAXdErWWv3tb3/TjBkztHnzZnk8Hk2YMEGPPvqoLrjgAlYrQBsRF3Q6ra2tevnll3Xffffpo48+Unp6uu6//37NnDlTaWlphAVwAHFBp2GtVWNjox555BGVlJTI7/erb9++Kikp0Xe/+10lJCS4PSIQN4gLOgVrrWpqajRz5ky98sorstZq7NixKi0tVX5+PqsVwGHsWCLuhcNhvfrqqxo3bpzWrVun5ORkzZ49Wy+++CJhAdoJKxfELWutjh07pscee0wPP/ywGhoa1KtXLz366KOaMGGCEhP5vz/QXji7EJestaqrq9Ps2bNVUVGhcDis4cOH6/HHH9fAgQNZrQDtjLggLv3jH//QxIkTtXPnTiUlJem2227TwoUL1b17d8ICdADigrgTCoW0bNky7dy5U9nZ2SouLtakSZPUpUsXwgJ0EOKCuFNdXa1Vq1bJGKM5c+boRz/6EU/bAx2MMw5x5cSqpb6+XhdffLEmT55MWAAXcNYhrrz11ltavXq1PB6PZs6cqfPOO8/tkYBOibggboRCIZWUlKixsVGXXXaZfvCDH7DHAriEPRfEDWOMfvSjH6m+vl633XabMjMzI58iCaBjERfEBWOMqqurlZGRocGDB+udd95RdXW122Odk3feeYcVF2KesfxqhzjQ0tKimpoahUIht0dpM4/Ho7y8PCUlJbk9CnDOiAsAwHFcFgPO0sm/h3HZCjgz7hYDztKOHTuUkJCgHTt2uD0KEPWICwDAccQFAOA44gIAcBxxAQA4jrgAABxHXAAAjiMuAADHERcAgOOICwDAccQFAOA44gIAcBxxAQA4jrgAABxHXAAAjiMuAADHERfgLFhrVV9fL0mqr68XH+AKnBlxAc7A5/OptLRU+fn5GjNmjKy1GjNmjPLz81VaWiqfz+f2iEBUMpZfwYDTqqys1MSJE+X3+yWd/mOO09LSVFFRoaKiIldmBKIVcQFOo7KyUuPHj5e1VuFw+Au/z+PxyBijtWvXEhjgJMQF+Ayfz6fevXurubn5jGE5wePxKDU1VbW1tcrKymr/AYEYwJ4L8BllZWXy+/1nFRZJCofD8vv9WrlyZTtPBsQOVi7ASay1ys/PV01NzVe6I8wYI6/Xq71790b2Y4DOjLgAJzl8+LByc3Pb9PqcnBwHJwJiE5fFgJM0Nja26fUNDQ0OTQLENuICnCQ9Pb1Nr8/IyHBoEiC2ERfgJDk5OcrLy/vK+ybGGOXl5al79+7tNBkQW4gLcBJjjGbMmHFOr7377rvZzAeOY0Mf+AyecwHajpUL8BlZWVmqqKiQMUYez5lPkRNP6K9evZqwACchLsBpFBUVae3atUpNTZUx5nOXu058LTU1VevWrdPYsWNdmhSITsQF+AJFRUWqra1VSUmJvF7vKce8Xq9KSkq0f/9+wgKcBnsuwFmw1mrDhg265pprtH79ehUWFrJ5D5wBKxfgLBhjInsqWVlZhAX4EsQFAOA44gIAcBxxAQA4jrgAABxHXAAAjiMuAADHERcAgOOICwDAccQFAOA44gIAcBxxAQA4jrgAABxHXAAAjiMuAADHERcAgOOICwDAccQF+BLBYFD79+/X3//+d0nS+++/ryNHjigcDrs8GRC9+Jhj4Av4fD5VVFRo1apVqq6uVkNDg1paWpSSkqLc3FyNHDlSU6dO1fDhw5WYmOj2uEBUIS7AabzxxhuaNWuWdu3apYKCAo0fP16DBg1Senq6fD6fqqqqtGbNGu3bt0833HCDFi1apNzcXLfHBqIGcQE+49VXX9WUKVOUnp6uJUuWaNy4cWppaVF5ebkCgYAyMzN14403KhgMqry8XAsWLNCAAQP03HPPqUePHm6PD0QF4gKcZM+ePbr22mvVtWtXlZeXq3///jLGqKamRoMHD9bRo0fVt29fVVVVKTs7W9Zavf7667r55ps1evRoPf3000pOTnb7xwBcx4Y+cFwoFNLDDz+s+vp6Pf7445GwnIkxRiNGjNAjjzyil19+Wa+88koHTQtEN+ICHLdv3z6tWbNGEyZM0IgRI740LCcYY3T99ddr2LBhWrFihVpbW9t5UiD6cYsLcNzWrVvV2NioiRMn6oMPPlBTU1PkWG1trUKhkCSppaVF1dXVyszMjBzv1auXJkyYoAULFujAgQPq3bt3h88PRBPiAhy3e/dupaWlyev1atq0adqyZUvkmLVWgUBAklRXV6fvfOc7kWPGGD366KMaOHCg/H6/6urqiAs6PeICHNfc3KzExEQlJycrEAjo2LFjp/0+a+3njrW2tio1NfWUCAGdGXFBp/c///M/2rBhg1577TX5/X75fD4NHTpUXbt2jXxPc3Oztm7dGonIVVddFXlw0hijCy+8UAcPHpTH41F2drZbPwoQNYgLOp0PP/xQGzdu1MaNG7Vhwwb94x//kDFGffv2VSAQ0LZt21RcXHzKa2pqalRQUKCjR4+qR48eevHFF5WVlRU5bozR3Llz1bNnTy6JASIu6AT279+vDRs2aNOmTdqwYYNqamokSZdccomuv/56jR49WldffbXC4bBGjBihsrIy3XTTTads2CckJET+tzFGHo8n8jVrrerq6vS73/1O1113nbp169axPyAQhYgL4s6BAwdOicnevXslSd/+9rc1btw4jR49WqNGjVJOTs7nXnvXXXfpvvvu0/LlyzVnzpyzes+wQCCghQsXqrm5WdOmTTvrW5iBeEZcEPMOHjyojRs3RmKye/duSVK/fv00ZswYLVq0SKNGjdL555//pf+sKVOmaPPmzSouLlZaWpqmT5+ulJQUSVJiYqISExNPWbE0NDRo8eLFKi8v17Jly3TxxRe33w8KxBDe/gUx5/Dhw9q0aVMkJtXV1ZKkb37zmxo9enTkT8+ePc/pn3/o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u+++Wx6PRytWrNCsWbPU1NREYABEHeISQ1JTU7Vo0SLNnDlTHo9Hv/3tb3XPPfeosbGRwACIKsQlxqSkpOjBBx/U7NmzlZCQoJUrV2rGjBn69NNPCQyAqEFcYlBKSooeeOAB3X///UpISNDzzz+vO++8U0ePHiUwAKICcYlRycnJmjdvnubOnasuXbqovLxc06dPl8/nIzAAXEdcYlhSUpLmzJmjefPmqUuXLnrppZc0bdo01dfXExgAriIuMS4pKUn333+/FixYoKSkJK1evVo//vGPdeTIEQIDwDXEJQ506dJF9957rxYuXKjk5GS9/PLLmjp1qg4fPkxgALiCuMSJLl266J577tHixYuVnJysNWvW6NZbb9WhQ4cIDIAOR1ziSGJiou666y4VFxcrNTVV69at05QpU/Txxx8TGAAdirjEmcTERN1+++365S9/qbS0NFVWVmry5Mk6cOAAgQHQYYhLHEpMTNRPfvIT/cd//Ie6du2qv/zlL5o0aZLq6uoIDIAOQVziVEJCgm699VaVlJQoPT1dGzZs0A9/+EPV1tYSGADtjrjEsYSEBE2ePFnLly9XRkaGNm/erFtuuUUffvghgQHQrohLnEtISNCkSZP0xBNPKDMzU1u2bNHNN9+sDz74gMAAaDfEpRPweDy66aab9Ktf/UpZWVl68803dfPNN6umpobAAGgXxKWT8Hg8+sEPfqCnnnpK2dnZ2rZtm2666Sbt27ePwABwHHHpRDwejyZOnKjf/OY36t69u6qqqnTTTTdpz549BAaAo4hLJ+PxeHT99dfr6aefVk5Ojnbs2KEbb7xRu3fvdns0AHGEuHRCHo9H1113nZ555hnl5uZq165duvHGG/W3v/3N7dEAxAni0kkZYzR+/Hj99re/1fnnn6+//vWvmj17tpqbm90eDUAcIC4Os9bGzB9Juvbaa1VWVqahQ4dqwYIFSklJcfm/IIB4kOj2APHAGKN3331XDz74oNujnBNrra688kr96U9/0q5du2SMcXskADHOWG4TarOWlhbV1NQoFAq5PUqbeTwe5eXlKSkpye1RAMQw4gIAcByXxWLEyb8DcNkKQLRjQz9G7NixQwkJCdqxY4fbowDAlyIuAADHERcAgOOICwDAccQFAOA44gIAcBxxAQA4jrgAABxHXAAAjiMuAADHERcAgOOICwDAccQFAOA44gIAcBxxAQA4jrgAABzHh4XFAGut6uvrJUn19fWy1vKBYeh0rLX65JNP1NjYqPT0dOXk5HAeRDFWLlHM5/OptLRU+fn5GjNmjKy1GjNmjPLz81VaWiqfz+f2iEC7O/k8yM3NVd++fZWbm8t5EOWMPfnzcxE1KisrNXHiRPn9fkmn/5jjtLQ0VVRUqKioyJUZgfbGeRC7iEsUqqys1Pjx42WtVTgc/sLv83g8MsZo7dq1nFiIO5wHsY24RBmfz6fevXurubn5jCfUCR6PR6mpqaqtrVVWVlb7Dwh0AM6D2MeeS5QpKyuT3+8/qxNKksLhsPx+v1auXNnOkwEdh/Mg9rFyiSLWWuXn56umpkZf5a/FGCOv16u9e/dy9wxiHudBfCAuUeTw4cPKzc1t0+tzcnIcnAjoeJwH8YHLYlGksbGxTa9vaGhwaBLAPZwH8YG4RJH09PQ2vT4jI8OhSQD3cB7EB+ISRXJycpSXl/eVrxcbY5SXl6fu3bu302RAx+E8iA/EJYoYYzRjxoxzeu3dd9/NJibiAudBfGBDP8pwfz/AeRAPWLlEmaysLFVUVMgYI4/nzH89J55MXr16NScU4grnQewjLlGoqKhIa9euVWpqqowxn1vmn/haamqq1q1bp7Fjx7o0KdB+OA9iG3GJUkVFRaqtrVVJSYm8Xu8px7xer0pKSrR//35OKMQ1zoPYxZ5LDLDW6siRI2poaFBGRoa6d+/OpiU6Hc6D2EJcAACO47IYAMBxxAUA4DjiAgBwHHEBADiOuAAAHEdcAACOIy4AAMcRFwCA44gLAMBxxAUA4DjiAgBwHHEBADiOuAAAHEdcAACO+z89adRHE+xotwAAAABJRU5ErkJggg==", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "model = model.prune()\n", "model(dataset['train_input'])\n", "model.plot()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "\n", "The updated architecture clearly shows that the model now relies on distinct nonlinear transformations of both inputs (total meander length and claw length), though one transformation from claw length is weak and de-emphasized." ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "We retrain after pruning to slightly adjust the remaining functions for better accuracy." ] }, { "cell_type": "code", "execution_count": 22, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "| train_loss: 3.27e-01 | test_loss: 3.30e-01 | reg: 1.66e+00 | : 100%|█| 50/50 [00:39<00:00, 1.27it\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "saving model version 0.3\n" ] }, { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "model.fit(dataset, steps=50)\n", "try:\n", " model.plot()\n", "except Exception as e:\n", " print(\"Error plotting model\")\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Finally, we define a library of candidate symbolic functions (polynomials, sinusoids, logs, etc.). KAN fits the learned internal structure to combinations of these and then extracts the final symbolic formula representing:\n", "\n", "$$\n", "{f_{cav}} = f(\\text{cross\\_length}, \\text{claw\\_length})\n", "$$\n" ] }, { "cell_type": "code", "execution_count": 23, "metadata": {}, "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "fixing (0,0,0) with x, r2=1.0000005960464478, c=1\n", "fixing (0,1,0) with 0\n", "fixing (1,0,0) with x, r2=0.9552730917930603, c=1\n", "saving model version 0.4\n" ] } ], "source": [ "lib = ['x','x^2','x^3','x^4','exp','log','sqrt','tanh','sin','abs']\n", "model.auto_symbolic(lib=lib)" ] }, { "cell_type": "code", "execution_count": 95, "metadata": {}, "outputs": [ { "data": { "text/plain": [ "([-0.00169442449984271*x_1 - 5.35003944827876e-12*x_2 - 5.43009030583892e-6*sin(9.40023994445801*x_2 - 9.61199951171875) + 13.2851943596568],\n", " [x_1, x_2])" ] }, "execution_count": 95, "metadata": {}, "output_type": "execute_result" } ], "source": [ "model.symbolic_formula()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "Lets visually interpret the symbolic model and compare it to the data." ] }, { "cell_type": "code", "execution_count": 24, "metadata": {}, "outputs": [], "source": [ "def plot_symbolic_surface(f_sym, x1_range, x2_range, x1_label, x2_label, z_label, title, cmap='plasma'):\n", " \"\"\"\n", " Plots a 2D surface of a symbolic model f_sym(x1, x2) over the specified ranges.\n", " \"\"\"\n", " X2, X1 = np.meshgrid(x2_range, x1_range)\n", " Z = f_sym(X1, X2)\n", " plt.figure(figsize=(6, 6))\n", " c = plt.pcolormesh(x2_range, x1_range, Z, shading='auto', cmap=cmap)\n", " plt.xlabel(x2_label, fontsize=12)\n", " plt.ylabel(x1_label, fontsize=12)\n", " cbar = plt.colorbar(c, label=z_label)\n", " cbar.ax.tick_params(labelsize=10)\n", " plt.xticks(fontsize=10)\n", " plt.yticks(fontsize=10)\n", " plt.title(title, fontsize=13)\n", " plt.tight_layout()\n", " plt.show()\n", "\n", "def plot_symbolic_vs_data(f_sym, x1_vals, fixed_x2, real_X, real_y, x1_col, x2_col, tol, x1_label, x2_label, y_label, title):\n", " \"\"\"\n", " Plots the symbolic model prediction vs. real data for a fixed x2 value.\n", " \"\"\"\n", " f_pred = f_sym(x1_vals, fixed_x2)\n", " mask = np.abs(real_X[:, x2_col] - fixed_x2) < tol\n", " x1_real = real_X[mask, x1_col]\n", " y_real = real_y[mask]\n", " plt.figure(figsize=(8, 6))\n", " plt.plot(x1_vals, f_pred, label=f'Symbolic Model (fixed {x2_label}={fixed_x2})', color='C0')\n", " plt.scatter(x1_real, y_real, color='C1', edgecolor='k', s=40,\n", " label=f'Real Data (fixed {x2_label}={fixed_x2}±{tol})')\n", " plt.xlabel(x1_label)\n", " plt.ylabel(y_label)\n", " plt.title(title)\n", " plt.legend()\n", " plt.tight_layout()\n", " plt.grid(True)\n", " plt.show()" ] }, { "cell_type": "code", "execution_count": 25, "metadata": {}, "outputs": [ { "data": { "image/png": "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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" }, { "data": { "image/png": "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+OOPIUkSAgMDtct4rKjfyhoTPFbUL4sWLSr183ZxcdGur3PHCEHCz89PrF27Vly4cEFERkaKAQMGiGbNmonMzEztNr169RIvv/yySEpK0r7S0tK06wsLC0WHDh1E3759xblz58Tu3buFtbW1eOutt7Tb3LhxQ5iYmIh58+aJS5cuiRUrVgilUilCQ0Or9fulf7Zz506xa9cucfXqVRETEyPefvttoVarxYULF4QQQkybNk04OjqK/fv3i9OnT4tnnnlG9OjRQ/v1HA91zz+NCR4j6reTJ0+K5s2bCzc3NzF37lztch4r6q+/GxM8VtQvCxcuFO3bty/x87537552fV07RrBYlCElJUUAEIcOHdIu69WrV4kDw5N2794tFAqFuHv3rnbZ6tWrhYWFhcjLyxNCCPH666+L9u3bl/i6UaNGCT8/P91+A6QXDRo0EN9995149OiRUKvV4ueff9auu3z5sgAgjh07JoTgeKgviseEEDxG1GcZGRmidevWIiwsrMQ44LGi/vq7MSEEjxX1zcKFC0WnTp3KXFcXjxE8FaoMaWlpAICGDRuWWP7TTz/B2toaHTp0wFtvvYXs7GztumPHjqFjx46wtbXVLvPz80N6ejouXryo3aZv374lPtPPzw/Hjh3T17dCOlBUVITNmzcjKysLXl5eOHPmDAoKCkr8LF1cXNCsWTPtz5LjoW57ckwU4zGifpo5cyYGDhxY6mfHY0X99XdjohiPFfXLtWvXYG9vjxYtWmDs2LFISEgAUDePEapq32MNp9FoEBgYCG9vb3To0EG7fMyYMXBycoK9vT3Onz+PN954AzExMdi2bRsA4O7duyV+6AC07+/evfvUbdLT05GTkwNjY2N9fmtUQdHR0fDy8kJubi7MzMywfft2uLq6IjIyEgYGBrCysiqxva2t7T/+rIvXPW0bjoea6+/GBMBjRH21efNmnD17FqdOnSq17u7duzxW1ENPGxMAjxX1jaenJ9atW4e2bdsiKSkJixcvho+PDy5cuFAnjxEsFk+YOXMmLly4gCNHjpRY/sorr2j/3LFjR9jZ2aFPnz64fv06WrZsWd0xqRq0bdsWkZGRSEtLw9atWxEQEIBDhw7JHYtk9HdjwtXVlceIeigxMRFz585FWFgYjIyM5I5DNUB5xgSPFfVL//79tX92c3ODp6cnnJycsGXLljpZAHkq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", "text/plain": [ "
" ] }, "metadata": {}, "output_type": "display_data" } ], "source": [ "# Define symbolic model\n", "x1, x2 = sp.symbols('x_1 x_2')\n", "expr = (-0.00169442449984271*x1 - 5.35003944827876e-12*x2 - 5.43009030583892e-6*sin(9.40023994445801*x2 - 9.61199951171875) + 13.2851943596568)\n", "f_sym = sp.lambdify((x1, x2), expr, modules='numpy')\n", "\n", "# 1. Surface plot\n", "claw_vals = np.linspace(50, 400, 100) # x2: claw length [µm]\n", "meander_vals = np.linspace(2000, 5000, 100) # x1: total meander length [µm]\n", "plot_symbolic_surface(\n", " f_sym,\n", " x1_range=meander_vals,\n", " x2_range=claw_vals,\n", " x1_label='Total Meander Length (µm)',\n", " x2_label='Claw Length (µm)',\n", " z_label='Cavity Frequency (GHz)',\n", " title=r'Symbolic Model: $f_{\\mathrm{cav}}(x_1, x_2)$'\n", ")\n", "\n", "# 2. Symbolic vs. data plot\n", "fixed_claw = 300\n", "x1_vals = np.linspace(2500, 5000, 200)\n", "input_features = ['total_length', 'claw_length']\n", "target_feature = 'cavity_frequency_GHz'\n", "X = training_df[input_features].values\n", "y = training_df[target_feature].values.reshape(-1)\n", "tol = 5.0 # microns\n", "\n", "# x1_col=0 (total_length), x2_col=1 (claw_length)\n", "plot_symbolic_vs_data(\n", " f_sym,\n", " x1_vals=x1_vals,\n", " fixed_x2=fixed_claw,\n", " real_X=X,\n", " real_y=y,\n", " x1_col=0,\n", " x2_col=1,\n", " tol=tol,\n", " x1_label='Total Meander Length (µm)',\n", " x2_label='Claw Length (µm)', \n", " y_label='Cavity Frequency (GHz)',\n", " title=f'Cavity Frequency vs. Meander Length (Claw Length = {fixed_claw} µm)'\n", ")" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "The symbolic expression returned by the KAN model is:\n", "\n", "$$\n", "f_{cav}(x_1, x_2) = a_1 x_1 + a_2 x_2 + a_3 \\sin(b_1 x_2 + b_2) + a_4\n", "$$\n", "\n", "with the following numerical values:\n", "\n", "* $a_1 = -1.694 \\times 10^{-3}$\n", "* $a_2 = -5.35 \\times 10^{-12}$\n", "* $a_3 = -5.43 \\times 10^{-6}$\n", "* $b_1 = 9.40$, $b_2 = -9.61$\n", "* $a_4 = 13.285$\n", "\n", "### Dimensional Analysis and Simplification\n", "\n", "In our dataset:\n", "\n", "* $x_1 \\in [2000, 5000] \\, \\mu\\text{m}$\n", "* $x_2 \\in [100, 400] \\, \\mu\\text{m}$\n", "\n", "We can estimate the magnitude of each term:\n", "\n", "* $a_1 x_1 \\sim - 3.5$ — dominant term\n", "* $a_2 x_2 \\sim 10^{-9}$ — negligible\n", "* $a_3 \\sin(\\cdot) \\sim 10^{-6}$ — negligible\n", "* $a_4 \\sim 13.3$ — dominant constant offset\n", "\n", "Thus, to leading order, the model simplifies to:\n", "\n", "$$\n", "f_{cav}(x_1, x_2) \\approx a_1 x_1 + a_4\n", "$$\n", "\n", "\n", "### Interpretation\n", " \n", "In summary, the model shows that total meander length $x_1$ is the dominant factor affecting cavity frequency, with other terms (including those involving claw length $x_2$) being negligible. This matches physical expectations and demonstrates that the symbolic formula found by KAN is both accurate and interpretable, serving as a reliable and efficient surrogate for more complex simulations.\n", "\n", "**Note:** KAN model outcomes are probabilistic—if you do not set a deterministic random seed, you may not obtain the exact same symbolic model or results each time you run this notebook. Additionally, the hyperparameters used here are not fully optimized; further tuning will certainly yield improved performance and interpretability at the cost of training time.\n", "\n", "---\n" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Task 1: Symbolic Discovery with KANs Using Design-Relevance Insights\n", "\n", "Your goal is to explore **symbolic relationships between Hamiltonian parameters and the most relevant design variables** using a KAN model\n", "\n", "Start by choosing a Hamiltonian parameter of interest (e.g., $g$, $\\alpha_q$) and use the **design-relevance encoder** outputs to identify which geometry parameters matter most for that target.\n", "\n", "Then:\n", "\n", "* Use those selected design variables as inputs to the KAN model.\n", "* Train KAN to **learn an interpretable symbolic mapping** from geometry to the Hamiltonian parameter.\n", "\n", "Try different architectures, libraries of functions, and pruning thresholds to extract concise and meaningful symbolic expressions. The goal is to gain **physical insight** into how specific design features influence device behavior — not just predict, but understand.\n", "\n", "If your symbolic model makes sense and teaches us something cool, shoot us an [email](mailto:shanto@usc.edu)." ] }, { "cell_type": "code", "execution_count": 41, "metadata": {}, "outputs": [], "source": [ "# ------------------------------\n", "# Helpful to fix the random seed\n", "# ------------------------------\n", "SEED =5212025\n", "np.random.seed(SEED)\n", "random.seed(SEED)\n", "torch.manual_seed(SEED)\n", "torch.backends.cudnn.deterministic = True\n", "torch.backends.cudnn.benchmark = False" ] }, { "cell_type": "code", "execution_count": null, "metadata": {}, "outputs": [], "source": [ "# your code here" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## Task 2: \n", "\n", "I had a similar-ish model (no hyperparameter tuning) for that predicted the following for the coupling strength, $g$:\n", "\n", "$$\n", "g(x_1, x_2) = 1.2306 \\cdot x_1 + 0.6623 \\cdot x_2 - 848.14 \\cdot \\sqrt{0.00559 \\cdot x_1 + 0.00134 \\cdot x_2 + 1} + 1016.44\n", "$$\n", "\n", "Writing it without the constants:\n", "\n", "$$\n", "g(x_1, x_2) = a_1 x_1 + a_2 x_2 - b \\cdot \\sqrt{c_1 x_1 + c_2 x_2 + 1} + d\n", "$$\n", "\n", "Where:\n", "- $x_1$: cross length (in microns) \n", "- $x_2$: claw length (in microns) \n", "- $a_1, a_2$: linear gain coefficients \n", "- $b$: scale of nonlinear saturation \n", "- $c_1, c_2$: coupling weightings inside the square root \n", "- $d$: baseline offset \n", "\n", "It seems to have fitted our data very well. \n", "\n", "
\n", "
\n", "

Reference plot from the SQuADDS paper

\n", " \"Plot\n", "
\n", "
\n", "

Comparision plot to the SQuADDS paper from the model

\n", " \"Plot\n", "
\n", "
\n", "

Model prediction

\n", " \"Plot\n", "
\n", "
\n", "\n", "Discuss amongst yourselves to see if this expression is physically meaningful or not. " ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "## License\n", "\n", "
\n", "

This code is a part of SQuADDS

\n", "

Developed by Sadman Ahmed Shanto

\n", "

This tutorial is written by Sadman Ahmed Shanto

\n", "

© Copyright Sadman Ahmed Shanto & Eli Levenson-Falk 2025.

\n", "

This code is licensed under the MIT License. You may
obtain a copy of this license in the LICENSE.txt file in the root directory
of this source tree.

\n", "

Any modifications or derivative works of this code must retain this
copyright notice, and modified files need to carry a notice indicating
that they have been altered from the originals.

\n", "
" ] } ], "metadata": { "hide_input": false, "kernelspec": { "display_name": "Python 3", "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.11.4" }, "toc": { "base_numbering": 1, "nav_menu": {}, "number_sections": true, "sideBar": false, "skip_h1_title": false, "title_cell": "Table of Contents", "title_sidebar": "Contents", "toc_cell": false, "toc_position": {}, "toc_section_display": true, "toc_window_display": true } }, "nbformat": 4, "nbformat_minor": 2 }