Sentetik veri, gerçek olayların kayıtları yerine kullanılmak üzere yazılımla üretilen veridir. Dört yaygın kullanım alanı vardır: bir sistemi henüz yaşanmamış durumlarda test etmek, etiketli eğitim örnekleri elde etmek, modele dolandırıcılık ya da arıza gibi nadir durumları öğretmek ve başkasına verilemeyecek kadar hassas verilerle çalışmak.
İhtiyaç duyulan gerçek veri çok nadirse, paylaşılamayacak kadar hassassa ya da henüz oluşmamışsa sentetik veri kullanılabilir. Bunun için eksik veriyi, üretilebilecek kadar net tarif edebilmek gerekir. Makul bir çabayla daha fazla gerçek veri toplanabiliyorsa ya da sorunu modelde yapılacak daha basit bir değişiklik çözüyorsa, bu yollar genellikle daha ucuz ve daha güvenilirdir.
Asıl soru, eksik verinin üretilebilecek kadar net tarif edilip edilemediği. Sentetik veri, mevcut kayıtlarda bulunmayan uzman bilgisini modele aktarabilir. Ancak örnek üretmek, bilinmeyen bir süreç hakkındaki varsayımları doğrulamaz. Bu yüzden projeye başlamadan önce gerçek veride neyin eksik olduğunu belirlemek gerekir. Ne kadar veri üretileceği daha sonra gelir.
Bu yazıda her kullanım alanını, işe yaraması için gereken koşulla ve o koşul yoksa daha ucuz olan alternatifle birlikte ele alıyoruz. Ardından sentetik verinin yanlış araç olduğu durumlara ve işe yarayıp yaramadığının nasıl anlaşılacağına bakıyoruz.
Sentetik veri, gerçek süreç hakkındaki bilgiye dayanır
Her sentetik veri kümesi üç kaynaktan birinden gelir. İstatistiksel bir model, mevcut kayıtlarınızdaki örüntüleri öğrenir ve aynı örüntülere sahip yeni kayıtlar üretir. Bir simülasyon, bir makinenin aşınması ya da bir kavşaktan geçen trafik gibi bir sürecin fiziğini veya kurallarını izler ve olanları kaydeder. Bir dil ya da görüntü modeli gibi üretken bir model ise istenen şeyin tarifinden yeni metin veya görüntü üretir.
Üç yöntemde de sonuç, veriyi üretmek için kullanılan bilgiyle sınırlıdır. İstatistiksel model kayıtlarınızdaki ilişkileri yeniden üretebilir ama kayıtların hiç göstermediği bir örüntüyü ekleyemez. Simülasyon, ona verilen kurallar kadar doğrudur. Üretken model ise istenen örneği, eğitiminde öğrendiklerine göre oluşturur. Hiçbiri dünyayı gözlemlemez.
Sentetik veriyi değerli kılan da bu sınır, çünkü insanlar çoğu zaman verinin göstermediği şeyleri bilir. Bir mühendis arızalanmak üzere olan bir rulmanın sesini tanır, ama tesis bu durumu yalnızca iki kez kaydetmiştir. Uyum ekibi yeni bir dolandırıcılık yönteminin nasıl işlediğini bilir, ama bu yöntem henüz sizin işlemlerinizde görülmemiştir. Sentetik veri, bu bilginin eğitim ve test malzemesine dönüşmesini sağlar.
Diğer kullanım alanlarında da aynı sınır geçerli. Her biri, gerçek süreci farklı düzeyde anlamayı gerektirir ve bu bilgi eksik olduğunda hepsi aynı şekilde başarısız olur: model, veri üretim aracının varsayımlarını öğrenir ve onları gerçek sanar.
Sentetik veri ne işe yarar?
Üretilen verinin gerçeğe ne kadar benzemesi gerektiği, kullanım amacına bağlı. Test senaryolarında bu gereklilik daha esnektir. Hassas verilerle çalışırken ise hem verinin işe yarayan özelliklerini korumak hem de kişileri tanınamaz hale getirmek gerekir. Aşağıda bu dört kullanımı, testten başlayarak ele alıyoruz.
Henüz yaşanmamış durumları test etmek
Sentetik verinin en güvenli kullanımı testtir. Üretilen vakalar eğitim verisine eklenmez; modelin hangi durumlarda hata yaptığını canlı ortamda bu durumlarla karşılaşmadan önce bulmak için kullanılır.
Bunun en bilinen örneği otonom sürüş. Waymo, sürüş sistemini nadir olaylara hazırlamak için simülatörünü kullandığını anlatıyor: bir kavşakta öndeki araca çok yakın giden bir araç gibi bir durumun pek çok varyasyonunu üretip sistemin olası sonuçlara nasıl tepki verdiğine bakıyor. Waymo, Simulation City Aynı yaklaşım başka alanlarda da kullanılabilir. Bir elektrik şebekesi işletmecisi, tahmin modelini geçmişte kaydedilenlerden daha şiddetli bir sıcak hava dalgasını simüle ederek test edebilir. Bir banka, işlem izleme sistemini uyum ekibinin okuduğu ama henüz karşılaşmadığı bir dolandırıcılık örüntüsüyle deneyebilir. Bir belge işleme sistemi, tedarikçinin duyurduğu ama henüz göndermediği yeni bir form düzeniyle test edilebilir.
Bir test senaryosunun makul olması yeter: sistemi işleten birinin “bu olabilir” diyeceği bir durum olmalı. Eğitim verisinin karşılaması gereken koşullar daha sıkıdır. Testin en az riskli kullanım olmasının nedeni de bu. Üretilen senaryo biraz gerçek dışıysa olabilecek en kötü şey, hiçbir şey bulamayan bir testtir.
Senaryonun makul olup olmadığını sistemi tanıyan biri değerlendirmelidir. Sistemi bu senaryoyla çalıştırıp çıktısını kaydetmek de mümkün olmalıdır. Senaryonun ortaya çıkardığı hataları regresyon testi olarak saklamak da işe yarar; böylece modelin sonraki sürümleri de bu durumlarla test edilir.
Etiketli eğitim örnekleri üretmek
Bir model eğitmenin maliyetinin büyük kısmı etiketlemedir. Birinin her fotoğrafta kusurun nerede olduğunu, bir formda fatura toplamının hangi alanda yazdığını ya da her müşteri mesajının hangi talebi dile getirdiğini işaretlemesi gerekir. Üretilen veride bu adım çoğu zaman atlanır, çünkü veri üretim aracı örneği oluştururken cevabı zaten bilir.
Çizik içeren bir parçanın bilgisayarla üretilmiş görüntüsü, çiziğin tam sınırlarıyla birlikte gelir. Bir şablondan üretilen fatura, her alanın yeri ve değeriyle birlikte gelir. Bu bilgiler, belgelerden bilgi çıkaran modelleri eğitmekte kullanılabilir. Simüle edilmiş bir sensör kaydı, eklenen arızanın tam olarak ne zaman başladığı bilgisini taşır. Belirli bir şikayeti ifade etmesi için üretilen müşteri mesajının etiketi de baştan bellidir. Görüntüde, belgede, sensör verisinde ve metinde etiket ayrı bir iş olmaktan çıkar, üretimin yan ürünü olur.
Bunun işe yaraması için üretilen örneklerin gerçek verideki çeşitliliği kapsaması gerekir. Görüntülerin her zaman gerçek bir fotoğraftan ayırt edilemeyecek kadar ayrıntılı olması gerekmez. Sık atıf yapılan bir robotik çalışmasında, yalnızca bilerek gerçek dışı ve rastgele dokularla oluşturulmuş simülasyon görüntüleriyle eğitilen bir model, gerçek kamera görüntülerinde nesnelerin yerini 1,5 cm hassasiyetle bulabildi. Çeşitlilik o kadar genişti ki gerçek dünya modele bir varyasyon daha gibi göründü. Tobin vd., Domain Randomization Başarısız olan, dar kapsamlı üretimdir: tedarikçiler kırk farklı şablon kullanırken yalnızca üç şablondan üretilen faturalar ya da gerçek mesajlar kısaltma ve yazım hatalarıyla doluyken hepsi dil bilgisi açısından kusursuz müşteri mesajları. Böyle bir veriyle eğitilen model, üretilen test setinde iyi, gerçek girdilerde kötü sonuç verir.
Yaygın çözüm, üretilen veriyle ilk eğitim tamamlandıktan sonra az sayıda gerçek ve etiketli örnekle modele fine-tuning (ince ayar) uygulamaktır. Test için ayrı bir gerçek örnek grubu kullanılır. Elinizde zaten çok sayıda etiketsiz gerçek girdi varsa ve birini etiketlemek saniyeler ya da dakikalar sürüyorsa, iki alternatif çoğu zaman bir veri üretim aracı kurmaktan daha ucuzdur. Ön etiketlemede bir model etiket önerir, kişi yalnızca düzeltir. Aktif öğrenmede ise insanlar yalnızca modelin en çok kararsız kaldığı örnekleri etiketler; bunlar çoğu zaman toplamın küçük bir kısmıdır.
Modele nadir durumları öğretmek
En pahalıya patlayan durumlar çoğu zaman en az örneği olanlardır. Bir tesisin yıllara yayılan sensör verisi olabilir ama kayıtlı arıza sayısı bir elin parmaklarını geçmeyebilir. Bir ödeme sistemi milyonlarca normal işlemi işlerken doğrulanmış dolandırıcılık vakası yalnızca birkaç yüz olabilir. Bu veriyle eğitilen model, nadir durumun neredeyse hiç yaşanmadığını öğrenir. Bu doğru, ama bir sonraki vakayı yakalamaya hiçbir katkısı yok.
Nadir durumun sentetik örnekleri bunu değiştirebilir, yeter ki biri bu durumun veride neye benzediğini tarif edebilsin. Rulman arızasından önceki birkaç gün içinde belirli bir titreşim frekansının yükseldiğini bilen bir bakım mühendisi, bu bilgiyi gerçekçi sensör kayıtlarına dönüştürebilir. Büyük bir sahte işlemden önce gelen küçük deneme ödemelerinin sırasını bilen bir dolandırıcılık analisti, bu örüntüyü üretilebilecek kadar net tarif edebilir. Burada sentetik veri, bir uzmanın bilgisini eğitim verisine taşımanın yolu oluyor.
Nadir durumu kimse tarif edemiyorsa, ondan örnek üretmek bir tahmini çoğaltmak anlamına gelir. Model tahmini tanımayı öğrenir; gerçek vaka geldiğinde ise farklı görünebilir. Böyle bir durumda genellikle başka bir yaklaşım daha iyi sonuç verir: anomali tespiti, normal davranışın neye benzediğini öğrenip bundan sapanları işaretler ve bunun için işlerin ters gidebileceği her yolun örneğine ihtiyaç duymaz.
Örnek üretmeden önce daha fazla gerçek örnek bulunup bulunamayacağına da bakmak gerekir. Nadir durumun gerçek örnekleri birkaç hafta içinde toplanabiliyorsa, örneğin eski kayıtları tarayarak, başka tesislere sorarak ya da çözülmüş ama bu türden bir vaka olarak kaydedilmemiş olayları etiketleyerek, gerçek örnekler üretilmiş olanlardan daha değerlidir.
Başkasına verilemeyen verilerle çalışmak
Bir hastane, bir yazılım ekibine triyaj aracı geliştirtmek istiyor ama hasta kayıtları hastaneden çıkamıyor. Bir banka, yeni bir skorlama sistemini bir tedarikçiye test ettirmek istiyor ama müşteri verisi paylaşılamıyor. Bir kamu kurumu bir üniversiteyle araştırma yapmak istiyor ama kayıtlar vatandaşlara ait. Her durumda aynı sütunlara, dağılımlara ve ilişkilere sahip ama içinde gerçek kişi bulunmayan sentetik bir kopya, işin ilerlemesini sağlayabilir.
Bu, sentetik verinin en zorlu kullanım alanıdır. Aynı anda karşılanması zor iki koşul vardır: veri, yaş, tanı ve yatış süresi arasındaki ilişki gibi çalışma için önemli bilgileri korumalı, kaynak kayıtlardaki kişileri ise ele vermemelidir. Üretilen veri gerçek kayıtlara yaklaştıkça daha kullanışlı hale gelir, ancak kişileri tanıma riski de artar.
Sentetik veri kendiliğinden anonim değildir. Bir veri üretim aracı tek tek kayıtları ezberleyip neredeyse hiç değiştirmeden yeniden üretebilir; bu özellikle sıra dışı kayıtlarda olur. Sentetik veriye erişen biri, belirli bir kişinin özgün veride olup olmadığını bazen anlayabilir. Buna üyelik çıkarımı (membership inference) saldırısı denir. USENIX Security’de sunulan ve birkaç üretken modeli inceleyen bir çalışma, sentetik verinin bu tür çıkarım saldırılarını ya engelleyemediğini ya da engellerken kullanışlılığının büyük kısmını kaybettiğini ortaya koydu. Çalışmaya göre sentetik verinin sağladığı gizlilik korumasını öngörmek, klasik anonimleştirmeninkinden daha zor. Stadler, Oprisanu ve Troncoso, USENIX Security 2022
Kişisel Verilerin Korunması Kanunu (KVKK) kapsamında bir veri ancak başka verilerle eşleştirildiğinde bile belirli ya da belirlenebilir bir kişiyle ilişkilendirilemiyorsa anonim sayılır. Kişisel Verilerin Silinmesi, Yok Edilmesi veya Anonim Hale Getirilmesi Hakkında Yönetmelik Avrupa ve Birleşik Krallık’taki düzenleyiciler de benzer bir yaklaşım izliyor: sentetik bir veri kümesinin anonim olup olmadığı, onu üreten yönteme değil, kişilerin ne kadar belirlenebilir olduğuna dair bir değerlendirmeye bağlı. Ganev, When Synthetic Data Met Regulation
Pratikte bu, çıktının paylaşılmadan önce test edilmesi demek. Gerçek kayıtların birebir ya da neredeyse aynı kopyası olan kayıtlar aranır, tek bir kişiye işaret eden nadir değer kombinasyonlarına bakılır ve risk gerektiriyorsa üyelik çıkarımı testleri çalıştırılır. Diferansiyel gizlilikle (differential privacy) eğitilen veri üretim araçları matematiksel bir garanti sunar; bunun bedeli, üretilen verinin gerçek veriye daha az benzemesidir.
Hangi kayıtları paylaşırdınız?
Bir hastane, üretilmiş hasta kayıtlarını bir yazılım ekibiyle paylaşmak istiyor. Üretilen satırlardan paylaşmayacaklarınızı işaretleyin.
| Yaş | İlçe | Tanı | Gün | Karar |
|---|---|---|---|---|
| Gerçek veri | ||||
| 41 | Çankaya | Apandisit | 2 | |
| 94 | Yusufeli | Wilson hastalığı | 11 | |
| Gerçek veride 90 yaşın üzerinde olup Yusufeli'de yaşayan yalnızca bir hasta var. | ||||
| Üretilen veri | ||||
| 63 | Üsküdar | Tip 2 diyabet | 5 | |
| 41 | Çankaya | Apandisit | 3 | |
| 93 | Yusufeli | Kalp yetmezliği | 9 | |
| 52 | Karşıyaka | Zatürre | 7 | |
4 satırdan 0 tanesi çıkarıldı.
Bu kontroller uygulanabilir değilse çoğu zaman iki daha basit yol var. Yazılım geliştirme ve test için maskeleme ya da takma adlandırma (isim ve kimlik bilgilerini kodlarla değiştirmek) yeterli olabilir; ancak KVKK açısından takma adlandırılmış veri hâlâ kişisel veridir ve öyle işlenmesi gerekir. Model eğitiminde ise veriyi işin yapıldığı yere götürmek yerine işi verinin olduğu yere getirmek çoğu zaman mümkündür: model kurumun kendi ortamında, gerçek kayıtlarla geliştirilir ve eğitilir; dışarı yalnızca eğitilmiş model ya da sonuçları çıkar.
Sentetik verinin yanlış araç olduğu durumlar
Yukarıdaki kullanım alanlarının ortak bir yanı var: belirli bir şey eksik ve birisi onu üretecek kadar bilgi sahibi. Sık karşılaşılan üç durum bu kalıba uymuyor ve her birinde başka bir yol daha ucuz ya da daha güvenli.
Dengesiz veri için genellikle başka bir çözüm gerekir
Bir sınıf diğerinden çok daha nadir olduğunda, örneğin dolandırıcılık işlemleri normal işlemlere göre çok daha azsa, ilk refleks çoğu zaman nadir sınıftan daha fazla örnek üretmek olur. Mevcut azınlık örneklerinin arasından yeni örnekler türeten SMOTE gibi teknikler bu refleksin standart halidir.
Bu yaklaşımı destekleyen kanıtlar, popülerliğinin düşündürdüğünden zayıf. 73 veri kümesi üzerinde yapılan bir çalışma, dengelemenin zayıf sınıflandırıcılara yardımcı olduğunu ama en iyi sonuçların hiç dengeleme yapılmadan eğitilen güçlü gradient boosting modellerinden geldiğini gösterdi. Elor ve Averbuch-Elor, To SMOTE, or not to SMOTE? Tıbbi risk tahmininde lojistik regresyon modelleri üzerine yapılan bir çalışma ise aşırı örnekleme (oversampling), az örnekleme (undersampling) ve SMOTE’un hepsinin tahmin edilen olasılıkları ciddi biçimde şişirdiğini, buna karşın modelin vakaları birbirinden ayırma becerisini artırmadığını buldu. van den Goorbergh vd., JAMIA 2022
Önce denenebilecek daha ucuz üç değişiklik var. Model, nadir sınıfı yansıtan bir ölçütle değerlendirilir; örneğin o sınıf için kesinlik (precision) ve duyarlılık (recall). Hiçbir işlemi işaretlemeyen bir dolandırıcılık modeli yüzde 99,9 doğruluğa ulaşabilir. Eğitimde nadir sınıfa daha fazla ağırlık verilir; çoğu kütüphane bunu tek bir ayarla destekler. Karar eşiği de varsayılan değerinde bırakılmak yerine, kaçırılan bir vakanın ve yanlış bir alarmın ayrı ayrı neye mal olduğuna göre seçilir. Model bunlardan sonra da nadir durumu kaçırıyorsa, önceki bölümdeki gibi, bu durumun veride nasıl göründüğünü ve gerçek örneklerinin toplanıp toplanamayacağını değerlendirmek gerekir.
Daha fazla gerçek veri toplamak mümkünse
Sentetik veri üretmek ucuz görünür, çünkü veri üretim aracı dakikalar içinde binlerce örnek çıkarabilir. Maliyet başka yerdedir. Alan bilgisine sahip biri örnekleri inceler, istatistiksel kontroller üretilen veriyi gerçek veriyle karşılaştırır. Veri kişilerle ilgiliyse gizlilik testleri de bunlara eklenir. Verinin işe yaradığını göstermek için de model, üretilen veriyle ve o veri olmadan iki kez eğitilip değerlendirilir.
Gerçek veri toplamak çoğu zaman ilk bakışta göründüğünden daha uygulanabilir. Birkaç hafta daha kayıt tutmak, hiç işlenmemiş eski bir arşiv, aynı ekipmana sahip ikinci bir tesis ya da işi zaten yapan kişilerin birkaç günlük etiketleme çalışması birkaç bin gerçek örnek sağlayabilir. Bu örnekler gerçeklik kontrolü gerektirmez, veri üretim aracının varsayımlarını taşımaz ve test için de kullanılabilir. Bir sentetik veri projesine başlamadan önce sorulacak iyi bir soru şu: ilgilendiğiniz durumdan 500 gerçek örnek daha toplamak ne kadar sürer? Cevap yıllar değil haftalarsa, oradan başlayın.
Sürecin nasıl işlediği yeterince bilinmiyorsa
Sentetik veri, veri üretim aracını geliştirenlerin bilgisine dayanır. Bir arızanın nedeni bilinmiyorsa, yeni bir pazardaki müşteri davranışı hiç gözlemlenmemişse ya da bir süreç hiç ölçülmemişse, örneğe dönüştürülecek güvenilir bir bilgi yoktur. Bu bilgi olmadan geliştirilen bir araç, varsayımlara göre veri üretir. Model bu varsayımları gerçek olarak öğrenir; model üretilen veriyle de test ediliyorsa test, varsayımları kontrol etmek yerine onları doğrular.
Sentetik veri en çok burada zarar verir, çünkü ortaya çıkan veri kümesi eksiksiz görünür ve arkasındaki bilgi boşluğunu kimse fark etmez. Daha iyi ilk adım öğrenmektir: süreci ölçecek düzeneği kurmak, birkaç gerçek vakayı gözlemlemek ve bu vakalarla uğraşan kişilerle konuşmak. Eksik olan şey tarif edilebilir hale geldiğinde, onun için veri üretmek yeniden bir seçenek olur.
Sentetik mi, gerçek mi?
Sentetik veriyi ne için kullanmak istediğinizi seçin, ardından durumunuzla ilgili iki üç soruyu yanıtlayın.
Başlangıç
Sentetik veriyi ne için kullanmak istiyorsunuz?
Sentetik verinin işe yaradığı nasıl anlaşılır?
Test dışındaki bütün kullanımlarda kontrol aynıdır: model bir kez üretilen veriyle, bir kez de o veri olmadan eğitilir ve iki sürüm yalnızca gerçek örnekler üzerinde karşılaştırılır. Gerçek test örneklerinin, veri üretim aracının hiç görmediği, ilham kaynağı olarak bile kullanılmamış örnekler olması gerekir. Bu yönteme genellikle “sentetikle eğit, gerçekle test et” (train-synthetic, test-real) değerlendirmesi denir. Üretilen verinin modelin gerçek verilerle çalışırken de işine yarayıp yaramadığını doğrudan gösterir. Clearbox, utility evaluation
Yalnızca genel skora değil, sentetik verinin modelin performansını artırması beklenen durumlara da bakmak gerekir. Nadir bir arıza için üretilen veri, modelin o arızayı yakalama oranını artırmalıdır. Genel skor biraz yükselir ama nadir durum hâlâ kaçırılıyorsa, veri amacına ulaşmamış demektir. İkisinde de iyileşme yoksa, üretimine ne kadar emek harcanmış olursa olsun bu veriyi kullanmaktan vazgeçmek gerekir.
Her şeyden önce, üretilen veriyi test setinin dışında tutun. Eğitim ve test verisi aynı araçla üretildiğinde model, o aracın tekrarladığı örüntüleri tanıyarak testte başarılı olabilir. Skorlar iyi görünür ama gerçek performans hakkında hiçbir şey söylemez. Bir sentetik veri projesinin modeli testte iyi gösterip kullanımda kötüleştirmesi de böyle olur.
Veri üretmeden önce eksik olanı yazın
Bir veri üretim aracı kurmadan önce eksik olan şeyi tek bir cümleyle yazmayı deneyin. “Daha fazla veriye ihtiyacımız var” sayılmaz. “Üçüncü hatta kayıtlı on iki conta arızamız var; modelin bu arızalardan önce gelen ve bakım sorumlumuzun tarif edebildiği titreşim örüntüsünü tanıması gerekiyor” sayılır.
Bu cümleyi yazabiliyorsanız neyi üreteceğinizi, kimin inceleyeceğini ve hangi gerçek vakalarla test edeceğinizi de biliyorsunuz demektir. Yazamıyorsanız daha fazla veri işe yaramaz, çünkü eksik olan vakanın kendisini anlamak. Bunun için de genellikle elinizdeki gerçek vakalardan başlamak gerekir.


