Üretken modeller ve üretken düşmanlık ağları nerede? Bilgisayar görüşünün büyüsü

Tam metin 4413 Kelimeler, tahmini öğrenme süresi 13 dakika

Kaynak: Pexels

Genel Bakış

· Üretken modeller ve Generative Adversarial Networks (GANs), bilgisayarla görme uygulamalarındaki en son gelişmelerin çekirdeğidir. Bu makale GAN'ları ve farklı bileşenlerini tanıtacaktır. GAN'lar için bazı heyecan verici kullanım durumları var, gelin ve keşfedin!

Giriş

Aşağıdaki resimlerde tuhaflığı ayırt edebilir misiniz?

Bu resim ne olacak?

Resimdeki tüm nesneler ve hayvanlar GAN'lar gibi bilgisayarlı görme modelleri tarafından oluşturulur! Şu anda, insanların gizli yaratıcılığını harekete geçirebilen en popüler derin öğrenme türüdür.

GAN'lar kuşkusuz yazarın derin öğrenmede en sevdiği konulardan biridir.Bu modellerin oluşturduğu yeni yüz imgeleri veya resimler yaratmanın yanı sıra eski resimlerdeki eksik kısımları onarmak gibi her türlü programı seviyorum!

Bu makale üretken ağları ve GAN'ları tanıtacak, çeşitli prosedürlerini anlayacak ve çalışma mekanizmasını (bileşenleri) daha fazla inceleyecektir.

içindekiler

1. Üretken model nedir?

2. Modeli oluşturan uygulama

3. Üretken model türleri

1. Baskın yoğunluk

2. Gizli yoğunluk

4. Açık yoğunluk modelini anlayın

5. GAN'lara Genel Bakış

6. GAN'ları eğitmek için ayrıntılı adımlar

1. Üretken model nedir?

Bu uygulamalara bakmadan önce, farklı kullanım durumlarını görselleştirmeye yardımcı olabilecek üretken modeller kavramını anlayın ve daha sonra GAN'ları tartışırken de dahil olacaksınız.

Makine öğrenimi veya derin öğrenmeyi kullanırken, genellikle iki büyük problem-denetimli öğrenme ve denetimsiz öğrenme vardır.

Denetimli öğrenmede, bağımsız değişken x ve hedef etiket y ile karşılaşılacaktır. Amaç, x ve y'yi eşleyen haritalama işlevini öğrenmektir.

Denetimli öğrenmeye örnek olarak sınıflandırma, regresyon, hedef algılama, görüntü bölümleme vb. Verilebilir.

Denetimsiz öğrenmeyle ilgili sorun, yalnızca bağımsız değişkenlerin x olması, ancak hedef etiketlerinin olmamasıdır. Amaç, veriler aracılığıyla bazı potansiyel kalıpları öğrenmektir. Denetimsiz öğrenmeye örnek olarak kümeleme ve boyutsallık azaltma dahildir.

Öyleyse, üretken model nerede uygundur?

Eğitim verileriyle üretken model, eğitim seti dağıtımından yeni örnekler oluşturur. Dağıtım pdata (x) içeren bir eğitim seti olduğunu ve örnek pmodel (x) dağılımının pdata (x) 'e benzer olması için bazı örnekler oluşturmak istediğinizi varsayalım. Basit ifadeyle:

Üretken modelleri kullanarak, önce eğitim setinin dağıtımını öğrenin ve ardından yeni gözlemler ve veri noktaları oluşturmak için bazı değişkenleri birleştirmek için öğrenilen dağılımı kullanın.

Şimdi, model dağıtımı ile verilerin gerçek dağıtımı arasındaki eşleştirmeyi öğrenmenin birçok yolu var Ondan önce, size üretken modellerle ilgilenmenize neden olabilecek birkaç harika üretken uygulama göstermeme izin verin.

2. Üretken modelin uygulanması

Neden ilk etapta bir model oluşturmamız gerekiyor? Yazarın bile başında bu sorusu vardı, ancak daha fazla uygulamaya baktıkça model üretme yeteneğine daha çok inanıyorum.

Bu soruyu yanıtlamak için bazı kullanım durumlarını açıklamama izin verin.

Veri oluştur

Hiç sıfırdan bir derin öğrenme modeli oluşturmayı denediniz mi? Çoğu insanın karşılaştığı en yaygın sorunlardan biri, daha fazla veri olsa bile eğitim verilerinin eksikliğidir. Eminim daha fazla veriye aldırış etmezsiniz! Kim sevmez?

Bazı endüstriler, daha derin modelleri eğitmek için daha fazla veriye ihtiyaç duyar. Tıp endüstrisi buna uygun bir örnektir. Üretken model bu alanda önemli bir rol oynayabilir çünkü yeni veri oluşturmak için kullanılabilir. Oluşturulan görüntüler, veri kümesinin boyutunu genişletmeye yardımcı olacaktır.

Üretken model, yeni yüz görüntüleri oluşturmak için kullanılabilir. Bu makale gerçek yüz görüntülerinin oluşturulmasını açıklamaktadır. Çizgi film karakterleri ve ünlülerin görüntüleri gibi üretken modellerin veri oluşturmak için kullanılabileceği birçok benzer kullanım durumu vardır.

Görüntüden Görüntüye Çeviri modeli

Yazar özellikle bu üretken modeli seviyor. Bununla bazı ilginç işlemler gerçekleştirilebilir: Uydu görüntüleri Google Haritalar'a aktarılır, gündüz resimleri gece moduna dönüştürülür, siyah beyaz resimler renk değiştirir ve mevsimler (yazdan kışa gibi) değiştirilir.

Yukarıdakilerin tümü bu modelden türetilmiştir.

Yüz Yaşlanma ve Yaşlanma Modeli

Bu işlem insan yüzünde doğal yaşlanma ve yaşlanmayı giderir ve yüz görüntüleri çizer.

Bu, eğlence için olduğu kadar her yaştan yüzleri tanımlamak için de kullanılabilir.

3D hedef tespiti, dikkat tahmini, metinden resme ve benzeri gibi daha üretken modeller var. Harekete hazır? Birlikte çeşitli üretken modelleri öğrenelim.

3. Üretken model türleri

İki üretken model vardır:

1. Açık yoğunluk modeli

2. Örtük yoğunluk modeli

İkisi arasındaki farkı anlamadan önce aşağıdaki tabloya göz atın:

Baskın yoğunluk resesif yoğunluk

Verilerin bazı önceki dağılımlara sahip olduğunu varsayarsak, verileri doğrudan üreten rastgele bir programı şart koşun

Örnek: Maksimum Olasılık Örneği: Üretken Çekişmeli Ağlar (GAN'lar)

Açık yoğunluk modeli, açık yoğunluk fonksiyonu pmodel'i (x; ) tanımlarken, örtük yoğunluk modeli doğrudan veri üreten rastgele bir programı tanımlar.

İşte bir görüntülenebilir, Ian Goodfellow farklı üretken modeller gösteriyor:

4. Açık yoğunluk modelini anlayın

Açık tanık modelinin, eğitim verilerinde işlevin olasılığını en üst düzeye çıkaracak net bir yoğunluk işlevi tanımladığını biliyoruz. Bu modellerin kullanımının kolay olup olmadığına göre alt bölümlere ayrılabilirler:

Çekilebilir yoğunluk

· Yaklaşık yoğunluk

İşlem kolaylığı, dağıtımı etkili bir şekilde yakalayabilen bir parametre işlevinin belirlenebileceği anlamına gelir. Ancak görüntü dağılımı veya akustik dalga dağılımı gibi çoğu dağıtım çok karmaşıktır ve karşılık gelen parametre işlevlerini tasarlamak zordur. Dağılımı yakalamak için parametre işlevi olmayan model, yaklaşık yoğunluk modelinden daha zayıftır.

Yoğunluk fonksiyonunu tanımlamak için, x görüntüsünün olasılığı zincir kuralı yardımıyla 1-d dağılımına bölünür.

Burada p (x), x görüntüsünün olasılığını temsil eder ve sağ yarı, i'inci piksel değerinin olasılığını temsil eder. İşlevi belirledikten sonra, eğitim verilerinin olasılığını en üst düzeye çıkarın. Kolay manipüle edilen açık yoğunluk modeli bu şekilde çalışır.

Pixel RNN ve Pixel CNN, kullanımı kolay en yaygın yoğunluk modelleridir. Daha fazla ayrıntı aşağıda verilecektir.

Piksel RNN

Pixel RNN, sırayla görüntü pikselleri oluşturan derin bir sinir ağıdır. Örneğin, iki ardışık piksel oluşturmak için bir köşeden üretmeye başlayın.

5 × 5 görüntü oluşturmak istiyorsanız, aşağıdaki şekilde gösterildiği gibi 25 piksel olacaktır:

Model, bir köşeden pikseller oluşturacaktır:

Ardından, iki bitişik piksel oluşturmak için bu piksel değerini kullanın:

Bu işlem, son piksel değeri oluşturulana kadar devam eder:

Piksel üretimi, önceki tüm piksel değerlerine dayanır ve bağımlılık, RNN veya LSTM aracılığıyla bir modele dönüştürülür.

Dezavantajı ise, üretim sıralı olduğu için daha yavaş olmasıdır, bu yüzden Pixel CNN tanıtılmıştır.

Piksel CNN

Pixel CNN ve Pixel RNN benzer konseptlere sahiptir.Önceki pikselleri RNN modellemesi yerine, bağlam alanında CNN kullanılır. Piksel RNN prosedüründe olduğu gibi, bir köşeden başlayarak, iki ardışık piksel oluşturulur.

Xi pikselleri oluşturmak için, model yalnızca önceki pikselleri, yani x1, x2 ... xi-1'i kullanabilir ve bunun olmasını sağlamak için maske filtrelemeyi kullanabilir:

Oluşturulan pikselin değeri 1'dir ve geri kalanına 0 atanır, bu yalnızca oluşturulan pikselleri dikkate alır. PixelCNN eğitimi, Pixel RNN'den daha hızlıdır, ancak pikseller hala sıralı olarak üretilir, bu nedenle süreç hızlı değildir.

Genel olarak, her ikisi de p (x) olasılığını doğru bir şekilde hesaplayabilir, böylece model performansının ölçümü için uygun bir değerlendirme standardı sağlayabilir. Yukarıda üretilen örneklerin hepsi iyidir. Öte yandan, bu modelleri oluşturma süreci, sıralı nesil kadar yavaştır.

Şimdiye kadar, kullanımı kolay yoğunluk işlevlerini ve bu işlevleri doğrudan eğitim verileri üzerinde optimize etme olasılığını gördük. Şimdi, başka bir üretken modelden bahsedelim: Varyasyonel Otomatik Kodlayıcılar (VA)

Otomatik kodlayıcı işlemine genel bakış

Ne olduğunu çabucak anlayın, ardından konseptini ve görüntüleri oluşturmak için nasıl kullanılacağını tartışın.

Otomatik kodlayıcı, düşük enlem temsillerini öğrenmenin denetimsiz bir yöntemidir.

İki bağlı sinir ağından oluşur - kodlayıcı ve kod çözücü. Özellik haritasını (z) almak için kodlayıcıya x girin.

z, x'ten küçüktür. Nedeni sizce nedir?

Z'nin sadece değişkenin değerli faktörlerini elde etmesini istediğimizden, bu faktörler girdi verilerini tanımlayabilir ve z'nin şekli genellikle x'ten küçüktür. Şimdi, soru bu özelliği z'yi sunmak için nasıl öğreneceğidir? Model nasıl eğitilir? Bu nedenle, çıkarılan özelliklerin üstüne bir dekoder ağı eklenebilir ve L2loss eğitim modeli kullanılabilir.

Bu, otomatik kodlayıcı ağının inşasıdır, bu nedenle eğitilmiş, z orijinal giriş verilerini yeniden yapılandırmak için kullanılabilir x. X çıkışı, x girişinden farklıysa, L2 kaybı, giriş verilerinin yeniden yapılandırılmasına yardımcı olmak için sorunu çözecektir.

Şimdi bu otomatik kodlayıcılar aracılığıyla yeni görüntüler nasıl oluşturulur?

Varyasyonel kodlayıcı modeli

Varyasyonel otomatik kodlayıcının kullanışlı olduğu yer burasıdır. Eğitim verilerinin bazı potansiyel olarak gözlemlenmemiş sunum yapan kişiler tarafından oluşturulduğu varsayılmaktadır z.

Basit bir otomatik kodlayıcı ile değişken bir otomatik kodlayıcı arasındaki temel fark, özellikleri doğrudan giriş verilerinden çıkarmak yerine eğitim verilerinin olasılık dağılımını oluşturmaya çalışmamızdır.

Bu nedenle, n büyüklüğünde kodlayıcı çıkışı 1 kodlama vektörüne izin vermek yerine, iki tane var, biri ortalama vektör ve diğeri standart sapma vektörü.

Tüm ağ mimarisi şöyle görünür:

Ortalama vektör, giriş verisi kodlamasının merkez konumunu kontrol eder ve standart sapma vektörü, ortalama kodlamanın değişikliğini kontrol eder. Eksik eğitilebilir varyasyon kodlayıcının işlevi, olasılık dağılımlarındaki farkın derecesini ölçen Kullback-Leiblerdivergence'dir (KLdivergence, göreli entropi olarak da bilinir):

Olasılık dağılımının parametrelerini (ortalama ve standart sapma) optimize eden göreceli entropiyi en aza indirmemiz gerekir. Model eğitildikten sonra, herkese göstermek için yeni görüntüler oluşturabilir.

Varyasyonel kodlayıcı aracılığıyla bir görüntü nasıl oluşturulur?

Model eğitimi tamamlandıktan sonra, kodlayıcıyı kaldırın ve aşağıda gösterildiği gibi ağı alın:

Şimdi ortalaması 0 ve standart sapması 1 olan bir olasılık dağılımı seçin ve yukarıdaki şekilde ağa koyun ve çıktıyı alacaksınız. Varyasyonel kodlayıcılar görüntülerin oluşturulmasına bu şekilde yardımcı olur.

Bu görüntü oluşturmak için yardımcı olsa da, yine de dezavantajları vardır. Ana dezavantaj, üretilen örnek görüntülerin önde gelen GAN'lara kıyasla bulanık ve düşük kaliteli olmasıdır. Bu aynı zamanda bir araştırma yönüdür ve yakın gelecekte ilerleme kaydetmeyi umuyoruz!

Şimdiye kadar, tüm üretken modeller açıkça tanımlanmış yoğunluk işlevlerine sahiptir. Ya eğitim setinden belirsiz örnekler üretme yeteneği kazanmak için yoğunluğu doğru bir şekilde modellemek istemezseniz? GAN'ları kullanacağız. Eğitim setinden belirsiz örnekler alma işlevleri vardır.

5. GAN'lara Genel Bakış

Önce yapıyı açıklamama izin verin, bu da GAN'ların anlaşılmasını kolaylaştıracak:

GAN'lar iki farklı ağdan oluşur:

1. Jeneratör Ağı

2. Ayrımcı Ağ (Ayrımcı Ağ)

Yazar tek tek detaylandıracak.

1. Jeneratör Ağı

Ağ, bazı rastgele gürültülerden sonra görüntüler üretir.

Jeneratör ağı, sinir ağı veya evrişimli sinir ağını ifade eder. Biraz rastgele gürültü girin ve ağ, görüntüleri oluşturmak için sesi kullanacaktır.

2. Ayrımcı ağ

Ağın görevi çok basittir, girdinin doğru olup olmadığını belirlemesi gerekir:

Eğitim setindeki tüm görüntüler doğru (1) olarak işaretlenir ve jeneratör ağındaki tüm görüntüler yanlış (0) olarak işaretlenir. Şimdi, ayırıcı ağın görevi ikili sınıflandırma yapmaktır. Giriş içeriğinin doğru veya yanlış (1 veya 0) olarak sınıflandırılması gerekir.

Bu modelin avantajı, tanımlanmasının çok kolay olmasıdır. Hem jeneratör ağı hem de ayırıcı ağ sinir ağları (veya evrişimli sinir ağları) olduğu için, tamamen farklı ağlardır.

Modeli eğitin, ayırıcı ağın sonundaki eksik işlevi hesaplayın ve ayırıcı ve jeneratör modeline geri verin.

Her iki ağın parametreleri güncellenir ve sonuçlar büyük ölçüde iyileştirilir. Her iki model de maksimum ve minimum değerlerin hesaplanması konusunda eğitilecektir:

Buraya:

· P (veri) eğitim setinden veri dağılımını temsil eder

· D (x), x'in eğitim verilerinden gelme olasılığını temsil eder

· P (z) giriş sesi değişkenini temsil eder

Ayırıcı ağ (D), D (x) 1'e yakın ve D (z) 0'a yakın olacak şekilde amaç fonksiyonunu maksimize etmek ister. Yani, ayırıcı eğitim setindeki tüm görüntüleri 1'e (gerçek) ve oluşturulan görüntüleri 0'a (yanlış) bölmelidir.

Jeneratör ağı (G), D (G (z)) 1 olacak şekilde amaç işlevini en aza indirmek ister. Bu, jeneratörün kategori 1 (gerçek) görüntüsünü oluşturmaya çalışacağı ve gerçek kategorinin ayırıcı ağ tarafından seçileceği anlamına gelir.

6. GAN'ları eğitmek için ayrıntılı adımlar

Eğitim süreci şu şekildedir:

1. Öncelikle, rastgele bir dağılımdan bir ses örneği alın ve bazı görüntüler (yanlış, etiket 0) oluşturmak için bunu jeneratör ağına (G) girin:

2. Ardından, jeneratör ağı tarafından oluşturulan görüntülerden sahte görüntüleri (0) çıkarın ve eğitim setinden (1) gerçek görüntüleri çıkarın, eşleştirilmiş görüntüleri ayırıcı ağa (D) yerleştirin ve sınıflandırın:

3. Gözlemlendiği gibi, ayırıcı, kaybı hesaplamak için kullanılan ikili bir sınıflandırıcıdır (ikili çapraz entropi olabilir).

4. Ardından, ağırlıkları güncellemek için kaybı ayırıcı ağa ve jeneratör ağına geri aktarın. Bu işlem Adam veya başka herhangi bir optimize ediciyi kullanabilir.

Bu GAN'ın eğitim sürecidir. Umarım herkese yardımcı olabilir.

Yorum Beğen Takip Et

Yapay zeka öğrenme ve geliştirmenin kuru mallarını paylaşalım

Yeniden yazdırıyorsanız, lütfen arka planda bir mesaj bırakın ve yeniden yazdırma şartnamelerine uyun

Bugün Core Voice | Yeni koronavirüsü öldürme iddiası mı var? Amazon: Hepsi kaldırıldı
önceki
Casus uyarısı! Akıllı yetişkin oyuncakları özel hayatımızı izliyor olabilir mi?
Sonraki
Herhangi bir arka uç kodu kullanılmadan uygulamalar geliştirilebilir mi?
Core Voice Today | Yeni koronavirüs bir nesnenin yüzeyinde ne kadar süre hayatta kalabilir?
Form doğrulamayı optimize etmek için HTML5 ve JavaScript kullanmayı öğrenin
5 yapay zeka örneği, harika
Uber, piyasada sessizce güçlü bir açık kaynak derin öğrenme yığını oluşturuyor
Core Voice Today | İyi haber! Yeni koroner pnömonili ilk hasta için 5G uzaktan ultrason tanısının ve tedavisinin başarıyla uygulanması
No-SQL, SQL'i aşamalı olarak mı kaldırıyor?
Çin ve Amerika Birleşik Devletleri küresel yapay zeka yarışmasına liderlik ediyor Yapay zeka abartılıyor mu?
Yapay zeka çağında fotoğraf sanatı yok olmak üzere mi?
Core Voice Today | Apple CEO'su Cook, çalışanlara yeni taç virüsü salgını hakkında bir not gönderiyor
2020'deki en iyi 10 son teknoloji, bir göz atın
İnternet devleri toplu olarak engelliyor, AI yüzünü ne kadar değiştirebilir?
To Top