| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
|
|
| composition_rules: |
|
|
| |
| |
| |
| |
|
|
| - id: neuralize |
| name: neuralize |
| decomposes_to: [gradient_descent, sgd] |
| description: > |
| Replace a fixed function (kernel, distance metric, projection matrix) with a |
| learned parameterized map φ_θ typically implemented as a deep neural network. |
| The structural operation stays the same; the function implementing it becomes |
| a learnable composition of linear+nonlinear transforms optimized by SGD. |
| input_constraints: |
| meso_types: |
| - kernel_method |
| - linear_projection |
| - spectral_method |
| - optimal_transport |
| macro_types: |
| - eigenvalue_problem |
| - optimization |
| output_signature: |
| meso_type: none |
| preserves: true |
| preserves: |
| - "the mathematical operation (project, decompose, match, transform)" |
| - "the objective family (correlation, divergence, energy, etc.)" |
| - "the domain and codomain types" |
| introduces: |
| - "differentiable parameterization: φ_θ replaces fixed function" |
| - "SGD-based fitting instead of closed-form solution" |
| - "non-convex optimization landscape" |
| - "scale: can handle higher-dimensional inputs" |
| examples: |
| - "Kernel CCA → Deep CCA: replace kernel k(x,y) with learned encoders f_θ(x), g_φ(y)" |
| - "Kernel PCA → Autoencoder: replace kernel with encoder-decoder pair" |
| - "MMD → Deep MMD: replace fixed kernel with learned feature extractor" |
| status: seed |
|
|
| - id: attention_wrap |
| name: attention_wrap |
| decomposes_to: [softmax_attention, boltzmann_distribution] |
| description: > |
| Wrap a pairwise operation in a softmax-normalized weighted aggregation. |
| For any function s(x_i, x_j) that scores compatibility between elements, |
| produce output as Σ_j softmax(s(x_i, x_j))·v(x_j). This is the transformer's |
| core operation: a Boltzmann-weighted sum over a set of values. |
| input_constraints: |
| formalisms: [] |
| output_signature: |
| operation: aggregate |
| codomain: vector |
| objective_family: none |
| preserves: |
| - "the scoring function s(x_i, x_j) as the core computation" |
| - "the value function v(x_j)" |
| introduces: |
| - "Boltzmann / softmax partition function as normalizer: Z_i = Σ_j exp(s(q_i, k_j))" |
| - "set-to-vector aggregation that is permutation-equivariant" |
| - "variable-length input handling" |
| examples: |
| - "dot-product attention: s(q,k) = q·k/√d → softmax → weighted sum of values" |
| - "kernel attention: s(q,k) = k(q,k) → a kernel smoother with learnable parameters" |
| - "self-attention = attention_wrap(dot-product) over same sequence" |
| status: seed |
|
|
| - id: residualize |
| name: residualize |
| decomposes_to: [residual_connection] |
| description: > |
| Add identity skip connection: y = F(x) + x. This is a structural |
| transformation that makes the function learn perturbations around identity |
| rather than the full mapping. Mathematically equivalent to applying an |
| Euler discretization of an ODE with step size 1. |
| input_constraints: {} |
| output_signature: |
| operation: transform |
| codomain: vector |
| preserves: true |
| preserves: |
| - "the wrapped function F(x)" |
| - "dimensionality: output dim = input dim" |
| introduces: |
| - "identity skip path: gradient can bypass F, mitigating vanishing gradients" |
| - "ODE interpretation: x_{t+1} = x_t + F(x_t) as Euler step" |
| - "the function learns F(x) = H(x) - x rather than H(x) directly" |
| examples: |
| - "ResNet block = residualize(convolution + batch_norm + ReLU)" |
| - "Transformer sublayer = residualize(multi_head_attention) then residualize(FFN)" |
| - "Residual flow in normalizing flows" |
| status: seed |
|
|
| - id: normalize |
| name: normalize |
| decomposes_to: [layer_normalization, batch_normalization] |
| description: > |
| Apply standardization: x' = γ·(x - μ)/σ + β. Removes first and second |
| moment variation across a specified axis (batch, layer, instance, group). |
| This is a whitening operation restricted to the first two moments. |
| input_constraints: {} |
| output_signature: |
| operation: transform |
| codomain: vector |
| preserves: false |
| preserves: |
| - "dimensionality" |
| - "the subsequent computation's functional form" |
| introduces: |
| - "zero mean, unit variance along normalization axis (before γ,β)" |
| - "learnable affine parameters γ, β" |
| - "stabilized gradient flow during training" |
| examples: |
| - "LayerNorm(x) before self-attention in Transformer" |
| - "BatchNorm between conv layers in ResNet" |
| status: seed |
|
|
| - id: encode_decode |
| name: encode_decode |
| decomposes_to: [pca, vae] |
| description: > |
| Bottleneck compression: x → encode → z (latent) → decode → x̂. |
| The encoder maps to a lower-dimensional latent; the decoder reconstructs. |
| This is the universal autoencoder pattern. Information-theoretically, |
| it's rate-distortion with λ controlling the bottleneck width. |
| input_constraints: {} |
| output_signature: |
| operation: transform |
| codomain: vector |
| objective_family: reconstruction |
| preserves: |
| - "the identity map through the bottleneck (x ≈ decode(encode(x)))" |
| introduces: |
| - "latent representation z in R^d (typically d < input dim)" |
| - "information bottleneck: the latent discards everything not needed for reconstruction" |
| - "if stochastic: variational bound (ELBO) on log p(x)" |
| examples: |
| - "Autoencoder = neuralize(encode_decode)" |
| - "VAE = encode_decode + KL regularizer on latent" |
| - "U-Net = encode_decode with skip connections between corresponding resolutions" |
| status: seed |
|
|
| |
| |
| |
|
|
| - id: kernelize |
| name: kernelize |
| decomposes_to: [kernel_pca, kernel_cca, kernel_ridge_regression] |
| description: > |
| Lift a linear method to a nonlinear one by replacing inner products ⟨x, y⟩ |
| with a positive-definite kernel k(x, y). This is the kernel trick: the |
| method stays algebraically identical but now operates in a reproducing |
| kernel Hilbert space (RKHS) implicitly defined by the feature map φ. |
| Equivalent to: apply linear method to φ(x) without ever computing φ(x). |
| input_constraints: |
| meso_types: |
| - linear_projection |
| - spectral_method |
| macro_types: |
| - eigenvalue_problem |
| - optimization |
| output_signature: |
| meso_type: kernel_method |
| macro_type: eigenvalue_problem |
| preserves: true |
| preserves: |
| - "the algebraic form of the method" |
| - "the objective family" |
| - "convexity (when the original method is convex)" |
| introduces: |
| - "implicit feature map φ: X → H (RKHS)" |
| - "kernel Gram matrix K_{ij} = k(x_i, x_j) as sufficient statistic" |
| - "O(N³) or O(N²) complexity (unless Nyström / random features)" |
| - "Mercer condition: k must be positive-definite" |
| examples: |
| - "PCA → Kernel PCA: K = k(x_i, x_j), eigen-decompose centered K" |
| - "CCA → Kernel CCA: eigenproblem on K_x^{-1/2} K_x K_y K_y^{-1/2}" |
| - "Ridge regression → Kernel ridge regression: α = (K + λI)^{-1} y" |
| - "Fisher LDA → Kernel FDA" |
| status: seed |
|
|
| - id: random_fourier_features |
| name: random_fourier_features |
| decomposes_to: [fourier_transform, kernel_pca] |
| description: > |
| Approximate a shift-invariant kernel k(x,y) = k(x-y) by sampling random |
| Fourier features: z(x) = √(2/D) · [cos(ω₁·x + b₁), ..., cos(ω_D·x + b_D)] |
| where ω_d ~ p(ω) (the kernel's spectral density). Then k(x,y) ≈ z(x)·z(y). |
| This linearizes the kernel method: kernelized methods become linear methods |
| in the random feature space, recovering O(ND) complexity. |
| input_constraints: |
| meso_types: |
| - kernel_method |
| formalisms: [] |
| output_signature: |
| meso_type: linear_projection |
| preserves: true |
| preserves: |
| - "the method's algebraic form (now linear in z(x))" |
| - "the objective family" |
| introduces: |
| - "explicit D-dimensional feature map approximating RKHS" |
| - "O(ND) complexity instead of O(N²) or O(N³)" |
| - "approximation error O(D^{-1/2}) by Bochner's theorem + Hoeffding" |
| examples: |
| - "RFF for RBF kernel: ω ~ N(0, σ^{-2} I)" |
| - "Deep sets / point cloud methods that use RFF as positional encoding" |
| - "Transformer sinusoidal position encoding (closely related)" |
| status: seed |
|
|
| - id: nystrom |
| name: nystrom_approximation |
| decomposes_to: [svd, kernel_pca] |
| description: > |
| Low-rank approximation of a kernel Gram matrix by subsampling m landmark |
| points: K ≈ K_{nm} K_{mm}^{-1} K_{mn}. Reduces complexity from O(N³) to |
| O(Nm² + m³). The Nyström method is the quadrature-based numerical |
| approximation of the integral eigenproblem underlying the kernel expansion. |
| input_constraints: |
| meso_types: |
| - kernel_method |
| output_signature: |
| preserves: true |
| preserves: |
| - "the kernel method's structure" |
| - "the objective family" |
| introduces: |
| - "low-rank approximation: m landmarks, rank at most m" |
| - "O(Nm² + m³) complexity" |
| - "approximation quality depends on landmark selection" |
| examples: |
| - "Nyström kernel PCA" |
| - "Nyström kernel ridge regression" |
| - "Landmark-based spectral clustering" |
| status: seed |
|
|
| |
| |
| |
|
|
| - id: diffuse |
| name: diffuse |
| decomposes_to: [diffusion_sde, langevin_dynamics] |
| description: > |
| Wrap a sampling/generative process in a forward noising + reverse denoising |
| SDE. Forward: dx = f(x,t)dt + g(t)dW incrementally destroys structure. |
| Reverse: dx = [f(x,t) - g(t)²∇_x log p_t(x)]dt + g(t)dW reconstructs. |
| The core component is score matching: learn s_θ(x,t) ≈ ∇_x log p_t(x). |
| The generative model = reverse-time SDE driven by learned score. |
| input_constraints: {} |
| output_signature: |
| operation: sample |
| meso_type: diffusion_process |
| macro_type: stochastic_process |
| preserves: false |
| introduces: |
| - "continuous-time stochastic process: Itô SDE" |
| - "score function s(x,t) = ∇_x log p_t(x) as central object" |
| - "denoising score matching: ||s_θ(x_t,t) - ∇ log p(x_t|x_0)||²" |
| - "probability flow ODE for deterministic sampling (same marginals)" |
| - "ancestral sampling via SDE discretization (Euler-Maruyama, etc.)" |
| examples: |
| - "DDPM = diffuse(Gaussian forward + learned reverse)" |
| - "Score-based SDE = diffuse with VP/VE/sub-VP SDEs" |
| - "Cold diffusion = diffuse with arbitrary degradation (not just Gaussian)" |
| status: seed |
|
|
| - id: contrastivize |
| name: contrastivize |
| decomposes_to: [infonce, contrastive_learning, mutual_info_max] |
| description: > |
| Convert a generative/similarity objective into a contrastive one: |
| pull positive pairs together, push negative pairs apart. The core |
| operation is maximize I(x; y) or its lower bound via noise-contrastive |
| estimation. Any embedding method can be contrastivized by defining |
| positive pairs (e.g., augmentations of same instance) and negative |
| pairs (other instances). |
| input_constraints: |
| meso_types: |
| - joint_embedding |
| - linear_projection |
| output_signature: |
| meso_type: joint_embedding |
| objective_family: information |
| preserves: false |
| preserves: |
| - "the encoder architecture" |
| introduces: |
| - "InfoNCE loss: -log(exp(sim(z_i, z_i^+)/τ) / Σ_j exp(sim(z_i, z_j)/τ))" |
| - "temperature parameter τ controlling hardness" |
| - "negative sampling strategy" |
| - "uniformity + alignment decomposition (Wang & Isola 2020)" |
| examples: |
| - "SimCLR = contrastivize(ResNet encoder) with image augmentations" |
| - "CLIP = contrastivize(dual encoder) with image-text pairs" |
| - "SimSiam = contrastivize without negatives (stop-gradient trick)" |
| status: seed |
|
|
| - id: adversarize |
| name: adversarize |
| decomposes_to: [gan, wasserstein_distance, js_divergence] |
| description: > |
| Convert an optimization (typically generative) into a two-player |
| minimax game: min_θ max_φ V(θ, φ). Player G (generator) minimizes; |
| Player D (discriminator/critic) maximizes. At Nash equilibrium (if |
| reached), G's distribution matches the target. This is functionally |
| equivalent to minimizing a divergence (JS, Wasserstein, etc.) but |
| the adversarial formulation replaces the explicit density with a |
| learned critic. |
| input_constraints: |
| formalisms: [] |
| output_signature: |
| meso_type: game_theoretic |
| objective_family: adversarial |
| preserves: false |
| preserves: |
| - "the generator architecture" |
| introduces: |
| - "minimax objective: min_G max_D V(D,G)" |
| - "learned divergence: the critic D implicitly defines the loss" |
| - "mode collapse risk (especially with JS-GAN)" |
| - "training instability from non-stationary objectives" |
| examples: |
| - "GAN = adversarize(Gaussian latent generator + CNN discriminator)" |
| - "WGAN = adversarize with Wasserstein critic + gradient penalty" |
| - "Adversarial autoencoder = adversarize(AE latent regularizer)" |
| status: seed |
|
|
| - id: regularize |
| name: regularize |
| decomposes_to: [ridge_regression, lasso, elastic_net] |
| description: > |
| Add a penalty term to the objective: L_total = L_task + λ·R(θ). |
| Common R: L2 (weight decay — Gaussian prior), L1 (sparsity — Laplace prior), |
| dropout (stochastic regularization — approximate Bayesian model averaging), |
| spectral norm (Lipschitz constraint). |
| input_constraints: {} |
| output_signature: |
| preserves: false |
| preserves: |
| - "the task objective L_task" |
| - "the optimization algorithm" |
| introduces: |
| - "regularization penalty λ·R(θ)" |
| - "bias-variance tradeoff via λ" |
| - "Bayesian interpretation: R(θ) = -log p(θ)" |
| examples: |
| - "Weight decay = regularize(SGD, L2)" |
| - "LASSO = regularize(OLS, L1)" |
| - "Elastic Net = regularize(OLS, L1+L2)" |
| - "Dropout = regularize with stochastic binary mask" |
| status: seed |
|
|
| |
| |
| |
|
|
| - id: predict_in_codomain |
| name: predict_in_codomain |
| decomposes_to: [cca, kernel_cca] |
| description: > |
| Instead of predicting in the original data space, predict in a transformed |
| (typically lower-dimensional or structured) latent space. The prediction |
| target is not x_{t+1} but z_{t+1} = f(x_{t+1}) where f is an encoder. |
| This is the core operation in JEPA and related architectures. It is |
| equivalent to applying a projection before a prediction objective. |
| input_constraints: {} |
| output_signature: |
| preserves: true |
| preserves: |
| - "the predictive architecture" |
| - "the objective form (MSE, contrastive, etc.)" |
| introduces: |
| - "encoder f mapping to latent space" |
| - "prediction target is f(x_target) not x_target" |
| - "the encoder acts as a regularizer: irrelevant variation is projected out" |
| - "connection to CCA: if encoders maximize correlation and predictor is linear" |
| examples: |
| - "JEPA = predict_in_codomain(joint_embedding) = CCA in latent space" |
| - "BYOL = predict_in_codomain(contrastive without negatives)" |
| - "World models / Dreamer: predict in latent dynamics space" |
| status: seed |
|
|
| - id: minimize_energy |
| name: minimize_energy |
| decomposes_to: [free_energy_min, hopfield_network, boltzmann_distribution] |
| description: > |
| Reframe the problem as energy minimization over a scalar field E(x). |
| The solution is x* = argmin E(x). Training = shape the energy landscape |
| so that desired configurations are low-energy and undesired ones are |
| high-energy. This is the universal statistical physics framing of |
| learning: any loss function is an energy function, and any optimizer |
| is doing energy minimization. |
| input_constraints: {} |
| output_signature: |
| objective_family: energy |
| meso_type: energy_model |
| preserves: false |
| preserves: |
| - "the optimal point x*" |
| - "the gradient field ∇E(x) (visible in Langevin sampling)" |
| introduces: |
| - "energy landscape E(x) as central object" |
| - "Boltzmann distribution: p(x) ∝ exp(-βE(x))" |
| - "free energy: F = -β^{-1} log ∫ exp(-βE(x)) dx" |
| - "sampling = Langevin dynamics on E(x)" |
| examples: |
| - "Hopfield network = minimize_energy(associative memory)" |
| - "Energy-Based Models (EBM): directly parameterize E_θ(x)" |
| - "Score-based models: s_θ(x) = -∇_x E_θ(x)" |
| status: seed |
|
|
| - id: variational_bound |
| name: variational_bound |
| decomposes_to: [elbo, variational_inference, kl_divergence_min] |
| description: > |
| Replace an intractable marginal likelihood log p(x) with a tractable |
| lower bound (ELBO): log p(x) ≥ E_q[log p(x|z)] - KL(q(z|x) || p(z)). |
| The bound is tight when q(z|x) = p(z|x). The gap is exactly KL(q||p(z|x)). |
| This is the fundamental operation behind VAEs, variational inference, |
| and any method that replaces exact inference with amortized inference. |
| input_constraints: |
| meso_types: |
| - variational |
| - probabilistic_inference |
| output_signature: |
| objective_family: divergence |
| preserves: false |
| preserves: |
| - "the generative model p(x|z) and prior p(z)" |
| introduces: |
| - "inference network q(z|x) (amortized inference)" |
| - "ELBO as surrogate objective" |
| - "reparameterization trick for gradient estimation" |
| - "KL gap: tightness depends on q's expressiveness" |
| examples: |
| - "VAE = variational_bound(encode_decode with stochastic latent)" |
| - "IWAE: tighter bound with importance weighting" |
| - "β-VAE: β-weighted KL term for disentanglement" |
| status: seed |
|
|