File size: 8,878 Bytes
86def9b
f5c17be
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
86def9b
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
<!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 &middot; Aude Sportisse &middot; Massih-Reza Amini</div>
    <div class="affil">Universit&eacute; 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 &mdash; majority-class dominance in pseudo-labeling, and the ~2&sup2;&#8304; iteration
    convergence tax &mdash; cutting the iteration budget by <strong>8&times;</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> &mdash; 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&times; fewer iterations to converge.</strong> JEPAMatch reaches FlexMatch's final
      CIFAR-100 (400-label) accuracy roughly 50k steps earlier, and finishes training at 2&sup1;&#8311;
      iterations vs. the standard 2&sup2;&#8304;.</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 &amp; 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&sup2;&#8304;</td><td>46.42 &plusmn; 0.82</td><td>28.03 &plusmn; 0.16</td><td>22.20 &plusmn; 0.12</td><td>35.97 &plusmn; 4.14</td><td>6.25 &plusmn; 0.33</td></tr>
      <tr><td>FlexMatch</td><td>2&sup2;&#8304;</td><td>39.94 &plusmn; 1.62</td><td>26.49 &plusmn; 0.20</td><td>21.90 &plusmn; 0.15</td><td>29.15 &plusmn; 4.16</td><td>5.77 &plusmn; 0.18</td></tr>
      <tr><td>FreeMatch</td><td>2&sup2;&#8304;</td><td>37.98 &plusmn; 0.42</td><td>26.47 &plusmn; 0.20</td><td>21.68 &plusmn; 0.03</td><td>15.56 &plusmn; 0.55</td><td>5.63 &plusmn; 0.15</td></tr>
      <tr><td>SoftMatch</td><td>2&sup2;&#8304;</td><td>37.10 &plusmn; 0.77</td><td>26.66 &plusmn; 0.25</td><td>22.03 &plusmn; 0.03</td><td>21.42 &plusmn; 3.48</td><td>5.73 &plusmn; 0.24</td></tr>
      <tr><td>CrMatch</td><td>2&sup2;&#8304;</td><td>39.45 &plusmn; 1.69</td><td>25.43 &plusmn; 0.14</td><td>20.40 &plusmn; 0.08</td><td>&ndash;</td><td>4.89 &plusmn; 0.17</td></tr>
      <tr><td>SimMatch</td><td>2&sup2;&#8304;</td><td>37.81 &plusmn; 2.21</td><td>25.07 &plusmn; 0.32</td><td>20.58 &plusmn; 0.11</td><td>&ndash;</td><td>&ndash;</td></tr>
      <tr><td>FlatMatch</td><td>2&sup2;&#8304;</td><td>38.76 &plusmn; 1.62</td><td>25.38 &plusmn; 0.85</td><td>19.01 &plusmn; 0.43</td><td>16.20 &plusmn; 4.34</td><td>4.82 &plusmn; 1.21</td></tr>
      <tr><td>Suave*</td><td>2&sup2;&#8304;</td><td>35.40</td><td>23.00</td><td><strong>18.40</strong></td><td>&ndash;</td><td>&ndash;</td></tr>
      <tr><td>RegMixMatch*</td><td>2&sup2;&#8304;</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&sup1;&#8311;</td><td>34.25 &plusmn; 1.97</td><td>22.59 &plusmn; 1.17</td><td>18.55 &plusmn; 0.85</td><td>13.44 &plusmn; 3.2</td><td>4.28 &plusmn; 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&sup1;&#8312;</td><td>41.73</td><td>27.89</td></tr>
          <tr><td>SoftMatch</td><td>2&sup1;&#8312;</td><td>40.09</td><td>25.92</td></tr>
          <tr class="ours"><td>JEPAMatch</td><td>2&sup1;&#8312;</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&sup2;&#8304;</td><td>50.15 &plusmn; 1.51</td></tr>
          <tr><td>FreeMatch</td><td>2&sup2;&#8304;</td><td>49.64 &plusmn; 1.46</td></tr>
          <tr><td>SoftMatch</td><td>2&sup2;&#8304;</td><td>49.24 &plusmn; 2.16</td></tr>
          <tr class="ours"><td>JEPAMatch (Flex)</td><td>2&sup1;&#8311;</td><td>45.77 &plusmn; 2.77</td></tr>
          <tr class="ours"><td>JEPAMatch (Free)</td><td>2&sup1;&#8311;</td><td>45.12 &plusmn; 1.98</td></tr>
          <tr class="ours"><td>JEPAMatch (Soft)</td><td>2&sup1;&#8311;</td><td>44.65 &plusmn; 2.14</td></tr>
        </tbody>
      </table>
    </div>
  </div>

  <h2>Convergence speed &amp; 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 &mdash; an
    interactive inference demo will be added once a released checkpoint is available.
  </footer>

</main>
</body>
</html>