Γιατί Η Αναπαραγωγιμότητα Σημαίνει στο ML
Ερευνητικά πρότυπα απαιτούν αναπαραγώγιμα αποτελέσματα:
- Ίδιο dataset → Ίδιο trained model
- Ίδιο trained model → Ίδια evaluation metrics
Εάν το training dataset ανωνυμοποιείται διαφορετικά σε κάθε εκτέλεση:
- «John Smith» → Run 1: [ΟΝΟΜΑ_001], Run 2: [PERSON_xyz]
- Model δεν είναι αναπαραγώγιμο
Deterministic Ανωνυμοποίηση
Λύση: Hashed pseudonyms
import hashlib
def deterministic_pseudonym(value, salt, entity_type):
hash_input = f"{entity_type}:{value}:{salt}"
hash_value = hashlib.sha256(hash_input.encode()).hexdigest()[:8]
return f"[{entity_type}_{hash_value}]"
# Αποτέλεσμα:
# «John Smith» → [PERSON_3a7f9b2c] (πάντα το ίδιο)
# «John Smith» → [PERSON_3a7f9b2c] (και στη δεύτερη εκτέλεση)
Privacy Presets για ML Training
Preset: Research-grade anonymization
- Deterministic pseudonyms (HMAC-based)
- Fixed seed για αναπαραγωγιμότητα
- Logging hash function + salt (για audit)
- Καταστροφή salt μετά training (αδύνατη αποκρυπτογράφηση)
GDPR Εκτίμηση:
- Deterministic pseudonyms ΔΕΝ = ανωνυμοποίηση (GDPR εξακολουθεί να εφαρμόζεται)
- Αλλά: Τεχνική αδυναμία επαναναγνώρισης εάν salt καταστραφεί = αξιόπιστα ψευδωνυμοποιημένο
Πηγές: