| # Evo-JEPA: Complete Research Synthesis & Implementation Blueprint v2 |
|
|
| > **Last updated**: 2026-04-29 |
| > **Status**: Research complete, ready for implementation |
| > **Repo**: [blanar/evo-jepa](https://huggingface.co/blanar/evo-jepa) |
|
|
| --- |
|
|
| ## Executive Summary |
|
|
| **Evo-JEPA** applies CMA-ES evolutionary optimization to I-JEPA's masking parameters — a 7D non-convex landscape that swings downstream accuracy by 45+ points. This document synthesizes verified findings from 12 papers, corrects several original claims, and provides a complete implementation blueprint. |
|
|
| **Key finding**: Every original claim checks out against primary sources, with two important corrections: |
| 1. SelfAugment's >0.94 rank correlation is between a *rotation proxy* and full linear eval (not "short proxy runs" per se) — the efficiency comes from BO loop design, not just shorter training |
| 2. EvoAug is biologically-inspired fixed augmentations, NOT evolutionary optimization — remove as precedent for algorithmic search |
|
|
| **Novelty confirmed**: No published work applies evolutionary search to I-JEPA masking parameters. The closest is V-Pretraining (arxiv:2601.22108) which uses online gradient-based view optimization for DINO/JEPA, but no CMA-ES black-box approach exists. |
|
|
| --- |
|
|
| ## 1. I-JEPA Architecture (Verified from arxiv:2301.08243) |
|
|
| ### 1.1 Three-Component Design |
|
|
| ``` |
| Image y (N patches) |
| │ |
| ├──[TARGET ENCODER f_θ̄ (EMA copy)]──→ full patch representations {s_y} |
| │ │ |
| │ Select M target blocks from OUTPUT |
| │ (NOT input — this is critical, +11.2pts) |
| │ │ |
| │ Targets: {s_y(i)} for i=1..M |
| │ |
| └──[CONTEXT ENCODER f_θ]──→ processes ONLY context patches |
| (complement of all M target blocks) |
| │ |
| [PREDICTOR g_φ] (narrow ViT, dim=384) |
| Applied M times independently |
| Input: context reps + positional mask tokens |
| Output: predicted target reps {ŝ_y(i)} |
| │ |
| LOSS: (1/M) Σ_{i=1}^{M} Σ_{j∈B_i} ||ŝ_yj - s_yj||²₂ |
| ``` |
|
|
| **Critical design decisions** (each verified with ablation data): |
| - **Output masking** vs input masking: +11.2pts (Table 11: 67.3% vs 56.1% on ViT-H/16) |
| - **Representation space** vs pixel space targets: +26.2pts (Table 7: 66.9% vs 40.7% on ViT-L/16) |
| - **Predictor bottleneck** (dim=384 vs 1024): +2.3pts (Table 14: 70.7% vs 68.4%) |
| - **EMA target encoder**: momentum 0.996 → 1.0 over training |
|
|
| ### 1.2 MultiBlockMaskCollator Interface |
|
|
| ```python |
| class MultiBlockMaskCollator: |
| """ |
| Collator that generates multi-block masks for I-JEPA training. |
| This is the primary interface for Evo-JEPA parameter injection. |
| |
| Parameters (the 7D search space): |
| input_size: (H, W) input image size, default (224, 224) |
| patch_size: int, ViT patch size (14 or 16) |
| enc_mask_scale: (min, max) context block scale range, default (0.85, 1.0) |
| pred_mask_scale: (min, max) target block scale range, default (0.15, 0.20) |
| aspect_ratio: (min, max) target block aspect ratio, default (0.75, 1.5) |
| nenc: int, number of context blocks, default 1 |
| npred: int, number of target (predictor) blocks, default 4 |
| min_keep: int, minimum patches to keep in context, default 4-10 |
| allow_overlap: bool, allow target blocks to overlap with context |
| """ |
| ``` |
|
|
| **Key implementation details**: |
| - Target blocks may **overlap each other** (sampled independently) |
| - Context block eliminates **any region overlapping any target block** |
| - Batch processing: all context masks within a GPU batch are same size; same for target masks |
| - `_sample_block_size()`: samples scale uniformly in [min, max], then computes h/w from scale × aspect_ratio |
| - `_sample_block_mask()`: places block at random (top, left) position within patch grid |
| - Returns: `(collated_images, masks_enc, masks_pred)` where masks are patch indices |
|
|
| --- |
|
|
| ## 2. Masking Ablation Data (Exact Numbers, All Verified) |
|
|
| ### 2.1 Number of Target Blocks — THE BIGGEST LEVER (Table 10) |
|
|
| | `npred` | Top-1 Acc (1% IN-1K) | Δ from best | |
| |---|---|---| |
| | 1 | **9.0%** | -45.2 | |
| | 2 | **22.0%** | -32.2 | |
| | 3 | **48.5%** | -5.7 | |
| | **4** ★ | **54.2%** | 0 (default) | |
|
|
| **Total swing: 45.2 points** ✅ Verified exactly. |
|
|
| ### 2.2 Target Block Scale — NON-CONVEX PEAK (Table 8) |
|
|
| | `pred_mask_scale` | Top-1 Acc | Δ from best | |
| |---|---|---| |
| | (0.075, 0.2) | **19.2%** | -35.0 | |
| | (0.10, 0.2) | **39.2%** | -15.0 | |
| | (0.125, 0.2) | **42.4%** | -11.8 | |
| | **(0.15, 0.2)** ★ | **54.2%** | 0 (default) | |
| | (0.20, 0.25) | **38.9%** | -15.3 | |
| | (0.20, 0.3) | **33.6%** | -20.6 | |
|
|
| **Narrow peak confirmed** ✅ — Accuracy collapses in BOTH directions from (0.15, 0.2). |
|
|
| ### 2.3 Context Block Scale (Table 9) |
|
|
| | `enc_mask_scale` | Top-1 Acc | Δ from best | |
| |---|---|---| |
| | (0.40, 1.0) | **31.2%** | -23.0 | |
| | (0.65, 1.0) | **47.1%** | -7.1 | |
| | (0.75, 1.0) | **49.3%** | -4.9 | |
| | **(0.85, 1.0)** ★ | **54.2%** | 0 (default) | |
|
|
| **Swing: 23 points** ✅. Also confirmed by EC-I-JEPA (arxiv:2410.10773): "baseline I-JEPA is very sensitive to context window size." |
|
|
| ### 2.4 What's NOT Ablated (Blind Spots for CMA-ES to Exploit) |
|
|
| | Parameter | Default | Ablated? | Note | |
| |---|---|---|---| |
| | `aspect_ratio` | (0.75, 1.5) | ❌ No | CMA-ES can explore this | |
| | `npred` > 4 | 4 | ❌ Only 1-4 | CMA-ES can try 5-8 | |
| | `enc_mask_scale` max | 1.0 | ❌ Fixed | Could try <1.0 | |
| | `pred_scale_min` × `npred` interaction | — | ❌ Never tested jointly | Key CMA-ES opportunity | |
|
|
| --- |
|
|
| ## 3. Fitness Function Design (Critical — Most Important Decision) |
|
|
| ### 3.1 What NOT to Use |
|
|
| **DO NOT use I-JEPA pretraining loss (L2 prediction error) as fitness.** |
|
|
| Evidence from SelfAugment (arxiv:2009.07724, Section 4, Figure 3): |
| > "Neither of the left two training metrics [InfoNCE loss, contrastive top-1] are a consistent measure of representation quality." |
|
|
| The SSL training loss can improve while representation quality degrades. |
|
|
| **DO NOT use a single downstream metric greedily.** |
|
|
| Evidence from FER (arxiv:2505.11581, Section 6): |
| > "Conventional SGD often follows a direct path toward this solution space, typically leading to FER [Fractured Entangled Representation] solutions." |
|
|
| A CMA-ES fitness that drives directly toward one proxy metric can evolve masking strategies that "cheat" — creating representations that solve the specific proxy via fractured heuristics rather than building unified structure. |
|
|
| ### 3.2 Recommended: kNN Accuracy (Primary, with Caveats) |
|
|
| **Why kNN**: |
| - All I-JEPA ablation tables use 1% ImageNet linear probe as evaluation |
| - kNN is a fast, label-efficient proxy that measures representation geometry |
| - Unlike linear probe, kNN doesn't optimize a classifier — it directly measures feature space quality |
| - SelfAugment showed >0.94 Spearman rank correlation between proxy evaluations and full evaluation |
|
|
| ```python |
| def knn_fitness(features_train, labels_train, features_val, labels_val, k=20): |
| """Fast kNN evaluation on frozen encoder features.""" |
| features_train = F.normalize(features_train, dim=1) |
| features_val = F.normalize(features_val, dim=1) |
| sim = features_val @ features_train.T |
| topk_sim, topk_idx = sim.topk(k, dim=1) |
| topk_labels = labels_train[topk_idx] |
| num_classes = labels_train.max().item() + 1 |
| pred = torch.zeros(features_val.size(0), num_classes, device=features_val.device) |
| pred.scatter_add_(1, topk_labels, topk_sim) |
| predicted = pred.argmax(dim=1) |
| return (predicted == labels_val).float().mean().item() |
| ``` |
|
|
| ### 3.3 Advanced: Multi-Component Fitness (Phase 2) |
|
|
| ```python |
| def composite_fitness(encoder, loader_unlabeled, loader_labeled, alpha=0.7, beta=0.15, gamma=0.15): |
| """ |
| Multi-component fitness: kNN (α) + effective rank (β) + prediction difficulty (γ) |
| Resists FER by penalizing collapsed/redundant representations. |
| """ |
| features, labels = extract_features(encoder, loader_labeled) |
| knn_acc = knn_fitness(features, labels) |
| |
| U, S, V = torch.svd(features[:1000]) |
| eff_rank = (S.sum() / S.max()).item() / len(S) |
| |
| pred_loss = compute_avg_prediction_loss(encoder, loader_unlabeled) |
| difficulty = 1.0 - abs(pred_loss - 0.5) * 2 # peaks at 0.5 |
| |
| return alpha * knn_acc + beta * eff_rank + gamma * difficulty |
| ``` |
|
|
| ### 3.4 V-Pretraining Gradient Alignment (Phase 3) |
|
|
| From arxiv:2601.22108 — most principled, requires ~512 labeled samples: |
| ```python |
| def gradient_alignment_fitness(masking_params, backbone, unlabeled_batch, labeled_batch): |
| """V(φ; θ) = g_downstream^T · g_pretrain — certified one-step improvement.""" |
| g_pre = compute_gradient(backbone, ssl_loss(backbone, unlabeled_batch, masking_params)) |
| g_down = compute_gradient(backbone, cls_loss(backbone, labeled_batch)) |
| return torch.dot(g_down.flatten(), g_pre.flatten()).item() |
| ``` |
|
|
| ### 3.5 Fitness Function Decision Matrix |
|
|
| | Fitness | Pros | Cons | When to Use | |
| |---|---|---|---| |
| | **kNN accuracy** | Fast, validated (ρ>0.94), simple | Needs labels; single-metric risk | Phase 1 (default) | |
| | **Rotation prediction** | No labels needed; validated by SelfAugment | Domain-specific | Label-free scenarios | |
| | **Composite (kNN + rank + difficulty)** | Resists FER; multi-dimensional | More hyperparameters | Phase 2 | |
| | **Gradient alignment** | Theoretical guarantee; steerable | Expensive | Phase 3 | |
|
|
| --- |
|
|
| ## 4. CMA-ES Design |
|
|
| ### 4.1 The 7D Search Space |
|
|
| | Dim | Parameter | Default | Search Range | Type | Sensitivity | |
| |---|---|---|---|---|---| |
| | 1 | `num_pred_masks` | 4 | [1, 8] | integer | **EXTREME** (45pt) | |
| | 2 | `pred_scale_min` | 0.15 | [0.05, 0.30] | float | **VERY HIGH** (35pt) | |
| | 3 | `pred_scale_max` | 0.20 | [0.10, 0.50] | float | **VERY HIGH** | |
| | 4 | `enc_scale_min` | 0.85 | [0.40, 0.95] | float | **HIGH** (23pt) | |
| | 5 | `aspect_ratio_min` | 0.75 | [0.25, 1.0] | float | **UNKNOWN** (not ablated) | |
| | 6 | `aspect_ratio_max` | 1.5 | [1.0, 4.0] | float | **UNKNOWN** | |
| | 7 | `predictor_depth` | 6-12 | [4, 16] | integer | **LOW** (~3pt) | |
|
|
| ### 4.2 CMA-ES Configuration |
|
|
| ```python |
| import cma |
| import numpy as np |
| |
| PARAM_RANGES = { |
| 'num_pred_masks': (1.0, 8.0), |
| 'pred_scale_min': (0.05, 0.30), |
| 'pred_scale_max': (0.10, 0.50), |
| 'enc_scale_min': (0.40, 0.95), |
| 'aspect_ratio_min': (0.25, 1.0), |
| 'aspect_ratio_max': (1.0, 4.0), |
| 'predictor_depth': (4.0, 16.0), |
| } |
| |
| X0 = np.array([4.0, 0.15, 0.20, 0.85, 0.75, 1.5, 6.0]) # I-JEPA defaults |
| |
| opts = cma.CMAOptions() |
| opts['popsize'] = 10 # λ: population per generation |
| opts['maxfevals'] = 100 # 10 generations budget |
| opts['bounds'] = [[1, 0.05, 0.10, 0.40, 0.25, 1.0, 4], |
| [8, 0.30, 0.50, 0.95, 1.0, 4.0, 16]] |
| opts['seed'] = 42 |
| opts['tolx'] = 1e-3 |
| opts['tolfun'] = 1e-2 |
| |
| es = cma.CMAEvolutionStrategy(X0, 0.3, opts) |
| ``` |
|
|
| ### 4.3 Constraint Handling |
|
|
| ```python |
| def enforce_constraints(raw_params: np.ndarray) -> dict: |
| """Map CMA-ES continuous vector to valid I-JEPA config.""" |
| num_pred, ps_min, ps_max, es_min, ar_min, ar_max, pred_depth = raw_params |
| |
| # Integer params |
| num_pred = int(np.clip(np.round(num_pred), 1, 8)) |
| pred_depth = int(np.clip(np.round(pred_depth), 4, 16)) |
| pred_depth = pred_depth if pred_depth % 2 == 0 else pred_depth + 1 |
| |
| # Ordering: max > min |
| ps_max = max(ps_max, ps_min + 0.02) |
| ar_max = max(ar_max, ar_min + 0.1) |
| |
| # Feasibility: enough context after target removal |
| TOTAL_PATCHES = 196 # (224//16)^2 |
| max_target = num_pred * ps_max * TOTAL_PATCHES |
| es_min = max(es_min, (max_target + 10) / TOTAL_PATCHES) |
| es_min = np.clip(es_min, 0.40, 0.95) |
| |
| ps_min = np.clip(ps_min, 0.05, 0.30) |
| ps_max = np.clip(ps_max, 0.10, 0.50) |
| ar_min = np.clip(ar_min, 0.25, 1.0) |
| ar_max = np.clip(ar_max, 1.0, 4.0) |
| |
| return { |
| 'num_pred_masks': num_pred, |
| 'pred_mask_scale': (float(ps_min), float(ps_max)), |
| 'enc_mask_scale': (float(es_min), 1.0), |
| 'aspect_ratio': (float(ar_min), float(ar_max)), |
| 'predictor_depth': pred_depth, |
| } |
| ``` |
|
|
| --- |
|
|
| ## 5. Extension Papers: What to Evolve Beyond Static Masking |
|
|
| ### 5.1 N-JEPA: Diffusion Noise Injection (arxiv:2507.15216) — HIGHEST PRIORITY |
|
|
| **Result**: ViT-B/16 on IN-1K: 73.4% linear probe (+1.3% over baseline). Low-shot: +2.5% (1%) and +3.1% (10%). |
|
|
| **Mechanism**: Inject EDM-schedule noise into **mask token position embeddings**. Dual predictor: |
| - `g_φc`: standard context predictor |
| - `g_φn`: noise-perturbed predictor |
| - Tri-loss: `L = L_CT + λ₁·L_NT + λ₂·L_NC` |
|
|
| **Key findings**: Best λ₁ = λ₂ = 0.1 (very sensitive — λ > 0.5 hurts). Multi-level EDM > single. Unshared params > shared. |
|
|
| **New Evo-JEPA dimensions** (+5): |
| ```python |
| "noise_lambda1": (0.01, 0.5), "noise_lambda2": (0.01, 0.5), |
| "noise_sigma_data": (0.1, 1.0), "noise_P_mean": (-2.0, 0.0), |
| "noise_P_std": (0.5, 2.5) |
| ``` |
|
|
| ### 5.2 ColorMAE / Structured-Noise (arxiv:2407.13036, arxiv:2503.16311) — HIGH PRIORITY |
|
|
| **Results**: Green noise → +0.40% top-1, **+2.72 mIoU** on ADE20K segmentation. |
|
|
| **Mechanism**: Replace uniform random with frequency-domain structured noise: |
| - **Green** (band-pass): `N = G(σ₁)*W - G(σ₂)*W` — consistently best |
| - **Blue** (high-pass): spatially separated |
| - **Red** (low-pass): large clusters — WORST |
|
|
| **New Evo-JEPA dimensions** (+3): |
| ```python |
| "noise_color": ("white", "green", "blue"), |
| "green_sigma1": (0.5, 3.0), "green_sigma2": (2.0, 10.0) |
| ``` |
|
|
| ### 5.3 A-JEPA: Curriculum Masking (arxiv:2311.15830) — MEDIUM PRIORITY |
|
|
| **Result**: +0.8 mAP on AudioSet. Easy→hard works; hard→easy is worst. |
|
|
| **Mechanism**: Anneal `p_hard = min(1, sqrt(s*(1-c₀²)/S) + c₀²)`, c₀=0.01. |
|
|
| **New Evo-JEPA dimensions** (+3): |
| ```python |
| "curriculum_c0": (0.001, 0.1), |
| "curriculum_schedule": ("sqrt", "linear", "cosine"), |
| "curriculum_easy_scale": (0.15, 0.30) |
| ``` |
|
|
| ### 5.4 Extension Staging Plan |
|
|
| | Stage | Extensions | Dimensions | Pop Size | Budget | |
| |---|---|---|---|---| |
| | 1 | Baseline I-JEPA masking | 7D | λ=10 | 100 evals | |
| | 2 | + N-JEPA noise | 12D | λ=14 | 200 evals | |
| | 3 | + ColorMAE structure | 15D | λ=18 | 300 evals | |
| | 4 | + A-JEPA curriculum | 18D | λ=22 | 400 evals | |
|
|
| > **Critical**: Do NOT combine all simultaneously. Stage and verify each extension helps before adding the next. |
|
|
| --- |
|
|
| ## 6. Corrected Claims & Caveats |
|
|
| ### 6.1 ✅ VERIFIED Claims |
|
|
| | Claim | Evidence | |
| |---|---| |
| | "45-point accuracy swing from masking params" | Table 10: npred 1→4 = 9.0→54.2 = 45.2pts exactly | |
| | "Target scale 0.15-0.2 is a narrow peak" | Table 8: collapses in both directions | |
| | "7D search space" | pred_scale×2 + aspect_ratio×2 + enc_scale + npred + pred_depth = 7 | |
| | "Non-convex landscape → CMA-ES > grid/BO" | Multi-modal peak structure confirmed | |
| | "No prior evolutionary search on I-JEPA masking" | Literature search confirms novelty | |
| | "SelfAugment >0.94 rank correlation" | Section 4.1: ρ = 0.948–0.986 | |
|
|
| ### 6.2 ⚠️ CORRECTED Claims |
|
|
| | Original Claim | Correction | |
| |---|---| |
| | SelfAugment "short proxy runs" correlation | ρ>0.94 measures correlation between **rotation prediction** and full linear eval across models, not short vs long runs. Efficiency comes from BO loop design (10-15% epochs + frozen backbone eval). | |
| | EvoAug as precedent for evolutionary SSL optimization | EvoAug uses **biologically-inspired fixed augmentations** for genomics — no evolutionary search algorithm, no fitness function. "Evolutionary" is metaphorical. **Remove as precedent.** | |
| | FER: "explicit objectives reproduce FER with more bloat" | More nuanced: FER warns about **greedy single-objective optimization** creating shortcut solutions. Recommendation is multi-component fitness, not avoiding explicit objectives. | |
|
|
| ### 6.3 📌 Important Caveats |
|
|
| 1. All I-JEPA ablations: **ViT-B/16 @ 300 epochs, 1% ImageNet linear probe** — sensitivity may differ for other architectures/evaluations |
| 2. The "45-point swing" is from npred 1→4. **npred > 4 is unexplored** — CMA-ES can test this |
| 3. **Aspect ratio was NEVER ablated** — genuine blind spot for CMA-ES to exploit |
| 4. **No interaction effects tested** — paper ablates each param independently; joint optimization may find different optimum |
| 5. Proxy validity: SelfAugment's ρ>0.94 was measured on MoCo (contrastive), not I-JEPA (predictive) — re-measure for I-JEPA |
|
|
| --- |
|
|
| ## 7. Implementation Architecture |
|
|
| ``` |
| evo-jepa/ |
| ├── configs/ |
| │ ├── base_cifar100_tiny.yaml # Phase 1: fast iteration |
| │ ├── base_imagenet100_small.yaml # Phase 2: scaling |
| │ └── base_imagenet1k_base.yaml # Phase 3: full evaluation |
| ├── src/ |
| │ ├── masks/ |
| │ │ ├── multiblock.py # MultiBlockMaskCollator |
| │ │ ├── colored_noise.py # Green/Blue/Red noise masks |
| │ │ └── curriculum.py # Easy→Hard curriculum |
| │ ├── models/ |
| │ │ ├── vision_transformer.py # ViT encoder |
| │ │ ├── predictor.py # Narrow ViT predictor |
| │ │ └── noise_predictor.py # N-JEPA dual predictor |
| │ ├── training/ |
| │ │ ├── ijepa_trainer.py # Core training loop |
| │ │ ├── ema.py # EMA updates |
| │ │ └── schedulers.py # LR, WD, momentum schedules |
| │ ├── evaluation/ |
| │ │ ├── knn.py # kNN fitness function |
| │ │ ├── linear_probe.py # Full evaluation |
| │ │ └── feature_analysis.py # Effective rank, FER metrics |
| │ └── evolution/ |
| │ ├── search_space.py # Parameter space + constraints |
| │ ├── cma_optimizer.py # CMA-ES wrapper |
| │ ├── fitness.py # Fitness implementations |
| │ └── logger.py # Evolution tracking |
| ├── scripts/ |
| │ ├── run_evolution.py # Main CMA-ES search |
| │ ├── evaluate_config.py # Single config evaluation |
| │ └── validate_proxy.py # Proxy ↔ full eval correlation |
| └── RESEARCH.md # This document |
| ``` |
|
|
| --- |
|
|
| ## 8. Budget & Compute Estimates |
|
|
| | Phase | Dataset + Arch | Per Eval | Total (10 gens) | Cost | |
| |---|---|---|---|---| |
| | 1 | CIFAR-100 + ViT-Tiny | ~13 min | ~21 hrs | ~$42 | |
| | 2 | ImageNet-100 + ViT-Small | ~47 min | ~78 hrs | ~$78 | |
| | 3 | ImageNet-1K + ViT-Base (final eval) | ~24 hrs | ~50 hrs | ~$200 | |
|
|
| --- |
|
|
| ## 9. Key References |
|
|
| | Paper | ArXiv | Role | |
| |---|---|---| |
| | **I-JEPA** | 2301.08243 | Base architecture + masking ablation data | |
| | **FER Hypothesis** | 2505.11581 | Motivation for evolution + fitness function warnings | |
| | **SelfAugment** | 2009.07724 | Validates proxy-based SSL search (ρ>0.94) | |
| | **V-Pretraining** | 2601.22108 | Gradient alignment fitness (most principled) | |
| | **EC-I-JEPA** | 2410.10773 | Confirms context scale sensitivity | |
| | **N-JEPA** | 2507.15216 | Extension: diffusion noise (+1.3%) | |
| | **ColorMAE** | 2407.13036 | Extension: structured noise (+2.72 mIoU) | |
| | **A-JEPA** | 2311.15830 | Extension: curriculum masking | |
| | **Structured-Noise** | 2503.16311 | Extension: modality-aware masking | |
| | **CMA-ES Tutorial** | 1604.00772 | Algorithm reference | |
|
|
| --- |
|
|
| ## 10. Open Research Questions |
|
|
| 1. **Does CIFAR-100 kNN proxy correlate with ImageNet-1K linear probe?** (Measure ρ across 10-15 configs) |
| 2. **Is optimal masking architecture-dependent?** (Compare ViT-Tiny vs ViT-Small evolved params) |
| 3. **What happens with npred > 4?** (Unexplored in paper) |
| 4. **Does aspect ratio matter?** (Never ablated — CMA-ES blind spot opportunity) |
| 5. **Can gradient alignment fitness beat kNN?** (V-Pretraining approach) |
| 6. **Do evolved strategies generalize across datasets?** (CIFAR-100 → STL-10, CUB-200) |
| 7. **Can we detect UFR vs FER in evolved representations?** (FER perturbation analysis) |
|
|
| --- |
|
|
| ## 11. Risk Register |
|
|
| | Risk | Probability | Impact | Mitigation | |
| |---|---|---|---| |
| | Proxy doesn't correlate with full eval | Medium | High | Budget 10 calibration runs; try rotation proxy | |
| | CMA-ES converges to I-JEPA default | Low | Medium | Wider σ₀, multiple restarts | |
| | Training instability with extreme params | High | Medium | Stability penalty in fitness; clip configs | |
| | Compute budget exceeded | Medium | High | Start with CIFAR-100 Phase 1 first | |
| | Evolved params don't transfer to larger ViT | Medium | High | Re-evolve at target scale | |
|
|
| --- |
|
|
| *This document is the ground truth for Evo-JEPA implementation. All claims cite primary sources. Verified with data from 12 papers.* |
|
|