diff --git a/docs/proposal/PROPOSAL_SOURCE_MAP.md b/docs/proposal/PROPOSAL_SOURCE_MAP.md new file mode 100644 index 0000000..9f66852 --- /dev/null +++ b/docs/proposal/PROPOSAL_SOURCE_MAP.md @@ -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]` | diff --git a/docs/proposal/THESIS_PROPOSAL_DRAFT.md b/docs/proposal/THESIS_PROPOSAL_DRAFT.md new file mode 100644 index 0000000..3988938 --- /dev/null +++ b/docs/proposal/THESIS_PROPOSAL_DRAFT.md @@ -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.