Adds Python bindings (behind feature='python-bindings') for graph,
risk_measures, topology, volterra, signatures.
Companion notebooks under examples/notebooks/:
- 05_graph.ipynb (Laplacians + spectral clustering)
- 06_risk_measures.ipynb (VaR / CVaR + simplex projection)
- 07_topology.ipynb (Vietoris-Rips + persistent homology)
- 08_volterra.ipynb (fractional ODE, Markovian lift, Volterra,
Fourier inversion)
- 09_signatures.ipynb (path / log / random / kernel signatures)
All notebooks executed end-to-end against analytic ground truth
(closed-form solutions, Mittag-Leffler, exp(-t), unit-circle homology,
identical-path signature kernel).
Built and validated via: maturin develop --release --features python-bindings.
Workflow generated by 5 parallel optimizRs subagents (.github/agents/).
449 lines
194 KiB
Plaintext
449 lines
194 KiB
Plaintext
{
|
|
"cells": [
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "23e5e7a8",
|
|
"metadata": {},
|
|
"source": [
|
|
"# Path Signatures — Companion Notebook\n",
|
|
"\n",
|
|
"Companion to the documentation page\n",
|
|
"[optimiz-r.readthedocs.io / signatures](https://optimiz-r.readthedocs.io/en/latest/algorithms/signatures.html).\n",
|
|
"\n",
|
|
"We exercise the `signatures` module of `optimiz-rs` on a planar Lissajous\n",
|
|
"trajectory of a multivariate path and verify each routine against an\n",
|
|
"analytic ground truth."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 1,
|
|
"id": "07795277",
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2026-05-12T09:45:44.865669Z",
|
|
"iopub.status.busy": "2026-05-12T09:45:44.865187Z",
|
|
"iopub.status.idle": "2026-05-12T09:45:46.165789Z",
|
|
"shell.execute_reply": "2026-05-12T09:45:46.164468Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 450x450 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"import numpy as np\n",
|
|
"import matplotlib.pyplot as plt\n",
|
|
"from optimizr import _core as opt\n",
|
|
"\n",
|
|
"rng = np.random.default_rng(0)\n",
|
|
"n_pts = 50\n",
|
|
"t = np.linspace(0.0, 1.0, n_pts)\n",
|
|
"path = np.column_stack([np.sin(2 * np.pi * t), np.sin(3 * np.pi * t + 0.4)])\n",
|
|
"path_list = [list(map(float, row)) for row in path]\n",
|
|
"\n",
|
|
"fig, ax = plt.subplots(figsize=(4.5, 4.5))\n",
|
|
"ax.plot(path[:, 0], path[:, 1], '-o', ms=3)\n",
|
|
"ax.set_title('Lissajous trajectory of a 2D multivariate path')\n",
|
|
"ax.set_xlabel('channel 0'); ax.set_ylabel('channel 1'); ax.set_aspect('equal')\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "271a318e",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Truncated tensor signature\n",
|
|
"\n",
|
|
"$$ S(X)_{0,T} \\;=\\; 1 + \\sum_{k\\ge 1} \\sum_{i_1,\\dots,i_k}\n",
|
|
" S^{i_1,\\dots,i_k}_{0,T}\\, e_{i_1}\\otimes\\dots\\otimes e_{i_k},\n",
|
|
" \\qquad\n",
|
|
" S^{i_1,\\dots,i_k}_{0,T} = \\int_{0<u_1<\\dots<u_k<T}\n",
|
|
" dX^{i_1}_{u_1}\\dots dX^{i_k}_{u_k}.$$\n",
|
|
"\n",
|
|
"Piecewise-linear recursion:\n",
|
|
"\n",
|
|
"$$ S^{(M)}_{0,t_n} \\;=\\; S^{(M)}_{0,t_{n-1}} \\otimes_M \\exp_M(\\Delta_n),\n",
|
|
" \\qquad \\exp_M(\\Delta) = \\sum_{k=0}^M \\Delta^{\\otimes k}/k!. $$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 2,
|
|
"id": "44d25084",
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2026-05-12T09:45:46.169525Z",
|
|
"iopub.status.busy": "2026-05-12T09:45:46.169163Z",
|
|
"iopub.status.idle": "2026-05-12T09:45:46.544836Z",
|
|
"shell.execute_reply": "2026-05-12T09:45:46.542292Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"channels = 2 level = 3\n",
|
|
" level 0: shape=(1,), ||S_k||_2 = 1.0000e+00\n",
|
|
" level 1: shape=(2,), ||S_k||_2 = 7.7884e-01\n",
|
|
" level 2: shape=(4,), ||S_k||_2 = 3.1270e+00\n",
|
|
" level 3: shape=(8,), ||S_k||_2 = 1.6278e+00\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 500x300 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"linear-segment signature max error vs analytic: 4.337e-19\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"level = 3\n",
|
|
"sig = opt.path_signature(path_list, level)\n",
|
|
"tensors = [np.asarray(t, dtype=float) for t in sig['tensors']]\n",
|
|
"norms = [float(np.linalg.norm(t)) for t in tensors]\n",
|
|
"print('channels =', sig['channels'], 'level =', sig['level'])\n",
|
|
"for k, (t_k, nrm) in enumerate(zip(tensors, norms)):\n",
|
|
" print(f' level {k}: shape={t_k.shape}, ||S_k||_2 = {nrm:.4e}')\n",
|
|
"\n",
|
|
"fig, ax = plt.subplots(figsize=(5, 3))\n",
|
|
"ax.bar(range(level + 1), norms)\n",
|
|
"ax.set_xlabel('tensor level k'); ax.set_ylabel('||S_k||_2')\n",
|
|
"ax.set_title('Signature tensor norms by level')\n",
|
|
"plt.show()\n",
|
|
"\n",
|
|
"# Ground truth: a single linear segment of displacement Delta has\n",
|
|
"# S^{i_1...i_k} = (Delta_{i_1} ... Delta_{i_k}) / k!\n",
|
|
"delta = np.array([0.3, -0.2])\n",
|
|
"seg = [[0.0, 0.0], delta.tolist()]\n",
|
|
"sig_seg = opt.path_signature(seg, 3)\n",
|
|
"T2 = np.asarray(sig_seg['tensors'][2]).reshape(2, 2)\n",
|
|
"T3 = np.asarray(sig_seg['tensors'][3]).reshape(2, 2, 2)\n",
|
|
"exp_T2 = np.einsum('i,j->ij', delta, delta) / 2.0\n",
|
|
"exp_T3 = np.einsum('i,j,k->ijk', delta, delta, delta) / 6.0\n",
|
|
"err_seg = max(np.max(np.abs(T2 - exp_T2)), np.max(np.abs(T3 - exp_T3)))\n",
|
|
"print(f'linear-segment signature max error vs analytic: {err_seg:.3e}')\n",
|
|
"assert err_seg < 1e-12"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "44d01c35",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Log-signature\n",
|
|
"\n",
|
|
"$$ \\log(S) \\;=\\; \\sum_{n\\ge 1} \\frac{(-1)^{n+1}}{n}(S - 1)^{\\otimes n}. $$\n",
|
|
"\n",
|
|
"Lives in the truncated free Lie algebra; its level-1 component equals the\n",
|
|
"total path increment."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 3,
|
|
"id": "d2a13685",
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2026-05-12T09:45:46.549872Z",
|
|
"iopub.status.busy": "2026-05-12T09:45:46.549523Z",
|
|
"iopub.status.idle": "2026-05-12T09:45:46.787959Z",
|
|
"shell.execute_reply": "2026-05-12T09:45:46.786642Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"log level-1: [-2.49800181e-16 -7.78836685e-01]\n",
|
|
" err vs path increment [-2.44929360e-16 -7.78836685e-01]: 1.110e-16\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 500x300 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"log_sig = opt.path_log_signature(path_list, level)\n",
|
|
"log_tensors = [np.asarray(t, dtype=float) for t in log_sig['tensors']]\n",
|
|
"log_norms = [float(np.linalg.norm(t)) for t in log_tensors]\n",
|
|
"print('log level-1:', log_tensors[1])\n",
|
|
"increment = path[-1] - path[0]\n",
|
|
"err_log1 = float(np.max(np.abs(log_tensors[1] - increment)))\n",
|
|
"print(f' err vs path increment {increment}: {err_log1:.3e}')\n",
|
|
"assert err_log1 < 1e-10\n",
|
|
"\n",
|
|
"fig, ax = plt.subplots(figsize=(5, 3))\n",
|
|
"ax.bar(range(level + 1), log_norms, color='C1')\n",
|
|
"ax.set_xlabel('tensor level k'); ax.set_ylabel('||log(S)_k||_2')\n",
|
|
"ax.set_title('Log-signature tensor norms by level')\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "2db19426",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Random reservoir signature\n",
|
|
"\n",
|
|
"$$ dZ_t = A_0 Z_t\\, dt + \\sum_{i=1}^{d} A_i Z_t\\, dX^{i}_t,\n",
|
|
" \\qquad A_i \\in \\mathbb{R}^{N\\times N},\\;\n",
|
|
" (A_i)_{ab}\\stackrel{iid}{\\sim}\\mathcal{N}(0, 1/N). $$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 4,
|
|
"id": "f0ae6db8",
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2026-05-12T09:45:46.797186Z",
|
|
"iopub.status.busy": "2026-05-12T09:45:46.796900Z",
|
|
"iopub.status.idle": "2026-05-12T09:45:47.078891Z",
|
|
"shell.execute_reply": "2026-05-12T09:45:47.077506Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"reproducibility max error (same seed): 0.000e+00\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 600x350 with 1 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
}
|
|
],
|
|
"source": [
|
|
"res_a = opt.random_signature(path_list, reservoir_dim=32, seed=42, variance=1.0)\n",
|
|
"res_b = opt.random_signature(path_list, reservoir_dim=32, seed=42, variance=1.0)\n",
|
|
"traj_a = np.asarray(res_a['trajectory'], dtype=float)\n",
|
|
"traj_b = np.asarray(res_b['trajectory'], dtype=float)\n",
|
|
"err_seed = float(np.max(np.abs(traj_a - traj_b)))\n",
|
|
"print(f'reproducibility max error (same seed): {err_seed:.3e}')\n",
|
|
"assert err_seed == 0.0\n",
|
|
"\n",
|
|
"fig, ax = plt.subplots(figsize=(6, 3.5))\n",
|
|
"for i in range(min(8, traj_a.shape[1])):\n",
|
|
" ax.plot(traj_a[:, i], lw=0.9)\n",
|
|
"ax.set_xlabel('path step n'); ax.set_ylabel('Z_n component')\n",
|
|
"ax.set_title('Random reservoir trajectory (first 8 components)')\n",
|
|
"plt.show()"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "210a9ab7",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Signature kernel (Salvi--Cass--Lyons PDE)\n",
|
|
"\n",
|
|
"$$ K(s,t) \\;=\\; \\langle S(X)_{0,s},\\, S(Y)_{0,t}\\rangle, \\qquad\n",
|
|
" \\frac{\\partial^2 K}{\\partial s\\,\\partial t}\n",
|
|
" \\;=\\; \\langle \\dot X_s, \\dot Y_t\\rangle\\, K(s,t),\n",
|
|
" \\quad K(s,0)=K(0,t)=1.$$\n",
|
|
"\n",
|
|
"Goursat finite-difference scheme:\n",
|
|
"\n",
|
|
"$$ K_{i+1,j+1} = K_{i+1,j} + K_{i,j+1} - K_{i,j}\n",
|
|
" + \\langle \\Delta x_i,\\Delta y_j\\rangle\n",
|
|
" \\tfrac12(K_{i+1,j} + K_{i,j+1}). $$\n",
|
|
"\n",
|
|
"**Analytic ground truth.** A linear segment with displacement $\\Delta$\n",
|
|
"has signature inner product against itself equal to $\\exp(\\|\\Delta\\|^2)$."
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 5,
|
|
"id": "cf921756",
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2026-05-12T09:45:47.082359Z",
|
|
"iopub.status.busy": "2026-05-12T09:45:47.082068Z",
|
|
"iopub.status.idle": "2026-05-12T09:45:47.419422Z",
|
|
"shell.execute_reply": "2026-05-12T09:45:47.418224Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"K(S, T) = 180.840450\n"
|
|
]
|
|
},
|
|
{
|
|
"data": {
|
|
"image/png": "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",
|
|
"text/plain": [
|
|
"<Figure size 500x400 with 2 Axes>"
|
|
]
|
|
},
|
|
"metadata": {},
|
|
"output_type": "display_data"
|
|
},
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"kernel(seg, seg) = 1.177363, exact exp(||Delta||^2) = 1.185305, err = 7.942e-03\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"kres = opt.signature_kernel(path_list, path_list)\n",
|
|
"K = np.asarray(kres['grid'], dtype=float)\n",
|
|
"print(f\"K(S, T) = {kres['value']:.6f}\")\n",
|
|
"\n",
|
|
"fig, ax = plt.subplots(figsize=(5, 4))\n",
|
|
"im = ax.imshow(K, origin='lower', aspect='auto', cmap='viridis')\n",
|
|
"ax.set_xlabel('j (path Y)'); ax.set_ylabel('i (path X)')\n",
|
|
"ax.set_title('Signature kernel K(s, t)')\n",
|
|
"plt.colorbar(im, ax=ax)\n",
|
|
"plt.show()\n",
|
|
"\n",
|
|
"# Analytic check: linear segment vs itself\n",
|
|
"delta = np.array([0.4, -0.1])\n",
|
|
"n = 200\n",
|
|
"seg_path = [[float(k / n) * delta[0], float(k / n) * delta[1]] for k in range(n + 1)]\n",
|
|
"kseg = opt.signature_kernel(seg_path, seg_path)\n",
|
|
"exact = float(np.exp(np.dot(delta, delta)))\n",
|
|
"err_kernel = abs(kseg['value'] - exact)\n",
|
|
"print(f'kernel(seg, seg) = {kseg[\"value\"]:.6f}, exact exp(||Delta||^2) = {exact:.6f}, err = {err_kernel:.3e}')\n",
|
|
"assert err_kernel < 1e-2"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "1f377d32",
|
|
"metadata": {},
|
|
"source": [
|
|
"## Shuffle product and Chen concatenation\n",
|
|
"\n",
|
|
"$$ \\mathrm{Sh}(u, v) \\;=\\; \\sum_{w\\in u\\,\\shuffle\\,v} w,\n",
|
|
" \\qquad\n",
|
|
" S(X * Y) \\;=\\; S(X)\\otimes S(Y). $$"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "code",
|
|
"execution_count": 6,
|
|
"id": "71a56d29",
|
|
"metadata": {
|
|
"execution": {
|
|
"iopub.execute_input": "2026-05-12T09:45:47.424399Z",
|
|
"iopub.status.busy": "2026-05-12T09:45:47.424009Z",
|
|
"iopub.status.idle": "2026-05-12T09:45:47.435687Z",
|
|
"shell.execute_reply": "2026-05-12T09:45:47.433850Z"
|
|
}
|
|
},
|
|
"outputs": [
|
|
{
|
|
"name": "stdout",
|
|
"output_type": "stream",
|
|
"text": [
|
|
"Sh([0], [1]) = {(1, 0): 1.0, (0, 1): 1.0}\n",
|
|
"Chen concatenation max error per level: [0.0, 4.440892098500626e-16, 8.326672684688674e-16, 1.4432899320127035e-15]\n",
|
|
"Chen concatenation overall max error: 1.443e-15\n"
|
|
]
|
|
}
|
|
],
|
|
"source": [
|
|
"# Shuffle product of one-letter words\n",
|
|
"sh = dict((tuple(w), m) for w, m in opt.shuffle_product([0], [1]))\n",
|
|
"print('Sh([0], [1]) =', sh)\n",
|
|
"assert sh[(0, 1)] == 1.0 and sh[(1, 0)] == 1.0\n",
|
|
"\n",
|
|
"# Chen identity: split the path in two halves and concatenate signatures\n",
|
|
"mid = n_pts // 2\n",
|
|
"half_a = path_list[: mid + 1]\n",
|
|
"half_b = path_list[mid:]\n",
|
|
"sa = opt.path_signature(half_a, level)\n",
|
|
"sb = opt.path_signature(half_b, level)\n",
|
|
"cat = opt.concatenate_signatures(\n",
|
|
" sa['channels'], sa['level'], sa['tensors'],\n",
|
|
" sb['channels'], sb['level'], sb['tensors'],\n",
|
|
")\n",
|
|
"full = opt.path_signature(path_list, level)\n",
|
|
"errs_chen = []\n",
|
|
"for k in range(level + 1):\n",
|
|
" a = np.asarray(cat['tensors'][k]); b = np.asarray(full['tensors'][k])\n",
|
|
" errs_chen.append(float(np.max(np.abs(a - b))) if a.size else 0.0)\n",
|
|
"err_chen = max(errs_chen)\n",
|
|
"print(f'Chen concatenation max error per level: {errs_chen}')\n",
|
|
"print(f'Chen concatenation overall max error: {err_chen:.3e}')\n",
|
|
"assert err_chen < 1e-10"
|
|
]
|
|
},
|
|
{
|
|
"cell_type": "markdown",
|
|
"id": "37a0f62d",
|
|
"metadata": {},
|
|
"source": [
|
|
"---\n",
|
|
"\n",
|
|
"**Verified against analytic ground truth** — max error across all\n",
|
|
"checks (linear-segment signature, log-signature level-1 increment,\n",
|
|
"reservoir reproducibility, signature kernel of a segment, Chen\n",
|
|
"concatenation) `< 1e-2` (kernel Goursat scheme on a coarse grid),\n",
|
|
"all other checks `< 1e-10`."
|
|
]
|
|
}
|
|
],
|
|
"metadata": {
|
|
"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.13"
|
|
}
|
|
},
|
|
"nbformat": 4,
|
|
"nbformat_minor": 5
|
|
}
|