Üretken Düşman Ağları ile Rastgele Gürültüden Veri Oluşturun
Yayınlanan: 2022-03-11Üretken rakip ağları (GAN'lar) öğrendiğimden beri, onlardan büyülendim. GAN, sıfırdan yeni veriler üretebilen bir tür sinir ağıdır. Girdi olarak onu biraz rastgele gürültü ile besleyebilirsiniz ve yatak odası, kuş veya her ne üretmek için eğitildiyse gerçekçi görüntülerini üretebilir.
Tüm bilim adamlarının hemfikir olduğu bir şey, daha fazla veriye ihtiyacımız olduğudur.
Veri sınırlı durumlarda yeni veri üretmek için kullanılabilen GAN'lar gerçekten faydalı olabilir. Verilerin üretilmesi bazen zor, pahalı ve zaman alıcı olabilir. Yararlı olması için, yeni verilerin yeterince gerçekçi olması gerekir ki, üretilen verilerden elde ettiğimiz içgörüler hala gerçek veriler için geçerlidir. Bir kediyi fareleri avlaması için eğitiyorsanız ve sahte fareler kullanıyorsanız, sahte farelerin gerçekten fareye benzediğinden emin olsanız iyi olur.
Bunu düşünmenin başka bir yolu, GAN'ların verilerde gerçekçi veriler oluşturmalarına olanak tanıyan yapıyı keşfetmesidir. Bu yapıyı kendi başımıza göremiyorsak veya başka yöntemlerle çıkaramıyorsak bu yararlı olabilir.
Bu makalede, GAN'ların yeni veriler oluşturmak için nasıl kullanılabileceğini öğreneceksiniz. Bu öğreticiyi gerçekçi tutmak için Kaggle'ın kredi kartı sahtekarlığı algılama veri setini kullanacağız.
Deneylerimde, dolandırıcılık durumlarını tespit etmemize yardımcı olacak kadar gerçekçi veriler oluşturmak için bir GAN alıp alamayacağımı görmek için bu veri setini kullanmaya çalıştım. Bu veri kümesi, sınırlı veri sorununu vurgulamaktadır: 285.000 işlemden sadece 492'si sahtekarlıktır. 492 dolandırıcılık vakası, üzerinde çalışılacak büyük bir veri kümesi değildir, özellikle de insanların birkaç kat daha büyük veri kümelerine sahip olmayı sevdiği makine öğrenimi görevleri söz konusu olduğunda. Denememin sonuçları şaşırtıcı olmasa da, paylaşmaktan mutluluk duyduğum yol boyunca GAN'lar hakkında çok şey öğrendim.
Başlamadan önce
Bu GAN alanına girmeden önce, makine öğrenimi veya derin öğrenme becerilerinizi hızla geliştirmek istiyorsanız, bu iki ilgili blog gönderisine göz atabilirsiniz:
- Makine Öğrenimi Teorisine Giriş ve Uygulaması: Örneklerle Görsel Bir Eğitim
- Derin Öğrenme Eğitimi: Algılayıcılardan Derin Ağlara
Neden GAN'lar?
Üretken rakip ağlar (GAN'lar), varyasyonel otomatik kodlayıcılar veya kısıtlı boltzman makineleri gibi önceki üretken yöntemlere göre etkileyici gelişmeler gösteren bir sinir ağı mimarisidir. GAN'lar daha gerçekçi görüntüler (örneğin, DCGAN), görüntüler arasında stil aktarımını etkinleştirebilir (buraya ve buraya bakın), metin açıklamalarından görüntüler oluşturabildi (StackGAN) ve yarı denetimli öğrenme yoluyla daha küçük veri kümelerinden öğrenebildi. Bu başarıları nedeniyle hem akademik hem de ticari sektörlerde büyük ilgi görüyorlar.
Facebook'taki AI Araştırma Direktörü Yann LeCunn, onları son on yılda makine öğrenimindeki en heyecan verici gelişme olarak nitelendirdi.
Temeller
Nasıl öğrendiğini düşün. Bir şey denersin, geri bildirim alırsın. Stratejinizi ayarlayın ve tekrar deneyin.
Geri bildirim eleştiri, acı veya kâr şeklinde gelebilir. Ne kadar iyi yaptığınıza dair kendi yargınızdan gelebilir. Çoğu zaman en faydalı geri bildirim, başka bir kişiden gelen geri bildirimdir, çünkü bu yalnızca bir sayı veya duyum değil, görevi ne kadar iyi yerine getirdiğinizin akıllı bir değerlendirmesidir.
Bir bilgisayar bir görev için eğitildiğinde, insan genellikle geri bildirimi ayarlanmış parametreler veya algoritmalar şeklinde sağlar. Bu, iki sayıyı çarpmayı öğrenmek gibi görev iyi tanımlandığında işe yarar. Bilgisayara nasıl yanlış olduğunu kolayca ve tam olarak söyleyebilirsiniz.
Köpek görüntüsü oluşturmak gibi daha karmaşık bir görevle, geri bildirim sağlamak daha zor hale gelir. Görüntü bulanık mı, daha çok bir kediye mi benziyor yoksa herhangi bir şeye mi benziyor? Karmaşık istatistikler uygulanabilir, ancak bir görüntünün gerçek görünmesini sağlayan tüm ayrıntıları yakalamak zor olurdu.
Bir insan bir miktar tahminde bulunabilir, çünkü görsel girdiyi değerlendirme konusunda çok fazla deneyimimiz var, ancak nispeten yavaşız ve değerlendirmelerimiz oldukça öznel olabilir. Bunun yerine, gerçek ve oluşturulmuş görüntüler arasında ayrım yapma görevini öğrenmek için bir sinir ağını eğitebiliriz.
Ardından, görüntü oluşturucunun (ayrıca bir sinir ağı) ve ayırt edicinin sırayla birbirlerinden öğrenmesine izin vererek, zamanla gelişebilirler. Bu oyunu oynayan bu iki ağ, üretken bir düşman ağıdır.
GAN'ların mucidi Ian Goodfellow'un, bu konuyla ilgili bir barda yapılan tartışmanın, ilk GAN'la sonuçlanan hararetli bir kodlama gecesine nasıl yol açtığı hakkında konuştuğunu duyabilirsiniz. Ve evet, makalesinde barı kabul ediyor. Ian Goodfellow'un bu konudaki blogundan GAN'lar hakkında daha fazla bilgi edinebilirsiniz.
GAN'larla çalışırken bir takım zorluklar vardır. Tek bir sinir ağını eğitmek, ilgili seçeneklerin sayısı nedeniyle zor olabilir: Mimari, etkinleştirme işlevleri, optimizasyon yöntemi, öğrenme oranı ve bırakma oranı, bunlardan sadece birkaçı.
GAN'lar tüm bu seçenekleri ikiye katlar ve yeni karmaşıklıklar ekler. Hem üretici hem de ayrımcı, eğitimlerinde daha önce kullandıkları hileleri unutabilir. Bu, iki ağın zamanla gelişmeyen istikrarlı bir çözüm döngüsüne yakalanmasına neden olabilir. Bir ağ diğer ağa baskın gelebilir, öyle ki ikisi de artık öğrenemez. Veya üreteç olası çözüm uzayının çoğunu keşfetmeyebilir, yalnızca gerçekçi çözümler bulmaya yetecek kadarını keşfedebilir. Bu son durum mod çökmesi olarak bilinir.
Mod çökmesi, jeneratörün olası gerçekçi modların yalnızca küçük bir alt kümesini öğrendiği zamandır. Örneğin, görev köpeklerin görüntülerini oluşturmaksa, üretici yalnızca küçük kahverengi köpeklerin görüntülerini oluşturmayı öğrenebilir. Jeneratör, diğer boyut veya renkteki köpeklerden oluşan diğer tüm modları kaçıracaktı.
Toplu normalleştirme, eğitim verilerine etiket ekleme veya ayrımcının oluşturulan verileri değerlendirme şeklini değiştirme dahil olmak üzere, bunu ele almak için birçok strateji uygulanmıştır.
İnsanlar, verilere etiket eklemenin, yani kategorilere ayırmanın neredeyse her zaman GAN'ların performansını iyileştirdiğini belirtmişlerdir. Genel olarak evcil hayvanların görüntülerini oluşturmayı öğrenmek yerine, örneğin kedi, köpek, balık ve yaban gelinciği görüntülerini oluşturmak daha kolay olmalıdır.
Belki de GAN geliştirmesindeki en önemli atılımlar, ayrımcının verileri nasıl değerlendirdiğini değiştirmek açısından geldi, o yüzden buna daha yakından bakalım.
Goodfellow ve diğerleri tarafından 2014 yılında GAN'ların orijinal formülasyonunda, ayırıcı, belirli bir görüntünün gerçek veya oluşturulmuş olma olasılığına ilişkin bir tahmin oluşturur. Ayırıcıya hem gerçek hem de üretilmiş görüntülerden oluşan bir dizi görüntü sağlanacak ve bu girdilerin her biri için bir tahmin üretecektir. Ayırıcı çıktısı ile gerçek etiketler arasındaki hata daha sonra çapraz entropi kaybı ile ölçülecektir. Çapraz entropi kaybı, Jensen-Shannon mesafe metriğine eşitlenebilir ve 2017'nin başlarında Arjovsky ve diğerleri tarafından gösterildi. bu metriğin bazı durumlarda başarısız olacağı ve diğer durumlarda doğru yönü göstermeyeceği. Bu grup, Wasserstein mesafe metriğinin (toprak hareket ettirici veya EM mesafesi olarak da bilinir) daha birçok durumda daha iyi çalıştığını ve daha iyi çalıştığını gösterdi.
Çapraz entropi kaybı, ayırıcının gerçek ve oluşturulmuş görüntüleri ne kadar doğru tanımladığının bir ölçüsüdür. Wasserstein metriği bunun yerine gerçek ve oluşturulan görüntülerdeki her bir değişkenin (yani her pikselin her renginin) dağılımına bakar ve gerçek ve oluşturulan veriler için dağılımların ne kadar uzakta olduğunu belirler. Wasserstein metriği, üretilen dağılımı gerçek dağılımın şekline sokmak için kütle çarpı mesafe açısından ne kadar çaba gerektireceğine bakar, bu nedenle alternatif adı "dünya hareket ettirici mesafesi". Wasserstein metriği artık bir görüntünün gerçek olup olmadığını değerlendirmediği, bunun yerine oluşturulan görüntülerin gerçek görüntülerden ne kadar uzak olduğuna dair eleştiri sağladığı için, Wasserstein'da “ayrımcı” ağ “eleştirmen” ağı olarak anılır. mimari.
GAN'ların biraz daha kapsamlı bir şekilde araştırılması için bu makalede dört farklı mimariyi keşfedeceğiz:
- GAN: Orijinal (“vanilya”) GAN
- CGAN: Sınıf etiketlerini kullanan orijinal GAN'ın koşullu bir sürümü
- WGAN: Wasserstein GAN (gradyan cezalı)
- WCGAN: Wasserstein GAN'ın koşullu bir versiyonu
Ama önce veri setimize bir göz atalım.
Kredi Kartı Dolandırıcılık Verilerine Bir Bakış
Kaggle'ın kredi kartı dolandırıcılık tespit veri seti ile çalışacağız.
Veri kümesi, yalnızca 492'si hileli olan ~285.000 işlemden oluşmaktadır. Veriler 31 özellikten oluşur: "zaman", "miktar", "sınıf" ve 28 ek, anonimleştirilmiş özellik. Sınıf özelliği, bir işlemin hileli olup olmadığını gösteren etiket olup, 0 normali ve 1 hileyi gösterir. Tüm veriler sayısal ve süreklidir (etiket hariç). Veri kümesinde eksik değer yoktur. Başlangıç için veri kümesi zaten oldukça iyi durumda, ancak biraz daha temizlik yapacağım, çoğunlukla tüm özelliklerin ortalamasını sıfıra ve standart sapmaları bire ayarlayacağım. Buradaki not defterinde temizleme işlemimi daha fazla anlattım. Şimdilik sadece nihai sonucu göstereceğim:
Bu dağılımlardaki normal ve dolandırıcılık verileri arasındaki farklar kolaylıkla tespit edilebilir, ancak aynı zamanda çok fazla örtüşme vardır. Dolandırıcılığı tespit etmek için en kullanışlı özellikleri belirlemek için daha hızlı ve daha güçlü makine öğrenimi algoritmalarından birini uygulayabiliriz. Bu algoritma, xgboost, gradyan destekli bir karar ağacı algoritmasıdır. Veri setinin %70'inde eğiteceğiz ve kalan %30'unda test edeceğiz. Algoritmayı, test veri kümesinde geri çağırmayı (tespit edilen sahtekarlık örneklerinin oranı) iyileştirmeyene kadar devam edecek şekilde ayarlayabiliriz. Bu, test setinde %76 geri çağırma sağlar ve bu da açıkça iyileştirmeye yer bırakır. %94'lük bir kesinlik sağlıyor, yani tahmin edilen dolandırıcılık vakalarının sadece %6'sı aslında normal işlemlerdi. Bu analizden, dolandırıcılığı tespit etmedeki yardımcı programlarına göre sıralanmış özelliklerin bir listesini de elde ederiz. Sonuçlarımızı daha sonra görselleştirmeye yardımcı olması için en önemli özellikleri kullanabiliriz.

Yine, daha fazla dolandırıcılık verisine sahip olsaydık, onu daha iyi tespit edebilirdik. Yani, daha yüksek bir geri çağırma elde edebiliriz. Şimdi, gerçek dolandırıcılığı tespit etmemize yardımcı olması için GAN'ları kullanarak yeni, gerçekçi dolandırıcılık verileri oluşturmaya çalışacağız.
GAN'larla Yeni Kredi Kartı Verisi Oluşturma
Bu veri kümesine çeşitli GAN mimarileri uygulamak için, Keras kitaplığı ve bir TensorFlow arka ucu kullanılarak Python'da uygulanan bir dizi popüler GAN mimarisine sahip GAN-Sandbox'tan yararlanacağım. Tüm sonuçlarım burada bir Jupyter not defteri olarak mevcuttur. Kolay bir kuruluma ihtiyacınız varsa, gerekli tüm kitaplıklar Kaggle/Python Docker görüntüsüne dahil edilmiştir.
GAN-Sandbox'taki örnekler, görüntü işleme için ayarlanmıştır. Oluşturucu, her piksel için 3 renk kanalına sahip bir 2D görüntü üretir ve ayırıcı/eleştirmen bu tür verileri değerlendirecek şekilde yapılandırılır. Görüntü verilerinin uzamsal yapısından yararlanmak için ağ katmanları arasında evrişimsel dönüşümler kullanılır. Evrişimsel katmandaki her nöron, uzamsal ilişkilerin öğrenilmesine izin vermek için yalnızca küçük bir girdi ve çıktı grubuyla (örneğin bir görüntüdeki bitişik pikseller) çalışır. Kredi kartı veri kümemiz, değişkenler arasında herhangi bir uzamsal yapıdan yoksundur, bu yüzden evrişimli ağları yoğun bağlantılı katmanlara sahip ağlara dönüştürdüm. Yoğun bağlantılı katmanlardaki nöronlar, katmanın her girişine ve çıkışına bağlanır ve ağın özellikler arasındaki kendi ilişkilerini öğrenmesini sağlar. Bu kurulumu mimarilerin her biri için kullanacağım.
Değerlendireceğim ilk GAN, ağları eğitmek için diskriminatörden gelen çapraz entropi kaybını kullanarak, jeneratör ağını diskriminatör ağına karşı çukurlaştırır. Bu orijinal, "vanilya" GAN mimarisidir. Değerlendireceğim ikinci GAN, verilere koşullu GAN (CGAN) tarzında sınıf etiketleri ekler. Bu GAN'ın verilerde sınıf etiketi olan bir değişkeni daha vardır. Üçüncü GAN, ağları eğitmek için Wasserstein mesafe metriğini (WGAN) kullanacak ve sonuncusu, sınıf etiketlerini ve Wasserstein mesafe metriğini (WCGAN) kullanacak.
492 dolandırıcılık işleminin tamamını içeren bir eğitim veri kümesini kullanarak çeşitli GAN'ları eğiteceğiz. Koşullu GAN mimarilerini kolaylaştırmak için dolandırıcılık veri setine sınıflar ekleyebiliriz. Defterde birkaç farklı kümeleme yöntemini araştırdım ve dolandırıcılık verilerini 2 sınıfa ayıran bir KMeans sınıflandırması ile gittim.
Her GAN'ı 5000 tur için eğiteceğim ve yol boyunca sonuçları inceleyeceğim. Şekil 4'te, eğitim ilerledikçe gerçek dolandırıcılık verilerini ve farklı GAN mimarilerinden oluşturulan sahtekarlık verilerini görebiliriz. Gerçek dolandırıcılık verilerinin 2 KMeans sınıfına bölündüğünü ve bu iki sınıfı en iyi şekilde ayırt eden 2 boyutla çizildiğini görebiliriz (PCA dönüştürülmüş özelliklerden V10 ve V17 özellikleri). Sınıf bilgisini kullanmayan iki GAN, GAN ve WGAN, üretilen çıktılarının tümünü tek bir sınıf olarak alır. Koşullu mimariler, CGAN ve WCGAN, oluşturulan verilerini sınıfa göre gösterir. 0 adımında, üretilen verilerin tümü, jeneratörlere beslenen rastgele girdinin normal dağılımını gösterir.
Orijinal GAN mimarisinin gerçek verilerin şeklini ve aralığını öğrenmeye başladığını ancak daha sonra küçük bir dağılıma doğru çöktüğünü görebiliriz. Bu, daha önce tartışılan mod çöküşüdür. Üretici, ayrımcının sahte olduğunu tespit etmekte zorlandığı küçük bir veri aralığı öğrendi. CGAN mimarisi, her sahtekarlık verisi sınıfının dağılımına yayılarak ve yaklaşarak biraz daha iyi sonuç verir, ancak daha sonra, adım 5000'de görülebileceği gibi mod çöküşü başlar.
WGAN, GAN ve CGAN mimarileri tarafından sergilenen mod çökmesini yaşamaz. Sınıf bilgisi olmadan bile, gerçek dolandırıcılık verilerinin normal olmayan dağılımını varsaymaya başlar. WCGAN mimarisi benzer şekilde çalışır ve ayrı veri sınıfları üretebilir.
Daha önce sahtekarlık tespiti için kullanılan aynı xgboost algoritmasını kullanarak verilerin ne kadar gerçekçi göründüğünü değerlendirebiliriz. Hızlı ve güçlüdür ve fazla ayar yapmadan kullanıma hazırdır. Gerçek sahtekarlık verilerinin yarısını (246 örnek) ve eşit sayıda GAN tarafından oluşturulan örneği kullanarak xgboost sınıflandırıcısını eğiteceğiz. Ardından, gerçek sahtekarlık verilerinin diğer yarısını ve 246 GAN tarafından oluşturulan farklı bir örnek kümesini kullanarak xgboost sınıflandırıcısını test edeceğiz. Bu ortogonal yöntem (deneysel anlamda) bize üretecin gerçekçi veriler üretmede ne kadar başarılı olduğuna dair bazı göstergeler verecektir. Mükemmel gerçekçilikteki verilerle, xgboost algoritması 0,50 (%50) doğruluk elde etmelidir - başka bir deyişle, tahmin etmekten daha iyi değildir.
GAN tarafından oluşturulan verilerde xgboost doğruluğunun önce azaldığını ve ardından mod çökmesi devreye girdikçe 1000. adımdan sonra arttığını görebiliriz. kuyu. WGAN ve WCGAN mimarileri daha gerçekçi verilere daha hızlı ulaşır ve eğitim ilerledikçe öğrenmeye devam eder. WCGAN'ın WGAN üzerinde fazla bir üstünlüğü yok gibi görünüyor, bu da oluşturulan bu sınıfların Wasserstein GAN mimarileri için yararlı olmayabileceğini düşündürüyor.
WGAN mimarisi hakkında buradan ve buradan daha fazla bilgi edinebilirsiniz.
WGAN ve WCGAN mimarilerindeki kritik ağ, belirli bir veri kümesi ile gerçek dolandırıcılık verileri arasındaki Wasserstein (Earth-mover, EM) mesafesini hesaplamayı öğreniyor. İdeal olarak, gerçek dolandırıcılık verilerinin bir örneği için sıfıra yakın bir mesafeyi ölçecektir. Ancak eleştirmen, bu hesaplamanın nasıl yapılacağını öğrenme sürecindedir. Üretilen veriler için gerçek verilerden daha büyük bir mesafeyi ölçtüğü sürece, ağ gelişebilir. Oluşturulan ve gerçek veriler için Wasserstein mesafeleri arasındaki farkın eğitim boyunca nasıl değiştiğini izleyebiliriz. Düzleşirse, daha fazla eğitim yardımcı olmayabilir. Şekil 6'da, bu veri setinde hem WGAN hem de WCGAN için daha fazla iyileştirmenin var gibi göründüğünü görebiliriz.
Ne Öğrendik?
Artık gerçek dolandırıcılık verilerini tespit etmemize yardımcı olacak kadar gerçekçi yeni dolandırıcılık verileri üretip üretemeyeceğimizi test edebiliriz. En düşük doğruluk puanına ulaşan eğitimli jeneratörü alabilir ve bunu veri üretmek için kullanabiliriz. Temel eğitim setimiz için dolandırıcılık dışı verilerin %70'ini (199.020 vaka) ve 100 dolandırıcılık verisi vakasını (dolandırıcılık verilerinin ~%20'si) kullanacağız. Ardından, bu eğitim setine 344 vakaya kadar (dolandırıcılık verilerinin %70'i) farklı miktarlarda gerçek veya oluşturulmuş sahtekarlık verileri eklemeyi deneyeceğiz. Test seti için, dolandırıcılık dışı davaların (85.295 dava) ve dolandırıcılık davalarının (148 dava) diğer %30'unu kullanacağız. Oluşturulan verilerin rastgele gürültüden daha iyi olup olmadığını test etmek için eğitimsiz bir GAN'dan ve en iyi eğitimli GAN'dan oluşturulan verileri eklemeyi deneyebiliriz. Testlerimizden, en iyi mimarimizin, %70'lik bir xgboost doğruluğu elde ettiği 4800 eğitim adımındaki WCGAN olduğu görülüyor (unutmayın, ideal olarak, doğruluk %50'dir). Bu yüzden yeni dolandırıcılık verileri oluşturmak için bu mimariyi kullanacağız.
Şekil 7'de, eğitim için daha fazla oluşturulmuş sahtekarlık verisi kullandığımızdan, geri çağırmanın (test setinde doğru bir şekilde tanımlanan gerçek sahtekarlık örneklerinin oranı) artmadığını görebiliriz. xgboost sınıflandırıcı, 100 gerçek vakadan sahtekarlığı belirlemek için kullandığı tüm bilgileri saklayabilir ve yüz binlerce normal vaka arasından seçildiğinde bile, oluşturulan ek verilerle karıştırılmaz. Eğitimsiz WCGAN'dan üretilen veriler şaşırtıcı bir şekilde yardımcı olmuyor veya zarar vermiyor. Ancak eğitimli WCGAN'dan üretilen veriler de yardımcı olmuyor. Görünüşe göre veriler yeterince gerçekçi değil. Şekil 7'de, eğitim setini desteklemek için gerçek dolandırıcılık verileri kullanıldığında, hatırlamanın önemli ölçüde arttığını görebiliriz. WCGAN, hiç yaratıcı olmadan eğitim örneklerini çoğaltmayı yeni öğrenmiş olsaydı, gerçek verilerle gördüğümüz gibi daha yüksek hatırlama oranları elde edebilirdi.
Sonsuza kadar ve ötesine
Gerçek dolandırıcılığı tespit etmemize yardımcı olacak kadar gerçekçi kredi kartı dolandırıcılık verileri üretemezken, bu yöntemlerle yüzeyi zar zor çizebildik. Daha büyük ağlarla daha uzun süre eğitebilir ve bu makalede denediğimiz mimariler için parametreleri ayarlayabiliriz. xgboost doğruluğu ve ayrımcı kaybındaki eğilimler, daha fazla eğitimin WGAN ve WCGAN mimarilerine yardımcı olacağını öne sürüyor. Diğer bir seçenek de, gerçekleştirdiğimiz veri temizliğini tekrar gözden geçirmek, belki bazı yeni değişkenler tasarlamak veya özelliklerdeki çarpıklığı nasıl ve nasıl çözeceğimizi değiştirmek. Belki de dolandırıcılık verilerinin farklı sınıflandırma şemaları yardımcı olabilir.
Diğer GAN mimarilerini de deneyebiliriz. DRAGAN, Wasserstein GAN'larından daha hızlı ve daha kararlı bir şekilde eğitildiğini gösteren teorik ve deneysel kanıtlara sahiptir. Sınırlı eğitim setlerinden öğrenme konusunda umut vaat eden yarı denetimli öğrenmeyi kullanan yöntemleri entegre edebiliriz (bkz. Bize insan tarafından anlaşılabilir modeller sunan bir mimari deneyebiliriz, böylece verinin yapısını daha iyi anlayabiliriz (bkz. InfoGAN).
Ayrıca bu alandaki yeni gelişmeleri de takip etmeliyiz ve son olarak ama kesinlikle en az değil, hızla gelişen bu alanda kendi yeniliklerimizi yaratmak için çalışabiliriz.
Bu makaleyle ilgili tüm kodları bu GitHub deposunda bulabilirsiniz.