| <!doctype html> |
| <html lang="en"> |
| <head> |
| <meta charset="utf-8" /> |
| <meta name="viewport" content="width=device-width, initial-scale=1" /> |
| <title>JEPAMatch</title> |
| <meta name="description" content="JEPAMatch: Geometric Representation Shaping for Semi-Supervised Learning" /> |
| <link rel="stylesheet" href="style.css" /> |
| </head> |
| <body> |
| <main> |
|
|
| <header> |
| <h1>JEPAMatch: Geometric Representation Shaping<br>for Semi-Supervised Learning</h1> |
| <div class="authors">Ali Aghababaei-Harandi · Aude Sportisse · Massih-Reza Amini</div> |
| <div class="affil">Université Grenoble Alpes, CNRS, Computer Science Laboratory LIG, Grenoble, France</div> |
| <div class="badges"> |
| <a href="https://github.com/aah94/JEPAMatch">Code (GitHub)</a> |
| <a href="https://arxiv.org/abs/2604.21046">Paper (arXiv:2604.21046)</a> |
| <a href="https://github.com/aah94/JEPAMatch/blob/main/LICENSE.txt">License: MIT</a> |
| </div> |
| </header> |
|
|
| <p> |
| JEPAMatch combines <strong>FlexMatch</strong>-style adaptive pseudo-labeling with a |
| <strong>LeJEPA</strong>-inspired representation-level objective, so that instead of only |
| thresholding softmax outputs, the model also explicitly shapes its latent space into |
| well-separated, isotropic per-class clusters. This fixes two long-standing FixMatch-family |
| bottlenecks — majority-class dominance in pseudo-labeling, and the ~2²⁰ iteration |
| convergence tax — cutting the iteration budget by <strong>8×</strong> while matching |
| or beating prior SSL methods on CIFAR-100, STL-10, and Tiny-ImageNet. |
| </p> |
|
|
| <figure> |
| <img src="https://raw.githubusercontent.com/aah94/JEPAMatch/main/assets/architecture.png" alt="JEPAMatch architecture diagram"> |
| <figcaption>A shared backbone feeds two levels: the <strong>Curriculum Level</strong> (top) does |
| FlexMatch-style adaptive pseudo-labeling on weak/strong views; the <strong>Representation |
| Level</strong> (bottom) aligns global and local crops via a JEPA prediction loss, regularized |
| by <strong>Adaptive Class-wise SIGReg</strong> — per-class isotropic Gaussians instead of |
| one global one, kept apart by an active repulsion term.</figcaption> |
| </figure> |
|
|
| <h2>Highlights</h2> |
| <ul class="highlights"> |
| <li><strong>8× fewer iterations to converge.</strong> JEPAMatch reaches FlexMatch's final |
| CIFAR-100 (400-label) accuracy roughly 50k steps earlier, and finishes training at 2¹⁷ |
| iterations vs. the standard 2²⁰.</li> |
| <li><strong>State-of-the-art or competitive results</strong> on CIFAR-100, STL-10, and |
| Tiny-ImageNet against FixMatch, FlexMatch, FreeMatch, SoftMatch, CrMatch, SimMatch, Suave, |
| and RegMixMatch.</li> |
| <li><strong>More robust under class imbalance</strong>, and <strong>works as a drop-in |
| module</strong> on top of FlexMatch, FreeMatch, or SoftMatch's curriculum.</li> |
| </ul> |
|
|
| <h2>Results</h2> |
| <p>Error rate (%), lower is better, 3 seeds.</p> |
|
|
| <div class="table-wrap"> |
| <table> |
| <caption>CIFAR-100 & STL-10</caption> |
| <thead> |
| <tr><th>Method</th><th>Iter.</th><th>CIFAR-100 (400)</th><th>CIFAR-100 (2.5K)</th><th>CIFAR-100 (10K)</th><th>STL-10 (40)</th><th>STL-10 (1K)</th></tr> |
| </thead> |
| <tbody> |
| <tr><td>FixMatch</td><td>2²⁰</td><td>46.42 ± 0.82</td><td>28.03 ± 0.16</td><td>22.20 ± 0.12</td><td>35.97 ± 4.14</td><td>6.25 ± 0.33</td></tr> |
| <tr><td>FlexMatch</td><td>2²⁰</td><td>39.94 ± 1.62</td><td>26.49 ± 0.20</td><td>21.90 ± 0.15</td><td>29.15 ± 4.16</td><td>5.77 ± 0.18</td></tr> |
| <tr><td>FreeMatch</td><td>2²⁰</td><td>37.98 ± 0.42</td><td>26.47 ± 0.20</td><td>21.68 ± 0.03</td><td>15.56 ± 0.55</td><td>5.63 ± 0.15</td></tr> |
| <tr><td>SoftMatch</td><td>2²⁰</td><td>37.10 ± 0.77</td><td>26.66 ± 0.25</td><td>22.03 ± 0.03</td><td>21.42 ± 3.48</td><td>5.73 ± 0.24</td></tr> |
| <tr><td>CrMatch</td><td>2²⁰</td><td>39.45 ± 1.69</td><td>25.43 ± 0.14</td><td>20.40 ± 0.08</td><td>–</td><td>4.89 ± 0.17</td></tr> |
| <tr><td>SimMatch</td><td>2²⁰</td><td>37.81 ± 2.21</td><td>25.07 ± 0.32</td><td>20.58 ± 0.11</td><td>–</td><td>–</td></tr> |
| <tr><td>FlatMatch</td><td>2²⁰</td><td>38.76 ± 1.62</td><td>25.38 ± 0.85</td><td>19.01 ± 0.43</td><td>16.20 ± 4.34</td><td>4.82 ± 1.21</td></tr> |
| <tr><td>Suave*</td><td>2²⁰</td><td>35.40</td><td>23.00</td><td><strong>18.40</strong></td><td>–</td><td>–</td></tr> |
| <tr><td>RegMixMatch*</td><td>2²⁰</td><td>35.27</td><td>23.78</td><td>19.41</td><td><strong>11.74</strong></td><td>4.66</td></tr> |
| <tr class="ours"><td>JEPAMatch (Ours)</td><td>2¹⁷</td><td>34.25 ± 1.97</td><td>22.59 ± 1.17</td><td>18.55 ± 0.85</td><td>13.44 ± 3.2</td><td>4.28 ± 1.43</td></tr> |
| </tbody> |
| </table> |
| </div> |
| <p style="color:var(--muted); font-size:0.85rem;">*standard deviation not reported in the original paper. Full baseline table (PseudoLabel, MeanTeacher, MixMatch, ReMixMatch, UDA) in the paper.</p> |
|
|
| <div class="tables-row"> |
| <div class="table-wrap"> |
| <table> |
| <caption>Tiny-ImageNet</caption> |
| <thead><tr><th>Method</th><th>Iter.</th><th>1K labels</th><th>10K labels</th></tr></thead> |
| <tbody> |
| <tr><td>FlexMatch</td><td>2¹⁸</td><td>41.73</td><td>27.89</td></tr> |
| <tr><td>SoftMatch</td><td>2¹⁸</td><td>40.09</td><td>25.92</td></tr> |
| <tr class="ours"><td>JEPAMatch</td><td>2¹⁸</td><td>38.82</td><td>24.50</td></tr> |
| </tbody> |
| </table> |
| </div> |
| <div class="table-wrap"> |
| <table> |
| <caption>Drop-in module on other curricula (CIFAR-100, 400)</caption> |
| <thead><tr><th>Method</th><th>Iter.</th><th>Error</th></tr></thead> |
| <tbody> |
| <tr><td>FlexMatch</td><td>2²⁰</td><td>50.15 ± 1.51</td></tr> |
| <tr><td>FreeMatch</td><td>2²⁰</td><td>49.64 ± 1.46</td></tr> |
| <tr><td>SoftMatch</td><td>2²⁰</td><td>49.24 ± 2.16</td></tr> |
| <tr class="ours"><td>JEPAMatch (Flex)</td><td>2¹⁷</td><td>45.77 ± 2.77</td></tr> |
| <tr class="ours"><td>JEPAMatch (Free)</td><td>2¹⁷</td><td>45.12 ± 1.98</td></tr> |
| <tr class="ours"><td>JEPAMatch (Soft)</td><td>2¹⁷</td><td>44.65 ± 2.14</td></tr> |
| </tbody> |
| </table> |
| </div> |
| </div> |
|
|
| <h2>Convergence speed & pseudo-labeling quality</h2> |
| <figure> |
| <img src="https://raw.githubusercontent.com/aah94/JEPAMatch/main/assets/convergence_speed.png" alt="Convergence speed vs FlexMatch" style="max-width:480px;"> |
| <figcaption>JEPAMatch reaches FlexMatch's peak accuracy (CIFAR-100, 4 labels/class) roughly |
| 50k iterations earlier, and keeps climbing to a substantially higher final accuracy.</figcaption> |
| </figure> |
| <div class="two-figs"> |
| <figure> |
| <img src="https://raw.githubusercontent.com/aah94/JEPAMatch/main/assets/data_utilization.png" alt="Data utilization vs FlexMatch"> |
| <figcaption>JEPAMatch keeps more pseudo-labels above the confidence threshold, at higher correctness, than FlexMatch.</figcaption> |
| </figure> |
| <figure> |
| <img src="https://raw.githubusercontent.com/aah94/JEPAMatch/main/assets/max_class_count.png" alt="Class dominance comparison"> |
| <figcaption>FlexMatch's majority class can claim up to a quarter of all pseudo-labels in a batch; JEPAMatch keeps this far more balanced.</figcaption> |
| </figure> |
| </div> |
|
|
| <h2>Code</h2> |
| <p>Training code, all configs, and the full paper are on |
| <a href="https://github.com/aah94/JEPAMatch">GitHub: aah94/JEPAMatch</a>.</p> |
| <pre><code>git clone https://github.com/aah94/JEPAMatch.git |
| cd JEPAMatch |
| pip install -r requirements.txt |
| python train.py --c config/classic_cv/jepamatch/jepamatch_cifar100_400_0.yaml</code></pre> |
|
|
| <h2>Citation</h2> |
| <pre><code>@article{aghababaeiharandi2026jepamatch, |
| title = {JEPAMatch: Geometric Representation Shaping for Semi-Supervised Learning}, |
| author = {Aghababaei-Harandi, Ali and Sportisse, Aude and Amini, Massih-Reza}, |
| journal = {arXiv preprint arXiv:2604.21046}, |
| year = {2026} |
| }</code></pre> |
|
|
| <footer> |
| Built on the <a href="https://github.com/microsoft/Semi-supervised-learning">USB</a> |
| semi-supervised learning benchmark. This Space is a paper/code landing page — an |
| interactive inference demo will be added once a released checkpoint is available. |
| </footer> |
|
|
| </main> |
| </body> |
| </html> |
|
|