chore: checkpoint PROTEAN research planning and architecture
This commit is contained in:
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) |
|
||||
Reference in new issue
Block a user