docs: add thesis proposal draft and source map

This commit is contained in:
willtanoe committed 2026-10-02 13:02:46 +07:00
1 parent 2ab6d74433
commit 9b25d1b5e4
2 files changed
+740

No files matched your search

+130
View File
@@ -0,0 +1,130 @@
# Proposal Source Map
Internal audit aid. Maps the substantive claims in `docs/proposal/THESIS_PROPOSAL_DRAFT.md` to
repository evidence. This file is not a thesis chapter and is not intended for submission.
Evidence keys:
- `planningawal` = `planningawal/PROTEAN_Revisi_Lurus.md` (immutable specification)
- `protocol` = `docs/research/EXPERIMENT_PROTOCOL.md`
- `interp` = `docs/research/RESEARCH_SPEC_INTERPRETATION.md`
- `baseline-inv` = `docs/baseline/PROTEAN_BASELINE_INVESTIGATION.md`
- `dataset` = `docs/research/DATASET_INSPECTION.md`
- `claims` = `docs/thesis/CLAIMS_REGISTER.md`
- `synthesis` = `docs/research/FINAL_EXPERIMENTAL_SYNTHESIS.md`
- `handoff` = `docs/handoff/SESSION_HANDOFF.md`
- `artifacts` = `artifacts/analysis/final__*.{csv,json}`
- `agents` = `AGENTS.md`
---
## 1. Research focus and mechanism
| Claim in proposal | Evidence |
|---|---|
| PROTEAN is a federated IDS that shares class prototypes (knowledge) and aggregates models for non-IID data | `planningawal` §1; `baseline-inv` §1 (source table); `interp` §1–2 |
| The study focuses only on server-side prototype aggregation | `planningawal` §1, §11; `interp` §1, §11; `agents` §8 |
| Global prototype is used both as a training alignment target and as the inference classifier (nearest prototype) | `planningawal` §1, §2 (Inferensi); `interp` §2; `protocol` §14 |
| Local prototype is the mean embedding of a client's class-`j` samples | `planningawal` §2; `protocol` §14 |
| PROTEAN Eq. (2) uses equal contribution (`1/M`) and contains no `N_ij` weight; Figure 1 "Weighted averaging" is not formalized | `planningawal` §2; `interp` §1–2 |
| `N_ij` is class-specific sample support, not prototype quality | `planningawal` §4; `agents` §9; `claims` claim 10 |
| A larger `N_ij` does not imply a better prototype | `planningawal` §4; `agents` §9 |
## 2. Missing-class handling and reproduction assumption
| Claim in proposal | Evidence |
|---|---|
| Eq. (2) does not state how a class unavailable on a client is handled | `planningawal` §3; `interp` §4 |
| The proposal uses `S_j = { i | N_ij > 0 and valid C_ij }` as the participant set | `planningawal` §3, §5; `interp` §3; `protocol` §5 |
| `S_j` is a documented reproduction assumption, not verified against official code | `planningawal` §3; `protocol` §5; `baseline-inv` §2 (no official code found) |
| All results are conditional on the shared `S_j` assumption | `protocol` §5, §12; `claims` claim 12; `synthesis` §14 |
## 3. Proposed aggregation and beta semantics
| Claim in proposal | Evidence |
|---|---|
| Weighted form `Cbar_j(β) = Σ N_ij^β C_ij / Σ N_ij^β` | `planningawal` §5; `interp` §3 |
| `β = 0` is equal weighting inside `S_j`, a control, not automatically the baseline | `planningawal` §5; `interp` §3 |
| `β = 1` is support-proportional; equals the mean of included local class-`j` embeddings | `planningawal` §5; `interp` §3 |
| `0 < β < 1` gives intermediate support influence | `planningawal` §5; `interp` §3 |
| Candidate set `β ∈ {0, 0.25, 0.50, 0.75, 1.00}`, one value for all classes/clients | `planningawal` §7; `protocol` §5 |
| `N_ij` is aggregation metadata; per-sample embeddings are not sent | `planningawal` §5 |
| `β = 0` is not guaranteed bitwise identical to the baseline (floating-point order) | `claims` claim 12; `synthesis` §1, §7; per-condition `beta0_equivalence.csv` |
## 4. Novelty boundary and related work
| Claim in proposal | Evidence |
|---|---|
| Sample-count prototype weighting already exists; not novel by itself | `planningawal` §10; `interp` §1; `claims` claim 13 (note: claim numbering in `claims` file); `synthesis` §15 |
| FedProto (Tan et al., 2022) already weights prototypes with class sample counts | `planningawal` §10 (Daftar Pustaka); `interp` §1 |
| Novelty is framed around controlled `β` weighting in PROTEAN, validation tuning, paired multi-condition evaluation, and mechanism-level analysis | `planningawal` §10; `synthesis` §15; this proposal §1.7, §2.5 |
| Contribution must not claim universal superiority or a global optimum | `planningawal` §7; `claims` claims 5, 7, 8, 9; `synthesis` §16 |
## 5. Datasets and protocol
| Claim in proposal | Evidence |
|---|---|
| Datasets: X-IIoTID and 5G-NIDD | `protocol` §1; `dataset` §1–2 |
| X-IIoTID uses label `class2`, benign `Normal`, drops `crypto-ransomware`, K=9 | `protocol` §1; `dataset` §1 |
| 5G-NIDD uses label `Attack Type`, benign `Benign`, K=9 | `protocol` §1; `dataset` §2 |
| Dataset shapes: X-IIoTID 820,834 × 68; 5G-NIDD 1,215,890 × 52 | `dataset` §1–2 |
| 10 clients; Dirichlet `α ∈ {0.75, 0.50, 0.25}` from training split only | `protocol` §2 |
| Partitions are deterministic and stored as reusable manifests | `protocol` §2, §6, §12 |
| Splits are stratified 70/10/20; validation is a project decision, test 20% follows the paper | `protocol` §3 |
| Seeds `{0,1,2}` are project-defined | `protocol` §4 |
| Hyperparameters: 10 rounds, 3 local epochs, batch 256, Adam lr 1e-3, `μ=0.1`, `λ=1.0` | `protocol` §5, §14, §15 |
| Preprocessing is fitted on the training split only | `protocol` §13 |
| Realized heterogeneity must be measured; `α` alone is insufficient | `planningawal` §9; `protocol` §10 |
## 6. Rare/unseen definition and selection
| Claim in proposal | Evidence |
|---|---|
| Rare classes per client: two attack classes with smallest positive training support | `planningawal` §9; `protocol` §7; `interp` §5 |
| One class if only one exists; client excluded if no attack class | `protocol` §7; `interp` §5 |
| Unseen classes (`N_ij = 0`) are evaluated separately and never merged with rare | `planningawal` §9; `protocol` §7; `interp` §5 |
| Rare/unseen derived from training split before selection (no leakage) | `planningawal` §9; `protocol` §7 |
| PRIMARY selection is pooled validation per-client rare-class macro-F1 across seeds | `planningawal` §7; `protocol` §8 |
| Tie-break: pooled recall, then lower across-seed std, then smaller beta | `protocol` §8 |
| Secondary per-seed selection is diagnostic only | `protocol` §8 |
| Test is used only after `β` is fixed and never influences selection | `planningawal` §7; `protocol` §8; `synthesis` §3 |
| Grid: 2 datasets × 3 α × 3 seeds × (baseline + 5 betas) | `protocol` §8, §12; `handoff` (grid complete) |
| No significance testing promised with three seeds | `synthesis` §13; `handoff` §14 |
## 7. Metrics and analysis design
| Claim in proposal | Evidence |
|---|---|
| Primary metric is per-client rare-class macro-F1 | `planningawal` §7–8; `protocol` §8–9 |
| Supporting metrics: rare recall, overall macro-F1, weighted-F1, accuracy, per-client, displacement, heterogeneity | `protocol` §9–11; `interp` §8 |
| Direct prototype effect is separated from end-to-end training effect | `planningawal` §6, §9; `protocol` §11; `interp` §9 |
| Displacement `||Cbar_j(β) − Cbar_j(0)||` is reported | `planningawal` §9; `protocol` §11 |
| Rare-class evaluation support must be recorded | `planningawal` §9; `protocol` §9–10 |
## 8. Research evolution (narrowing)
| Claim in proposal | Evidence |
|---|---|
| The current scope excludes multiple simultaneous mechanisms and broad comparisons | `planningawal` §11; `interp` §11; `agents` §8 |
| Earlier broad scope including Differential Privacy is not documented in this repository | Not found in repo (`grep` for "Differential Privacy" returns only this proposal's own note); treated as external context from the session instruction, not a repository claim |
## 9. Preliminary study statements
| Claim in proposal | Evidence |
|---|---|
| Implementation is feasible (baseline and `β` mode run on both datasets) | `protocol` §5, §15; baseline validation doc `docs/baseline/BASELINE_VALIDATION.md`; `handoff` |
| Realized support imbalance is substantial at low `α` | `artifacts` (`final__realized_heterogeneity.csv`); `handoff` §8 |
| Changing `β` shifts global prototypes at fixed local prototypes | `artifacts` (`final__prototype_displacement_by_beta.csv`); `synthesis` §7 |
| Candidate preference can differ across non-IID conditions | `artifacts` (`final__pooled_validation_curves.csv`, `final__selection_strength.csv`); `handoff` |
Note: the preliminary-study section deliberately omits the final six-condition selections, the
complete master table, and the final test results, consistent with preserving the proposal framing.
## 10. Items not yet evidenced in the repository (must be verified or added)
| Item | Status |
|---|---|
| FL-IDS / non-IID literature beyond PROTEAN and FedProto | Not present; metadata must be verified before citing |
| The earlier Differential Privacy research design | Not documented in the repository; only described as external session context |
| PROTEAN paper's own related-work citations | Not extracted into the repository |
| Any bibliographic field not taken verbatim from `planningawal` or `baseline-inv` | Must be marked `[metadata perlu diverifikasi]` |
+610
View File
@@ -0,0 +1,610 @@
# JUDUL
**Optimasi Agregasi Prototype pada PROTEAN melalui Pembobotan Berbasis Dukungan Sampel Kelas
untuk Deteksi Serangan Langka pada Data Non-IID**
*(Optimizing Prototype Aggregation in PROTEAN through Class-Sample-Support Weighting for Rare
Attack Detection under Non-IID Data Distributions)*
Nama: Muhamad Wildan Rizky
NIM: 20102520001
Dokumen ini adalah draf proposal tesis pada tahap awal. Fokus penelitian telah dipersempit pada
satu mekanisme agregasi prototype di server PROTEAN. Draf ini belum memuat hasil akhir; bagian
studi pendahuluan hanya digunakan sebatas menunjukkan kelayakan pelaksanaan.
---
# BAB I — PENDAHULUAN
## 1.1 Latar Belakang
Perkembangan jaringan yang terdistribusi, seperti jaringan IoT industri dan jaringan 5G, membuat
volume lalu lintas yang harus diawasi oleh sistem deteksi intrusi (intrusion detection system,
IDS) terus bertambah. Data lalu lintas tersebut umumnya tersebar pada banyak titik jaringan dan
tidak selalu dapat dikumpulkan ke satu pusat. Pengumpulan data mentah secara terpusat menimbulkan
beban komunikasi sekaligus masalah privasi, terutama ketika data merekam perilaku perangkat dan
pengguna.
Federated Learning (FL) menawarkan cara untuk melatih model secara kolaboratif tanpa memindahkan
data mentah ke server. Setiap client melatih model pada datanya sendiri, lalu hanya parameter model
yang dikirim dan digabungkan oleh server. Pola ini sesuai untuk IDS karena data serangan dapat
tetap berada di lokasi masing-masing. Namun, FL pada IDS menghadapi tantangan ketika distribusi
kelas antar-client tidak seragam, atau non-IID. Sebagian client dapat memiliki jenis serangan yang
sangat dominan, sementara client lain hanya memiliki sedikit contoh, bahkan tidak memiliki contoh
sama sekali untuk kelas serangan tertentu.
Ketidakseimbangan kelas memperkuat masalah tersebut. Kelas serangan langka hanya muncul pada
sebagian kecil data, sehingga rata-rata kinerja keseluruhan dapat terlihat baik meskipun model
gagal mendeteksi kelas yang jarang. Pada konteks keamanan, kegagalan mendeteksi kelas langka justru
berisiko, karena serangan yang jarang belum tentu tidak berbahaya. Karena itu, evaluasi yang hanya
mengandalkan akurasi global kurang memadai, dan metrik per kelas seperti macro-F1 serta recall
kelas langka menjadi lebih relevan.
Untuk menghadapi data non-IID, sebagian metode FL berbagi pengetahuan dalam bentuk prototype kelas,
bukan hanya parameter model. Prototype kelas adalah representasi rata-rata embedding sampel pada
suatu kelas. Dengan berbagi prototype, client dapat memanfaatkan representasi kelas yang mungkin
tidak dimilikinya. PROTEAN (Chennoufi et al., 2025) merupakan salah satu metode federated intrusion
detection yang menggunakan pertukaran prototype kelas bersama agregasi model pada data non-IID.
Global prototype hasil agregasi di server digunakan pada dua proses: sebagai acuan prototype
alignment saat pelatihan lokal dan sebagai pembanding embedding saat inferensi. Dengan demikian,
cara server menggabungkan local prototype berpengaruh pada representasi kelas sekaligus pada
keputusan deteksi.
Pada Persamaan (2) PROTEAN, kontribusi setiap local prototype terhadap global prototype bersifat
sama, yaitu rata-rata sederhana. Padahal, local prototype kelas yang sama dapat dibentuk dari
jumlah sampel yang sangat berbeda antarklien. Misalnya, satu client dapat memiliki ratusan sampel
untuk suatu kelas, sementara client lain hanya memiliki beberapa sampel. Equal weighting memberi
kontribusi yang sama kepada kedua prototype tersebut, tanpa mempertimbangkan perbedaan dukungan
sampel yang membentuknya. Kondisi ini menimbulkan pertanyaan apakah cara penggabungan tersebut
sudah sesuai, terutama untuk kelas serangan langka.
Di sisi lain, dukungan sampel yang lebih besar tidak otomatis berarti prototype yang lebih baik.
`N_ij`, yaitu jumlah sampel kelas `j` pada client `i`, adalah ukuran dukungan sampel, bukan skor
kualitas prototype. Prototype yang dibentuk dari sedikit sampel belum tentu buruk, dan prototype
yang dibentuk dari banyak sampel belum tentu mewakili variasi serangan yang ingin dideteksi. Oleh
karena itu, pengaruh dukungan sampel sebaiknya dikendalikan dan diuji, bukan diasumsikan selalu
menguntungkan.
Penelitian ini mengusulkan mekanisme pembobotan yang dikendalikan oleh parameter `β`. Bobot
kontribusi client `i` untuk kelas `j` adalah `N_ij^β`, dengan `0 ≤ β ≤ 1`. Nilai `β = 0`
menghasilkan pembobotan seragam, `β = 1` menghasilkan pembobotan sebanding dengan dukungan sampel,
dan nilai di antaranya memberi pengaruh yang lebih moderat. Karena pengaruh pembobotan diduga
bergantung pada tingkat ketimpangan data, evaluasi dilakukan pada beberapa kondisi non-IID yang
dibentuk dengan parameter Dirichlet `α` yang berbeda. Dengan pendekatan ini, penelitian diarahkan
pada satu mekanisme yang dapat ditelusuri, bukan pada perbandingan banyak metode sekaligus.
## 1.2 Identifikasi Masalah
Berdasarkan latar belakang tersebut, masalah yang diteliti dapat dirumuskan sebagai berikut.
1. Jumlah sampel kelas `N_ij` untuk kelas yang sama dapat berbeda cukup besar antarklien pada data
non-IID.
2. Agregasi prototype pada PROTEAN tidak secara eksplisit mengendalikan besar kontribusi setiap
client berdasarkan dukungan sampel kelas tersebut.
3. Pembobotan seragam memberi pengaruh yang sama kepada seluruh client, dan belum tentu sesuai
ketika dukungan sampel antarclient sangat timpang.
4. Pembobotan penuh yang sebanding dengan `N_ij` juga belum tentu sesuai, karena dukungan sampel
besar tidak otomatis berarti prototype yang lebih mewakili kelas langka.
5. Hubungan antara kekuatan pembobotan, pergeseran global prototype, dan kinerja deteksi kelas
langka belum dipahami dengan cukup baik.
6. Kekuatan pembobotan yang sesuai diduga bergantung pada kondisi non-IID yang terealisasi, bukan
hanya pada nilai `α` yang dipilih.
## 1.3 Gap Penelitian
### 1.3.1 Hal yang sudah diketahui
Pembelajaran FL berbasis prototype telah dikembangkan untuk menangani data yang heterogen. PROTEAN
menggunakan pertukaran class prototype bersama agregasi model pada konteks federated intrusion
detection dengan data non-IID. Pembobotan prototype yang melibatkan jumlah sampel kelas juga sudah
ada pada penelitian lain, antara lain FedProto (Tan et al., 2022). Dengan demikian, penggunaan
`N_ij` untuk membobot prototype bukan hal baru dengan sendirinya.
### 1.3.2 Hal yang masih belum memadai untuk lingkup penelitian ini
Yang belum dipahami secara memadai bukanlah keberadaan pembobotan berbasis jumlah sampel, melainkan
perilakunya ketika diterapkan secara terkendali pada agregasi prototype PROTEAN. Secara khusus:
1. bagaimana pembobotan dukungan yang diatur oleh `β` mengubah posisi global prototype PROTEAN;
2. apakah pembobotan yang lebih kuat selalu memperbaiki deteksi kelas langka, atau justru
bergantung pada kondisi;
3. bagaimana pengaruh tersebut berubah pada tingkat ketimpangan non-IID yang berbeda;
4. bagaimana setiap client, terutama yang memiliki dukungan sampel kecil, memperoleh manfaat atau
justru mengalami penurunan kinerja.
Gap penelitian ini bukan "belum ada yang menggunakan jumlah sampel", karena hal itu sudah ada pada
penelitian sebelumnya. Gap-nya terletak pada pemahaman mekanisme dan kondisi penerapan pada
agregasi prototype PROTEAN.
## 1.4 Rumusan Masalah
Berdasarkan gap di atas, rumusan masalah penelitian ini adalah sebagai berikut.
**RQ1.** Bagaimana hubungan antara ketimpangan dukungan sampel kelas, perbedaan local prototype,
dan kinerja deteksi kelas langka pada PROTEAN?
**RQ2.** Bagaimana perubahan `β` memengaruhi global prototype dan kinerja deteksi kelas langka pada
kondisi non-IID yang berbeda?
**RQ3.** Apakah nilai `β` yang dipilih melalui validasi berubah pada tingkat ketimpangan yang
berbeda, dan apa dampaknya terhadap kinerja keseluruhan serta hasil per klien?
## 1.5 Tujuan Penelitian
Tujuan umum penelitian ini adalah mengevaluasi mekanisme agregasi prototype berbasis pembobotan
dukungan sampel kelas yang dikendalikan oleh `β` pada PROTEAN, serta menganalisis perilakunya
terhadap deteksi kelas langka pada data non-IID.
Tujuan khusus yang dijabarkan dari rumusan masalah adalah:
1. Menganalisis hubungan antara ketimpangan dukungan sampel kelas `N_ij`, pergeseran global
prototype, dan kinerja deteksi kelas langka pada PROTEAN (menjawab RQ1).
2. Menganalisis pengaruh nilai `β` terhadap global prototype dan kinerja deteksi kelas langka pada
beberapa kondisi non-IID (menjawab RQ2).
3. Menentukan nilai `β` melalui validasi pada tingkat ketimpangan yang berbeda dan menganalisis
dampaknya terhadap kinerja keseluruhan serta hasil per klien (menjawab RQ3).
## 1.6 Batasan Penelitian
Agar pengaruh pembobotan dapat ditelusuri dengan jelas, penelitian ini dibatasi sebagai berikut.
1. Modifikasi hanya dilakukan pada tahap agregasi prototype di server.
2. Pembentukan local prototype mengikuti mekanisme PROTEAN yang telah diverifikasi.
3. Agregasi model, arsitektur model, fungsi loss beserta prototype alignment, dan aturan inferensi
mengikuti baseline yang telah diverifikasi dan tidak diubah.
4. Dataset yang digunakan adalah X-IIoTID dan 5G-NIDD.
5. Jumlah client tetap 10, sesuai pengaturan PROTEAN.
6. Kondisi non-IID dibentuk dengan distribusi Dirichlet pada beberapa nilai `α`, yaitu 0,75; 0,50;
dan 0,25.
7. Kandidat nilai `β` adalah {0; 0,25; 0,50; 0,75; 1,00}, dan satu nilai `β` digunakan untuk
seluruh kelas dan client dalam satu eksperimen.
8. Random seed yang digunakan adalah himpunan yang telah ditetapkan untuk proyek ini, yaitu
{0, 1, 2}.
9. Kelas langka ditentukan dari data training setiap client, bukan dari data validasi atau
pengujian.
10. Kelas yang tidak tersedia pada client (`N_ij = 0`) diperlakukan sebagai unseen class dan
dianalisis terpisah dari kelas langka.
11. Pemilihan `β` hanya menggunakan data validasi; data pengujian tidak digunakan untuk memilih
`β`.
12. Penanganan kelas yang tidak tersedia pada agregasi baseline, yaitu himpunan peserta `S_j`,
merupakan asumsi reproduksi PROTEAN yang didokumentasikan dan tidak diuji kebenarannya
terhadap kode resmi.
## 1.7 Kontribusi Penelitian
Kontribusi yang ditargetkan pada penelitian ini adalah sebagai berikut.
1. **Kontribusi metodologis.** Penerapan agregasi prototype terbobot dukungan sampel kelas yang
dikendalikan oleh parameter `β` di dalam PROTEAN, dengan definisi peserta agregasi dan
penanganan kelas tidak tersedia yang eksplisit.
2. **Kontribusi eksperimental.** Evaluasi berpasangan pada dua dataset IDS, tiga tingkat non-IID,
dan beberapa random seed, dengan partisi dan hyperparameter yang sama untuk setiap
perbandingan.
3. **Kontribusi analitis.** Analisis berantai yang menghubungkan ketimpangan dukungan sampel,
bobot kontribusi, pergeseran prototype, kinerja kelas langka, dan dampak per klien.
4. **Kontribusi praktis dan ilmiah.** Karakterisasi kondisi ketika pembobotan dukungan yang lebih
kuat berpotensi membantu, berdampak kecil, atau merugikan kinerja kelas langka.
Kontribusi tersebut tidak mencakup klaim keunggulan umum, klaim optimalitas global, atau klaim
bahwa pembobotan berbasis jumlah sampel merupakan hal yang baru dengan sendirinya.
---
# BAB II — TINJAUAN PUSTAKA
## 2.1 Federated Learning untuk Intrusion Detection
Federated Learning adalah pendekatan pelatihan model yang menjaga data tetap berada di sisi client.
Server mengoordinasikan proses pelatihan dan menggabungkan parameter model, sementara data mentah
tidak dipindahkan. Pendekatan ini menarik untuk IDS karena data lalu lintas jaringan sering
tersebar, bersifat sensitif, dan tidak selalu dapat dikumpulkan secara terpusat.
Tantangan utama FL pada IDS adalah data antarclient yang non-IID. Setiap client mengamati pola
lalu lintas yang berbeda, sehingga distribusi kelasnya tidak seragam. Sebagian client dapat
memiliki kelas serangan yang dominan, sementara client lain jarang atau tidak pernah melihat kelas
tersebut. Perbedaan ini dapat menurunkan kualitas model global jika proses agregasi tidak
memperhatikan heterogenitas tersebut.
## 2.2 Class Imbalance dan Rare Attack pada FL-IDS
Pada data keamanan, jumlah sampel tiap kelas sangat tidak seimbang. Kelas benign biasanya jauh
lebih banyak daripada kelas serangan, dan sebagian jenis serangan hanya muncul dalam jumlah kecil.
Akibatnya, model dapat mencapai akurasi atau kinerja global yang terlihat baik dengan cara
mengorbankan kelas minoritas.
Metrik yang hanya merangkum seluruh kelas, seperti akurasi global, kurang cocok untuk menilai
deteksi kelas langka. Metrik seperti macro-F1 dan recall per kelas lebih relevan karena memberi
bobot yang lebih seimbang pada setiap kelas. Karena itu, penelitian ini menggunakan macro-F1 kelas
langka sebagai metrik utama, dengan metrik pendukung seperti recall kelas langka, macro-F1
keseluruhan, dan hasil per klien.
## 2.3 Prototype-Based Federated Learning
Alih-alih hanya berbagi parameter model, sebagian metode FL juga berbagi prototype kelas.
Prototype kelas adalah representasi ringkas dari suatu kelas dalam ruang embedding, biasanya berupa
rata-rata embedding sampel kelas tersebut.
Sub-konsep yang penting untuk penelitian ini:
- **local prototype**, yaitu prototype kelas yang dibentuk oleh satu client dari data lokalnya;
- **global prototype**, yaitu prototype kelas hasil agregasi server dari local prototype beberapa
client.
Pertukaran prototype memungkinkan client memperoleh representasi kelas yang tidak dimilikinya
secara lokal. Pada data non-IID, pendekatan ini dapat membantu client yang hanya memiliki sebagian
kelas. Namun, kualitas global prototype sangat bergantung pada cara server menggabungkan local
prototype.
## 2.4 PROTEAN
PROTEAN (Chennoufi et al., 2025) adalah metode federated intrusion detection untuk data non-IID
yang menggabungkan pertukaran class prototype dengan agregasi parameter model. Mekanisme yang
relevan dengan penelitian ini adalah sebagai berikut.
**Pembentukan local prototype.** Untuk kelas `j` yang memiliki `N_ij > 0` sampel pada client `i`,
local prototype dihitung sebagai rata-rata embedding sampel kelas tersebut:
```
C_ij = (1 / N_ij) * Σ_k z_ijk
```
dengan `z_ijk` adalah embedding sampel ke-`k` pada kelas `j`.
**Agregasi di server.** Client mengirim parameter model dan local prototype ke server. Pada
Persamaan (2) PROTEAN, global prototype kelas `j` dihitung sebagai rata-rata sederhana dari
`M` peserta:
```
Cbar_j = (1 / M) * Σ_i C_ij
```
Perlu dicatat bahwa Gambar 1 pada paper menggunakan istilah "Weighted averaging", tetapi
Persamaan (2) tidak memuat bobot berdasarkan `N_ij`. Rujukan formal yang digunakan dalam
penelitian ini adalah persamaan tersebut.
**Pemanfaatan global prototype.** Server mengirimkan model global dan global prototype kembali ke
client. Objective pelatihan lokal menggabungkan classification loss, prototype alignment terhadap
global prototype, dan model parameter alignment. Pada inferensi, sampel baru diberi label kelas
yang global prototype-nya memiliki jarak L2 terkecil terhadap embedding sampel. Karena global
prototype dipakai sebagai acuan alignment sekaligus sebagai pembanding saat inferensi, posisinya
berpengaruh langsung pada hasil klasifikasi.
**Ambiguitas penanganan kelas tidak tersedia.** Persamaan (2) menjumlahkan `M` peserta, tetapi
tidak menjelaskan perlakuan ketika suatu client tidak memiliki kelas `j`. Dalam penelitian ini,
himpunan peserta agregasi didefinisikan sebagai
`S_j = { i | N_ij > 0 dan local prototype C_ij tersedia }`. Definisi ini merupakan asumsi
reproduksi karena kode resmi PROTEAN tidak tersedia untuk diverifikasi. Konsekuensinya, hasil
penelitian ini bersifat kondisional terhadap asumsi tersebut.
## 2.5 Support-Weighted Prototype Aggregation dan Penelitian Terkait
Pembobotan prototype berdasarkan jumlah sampel kelas sudah ada pada penelitian sebelumnya. FedProto
(Tan et al., 2022) merupakan contoh yang membahas pembobotan prototype dengan melibatkan jumlah
sampel kelas pada pembelajaran federasi yang heterogen. Karena itu, kebaruan penelitian ini tidak
dapat dibangun hanya dari penggunaan `N_ij` atau penambahan parameter `β`.
Yang membedakan penelitian ini adalah penerapannya secara terkendali pada agregasi prototype
PROTEAN, pemilihan `β` melalui validasi, evaluasi berpasangan pada beberapa kondisi non-IID, serta
analisis mekanisme yang menghubungkan dukungan sampel, bobot kontribusi, pergeseran prototype, dan
kinerja kelas langka sampai ke tingkat klien. Dengan kata lain, kontribusi diarahkan pada
pemahaman perilaku mekanisme, bukan pada klaim bahwa pembobotan berbasis jumlah sampel belum pernah
ada.
## 2.6 Posisi Penelitian
Secara ringkas, posisi penelitian ini dapat digambarkan sebagai berikut. Penelitian berbasis
prototype untuk FL sudah ada, dan PROTEAN sudah menerapkannya pada konteks IDS non-IID.
Pembobotan prototype dengan jumlah sampel kelas juga sudah dibahas di penelitian lain. Yang masih
belum memadai adalah pemahaman mengenai bagaimana pembobotan dukungan yang dikendalikan `β`
mengubah global prototype PROTEAN dan kapan perubahan tersebut berdampak pada deteksi kelas langka.
Penelitian ini menempati posisi tersebut dengan membatasi diri pada agregasi prototype di server dan
menganalisis perilakunya pada beberapa kondisi non-IID.
Tabel berikut hanya memuat penelitian yang didukung oleh rujukan yang tersedia di repositori.
| Studi | Fokus | Pembobotan prototype | IDS non-IID | Analisis kelas langka | Perbedaan dengan penelitian ini |
|---|---|---|---|---|---|
| Chennoufi et al. (2025), PROTEAN | Federated IDS berbasis prototype untuk data non-IID | Rata-rata sederhana pada Persamaan (2); tidak memuat bobot `N_ij` | Ya | Membahas kelas serangan dengan sampel paling sedikit | Penelitian ini menambahkan pembobotan dukungan terkendali `β` dan analisis mekanisme pada satu komponen agregasi |
| Tan et al. (2022), FedProto | Federated prototype learning pada client heterogen | Melibatkan jumlah sampel kelas | Tidak khusus IDS | Tidak difokuskan pada deteksi serangan langka | Penelitian ini berfokus pada agregasi prototype PROTEAN dan kinerja kelas langka pada IDS non-IID |
Catatan: tinjauan pustaka ini masih terbatas pada dua rujukan yang sudah terverifikasi di
repositori. Penambahan rujukan FL-IDS dan non-IID lain diperlukan, dan metadatanya perlu
diverifikasi terlebih dahulu.
---
# BAB III — METODOLOGI PENELITIAN
## 3.1 Desain Penelitian
Penelitian ini merupakan studi eksperimental terapan. Satu komponen PROTEAN, yaitu agregasi
prototype di server, dimodifikasi melalui pembobotan dukungan sampel kelas yang dikendalikan
parameter `β`. Komponen lain dipertahankan sama dengan baseline. Evaluasi dilakukan secara
berpasangan: untuk setiap kombinasi dataset, tingkat non-IID, dan random seed, seluruh kandidat
`β` serta baseline menggunakan partisi, split, dan hyperparameter yang identik. Dengan cara ini,
perbedaan hasil dapat ditelusuri ke mekanisme agregasi dan bukan ke perbedaan data atau
konfigurasi pelatihan.
## 3.2 Dataset
Penelitian menggunakan dua dataset IDS yang berbeda karakteristiknya.
1. **X-IIoTID.** Dataset ini mencakup 820.834 baris dan 68 kolom. Label multi-kelas yang digunakan
adalah `class2`, dengan label benign `Normal`. Satu kelas, yaitu `crypto-ransomware`, dihapus
mengikuti paper karena jumlah instance validnya sangat sedikit. Setelah penghapusan tersebut
terdapat 9 kelas (1 benign dan 8 kelas serangan).
2. **5G-NIDD.** Dataset ini mencakup 1.215.890 baris dan 52 kolom. Label multi-kelas yang
digunakan adalah `Attack Type`, dengan label benign `Benign`. Terdapat 9 kelas (1 benign dan
8 kelas serangan).
Kedua dataset memiliki label benign dan sejumlah kelas serangan, sehingga sesuai untuk evaluasi
kelas langka. Rincian karakteristik dan anomali tiap dataset dicatat pada dokumen inspeksi dataset
di repositori.
## 3.3 Preprocessing dan Data Split
Preprocessing dilakukan dengan resep yang sama untuk kedua dataset dan diterapkan secara identik
pada semua varian agregasi. Statistik preprocessing, seperti kategori one-hot encoding, nilai
median untuk imputasi, dan standardisasi fitur numerik, dihitung hanya dari data training. Data
validasi dan pengujian tidak boleh memengaruhi tahap ini.
Pembagian data dilakukan secara deterministik dan terstratifikasi per kelas dengan proporsi
training, validasi, dan pengujian sebesar 70%, 10%, dan 20%. Proporsi pengujian 20% mengikuti
pengaturan paper, sedangkan pemisahan validasi merupakan keputusan proyek yang diperlukan untuk
pemilihan `β`. Setiap kombinasi dataset dan random seed menghasilkan satu split tetap, dan split
tersebut digunakan kembali untuk seluruh kandidat `β`.
Partisi dan split disimpan sebagai manifest deterministik yang memuat `N_ij` per client dan kelas,
metadata split, serta hash konten. Manifest ini digunakan kembali tanpa regenerasi pada setiap
eksperimen, sehingga perbandingan tetap berpasangan.
## 3.4 Pembentukan Kondisi Non-IID
Kondisi non-IID dibentuk dengan distribusi Dirichlet simetris pada data training, dengan nilai `α`
sebesar 0,75; 0,50; dan 0,25. Semakin kecil nilai `α`, semakin tidak merata sebaran kelas
antarklien. Prosedur alokasi dijalankan secara deterministik dari data training, dan sebagian
client dapat menerima nol sampel untuk suatu kelas; kelas seperti itu menjadi kelas yang tidak
tersedia pada client tersebut.
Nilai `α` adalah parameter konfigurasi yang memengaruhi seberapa timpang data secara umum, tetapi
tidak cukup untuk menggambarkan kondisi yang terealisasi. Karena itu, untuk setiap partisi dicatat
statistik seperti total sampel per kelas, jumlah client yang memiliki kelas tersebut, koefisien
variasi `N_ij` antarclient penyumbang, dan rasio maksimum terhadap minimum. Random seed yang
berbeda dapat menghasilkan distribusi terealisasi yang berbeda meskipun `α`-nya sama, sehingga
ketimpangan yang terealisasi perlu diukur, bukan hanya diasumsikan dari `α`.
## 3.5 Baseline PROTEAN
Baseline penelitian adalah reproduksi PROTEAN. Pada tahap agregasi, server menggabungkan model
client dengan rata-rata sederhana dan menggabungkan local prototype menjadi global prototype.
Local prototype kelas `j` pada client `i` dihitung sebagai rata-rata embedding sampel kelas
tersebut, dan global prototype kelas `j` dihitung dari local prototype client yang menyumbang kelas
tersebut.
Karena Persamaan (2) PROTEAN tidak menjelaskan penanganan kelas yang tidak tersedia, baseline
menggunakan asumsi peserta agregasi `S_j = { i | N_ij > 0 dan C_ij tersedia }` dengan bobot seragam
`1/|S_j|`. Asumsi ini didokumentasikan sebagai asumsi reproduksi dan tidak diverifikasi terhadap
kode resmi. Perbedaan hasil antara baseline dan formulasi usulan harus diinterpretasikan dengan
mempertimbangkan asumsi tersebut.
## 3.6 Metode yang Diusulkan
Mekanisme yang diusulkan mengatur bobot kontribusi setiap client berdasarkan dukungan sampel kelas
`N_ij`, dengan kekuatan yang dikendalikan parameter `β` pada rentang `0 ≤ β ≤ 1`. Bobot client `i`
untuk kelas `j` adalah:
```
w_ij = N_ij^β
```
Global prototype kelas `j` dihitung sebagai rata-rata terbobot:
```
Cbar_j(β) = ( Σ_{i ∈ S_j} N_ij^β C_ij ) / ( Σ_{i ∈ S_j} N_ij^β )
```
Interpretasi nilai `β`:
- `β = 0` memberi bobot yang sama kepada semua client dalam `S_j`, sehingga setara dengan
pembobotan seragam. Nilai ini merupakan kontrol, bukan otomatis identik dengan baseline PROTEAN
kecuali himpunan peserta dan penanganan kelas tidak tersedia juga sama.
- `0 < β < 1` memberi pengaruh dukungan sampel yang lebih moderat; client dengan `N_ij` lebih besar
memperoleh bobot lebih besar, tetapi tidak sepenuhnya proporsional.
- `β = 1` memberi bobot sebanding dengan jumlah sampel kelas. Karena local prototype adalah rata-rata
embedding, hasil agregasinya setara dengan rata-rata seluruh embedding kelas `j` yang disertakan
pada round tersebut.
`N_ij` adalah ukuran dukungan sampel, bukan skor kualitas prototype. Pembobotan yang lebih besar
tidak berarti prototype tersebut lebih benar; yang diuji adalah pengaruh pengaturan bobot terhadap
global prototype dan deteksi.
Penelitian ini juga memisahkan dua jenis efek. Efek agregasi langsung diukur pada satu langkah
dengan local prototype dan `N_ij` yang tetap, tanpa pelatihan ulang. Efek pelatihan menyeluruh
diukur melalui pelatihan federasi penuh. Kedua jenis efek ini dianalisis secara terpisah agar
pergeseran prototype tidak disamakan dengan perubahan kinerja deteksi.
## 3.7 Definisi Rare Class dan Unseen Class
Kelas langka ditentukan dari data training setiap client, sebelum pemilihan `β`, untuk menghindari
kebocoran informasi dari data validasi atau pengujian.
Untuk setiap client:
- kelas langka adalah dua kelas serangan dengan jumlah sampel training positif paling sedikit;
- jika hanya ada satu kelas serangan yang tersedia, kelas tersebut yang digunakan;
- jika tidak ada kelas serangan yang tersedia, client tersebut tidak diikutsertakan dalam
perhitungan metrik kelas langka;
- kelas benign tidak pernah dianggap kelas langka.
Kelas serangan dengan `N_ij = 0` pada client didefinisikan sebagai **unseen class** dan dievaluasi
secara terpisah. Kelas langka dan kelas unseen tidak pernah digabungkan dalam satu metrik, karena
keduanya mengukur hal yang berbeda: kelas langka diuji pada client yang memiliki sedikit sampel,
sedangkan kelas unseen diuji pada client yang tidak memiliki sampel sama sekali.
## 3.8 Protokol Pemilihan Beta
Pemilihan `β` dilakukan dengan aturan berikut.
**PRIMARY.** Untuk setiap kandidat `β`, hitung metrik rare-class macro-F1 per client pada data
validasi, lalu rata-ratakan pada client yang memiliki kelas langka dalam satu seed. Skor tiap
kandidat kemudian dirata-ratakan lintas seed untuk membentuk skor pooled pada satu kondisi non-IID.
Nilai `β` terpilih adalah kandidat dengan skor pooled validasi terbaik. Jika terjadi seri, urutan
tie-break yang digunakan adalah: pooled rare recall yang lebih tinggi, lalu standar deviasi
antarseed yang lebih kecil, lalu nilai `β` yang lebih kecil.
**SECONDARY.** Pemilihan `β` per seed dihitung hanya sebagai diagnostik kestabilan. Hasil per seed
bukan aturan pemilihan kondisi.
Data pengujian tidak digunakan pada tahap PRIMARY maupun SECONDARY. Setelah `β` terpilih dan
ditetapkan, barulah data pengujian dievaluasi. Nilai yang dilaporkan adalah kandidat terbaik di
antara nilai yang diuji pada prosedur validasi tersebut, bukan klaim optimum global.
## 3.9 Skenario Eksperimen
Rancangan evaluasi mencakup kombinasi berikut:
```
2 dataset
× 3 nilai α (0,75; 0,50; 0,25)
× 3 random seed (0, 1, 2)
× (baseline original PROTEAN + 5 kandidat β)
```
Untuk setiap kombinasi dataset, `α`, dan seed, seluruh kandidat `β` dan baseline dilatih dan
dievaluasi menggunakan partisi serta hyperparameter yang sama. Konfigurasi pelatihan yang
dipertahankan sama meliputi jumlah client 10, jumlah communication round 10, jumlah local epoch 3,
batch size 256, optimizer Adam dengan learning rate 1e-3, parameter `μ` sebesar 0,1 pada model
parameter alignment, dan parameter `λ` sebesar 1,0 pada prototype alignment.
## 3.10 Metrik Evaluasi
Metrik utama penelitian ini adalah **rare-class macro-F1 per client**, dihitung pada client yang
memiliki kelas langka, lalu dirata-ratakan antarklien dan antarseed. Metrik ini dipilih karena
memberi gambaran kinerja pada kelas serangan yang jarang dan tidak tersembunyi oleh kelas yang
dominan.
Metrik pendukung yang dilaporkan meliputi:
- recall kelas langka;
- macro-F1 keseluruhan;
- weighted-F1 dan akurasi, sebagai perbandingan dengan pengaturan paper;
- hasil per klien;
- pergeseran prototype `||Cbar_j(β) − Cbar_j(0)||` untuk analisis efek agregasi langsung;
- statistik ketimpangan yang terealisasi, seperti koefisien variasi `N_ij` dan jumlah sel kelas
yang tidak tersedia pada client.
Jumlah sampel evaluasi untuk kelas langka juga dicatat agar metrik tidak ditafsirkan tanpa melihat
besarnya dukungan evaluasi.
## 3.11 Analisis Hasil
Analisis hasil direncanakan mencakup:
- kurva validasi `β` pada setiap kondisi non-IID;
- nilai `β` terpilih pada setiap kondisi;
- perbandingan deskriptif antara `β` terpilih dan baseline original PROTEAN;
- karakterisasi ketimpangan yang terealisasi;
- pergeseran prototype dan kaitannya dengan ketimpangan dukungan;
- perilaku per klien, yaitu jumlah client yang membaik, memburuk, atau tidak berubah;
- perbandingan lintas `α` pada satu dataset;
- perbandingan lintas dataset pada tingkat `α` yang sama.
Dengan hanya tiga random seed per kondisi, penelitian ini tidak menjanjikan pengujian signifikansi
statistik. Analisis ditekankan pada nilai rata-rata, variasi antarseed, dan pola yang dapat
ditelusuri dari artefak yang tersimpan.
## 3.12 Validitas dan Reproducibility
Aspek yang dijaga untuk mendukung validitas dan reproduktibilitas:
1. **Perbandingan berpasangan.** Untuk setiap kombinasi dataset, `α`, dan seed, semua kandidat `β`
menggunakan partisi, split, keanggotaan client, pemetaan kelas, dan hyperparameter yang sama.
2. **Manifest beku.** Partisi dan split disimpan sebagai manifest deterministik dan digunakan
kembali tanpa regenerasi.
3. **Pemisahan validasi dan pengujian.** Data validasi digunakan untuk memilih `β`; data pengujian
hanya digunakan setelah `β` ditetapkan.
4. **Data mentah tidak berubah.** Dataset mentah berada di luar repositori dan hanya dibaca.
Hash-nya dicatat untuk verifikasi integritas.
5. **Sumber beku.** Arsitektur, agregasi model, fungsi loss, dan aturan inferensi tidak diubah
selama eksperimen akhir.
6. **Artefak machine-readable.** Hasil analisis disimpan dalam format CSV/JSON agar dapat
diverifikasi ulang.
7. **Asumsi `S_j`.** Penanganan kelas yang tidak tersedia merupakan asumsi reproduksi, sehingga
seluruh hasil bersifat kondisional terhadap asumsi tersebut.
8. **Divergensi floating-point.** `β = 0` setara secara semantik dengan rata-rata seragam pada
`S_j`, tetapi kesamaan bitwise dengan baseline tidak dijamin karena urutan operasi
floating-point.
---
# STUDI PENDAHULUAN
Bagian ini bersifat opsional dan hanya digunakan untuk menunjukkan kelayakan pelaksanaan. Isinya
tidak dimaksudkan sebagai laporan hasil akhir.
Sebuah uji awal pada skala terbatas telah dilakukan untuk memastikan bahwa pipeline pelatihan,
pembentukan partisi non-IID, dan agregasi prototype dapat dijalankan. Dari uji tersebut diperoleh
beberapa indikasi awal:
1. **Kelayakan implementasi.** Baseline PROTEAN dan mode pembobotan `β` dapat dijalankan pada
kedua dataset dengan konfigurasi yang sama.
2. **Ketimpangan dukungan nyata.** Pada kondisi non-IID yang diuji, jumlah sampel kelas `N_ij`
antarclient memang berbeda cukup besar, sehingga isu pembobotan relevan untuk diteliti.
3. **Perubahan `β` menggeser prototype.** Mengubah `β` pada satu langkah agregasi dengan local
prototype yang tetap mengubah posisi global prototype, sejalan dengan rumus yang diusulkan.
4. **Preferensi kandidat dapat berbeda antar kondisi.** Indikasi awal menunjukkan bahwa kandidat
`β` yang tampak lebih baik pada validasi dapat berbeda antara satu kondisi non-IID dan kondisi
lainnya, sehingga pemilihan `β` perlu dilakukan per kondisi.
Indikasi di atas menjadi dasar untuk menjalankan protokol evaluasi lengkap pada Bab III. Studi
pendahuluan ini tidak digunakan untuk menarik kesimpulan akhir mengenai kinerja deteksi kelas
langka.
---
# CATATAN PERBAIKAN BERDASARKAN UMPAN BALIK AKADEMIK
Bagian ini bersifat internal untuk keperluan review dan tidak harus disertakan pada dokumen resmi.
**Arah penelitian sebelumnya.** Rancangan awal mencakup lingkup yang lebih luas, yaitu studi
preservasi kelas langka dengan beberapa mekanisme sekaligus, termasuk Differential Privacy dan
beberapa keluarga intervensi. Pada rancangan tersebut, banyak komponen berubah bersamaan sehingga
sulit menisbahkan perubahan kinerja kepada satu mekanisme tertentu. Kontribusi berisiko menjadi
perbandingan besar, bukan kajian metodologis yang fokus.
**Arah penelitian saat ini.** Lingkup dipersempit menjadi satu metode (PROTEAN), satu komponen
(agregasi prototype di server), satu isu (local prototype dengan dukungan sampel yang berbeda dapat
berkontribusi sama), dan satu mekanisme yang dapat disetel (`β`). Analisis diarahkan pada rantai:
ketimpangan dukungan → bobot kontribusi → pergeseran global prototype → deteksi kelas langka →
dampak per klien.
**Alasan metodologis.** Dengan memodifikasi satu komponen dan mempertahankan sisanya tetap, efek
pembobotan dapat diinterpretasikan lebih jelas. Evaluasi berpasangan pada beberapa kondisi non-IID
memungkinkan pembahasan kapan pembobotan membantu, berdampak kecil, atau merugikan, tanpa harus
mengklaim keunggulan umum. Penambahan validasi untuk memilih `β` juga memisahkan proses pemilihan
dari data pengujian.
**Catatan judul.** Judul saat ini dipertahankan. Kata "Optimasi" dapat dipahami sebagai pencarian
terbaik di antara kandidat `β` yang diuji. Jika diperlukan penekanan bahwa yang dicari bukan
optimum global, frasa seperti "Penyesuaian Terkendali" atau "Penalaan" dapat dipertimbangkan pada
penyempurnaan judul. Penggantian judul tidak dilakukan pada draf ini.
---
# DAFTAR PUSTAKA
Chennoufi, S., Han, Y., Blanc, G., De Cristofaro, E., & Kiennert, C. (2025). PROTEAN: Federated
Intrusion Detection in Non-IID Environments through Prototype-Based Knowledge Sharing. In
*Proceedings of the 30th European Symposium on Research in Computer Security (ESORICS 2025)*
(pp. 103–125). Springer. DOI: 10.1007/978-3-032-07884-1_6. arXiv:2507.05524v1.
Tan, Y., Long, G., Liu, L., Zhou, T., Lu, Q., Jiang, J., & Zhang, C. (2022). FedProto: Federated
Prototype Learning across Heterogeneous Clients. In *Proceedings of the AAAI Conference on
Artificial Intelligence*, 36(8), 8432–8440.
**Catatan referensi.** Dua rujukan di atas sudah didukung oleh dokumen di repositori. Rujukan
tambahan mengenai FL untuk IDS, data non-IID, dan deteksi serangan langka masih diperlukan untuk
memperkuat Bab II. Metadata rujukan tambahan tersebut belum tersedia di repositori dan harus
diverifikasi terlebih dahulu sebelum dimasukkan; tidak ada metadata yang diisi berdasarkan
perkiraan.