chore: checkpoint PROTEAN research planning and architecture

This commit is contained in:
willtanoe committed 2026-09-24 17:08:56 +00:00
commit 2cc6a9859e
22 files changed
+2138

No files matched your search

@@ -0,0 +1,164 @@
# PROTEAN Baseline Investigation
Status: investigation record
Scope: locate authoritative PROTEAN resources and establish baseline aggregation semantics
before designing the beta-weighted modification.
Investigated: 2026-09-24
Evidence tags:
- `CONFIRMED FROM PAPER` — stated in the published paper and/or the author's PhD thesis.
- `CONFIRMED FROM CODE` — verified in official implementation code.
- `REASONABLE INFERENCE` — not written verbatim but strongly implied.
- `UNKNOWN` — no authoritative evidence.
> There is **no** `CONFIRMED FROM CODE` entry in this document, because no official
> implementation was found. See Section 1.
---
## 1. Authoritative sources found
| Resource | Identifier / URL | Notes |
|---|---|---|
| Paper (arXiv v1) | https://arxiv.org/abs/2507.05524 (arXiv:2507.05524v1, 7 Jul 2025) | Full methodology and experiments |
| Paper (HTML) | https://arxiv.org/html/2507.05524v1 | Read in full for this investigation |
| Published version | ESORICS 2025, pp. 103–125, DOI `10.1007/978-3-032-07884-1_6` | Springer |
| HAL deposit | `hal-05379203` / `u-paris.hal.science/TELECOM-SUDPARIS/hal-05379203v1` | Open PDF, CC BY 4.0 |
| Author PhD thesis | `tel-05490927` / `theses.hal.science/tel-05490927v1` | 195 pages, 2025; Section 5 restates PROTEAN with extra detail |
| Author GitHub | https://github.com/sarachn (Sara Chennoufi) | 2 repositories, **neither is PROTEAN** |
Authors: Sara Chennoufi (SAMOVAR, Télécom SudParis), Yufei Han (PIRAT, INRIA Rennes),
Gregory Blanc (SAMOVAR), Emiliano De Cristofaro (UC Riverside), Christophe Kiennert (SAMOVAR).
## 2. Code availability status
**Conclusion: no official PROTEAN code was found. Reproduction from the paper/thesis is
required.**
Evidence collected:
1. Author GitHub account `sarachn` exposes exactly two repositories:
- `sarachn/FATE-LLM` — a **fork** of `FederatedAI/FATE-LLM` (Apache-2.0), unrelated.
- `sarachn/SecLLMHolmes` (GPL-3.0), unrelated to PROTEAN.
Neither contains PROTEAN.
2. GitHub repository search for `PROTEAN federated prototype` returned **0** results.
Repository searches for `PROTEAN intrusion detection` / `PROTEAN federated learning`
returned no PROTEAN artifact.
3. GitHub code search requires authentication and was not used; the public
`grep.app` code search for `PROTEAN prototype` returned no results.
4. The GitHub user `Chennoufi` is unrelated (single repository `septembre`).
5. Neither the paper HTML nor the thesis text contains a "code available at", GitHub,
Zenodo, or supplementary-artifact statement. The HAL record only hosts the PDF.
6. No official supplementary artifact was linked from arXiv, Springer, or HAL.
Consequence: baseline semantics must be reconstructed from the paper and thesis. Any
choice not stated there is `UNKNOWN` and must be frozen as an explicit project decision
and reported as such.
## 3. What the paper/thesis state (verbatim-level facts)
Model: CNN in PyTorch — two convolutional layers (64 and 128 filters) with ReLU, each
followed by max-pooling and dropout (0.2 and 0.5); flatten; dense layer of 128 units; final
classification layer with log-softmax. Embedding = "first eight of ten layers" (illustrative).
`mu = 0.1`. No numeric value is given for `lambda`. 10 clients, 80/20 train/test, 10
federated rounds, 3 local epochs. Dirichlet `alpha in {0.75, 0.5, 0.25}`. Metrics: macro
accuracy, accuracy, F1, precision. `CONFIRMED FROM PAPER`.
Local prototype (Eq. 1 / thesis Eq. 5.4):
`C_ij = (1/N_ij) * sum_{x_ij in class j} phi(x_ij)`. `CONFIRMED FROM PAPER`.
Server aggregation (Eq. 2 / thesis Eq. 5.5):
`omega = (1/M) sum_i omega_i`, `Cbar_j = (1/M) sum_i C_ij`. `CONFIRMED FROM PAPER`.
Prototype alignment (Eq. 3 / thesis Eq. 5.8–5.9): `L_R = ||C_ij - Cbar_j||^2`, with the
sum over `j = 1..K` in the joint objective. `CONFIRMED FROM PAPER`.
Model alignment: `(mu/2) * ||omega_i - omega^{t-1}||^2`, `mu = 0.1`. `CONFIRMED FROM PAPER`.
Inference (thesis Eqs. 5.11–5.13): embedding `z = phi(x; omega^T)`, squared L2 distance
`d_j = ||z - Cbar_j^T||^2`, prediction `argmin_j d_j`. `CONFIRMED FROM PAPER`.
Prototype sharing is limited to locally observed classes: the thesis (Section 5.3.6) states
"prototypes are shared only for locally observed classes" and that "participants disclose to
the server which attack classes they have encountered". `CONFIRMED FROM PAPER`.
## 4. Baseline aggregation semantics — question by question
| # | Question | Answer | Classification |
|---|---|---|---|
| 1 | How is `C_ij` computed? | Mean embedding over the client's class-`j` samples (Eq. 1 / 5.4) | CONFIRMED FROM PAPER |
| 2 | What happens when `N_ij = 0`? | Not stated for aggregation. The thesis says only locally observed classes are shared, implying no prototype is sent | REASONABLE INFERENCE for omission; UNKNOWN for server handling |
| 3 | Is a prototype omitted? | Likely yes (see #2), but the server-side consequence is undefined | REASONABLE INFERENCE |
| 4 | Is a placeholder used? | Not described | UNKNOWN |
| 5 | Is an old prototype retained? | Not described | UNKNOWN |
| 6 | Is a zero vector used? | Not described | UNKNOWN |
| 7 | Which clients enter prototype aggregation? | Eq. 2/5.5 sums over all `M`; thesis says prototypes exist only for observed classes | UNKNOWN (paper self-inconsistent) |
| 8 | What is the denominator? | Written as `M`; whether it is `M` or the number of contributors is undefined | UNKNOWN |
| 9 | Does the implementation match Equation (2)? | No implementation exists to check | UNKNOWN |
| 10 | What does "Weighted averaging" refer to? | Only a Figure 1 caption. The thesis separately describes FedAvg as "a weighted average of the local models". Likely refers to model aggregation weighting, not prototype aggregation | REASONABLE INFERENCE |
| 11 | Is class frequency already used? | Not in Eq. 2/5.5 (equal `1/M`). The thesis intro describes FedAvg as weighted by samples, creating an internal contradiction | UNKNOWN |
| 12 | How are global prototypes distributed? | Shared back each round; `LocalUpdate` receives `Cbar^{t-1}` (Algorithm 1/2) | CONFIRMED FROM PAPER |
| 13 | How are they used in local loss? | Prototype alignment term in Eq. 3/5.6 | CONFIRMED FROM PAPER |
| 14 | How is inference performed? | Nearest global prototype by squared L2 (thesis Eqs. 5.11–5.13) | CONFIRMED FROM PAPER |
## 5. Additional unresolved baseline ambiguities
- **Round-0 initialisation of global prototypes.** Algorithms 1/2 say "initialize the global
prototype set for all classes" but never state how (random, zeros, first-round local
prototypes). `UNKNOWN`.
- **Prototype alignment for unseen classes.** Eq. 3 sums `L_R` over `j = 1..K`, but a client
with `N_ij = 0` has no local `C_ij`. Whether that class is skipped, uses the global
prototype as its own local prototype, or contributes zero is unspecified. `UNKNOWN`.
- **Per-batch vs end-of-round prototypes.** Algorithm 1 computes prototypes "for each batch"
and returns `{C_ij}`; Eq. 1 defines `C_ij` as the mean over the whole class on the client.
Whether clients average prototypes across batches or recompute once at round end is
unspecified. `UNKNOWN`.
- **Model aggregation weighting.** `1/M` (Eq. 5.5) vs FedAvg sample weighting (thesis
intro). `UNKNOWN`.
- **`lambda`.** No numeric value anywhere in the paper or thesis. `UNKNOWN`.
- **Random seeds.** "Averaged over three runs with different random seeds"; the seed values
are not given. `UNKNOWN`.
- **Feature preprocessing.** Normalisation, categorical encoding, and missing-value handling
are not described. `UNKNOWN`.
## 6. Consequence for `beta = 0` equivalence
The specification's caution is confirmed: `beta = 0` cannot be assumed equal to original
PROTEAN. Even if all clients share every class (so the participant-set question is moot),
the original uses equal `1/M` weights and the proposed control uses equal weights over
`S_j`; these coincide only when `S_j` contains all `M` clients. Under non-IID Dirichlet
partitions some clients lack some classes, so the two participant rules differ unless the
baseline denominator is `|S_j|`.
Therefore the project must (a) reproduce PROTEAN with an explicitly documented
missing-class rule, and (b) report `equal_available` as a separate control only if needed,
exactly as the specification requires.
## 7. Reproduction plan (from the paper/thesis)
Because no code exists, the baseline must be re-implemented and its behaviour frozen and
reported. The minimal reproduction contract:
1. Data pipeline: 80/20 train/test per dataset, Dirichlet non-IID partition of the training
set over 10 clients, `alpha in {0.75, 0.5, 0.25}`.
2. Model: the CNN above; embedding dimension 128.
3. Local training: cross-entropy + prototype alignment + model alignment, `mu = 0.1`,
`lambda` to be fixed and documented, 3 local epochs, 10 rounds.
4. Server: model aggregation and prototype aggregation per a documented missing-class rule.
5. Inference: nearest global prototype by squared L2.
6. Report macro accuracy, accuracy, F1, precision; add the specification's rare/unseen
metrics and the validation-based beta selection.
Every deviation from the paper (especially `lambda`, seeds, preprocessing, missing-class
rule) must be listed in `docs/research/EXPERIMENT_PROTOCOL.md` and the handoff.
## 8. Reference table of primary equations
| Quantity | Paper | Thesis |
|---|---|---|
| Local prototype | Eq. (1) | Eq. (5.4) |
| Server aggregation | Eq. (2) | Eq. (5.5) |
| Joint objective | Eq. (3) | Eq. (5.6) |
| Prototype alignment | Eq. (3) term | Eq. (5.8)–(5.9) |
| Inference | Section 3.2 | Eqs. (5.11)–(5.13) |