Üretken Düşman Ağları (GAN): Bir Giriş
Yayınlanan: 2022-08-16Üretken rakip ağlar (GAN'lar), eski resimlerinizi oluşturmaktan ve sesinizi güçlendirmekten tıp ve diğer endüstrilerde çeşitli uygulamalar sağlamaya kadar birçok kullanım durumunda çok fazla potansiyel sunan modern teknolojilerden biridir.
Bu ileri teknoloji, ürünlerinizi ve hizmetlerinizi şekillendirmenize yardımcı olabilir. Anıları korumak için görüntü kalitesini iyileştirmek için de kullanılabilir.
GAN'lar birçokları için bir nimet olsa da, bazıları bunu endişe verici buluyor.
Ama bu teknoloji tam olarak nedir?
Bu yazıda GAN'ın ne olduğunu, nasıl çalıştığını ve uygulamalarını tartışacağım.
Öyleyse, hemen dalalım!
Üretken Düşman Ağı Nedir?
Generative Adversarial Network (GAN), resimler, benzersiz müzik, çizimler vb. gibi daha doğru tahminler üretmek için yarışan iki sinir ağından oluşan bir makine öğrenimi çerçevesidir.
GAN'lar, bir bilgisayar bilimcisi ve mühendisi olan Ian Goodfellow ve bazı meslektaşları tarafından 2014 yılında tasarlandı. Bunlar, eğitildiklerine benzer yeni veriler üretebilen benzersiz derin sinir ağlarıdır. Bir ajanın oyunu kaybederken diğerinin kazanmasıyla sonuçlanan sıfır toplamlı bir oyunda rekabet ederler.

Başlangıçta, GAN'lar, çoğunlukla denetimsiz öğrenme olmak üzere makine öğrenimi için üretken bir model olarak önerildi. Ancak GAN'lar, tam denetimli öğrenme, yarı denetimli öğrenme ve pekiştirmeli öğrenme için de yararlıdır.
Bir GAN'da rekabet halindeki iki blok şunlardır:
Jeneratör: Yapay olarak gerçek verilere benzer çıktılar üreten evrişimsel bir sinir ağıdır.
Ayırt edici: Yapay olarak oluşturulan çıktıları tanımlayabilen, evrişimsiz bir sinir ağıdır.
Anahtar kavramlar
GAN kavramını daha iyi anlamak için, ilgili bazı önemli kavramları hızlıca anlayalım.
Makine öğrenimi (ML)

Makine öğrenimi, görevleri gerçekleştirirken veya kararlar alırken veya tahminlerde bulunurken performansı ve doğruluğu artırmak için verilerden yararlanan öğrenme ve modeller oluşturmayı içeren yapay zekanın (AI) bir parçasıdır.
ML algoritmaları, eğitim verilerine dayalı modeller oluşturarak sürekli öğrenme ile iyileşir. Bilgisayarlı görme, otomatik karar verme, e-posta filtreleme, tıp, bankacılık, veri kalitesi, siber güvenlik, konuşma tanıma, öneri sistemleri ve daha fazlası dahil olmak üzere birçok alanda kullanılırlar.
Ayrımcı Model

Derin öğrenme ve makine öğreniminde, ayırt edici model, bir dizi düzey veya iki sınıf arasında ayrım yapmak için bir sınıflandırıcı olarak çalışır.
Örneğin, farklı meyveler veya hayvanlar arasında ayrım yapmak.
Üretken Model
Üretken modellerde, yeni gerçekçi resimler oluşturmak için rastgele örnekler dikkate alınır. Bazı nesnelerin veya canlıların gerçek görüntülerinden kendi gerçekçi ancak taklit fikirlerini üretmeyi öğrenir. Bu modeller iki tiptir:
Varyasyonlu otomatik kodlayıcılar: Ayrı sinir ağları olan kodlayıcıları ve kod çözücüleri kullanırlar. Bu işe yarar, çünkü belirli bir gerçekçi görüntü, bu görüntüleri gizli bir uzayda vektörler olarak temsil etmek için bir kodlayıcıdan geçer.
Daha sonra, bu görüntülerin bazı gerçekçi kopyalarını üretmek için bu yorumları almak için bir kod çözücü kullanılır. İlk başta görüntü kalitesi düşük olabilir, ancak kod çözücü tamamen işlevsel hale geldikten sonra gelişecektir ve kodlayıcıyı göz ardı edebilirsiniz.
Üretken rakip ağlar (GAN'lar): Yukarıda tartışıldığı gibi, GAN, sağladığı veri girişinden yeni, benzer veriler üretebilen derin bir sinir ağıdır. Aşağıda tartışılan makine öğrenimi türlerinden biri olan denetimsiz makine öğrenimi kapsamındadır.
denetimli öğrenme

Denetimli eğitimde, bir makine iyi etiketlenmiş veriler kullanılarak eğitilir. Bu, bazı verilerin zaten doğru yanıtla etiketleneceği anlamına gelir. Burada, denetimli öğrenme algoritmasının eğitim verilerini analiz etmesini ve bu etiketlenmiş verilerden doğru bir sonuç üretmesini sağlamak için makineye bazı veriler veya örnekler verilir.
denetimsiz öğrenme
Denetimsiz öğrenme, etiketlenmemiş veya sınıflandırılmamış veriler yardımıyla bir makineyi eğitmeyi içerir. Makine öğrenimi algoritmasının bu veriler üzerinde rehberlik olmadan çalışmasına izin verir. Bu tür bir öğrenmede, makinenin görevi, önceden veri eğitimi olmaksızın örüntülere, benzerliklere ve farklılıklara dayalı olarak sıralanmamış verileri kategorilere ayırmaktır.
Bu nedenle, GAN'lar makine öğreniminde denetimsiz öğrenme gerçekleştirmekle ilişkilidir. Girdi verilerinden kalıpları otomatik olarak ortaya çıkarabilen ve öğrenebilen iki modeli vardır. Bu iki model üreteç ve ayırıcıdır.
Onları biraz daha anlayalım.
GAN'ın parçaları
"Düşman" terimi GAN'a dahil edilmiştir, çünkü iki bölümden oluşur - üretici ve payda rekabeti. Bu, bir veri kümesindeki veri varyasyonlarını yakalamak, incelemek ve çoğaltmak için yapılır. Bir GAN'ın bu iki bölümünü daha iyi anlayalım.
Jeneratör

Bir jeneratör, gerçekçi görünen görüntüler ve ses gibi sahte veri noktalarını öğrenebilen ve üretebilen bir sinir ağıdır. Eğitimde kullanılır ve sürekli öğrenme ile daha iyi hale gelir.
Jeneratör tarafından üretilen veriler, diğer kısım için olumsuz bir örnek olarak kullanılır - daha sonra göreceğimiz payda. Jeneratör, bir örnek çıktı üretmek için girdi olarak rastgele sabit uzunlukta bir vektör alır. Çıktının gerçek mi yoksa sahte mi olduğunu sınıflandırabilmesi için ayrımcıdan önce sunmayı amaçlar.
Jeneratör şu bileşenlerle eğitilmiştir:
- Gürültülü giriş vektörleri
- Rastgele bir girişi veri örneğine dönüştürmek için bir jeneratör ağı
- Üretilen verileri sınıflandırmak için bir ayrımcı ağ
- Ayrımcıyı kandıramadığı için jeneratörü cezalandırmak için bir jeneratör kaybı
Jeneratör, ayrımcıyı kandırmak için gerçekçi verileri çoğaltmak ve oluşturmak için bir hırsız gibi çalışır. Yapılan birkaç kontrolü atlamayı amaçlar. İlk aşamalarda çok başarısız olsa da, birden fazla gerçekçi, yüksek kaliteli veri üretene ve testlerden kaçınana kadar gelişmeye devam eder. Bu yetenek kazanıldıktan sonra ayrı bir diskriminatöre ihtiyaç duymadan sadece jeneratörü kullanabilirsiniz.
ayrımcı

Ayırıcı aynı zamanda sahte ve gerçek görüntü veya diğer veri türleri arasında ayrım yapabilen bir sinir ağıdır. Bir jeneratör gibi, eğitim aşamasında hayati bir rol oynar.
Hırsızı yakalamak için polis gibi davranır (jeneratör tarafından sahte veriler). Bir veri örneğindeki yanlış görüntüleri ve anormallikleri tespit etmeyi amaçlar.
Daha önce tartışıldığı gibi, oluşturucu, bir ayrımcı gerektirmeyen yüksek kaliteli görüntüler üretmenin kendine güvendiği bir noktaya ulaşmak için öğrenir ve gelişmeye devam eder. Jeneratörden gelen yüksek kaliteli veriler diskriminatörden geçirildiğinde artık gerçek ve sahte görüntü arasında ayrım yapamaz. Yani, sadece jeneratörle gitmekte fayda var.
GAN Nasıl Çalışır?
Üretken bir çekişmeli ağda (GAN), üç şey şunları içerir:
- Verilerin üretilme şeklini tanımlayan üretken bir model.
- Bir modelin eğitildiği düşmanca bir ortam.
- Eğitim için yapay zeka algoritmaları olarak derin sinir ağları.
GAN'ın iki sinir ağı – üreteç ve ayrımcı – bir çekişmeli oyun oynamak için kullanılır. Oluşturucu, benzer bir veri örneği oluşturmak için ses dosyaları, görüntüler vb. gibi girdi verilerini alırken, ayırıcı bu veri örneğinin gerçekliğini doğrular. İkincisi, gözden geçirdiği veri örneğinin gerçek olup olmadığını belirleyecektir.

Örneğin, verilen bir görüntünün gerçek mi yoksa sahte mi olduğunu doğrulamak istiyorsunuz. Jeneratörü beslemek için elle oluşturulan veri girişlerini kullanabilirsiniz. Çıktı olarak yeni, çoğaltılmış görüntüler oluşturacaktır.
Jeneratör bunu yaparken, ürettiği tüm görüntülerin sahte olmasına rağmen gerçek olarak kabul edilmesini amaçlar. Yalan söylemek ve yakalanmamak için başarılı sonuçlar yaratmak ister.
Daha sonra, bu çıktı, bu görüntülerin gerçek olup olmadığını tespit etmek için gerçek verilerden bir dizi görüntü ile birlikte ayrımcıya gidecektir. Ne kadar taklit etmeye çalışsa da jeneratör üzerinde olumsuz çalışır; ayrımcı, gerçek verileri sahte olanlardan ayırmaya yardımcı olacaktır.
Ayırıcı, 0 veya 1 olasılığını döndürmek için hem sahte hem de gerçek verileri alacaktır. Burada 1, orijinalliği temsil ederken, 0 sahteyi temsil eder.

Bu süreçte iki geri bildirim döngüsü vardır:
- Jeneratör, bir ayrımcı ile bir geri besleme döngüsüne katılır
- Ayırıcı, bir dizi gerçek görüntüyle başka bir geri bildirim döngüsüne katılır
Bir GAN eğitimi, hem oluşturucu hem de ayrımcı eğitimde olduğu için çalışır. Jeneratör sürekli olarak yanlış girişler ileterek öğrenirken, ayrımcı algılamayı iyileştirmeyi öğrenecektir. Burada her ikisi de dinamiktir.
Diskriminatör, kendisine sağlanan görüntüleri kategorize edebilen evrişimsel bir ağdır. Görüntüleri sahte veya gerçek olarak etiketlemek için binom sınıflandırıcı olarak çalışır.
Öte yandan, üreteç, görüntüleri üretmek için rastgele veri örnekleri alan ters evrişimli bir ağ gibidir. Ancak ayrımcı, maksimum havuzlama gibi altörnekleme teknikleri yardımıyla verileri doğrular.
Her iki ağ da, rakip bir oyunda karşıt ve farklı bir kayıp veya amaç işlevini optimize etmeye çalışır. Kayıpları, birbirlerini daha da fazla zorlamalarını sağlar.
GAN türleri

Üretken düşman ağları, uygulamaya dayalı olarak farklı türlerdedir. Aktif olarak kullanılan başlıca GAN türleri şunlardır:
- Koşullu GAN (CGAN): Gerçek ve sahte veriler arasında ayrım yapmaya yardımcı olmak için belirli koşullu parametreleri içeren bir derin öğrenme tekniğidir. Ayrıca, ilgili verileri üretmek için jeneratör aşamasında ek bir parametre – “y” içerir. Ayrıca, bu girişe etiketler eklenir ve verilerin gerçek mi yoksa sahte mi olduğunu doğrulamasını sağlamak için ayrımcıya beslenir.
- Vanilla GAN: Ayırıcı ve üretecin daha basit ve çok katmanlı algılayıcılar olduğu basit bir GAN türüdür. Algoritmaları basittir, matematik denklemini stokastik gradyan inişi yardımıyla optimize eder.
- Derin evrişimli GAN (DCGAN): Popülerdir ve en başarılı GAN uygulaması olarak kabul edilir. DCGAN, çok katmanlı algılayıcılardan ziyade ConvNet'lerden oluşur. Bu ConvNet'ler, maksimum havuz oluşturma veya katmanları tam olarak bağlama gibi teknikler kullanılmadan uygulanır.
- Süper Çözünürlüklü GAN (SRGAN): Yüksek kaliteli görüntüler üretmeye yardımcı olmak için rakip bir ağ ile birlikte derin bir sinir ağı kullanan bir GAN uygulamasıdır. SRGAN, ayrıntılarının geliştirilmesi ve hataların en aza indirilmesi için orijinal düşük çözünürlüklü görüntülerin verimli bir şekilde yükseltilmesinde özellikle yararlıdır.
- Laplacian Piramidi GAN (LAPGAN): Düşük frekanslı artıklarla sekiz boşluk arayla yerleştirilmiş çoklu bant geçişli görüntüleri içeren ters çevrilebilir ve doğrusal bir temsildir. LAPGAN, çeşitli ayrımcı ve üretici ağları ve birden çok Laplacian Piramidi seviyesini kullanır.
LAPGAN, birinci sınıf görüntü kalitesi ürettiği için yaygın olarak kullanılmaktadır. Bu görüntüler ilk önce her piramit katmanında aşağı örneklenir ve ardından her katmanda yukarı ölçeklenir, burada fikirler orijinal boyuta ulaşana kadar biraz gürültü verilir.
GAN uygulamaları
Üretken düşman ağları, aşağıdakiler gibi çeşitli alanlarda kullanılır:
Bilim

GAN'lar, yüksek enerjili jet oluşumunu modellemek ve fizik deneyleri yapmak için doğru ve daha hızlı bir yol sağlayabilir. Bu ağlar, ağır kaynakları tüketen parçacık fiziği için simülasyonlar gerçekleştirmedeki darboğazları tahmin etmek için de eğitilebilir.
GAN'lar simülasyonu hızlandırabilir ve simülasyon doğruluğunu iyileştirebilir. Buna ek olarak, GAN'lar yerçekimi merceğini simüle ederek ve astronomik görüntüleri geliştirerek karanlık maddeyi incelemeye yardımcı olabilir.
Video oyunları

Video oyun dünyası, eski video oyunlarında kullanılan düşük çözünürlüklü 2 boyutlu verileri büyütmek için GAN'lardan da yararlandı. Görüntü eğitimi yoluyla bu tür verileri 4k veya daha yüksek çözünürlüklerde yeniden oluşturmanıza yardımcı olacaktır. Ardından, video oyununun gerçek çözünürlüğüne uygun hale getirmek için verileri veya görüntüleri aşağı örnekleyebilirsiniz.
GAN modellerinize uygun eğitim sağlayın. Renkler gibi gerçek görüntünün ayrıntılarını korurken, yerel verilere kıyasla etkileyici kalitede daha keskin ve net 2D görüntüler sunabilirler.
GAN'lardan yararlanan video oyunları, Resident Evil Remake, Final Fantasy VIII ve IX ve daha fazlasını içerir.
Sanat ve Moda
GAN'ları, hiç var olmamış bireylerin resimlerini, boya içi fotoğrafları, gerçek olmayan moda modellerinin resimlerini ve daha fazlasını oluşturmak gibi sanat üretmek için kullanabilirsiniz. Ayrıca sanal gölgeler ve eskizler oluşturan çizimlerde de kullanılır.
reklam

Reklamlarınızı oluşturmak ve üretmek için GAN'ları kullanmak zaman ve kaynak tasarrufu sağlar. Yukarıda görüldüğü gibi takılarınızı satmak istiyorsanız GAN yardımıyla gerçek bir insan gibi görünen hayali bir model oluşturabilirsiniz.
Bu sayede takılarınızı modele takabilir ve müşterilerinize sergileyebilirsiniz. Sizi bir model kiralamaktan ve bunun için ödeme yapmaktan kurtaracaktır. Hatta ulaşım için ödeme yapmak, stüdyo kiralamak, fotoğrafçı, makyöz ayarlamak gibi ekstra masrafları da ortadan kaldırabilirsiniz.
Bu, büyüyen bir işletmeyseniz ve bir model kiralamaya veya reklam çekimleri için bir altyapıya ev sahipliği yapmaya paranız yoksa önemli ölçüde yardımcı olacaktır.
Ses Sentezi
GAN'ların yardımıyla bir dizi ses klibinden ses dosyaları oluşturabilirsiniz. Bu aynı zamanda üretken ses olarak da bilinir. Lütfen bunu Amazon Alexa, Apple Siri veya ses parçalarının iyi bir şekilde birleştirildiği ve talep üzerine üretildiği diğer AI sesleriyle karıştırmayın.
Bunun yerine, üretken ses, bir ses kaynağının istatistiksel özelliklerini incelemek için sinir ağlarını kullanır. Ardından, bu özellikleri belirli bir bağlamda doğrudan yeniden üretir. Burada modelleme, konuşmanın her milisaniyeden sonra nasıl değiştiğini temsil eder.
Transfer Öğrenimi

Gelişmiş aktarım öğrenimi çalışmaları, derin pekiştirmeli öğrenme gibi en son özellik alanlarını hizalamada GAN'ları kullanır. Bunun için kaynağın gömmeleri ve hedeflenen görev, bağlamı belirlemek için ayrımcıya beslenir. Ardından, sonuç kodlayıcı aracılığıyla geri yayılır. Bu şekilde model öğrenmeye devam eder.
GAN'ların diğer uygulamaları şunları içerir:
- Glokomatöz görüntülerin saptanması ile tam veya kısmi görme kaybının teşhisi
- Endüstriyel tasarım, iç tasarım, giyim eşyaları, ayakkabılar, çantalar ve daha fazlasını görselleştirin
- hasta bir kişinin adli yüz özelliklerini yeniden oluşturmak
- bir görüntüden bir öğenin 3B modellerini oluşturun, 3B nokta bulutu olarak yeni nesneler oluşturun, bir videoda hareket kalıplarını modelleyin
- Değişen yaştaki bir kişinin görünümünü sergileyin
- DNN sınıflandırıcısını geliştirmek gibi veri büyütme
- Haritadaki eksik bir özelliği boyayın, sokak görünümlerini iyileştirin, haritalama stillerini aktarın ve daha fazlasını yapın
- Görüntüler üretin, bir görüntü arama sistemini değiştirin, vb.
- Bir GAN varyasyonu kullanarak doğrusal olmayan bir dinamik sisteme kontrol girdileri oluşturun
- İklim değişikliğinin bir ev üzerindeki etkilerini analiz edin
- Giriş olarak sesini alarak bir kişinin yüzünü oluşturun
- Kanser, fibroz ve iltihaplanmadaki çeşitli protein hedefleri için yeni moleküller oluşturun
- Normal bir görüntüden gifleri canlandırın
GAN'ların çeşitli alanlarda daha birçok uygulaması vardır ve kullanımları genişlemektedir. Bununla birlikte, kötüye kullanımının da birçok örneği vardır. GAN tabanlı insan görüntüleri, sahte videolar ve resimler üretmek gibi uğursuz kullanım durumları için kullanılmıştır.
GAN'lar, sosyal medyada dünyada hiç var olmamış kişilerin gerçekçi fotoğraflarını ve profillerini oluşturmak için de kullanılabilir. UMH'lerin diğer ilgili suistimalleri, öne çıkan kişilerden izin alınmadan sahte pornografi oluşturulması, siyasi adayların sahte videolarının dağıtılması vb.
GNA'lar birçok alanda bir nimet olsa da, yanlış kullanımları da felaket olabilir. Bu nedenle, kullanımı için uygun yönergeler uygulanmalıdır.
Çözüm
GAN'lar modern teknolojinin dikkate değer bir örneğidir. Veri üretmenin ve görsel teşhis, görüntü sentezi, araştırma, veri büyütme, sanat ve bilim ve daha pek çok işleve yardımcı olmanın benzersiz ve daha iyi bir yolunu sunar.
Yenilikçi uygulamalar oluşturmak için Düşük kodlu ve kodsuz makine öğrenimi platformları da ilginizi çekebilir.
