{
 "artifacts": [
  {
   "name": "experiment.py",
   "url": "https://synthcore.org/code/45/experiment.py"
  },
  {
   "name": "report.md",
   "url": "https://synthcore.org/code/45/report.md"
  },
  {
   "name": "results.json",
   "url": "https://synthcore.org/code/45/results.json"
  }
 ],
 "category": "regularization",
 "description": "Make the number of enforced or averaged transformations a model-selection parameter rather than assuming the strongest available symmetry. Choose the largest orbit whose estimated invariance-induced approximation bias is no larger than the statistical floor, while truncating the search at the bandwidth-limited orbit size.",
 "download_zip": "https://synthcore.org/download/45",
 "formulas_latex": [
  "$$q^{\\mathrm{or}}=\\left(\\arg\\min_{q\\in\\mathcal Q}\\left[(nm^{2}q)^{-\\beta/(\\beta+1)}+A_q\\right]\\right)\\wedge q^{\\sharp}.$$",
  "$$q^{\\mathrm{or}}=\\max\\{q\\in\\mathcal Q:A_q\\lesssim 1/n\\}\\wedge q^{\\sharp}.$$",
  "$$\\widehat A_q=\\frac{1}{|V|q}\\sum_{(x,y)\\in V}\\sum_{j=0}^{q-1}\\ell\\!\\left(f_\\theta(g_j\\!\\cdot x),y\\right)-\\frac{1}{|V|}\\sum_{(x,y)\\in V}\\ell\\!\\left(f_\\theta(x),y\\right).$$",
  "$$\\widehat q=\\arg\\min_{q\\in\\mathcal Q}\\left[(nm^2q)^{-\\widehat\\beta/(\\widehat\\beta+1)}+\\lambda\\widehat A_q\\right]\\wedge q^\\sharp.$$"
 ],
 "id": 222,
 "implementation": "Add a symmetry-selection wrapper around a sparse functional network. Define candidate orbit sizes Q = {1, 2, 4, 8, ...} and train a shared-weight orbit-averaged model for each candidate, or evaluate several q values using nested prefixes of one maximum orbit. On a held-out validation set V, compute the empirical bias proxy A_hat_q as the average transformed-input loss minus the original-input loss, using the displayed formula. Also compute a consistency diagnostic D_q = (|V|q)^(-1) sum_{x in V} sum_j ||f_theta(g_j applied to x) - f_theta(x)||^2, which helps distinguish task noise from genuine symmetry violation. Estimate beta by fitting the slope of log validation error versus log m on a small pilot experiment; for the first implementation, set beta_hat = 1 and compare sensitivity to this choice. Estimate h from the median spacing of observed locations or from the bandwidth of a local interpolation layer, set q_sharp = floor(c_K/h), and score each q with (n m^2 q)^(-beta_hat/(beta_hat+1)) + lambda A_hat_q. Select the smallest q within one validation standard error of the minimum to avoid noisy over-selection. Alternatively use the simplified rule: select the largest q with A_hat_q \u003c= tau/n and q \u003c= q_sharp, calibrating tau on a development split. The mathematical contribution is the explicit decreasing variance proxy, increasing bias term, 1/n stopping floor, and saturation cap; lambda, tau, beta_hat, and h are estimated engineering choices. Start with synthetic periodic regression where a controllable asymmetric perturbation is added to otherwise rotation-invariant curves. Compare q = 1, fixed maximum q, and selected q. Success is lower test error than both fixed baselines under mixed symmetry, with selected q increasing as data become sparser or noisier and decreasing as asymmetry increases.",
 "math_summary": "Corollary 7.7 minimizes the risk proxy (n m^2 q)^(-beta/(beta+1)) + A_q over admissible symmetry levels, truncated at q_sharp. Here n is the number of curves, m is observations per curve, beta is smoothness, q is orbit size, and A_q is approximation error caused by imposing or averaging the q-level symmetry; Proposition 7.2 assumes A_q is non-decreasing in q. The oracle is q_or = argmin_{q in Q} [(n m^2 q)^(-beta/(beta+1)) + A_q] wedge q_sharp. If the parametric floor is reachable, it simplifies to the largest q satisfying A_q less than or approximately 1/n, capped at q_sharp. In a neural model, estimate A_q from held-out task loss under transformed inputs relative to the untransformed loss, or from a direct consistency discrepancy.",
 "math_tags": [
  "statistics",
  "optimization",
  "harmonic-analysis",
  "probability"
 ],
 "ml_areas": [
  "architecture",
  "regularization",
  "data-augmentation",
  "training"
 ],
 "paper": {
  "arxiv_id": "2608.27055",
  "arxiv_url": "https://arxiv.org/abs/2608.27055",
  "summary_what_math_gives_to_ml": "The paper gives a quantitative account of how symmetry averaging changes the sparse-functional-data sampling threshold. Averaging over a cyclic orbit reduces the local variance contribution only as the square root of the effective orbit count, with saturation at a bandwidth-dependent orbit size, while the global parametric variance floor of order 1/n is unchanged. For neural networks, this supports controllable orbit-averaged encoders for sparse functional inputs, combined with validation-based selection of the symmetry strength so that approximation bias does not exceed the statistical benefit.",
  "title": "How far can symmetry help? Phase transitions and symmetry selection in sparse functional data analysis",
  "year": "2026"
 },
 "ratings": {
  "difficulty": 4,
  "novelty": 6,
  "usefulness": 7
 },
 "solves": [
  "generalization",
  "sample-efficiency",
  "accuracy"
 ],
 "title": "Oracle symmetry-level selection",
 "url": "https://synthcore.org/idea/222/oracle-symmetry-level-selection",
 "verification": {
  "peer_reviewed": false,
  "stage1_mechanism_check": {
   "worked": false,
   "confidence": 9,
   "verdict": "Built a NumPy MVP for cyclic orbit averaging, ridge fitting, the displayed A_hat_q and D_q diagnostics, oracle scoring, and synthetic periodic regression. The math sanity check passed: the variance proxy decreases with q, the constructed bias is non-decreasing, and their sum has the expected interior minimizer; full-group averaging was also numerically shift-invariant. In the benchmark, oracle selection did not produce a win: across 12 seeds per asymmetry, it never beat both q=1 and q=8, and at asymmetry 0.15 its mean test MSE was 1.0888 versus 1.1077 for q=1 and 1.0461 for q=8; at asymmetry 0.5 it was 1.1135 versus 1.1077 and 1.1660. Therefore the proposed effect was not demonstrated.",
   "metrics": {
    "baseline": "Mean test MSE over 12 seeds: q=1 = 1.1077 for every asymmetry condition; q=8 = 1.0420 (asymmetry 0), 1.0461 (0.15), 1.1660 (0.5), 1.6050 (1.0).",
    "idea": "Mean selected test MSE: 1.0599 (asymmetry 0), 1.0888 (0.15), 1.1135 (0.5), 1.1077 (1.0); selected q counts over 12 seeds: {1:3,2:1,4:1,8:7}, {1:4,2:1,4:2,8:5}, {1:9,2:1,4:2,8:0}, {1:12,2:0,4:0,8:0}, respectively. It never beat both fixed baselines in any trial."
   },
   "how_to_run": "python3 experiment.py",
   "files": [
    "experiment.py",
    "results.json",
    "run.log",
    "idea_context.json"
   ],
   "limitations": "This is a small linear ridge-regression proxy rather than a sparse functional neural network; q candidates are cyclic shifts of synthetic vectors, not learned transformations. The validation A_hat_q uses a model trained on unaveraged inputs and clips negative discrepancies, is not standard-error corrected, and does not implement the requested beta pilot, bandwidth-derived q_sharp, or one-standard-error rule. Only one synthetic data family, fixed q_sharp=8, one validation split, and 12 repeated seeds were tested; no GPU or neural-training comparison was needed."
  },
  "status": "mechanism_failed",
  "status_label": "Mechanism failed",
  "updated_at": "2026-08-30T00:13:08",
  "verdict_source": "deterministic test code (paired-seed permutation statistics)",
  "verification_axes": {
   "benchmark_mechanism": {
    "confirmed": null,
    "tested": false
   },
   "practical_benchmark": {
    "beats_baseline": null,
    "tested": false
   },
   "toy_mechanism_gate": {
    "confirmed": false,
    "tested": true
   }
  }
 }
}
