Makine öğrenmiyor: Generative Adversarial Network'e (GAN) Giriş

1. GAN nedir

GAN temelde jeneratör ve ayırıcı olmak üzere iki kısımdan oluşur. Oluşturucu, esas olarak, kendi oluşturduğu görüntüleri daha gerçekçi hale getirmek ve böylelikle ayırıcıyı kandırmak için gerçek görüntü dağılımını öğrenmek için kullanılır. Ayrımcının, alınan resmin gerçekliğini yargılaması gerekir. Tüm süreç boyunca, oluşturucu oluşturulan görüntüyü daha gerçekçi hale getirmeye çalışırken, ayırıcı görüntünün doğru ve yanlışını belirlemeye çalışır.Bu süreç iki kişilik bir oyuna eşdeğerdir. Zaman geçtikçe, oluşturucu ve ayırıcı Sürekli yüzleşmede, iki ağ nihayet dinamik bir dengeye ulaştı: jeneratör tarafından oluşturulan görüntü gerçek görüntü dağılımına yakındı ve ayırıcı gerçek ve yanlış görüntüleri belirleyemedi ve belirli bir görüntünün tahmininin doğru olma olasılığı temelde 0,5'e yakındı. (Rastgele tahmin kategorisine eşdeğer).

GAN'ın daha sezgisel bir şekilde anlaşılması için, bunu göstermek için bir örnek kullanılabilir: Sahte para birimi çetesi bir jeneratöre eşdeğerdir. Sahte paranın normal bir şekilde alınıp satılabilmesi için sahte para kullanarak bankayı aldatmak isterler ve banka ayrımcıyla eşdeğerdir ve gelen parayı yargılaması gerekir. Gerçek para mı yoksa sahte para mı? Bu nedenle, sahte para çetesinin amacı, bankanın tanımlayamayacağı ve dolandıramayacağı sahte para yaratmaktır.Bankanın, sahte parayı doğru bir şekilde tespit etmenin bir yolunu bulması gerekir.

Bu nedenle yukarıdakileri özetleyebiliriz. True = 1, false = 0 verildiğinde:

Belirli bir gerçek görüntü için, ayırıcı bunu 1 olarak etiketlemelidir;

Belirli bir sahte görüntü için, ayırıcı bunu 0 olarak etiketlemelidir;

Üreticinin ayırıcıya geçtiği oluşturulan resimler için, jeneratör, ayırıcının 1 olarak etiketlenmesini ister.

Peki, yukarıdaki herkes temel bir GAN anlayışına sahip olmalıdır, peki GAN bunu nasıl yapar? Her şeyden önce, başka bir birinci nesil Jeneratörümüz var ve sonra bazı resimler oluşturuyor ve sonra bu resimleri ve bazı gerçek resimleri öğrenmek için birinci nesil Discriminator'a atıyoruz, böylece birinci nesil Discriminator üretileni gerçekten ayırt edebiliyor. Resimler ve gerçek resimler ve sonra ikinci nesil Jeneratör var. İkinci nesil Jeneratör tarafından üretilen resimler birinci nesil Ayrıştırıcıyı kandırabilir. Şu anda ikinci nesil Ayrımcıyı eğitiyoruz, vb.

image.png

Şu andaki açıklamada, önceki nesil Discriminator'ı kandırmak için yeni nesil Generator'ü nasıl eğiteceğinizi anlayamayabilirsiniz. Yöntem aslında çok basit.Yeni nesil Generator ile önceki nesil Discriminator'ü yeni bir NN oluşturmak için bağlayabilirsiniz. Nihai çıktının 1'e yakın olmasını umuyoruz ve ardından ara sonucu yeni resmimizin çıktısı olarak kullanabiliriz.Aşağıdaki şekil yukarıdaki süreci canlı bir şekilde göstermektedir:

2. Kapsamlı GAN ilkesi

Öncelikle maksimum olasılık tahminimizi gözden geçirelim. Çok fazla veriye sahip olduğumuzu ve dağılımının Pdata (x) olduğunu varsayarsak, buradaki verilerin çok sayıda resim olduğunu düşünebiliriz, ancak bizde çok şey var. , Yeni bir veri üretmek kolay değildir, çünkü bu dağılımın belirli parametrelerini bilmiyoruz, bu yüzden bu veri yığınının uyduğu parametreleri tahmin etmek istiyoruz. Daha sonra, Pdata (x) 'den birçok örnek oluşturabiliriz ve sonra bu parametre setinin dağılımını bu örnek setini üretme olasılığı en yüksek yapan bir dizi parametre bulmak isteriz.

Aşağıdaki maksimum olabilirlik tahmininin basitleştirme sürecidir, çünkü bu örneklerin hepsi Pdata (x) 'dan, bu nedenle aşağıdaki dönüşümü gerçekleştirebiliriz. Sonra beklentiyi bir integrale dönüştürüyoruz ve ikinci terimi ekliyoruz (son terim bir sabittir, sadece KL sapmasını daha basit bir şekilde ifade etmek için)

KL diverjansına göreceli entropi de denir. P (x) ve Q (x), X değerinin iki olasılık olasılık dağılımı olsun, o zaman çiftin göreli entropisi:

Entropi, belli bir dereceye kadar iki rastgele değişken arasındaki mesafeyi ölçebilir. KL diverjansı, iki olasılık dağılımı P ve Q arasındaki farkın asimetrisinin bir ölçüsüdür. KL diverjansı, Q tabanlı kodlama kullanarak P'den alınan örneklerin ortalamasını kodlamak için gereken ekstra bit sayısının bir ölçüsüdür. Tipik olarak P, verilerin gerçek dağılımını temsil eder ve Q, P'nin teorik dağılımını, model dağılımını veya yaklaşık dağılımını temsil eder.

Ardından, GAN'da, PG parametresini temsil etmek için NN parametresini kullanırız:

O halde GAN'ın temel prensibi şu şekildedir:

Bu nedenle, nihai çözüm hedefimiz:

Yukarıdaki çözüm problemini görsel olarak temsil etmek için aşağıdaki şekli kullanabiliriz Aşağıdaki şekle baktığımızda, aradığımız G'nin G3 ve D'nin en yüksek nokta D olduğunu açıkça anlayabiliriz.

Öyleyse, V nedir aşağıdaki formülde yazılmıştır Bu şeyin nasıl ortaya çıktığı konusunda endişelenmenize gerek yok Sadece bunu düşünebilen insanların gerçekten korkunç olduğunu söylemek istiyorum. V'miz aşağıdaki gibi yazıldığında, Pg ve Pdata arasındaki farkı ifade etmek için maxV (G, D) alırız.

image.png

V neden ikisi arasındaki farkı ifade edebilecek şekilde yazılıyor? Bu, katı matematiksel kanıtlarla çıkarılabilir.Burada, belirli bir G için maxV (G, D) 'yi çözeceğiz:

Herhangi bir sabit için, burada Pdata ve G verildiği için, burada bir sabit olduğunu düşünebiliriz, yani D maksimumu elde etmek için ne alabilir? Türev 0 olduğunda çok basittir.

D'nin değerini aldıktan sonra, onu orijinal formüle getirebiliriz:

Basitleştirmeye devam edin, iki KL sapması elde edebiliriz ve ardından JS sapması elde edebiliriz:

Herkesin D için çözme sürecini çok iyi anladığına inanıyorum. PPT'den daha fazlasını anlamayı umarak aşağıdaki formüle kendim geçeyim:

Yani, şimdi anlıyoruz ki yukarıdaki V'nin tanımına göre, ikisi arasındaki boşluğu elde edebiliriz Elbette, başka şeyler tanımlayabilir ve başka sapma ölçüleri oluşturabiliriz.

Yani, bir G verildiğinde, V'yi maksimize ederek D elde edebiliriz, sonra G'yi nasıl çözeriz, sadece gradyan inişini kullanırız:

3. Uygulamada GAN

Az önce teorik kısımdan bahsettik, ancak pratikte Pdata ve Pg'yi bilmiyoruz. Tüm x'leri sıralayamayız. Bu nedenle, sadece örnekleme yöntemini kullanabiliriz ve ayrıca iki sınıflandırma yöntemimizi de kullanabiliriz. Düşünürsek, Pdata (x) 'de oluşturulan örnekleri pozitif örnek olarak ve Pg (x)' de üretilen örnekleri negatif örnek olarak alırız.Daha sonra, aşağıdaki V iki sınıflandırmamızın kayıp fonksiyonunun tersi olarak kabul edilebilir (daha az Eksi işareti):

Başka bir deyişle, V'yi maksimize etmek aslında iki sınıflandırmamızın kaybını en aza indiriyor.Aşağıdaki Küçült seçeneğinde bir eksi işareti eksik, bu nedenle aradığımız D, iki sınıflandırmanın kaybını en aza indiren D'dir, bu doğrudur. Bulmak istediğimiz ayırıcı tanımına da uygun olan Pdata'nın D'si ve Pg (x) 'i ayırt edin, şaşırtıcı mı!

Özetlemek gerekirse, pratikte GAN'ımız aşağıdaki adımlara dayanmaktadır:

Yukarıdaki adımlar GAN ile ilgili açıklamamızı çok iyi açıklıyor: önce, başka bir birinci nesil Jeneratörümüz var ve sonra o bazı resimler oluşturuyor ve sonra bu resimleri ve bazı gerçek resimleri birinci nesil Ayrıştırıcıya atıyoruz. Öğrenmek için, birinci nesil Ayrıştırıcı'nın üretilen resimler ile gerçek resimleri gerçekten ayırt etmesine izin verin ve sonra ikinci nesil Jeneratöre sahibiz.İkinci nesil Jeneratör tarafından üretilen resimler, birinci nesil Ayırıcıyı kandırabilir. Şu anda, ikinci nesil Ayrımcıyı vb. Eğitiyoruz.

Uygulamada, eğitimimizi hızlandırmak için aşağıdaki dönüşümleri yapabiliriz:

Video adresi: https://www.bilibili.com/video/av9770302/from=searchseid=905421046757750252

ppt adresi:

Üç ev ve bir araba var, ancak Luo Yixiao'nun babası Luo Er, evin oğlu için olduğunu söyledi.
önceki
Ağ diski güvenilir değil, sadece sabit diskler satın alabilirsiniz! Yeni Seagate 3T sabit diskini ortaya çıkarın
Sonraki
Popülerleştirme zaman alır, Kingston DDR4213316G bellek kutudan çıkar çıkmaz test
Makine öğrenmiyor: Evrişimli sinir ağı NLP modellemesi ve uygulaması 2
Jietu, orta ve büyük SUV X90'ı piyasaya sürecek: ana fiyat-performans oranı, boyut ve güç aynı seviyede hakim
İyi donanım ucuz değil, I7 makinesinden daha pahalı, 7390 yuan I5 ana bilgisayar yapılandırması
Makine öğrenmiyor: Evrişimli sinir ağı NLP modellemesi ve dinamik Havuzlama optimizasyonu
Yenilmez Tavşan'ın bir halefi var, Canon EOS 6D Mark II Chengdu'da
Sadece resmi gösterin, elinizde iki DDR416G tek bellek ekranı
Dünyanın en havalı ofislerini inceleyin ve diğer insanların şirketlerine bakın
GTX750 için hala isteksiz mi? 2900 yuan I36100 + 1050 yapılandırması
Geçiştirmek? Ortalıkta dolanmak? Ayrık grafik kartına gerek yok APU daha uygundur, 2400 yuan yapılandırma ekranı
Amazon akıllı hoparlör Echo Plus değerlendirmesi: kullanıcılar standart sürümü satın almayı tercih edebilir
İ56500 + 1060 orta seviye oyun platformu seçimi! 4848 yuan yapılandırma ekranı
To Top