Supervisor meeting · University of Amsterdam
Feedback, a generalization, and what I built
Jonathan van den Heuvel · with dr. Cyril Hsu & dr. Chrysa Papagianni
Stable-Edge Filtering for Passive OT Device Classification · 8 June 2026
Today
Three things
- 1How I processed your last feedback, the 8.0 bar
- 2A brainstorm, generalizing the problem, I want your read
- 3The websites I built
The thesis as it stands is the clean post-feedback baseline. The generalization in part 2 is a proposal I have deliberately not written into the thesis yet, so you can steer whether it belongs there.
Part one
Processing your feedback
From a negative result, to a negative result with a fix.
The 3 June feedback
Your asks, in order
- Demonstrate a solution, not just a negative result → diff
- Isolate the cause with controls → diff
- A falsifiable hypothesis; RQ1 as a sanity check → diff
- Hourglass problem statement + an abstract, general problem
- Deepen the writing: GNN §2.3, scenario table, metrics, why random forest
- Fix the figures and citations; add the code link
The next three slides show the first three as before → after changes to the thesis text itself.
Feedback → revision
The central claim
Your ask: sharpen the over-general claim, and demonstrate a fix.
- −before"…temporal persistence is the wrong abstraction for hardening passive OT classification."
- +after"The failure is a property of content-agnostic edge filtering: a controller's class-defining polls are low-volume and event-sensitive, so any structural rule strips them."
- +after · the fix"A content-aware filter that keeps control-protocol edges removes the failure mode entirely (Δ = +0.000)."
A correction I found
How the filter is defined
Working through the pipeline you asked me to learn, I found the method described one thing and the code did another.
- −before"…a simple phase-local filter based on temporal persistence." (presence within a single phase)
- +after"Persistence is measured over the observation window a passive monitor actually captures." The realistic case: at one tap you cannot segment phases.
- +after · bonusThe phase-local filter now removes zero edges (Δ0), so it became a clean counterfactual that proves the cause is the observation window.
Feedback → revision
From open question to falsified hypothesis
Your ask: state a falsifiable hypothesis, and make RQ1 a sanity check.
- −before"This thesis asks whether removing transient edges… improves classification and makes it more robust." (an open question)
- +after"This thesis tests the hypothesis that removing non-persistent edges improves classification… The hypothesis is falsified."
- +after · controls"A battery of controls localises the cause: random removal is harmless, a byte-volume filter is equally harmful, and the penalty is classifier-independent."
The controls you asked for
Isolating the cause
- Random, same count removed → harmless. So it is not that removing edges hurts.
- Byte-volume → also harmful. A second content-blind proxy strips the low-volume polls.
- Phase-local (the idealised filter) → removes nothing. The penalty is the observation window.
The writing and structure asks
And the rest, done
- ✓ Hourglass problem statement + an abstract, general problem
- ✓ §2.3 extended: GNN message-passing equation + architecture figure
- ✓ §3.3 scenario table with edge-level ground truth
- ✓ §3.9 metrics: why macro-F1, higher = better, chance = 0.20
- ✓ Why random forest is competitive, justified in prose (p = 0.037)
- ✓ Figures and citations fixed; GitHub link added
Part two · a brainstorm
Generalizing the problem
Not in the thesis yet. I want your read before I write it in.
The idea
My finding is a known failure mode
A label-agnostic filter whose criterion is correlated with the class performs informative deletion. The harm comes from that correlation, not from removing edges as such.
- Direction. The filter never reads the label, so by the Data Processing Inequality it can only lose label information: I(X';Y) ≤ I(X;Y)
- When it bites. The loss is strict exactly when deletion is class-correlated, the MNAR condition: a controller's polls stop because it is a paused controller
Why it is compelling
The principle predicts my three controls
- Random, count-matched harmless ≈ 0 deletion independent of the class = MCAR → no informative loss
- Byte-volume filter harmful −0.060 a different class-correlated criterion = MNAR → same loss
- Graph-free random forest same loss information destroyed in the representation, upstream of any model (DPI)
Random = MCAR (safe), persistence and volume = two MNAR selectors (harmful), classifier-independence = the loss is in the data. One principle, all three results.
What it does not claim
- The DPI gives the direction of the loss, not the severity, that stays empirical
- Needs the premise that deleted edges carry non-redundant class signal
- I would not lean on graph-sparsification work, recent results there cut against me
Questions for you
- Does this strengthen the thesis, or is it formalism the committee won't reward?
- If worth it, light touch (a paragraph + the vocabulary) or a full lemma in intro and discussion?
- Is "informative deletion / MNAR" a clean analogy, or a stretch for deterministic, global deletion?
Part three
What I built
Five live sites, one domain.
Live now
Five sites, one project
- jvdhthesis.tech — project home, the public landing page
- progress.jvdhthesis.tech — the supervisor progress deck
- defense.jvdhthesis.tech — the MSc defence deck, 7 July 2026, newly re-skinned blue
- lab.jvdhthesis.tech — a live Grafana dashboard of the running OT lab, read-only
- notes.jvdhthesis.tech — a public speaker-notes companion
Self-hosted, Caddy with automatic TLS, the lab reachable over a private overlay network. This deck runs on the same engine.
What I'd like from today
A steer on the generalization, and a check that your feedback is fully addressed.
Thank you. · Jonathan van den Heuvel · 8 June 2026