Skip to content

[E11] Pooling ablation — HuBERT-ECG and EchoJEPA clip pooling #69

Description

@duckyquang

Task metadata

Field Value
Task ID E11
Category Evaluation
Priority Medium
Complexity Low
Est. days 2
Replaces #12 (closed — written against ECG-FM, which never produced a reported number)
Feeds #63 (M10)

Features / method

Resolve the pooling decision on both modalities before the canonical retrain locks it in.

Description

The closed version of this task asked about ECG-FM pooling. That framing is stale twice over: ECG-FM never produced a reported number, and the ablation was scoped to feed M08/M09, which #63 now supersedes.

Two pooling decisions are actually open, and the echo one is probably the more consequential:

ECG side. TECHNICAL.md 4.2 leaves mean vs attentive pooling unresolved for the 768-d HuBERT-ECG embeddings.

Echo side. docs/echo_hubert_loader.md records that clip-level EchoJEPA embeddings were mean-pooled to one vector per echo study (525K clips down to 7,251 study rows). TECHNICAL.md 4.1 says EchoJEPA embeddings preserve spatial structure across frames and that a plain linear probe is therefore insufficient — an attentive probe is required. Mean-pooling clips into a single vector before the probe ever sees them may be discarding exactly the structure that motivates the attentive probe. If so, it caps echo-branch performance regardless of probe architecture, which is directly relevant to the baseline gap in #67.

Steps:

  1. ECG: train the ECG-only probe with mean and with attentive pooling; compare on val.
  2. Echo: compare study-level mean-pooled embeddings against retaining clip-level tokens into the attentive probe. n_echo_clips is already in the manifest metadata, so the clip counts per study are known.
  3. Pick winners on val only. Do not touch test.
  4. Log both decisions to logs/pooling_ablation.json with the val numbers behind them.

Acceptance criteria:

Metadata

Metadata

Assignees

Labels

help wantedExtra attention is needed

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions