Üretken yüzleşme ağı GAN'larını anlamak için bir makale (öğrenme kaynakları ile)

Orijinal Başlık: Üretken Çekişmeli Ağlara Sezgisel Giriş

Yazar: KeshavDhandhania, ArashDelijani

Çeviri: Shen Libin

Redaksiyon: He Zhonghua

Bu makale hakkında 4000 kelime , Okumanız tavsiye edilir 10 dakika .

Bu makale, görüntü oluşturma probleminden GAN modelini tanıtıyor ve GAN modelinin matematiksel ilkelerini ve eğitim sürecini tanıtıyor ve son olarak çok sayıda GAN öğrenme materyali sağlıyor.

Bu makale, Generative Adversarial Networks veya GAN'ları kısaca tartışmaktadır. Üretken görevlerde veya daha geniş denetimsiz öğrenmede, GAN'lar bu alanda iyi performans gösteren birkaç makine öğrenimi tekniğinden biridir. Özellikle görüntü oluşturma ile ilgili görevlerde olağanüstü performansa sahiptirler. Derin öğrenme alanında öncü olan Yann LeCun, GAN'ı son on yılda makine öğrenimi için en iyi fikir olarak övdü. En önemlisi, GAN ile ilgili temel kavramların anlaşılması kolaydır (aslında, bu makaleyi okuduktan sonra bunu net bir şekilde anlayabilirsiniz).

GAN'ları görüntü oluşturma görevlerine uygularız ve bunu GAN'ları açıklamak için kullanırız.Aşağıda bu makalenin bir özeti verilmiştir:

  • Derin öğrenmenin kısa bir incelemesi

  • Görüntü oluşturma sorunu

  • Üretim görevindeki temel sorunlar

  • Üretken yüzleşme ağı

  • meydan okuma

  • daha fazla okuma

  • sonuç olarak

Derin öğrenmenin kısa bir incelemesi

(İleri Besleme) Sinir ağı diyagramı, kahverengi girdi katmanı, sarı gizli katmandır ve kırmızı çıktı katmanıdır

Derin öğrenmeyi kısaca tanıtalım. Yukarıdaki şekil, birbirine kenarlarla bağlanan ve nöronların ortada gizli bir katman, sol ve sağ tarafta ise giriş katmanı ve çıkış katmanı olmak üzere katmanlar halinde düzenlenmiş nöronlardan oluşan bir sinir ağının şematik diyagramıdır. Nöronlar arasındaki bağlantı kenarlarının ağırlıkları vardır ve her nöron, kendisine bağlı nöronun giriş değerine göre ağırlıklandırılır ve toplanır ve daha sonra hesaplama için doğrusal olmayan aktivasyon fonksiyonuna getirilir Bu tür aktivasyon fonksiyonları Sigmoid ve ReLU içerir. Örneğin, gizli katman nöronlarının ilk katmanı, giriş katmanı nöronlarından gelen değerlerin ağırlıklı toplamını gerçekleştirir ve ardından ReLU işlevini uygular. Aktivasyon işlevi, sinir ağının karmaşık fenomeni simüle etmesine izin veren doğrusal olmama durumunu ortaya çıkarır (çoklu doğrusal katman, bir doğrusal katmana eşdeğerdir).

Belirli bir girdi verildiğinde, sırayla her bir nöronun çıkış değerini hesaplıyoruz (nöron aktivitesi olarak da adlandırılır). Soldan sağa, katman katman hesaplamak için önceki katmanın hesaplanan değerini kullanırız ve son olarak çıktı katmanının değerini alırız. Ardından, çıktı katmanının değerine ve beklenen değere (hedef değer), örneğin ortalama kare hata kaybı işlevi temelinde bir kayıp işlevi tanımlayın.

Bunların arasında, x girdidir, h (x) çıktıdır, y hedef değerdir ve toplam, veri kümesindeki tüm veri noktalarını içerir.

Her adımda amacımız, kayıp fonksiyonunun boyutunu mümkün olduğunca azaltmak için her kenarın ağırlığını uygun bir değerle optimize etmektir. Gradyan değerini hesaplıyoruz ve ardından her bir ağırlığı özel olarak optimize etmek için gradyan kullanıyoruz. Kayıp fonksiyonunun değerini hesapladığımızda, gradyanı hesaplamak için geri yayılım algoritmasını kullanabiliriz. Geri yayılım algoritmasının ana sonucu, bu katmanın gradyanını, zincir türetme kuralı ve ikinci katmanın parametrelerinin gradyan değerini kullanarak hesaplamaktır. Ardından, her bir ağırlığı her bir gradyanla orantılı bir miktarda güncelleriz (yani gradyan inişi).

Sinir ağları ve geri yayılım algoritmalarının ayrıntıları hakkında daha fazla bilgi edinmek istiyorsanız, Nikhil Buduma tarafından yazılan aNutshell'de Derin Öğrenme'yi okumanızı tavsiye ederim.

Görüntü oluşturma sorunu

Görüntü oluşturma açısından, makine öğrenimi modellerinin görüntüler oluşturabileceğini umuyoruz. Modeli eğitmek için bir görüntü veri seti alıyoruz (örneğin, İnternetten indirilen 1.000.000 görüntü). Test sırasında model, eğitim setine aitmiş gibi görünen görüntüler oluşturabilir, ancak bunlar aslında eğitim setindeki görüntüler değildir. Başka bir deyişle, yeni bir görüntü oluşturmak istiyoruz (sadece hatırlamak yerine), ancak yine de eğitim veri setindeki modeli yakalayabileceğini umuyoruz, böylece yeni görüntünün eğitim veri setine benzer hissettirmesi.

Görüntü oluşturma sorunu: Giriş yok, istenen çıktı bir görüntü

Unutulmaması gereken bir nokta, test veya tahmin aşamasında bu soru için herhangi bir girdi olmamasıdır. Modeli her "çalıştırdığımızda", yeni bir imaj oluşturmasını (çıktısını) istiyoruz. Girdinin örneklemesi kolay bir dağılımdan (tek tip dağılım veya Gauss dağılımı gibi) rastgele örnekleneceği söylenebilir.

Üretim görevindeki temel sorunlar

Üretim görevindeki anahtar soru şudur: İyi bir kayıp işlevi nedir? Bir makine öğrenimi modeli tarafından oluşturulmuş iki resminiz varsa, hangisinin daha iyi ve ne kadar iyi olduğuna nasıl karar vereceğiz?

Önceki yöntemlerde, bu sorunun en yaygın çözümü, mesafeyi hesaplamak için önceden tanımlanmış bazı mesafe ölçümlerini kullanan eğitim setindeki çıktı görüntüsü ile en yakın görüntü arasındaki mesafeyi hesaplamaktır. Örneğin, bir dil çeviri görevinde, genellikle bir kaynak cümle ve küçük (yaklaşık 5) bir hedef cümle kümesine, yani farklı çevirmenler tarafından sağlanan çevirilere sahibiz. Model bir çeviri ürettiğinde, çeviriyi sağlanan hedef cümle ile karşılaştırırız ve ardından hangi hedef cümleye en yakın olduğuna göre karşılık gelen bir puan atarız (özellikle, iki cümle arasında kaç cümle olduğuna bağlı olan BLEU puanını kullanırız. N-gram eşleşen mesafe metriği). Ancak bu tek cümlelik bir çeviri yöntemidir Hedef daha büyük bir metin olduğunda, aynı yöntem kayıp işlevinin kalitesini ciddi şekilde bozacaktır. Örneğin, görevimiz belirli bir makale için paragraf özetleri üretmek olabilir ve bu bozulma, az sayıda örneğin tüm olası doğru yanıtlarda gözlemlenen değişiklik aralığını temsil edememesinden kaynaklanmaktadır.

Üretken yüzleşme ağı

GAN'ın yukarıdaki soruya cevabı şudur: başka bir sinir ağı kullanın - sinir ağı tarafından oluşturulan görüntünün gerçekliğini değerlendirecek olan bir puanlama sinir ağı (Ayrıştırıcı olarak adlandırılır). Bu iki sinir ağının zıt hedefleri vardır (antagonizma). Oluşturma ağının amacı gerçek görünen sahte bir görüntü oluşturmaktır ve ayrımcı ağın amacı sahte ve gerçek görüntüleri birbirinden ayırmaktır.

Bu, pekiştirmeli öğrenmede iki oyunculu oyunlara benzer görev ayarları oluşturacaktır (satranç, Atari oyunları veya Go gibi) Pekiştirmeli öğrenmede, sıfırdan kendi kendine yüzleşme yoluyla sürekli olarak iyileştirilen bir makine öğrenimi modelimiz var. Satranç veya Go oyunlarının rakipleri her zaman simetriktir (her zaman olmasa da), ancak GAN'ın ayarlanması için iki ağın hedefleri ve rolleri farklıdır. Bir ağ sahte örnekler üretirken, başka bir ağ gerçek ve sahte örnekler arasında ayrım yapar.

Yüzleşme ağının şematik bir diyagramını oluşturun, jeneratör ağı G olarak işaretlenir ve ayırıcı ağ D olarak işaretlenir

Yukarıdaki şekilde gösterildiği gibi, bir yüzleşme ağı oluşturmanın şematik bir diyagramıdır. Oluşturan ağ G ve ayırt edici ağ D, iki taraf arasında bir mini-maksimum oyunu oynuyor. Her şeyden önce, bu yüzleşme mekanizmasını daha iyi anlamak için, ayırt edici ağın (D) girdisinin eğitim setinden veya üretim ağının (G) çıktısından örneklenebileceğini, ancak genellikle% 50'sinin eğitimden geldiğini not etmeniz gerekir. Set, kalan% 50 G'den geliyor. G'den örnekler oluşturmak için, Gauss dağılımından gizli vektörleri çıkarır ve bunları üretici ağa (G) gireriz. 200 * 200 gri tonlamalı bir görüntü oluşturmak istiyorsak, üretici ağın (G) çıktısı 200 * 200 vektör olmalıdır. Tahmin için ayırıcı ağın (D) standart log-olabilirlik fonksiyonu olan amaç fonksiyonu aşağıda verilmiştir.

Üretken ağ (G), amaç işlevini en aza indirgemek, yani log-olabilirlik işlevini azaltmak veya diskriminant ağını (D) "karıştırmaktır". Başka bir deyişle, ayırt edici ağın (D) girişi olarak üretici ağın (G) çıktısından bir örnek alındığında, ayırt edici ağın gerçek bir örnek olarak tanınması umulur. Ayırıcı ağ (D), amaç fonksiyonunu maksimize etmektir, yani log-olabilirlik fonksiyonunu arttırmak veya gerçek örnekleri üretilen örneklerden ayırmaktır. Diğer bir deyişle, üretici ağ (G) "karışık" ayırt edici ağ (D) üzerinde iyi çalışıyorsa, formülün ikinci teriminde D (G (z)) 'yi artırarak da amaç işlevini en aza indirecektir. Buna ek olarak, ayırıcı ağ (D) iyi çalışabilirse, eğitim verilerinden örneklerin seçilmesi durumunda, amaç işlevi birinci terime kadar artırılacaktır (çünkü D (x) büyüktür) ve ikincisi Terim onu azaltır (çünkü D (x) küçüktür).

Normal eğitim süreci gibi, rastgele başlatma ve geri yayılım kullanılır.Ayrıca, oluşturucu ve ayırıcıyı ayrı ayrı yinelemeli olarak güncellememiz gerekir. Aşağıda, GAN'ları belirli sorunlara uygulamak için uçtan uca iş akışının bir açıklaması bulunmaktadır:

1. GAN ağ mimarisine karar verin: G'nin mimarisi nedir? D'nin yapısı nedir?

2. Eğitim: belirli sayıda alternatif güncelleme

  • D Güncellemesi (sabit G): Örneklerin yarısı doğru ve diğer yarısı yanlış

  • Güncelleme G (düzeltme D): Tüm örnekleri oluşturun (D değişmeden kalsa bile gradyan akışının D'den geçeceğini unutmayın)

3. Kalite yüksekse (veya kalite iyileşmemişse) bazı sahte örnekleri manuel olarak kontrol edin, durdurun, aksi takdirde tekrarlayın 2.

G ve D'nin her ikisi de ileri beslemeli sinir ağları olduğunda, aşağıdaki sonuçları alırız (MNIST veri setinde eğitilmiş)

Goodfellow ve Al'den, eğitim setinden başlayarak, en sağdaki sütundaki (sarı kutudaki) görüntü, hemen soldaki sütundaki görüntüye en yakın olanıdır. Diğer tüm görüntüler oluşturulmuş örneklerdir

G ve D ile ilgili olarak, stokastik gradyan inişi yerine kademeli evrişimli ve adam optimize edici kullanmak gibi daha karmaşık mimariler kullanabiliriz. Ek olarak, mimariyi optimize etmek, hiperparametreler ve optimize ediciler kullanmak gibi başka iyileştirmeler de vardır (ayrıntılar için kağıda bakın). İyileştirmeden sonra aşağıdaki sonuçları aldık:

Alec Radford ve Al'den yatak odası resmi

meydan okuma

GAN'ların eğitiminde en kritik zorluk yakınsama olasılığıdır.Bazen bu soruna mod çöküşü de denir. Bu sorunu kısaca açıklamak için bir örnek verin. Görevin MNIST veri setinde olduğu gibi dijital görüntüler oluşturmak olduğunu varsayalım. Olası sorun (pratikte ortaya çıkan), G jeneratörünün 6 sayısını üretmeye başlaması, ancak diğer sayıları üretememesidir. D, sınıflandırmanın doğruluğunu en üst düzeye çıkarmak için G'nin mevcut davranışına adapte olduktan sonra, tüm 6 sayılarını yanlış olarak sınıflandırmaya başlar ve diğer tüm sayılar gerçektir (yanlış 6 ile gerçek 6'yı ayırt edemeyeceğini varsayarak). Daha sonra G, D'nin mevcut davranışına uyum sağlar ve yalnızca 8 sayısını üretmeye başlar, başka sayı oluşturmaz. Sonra D tekrar adapte olur ve 8 sayısını yanlış olarak sınıflandırmaya başlar ve diğer her şey doğrudur. Sonra G yalnızca 3 üretmeye başlar ve bu böyle devam eder. Temel olarak, G oluşturucu yalnızca eğitim veri kümesinin küçük bir alt kümesine benzer görüntüler üretir ve tanıyıcı D bu küçük alt kümeyi diğerlerinden ayırmaya başladığında, G oluşturucu başka bir alt kümeye geçer , Her zaman basitçe ileri geri salınırlar. Bu sorun tam olarak çözülmemiş olsa da, bu sorunu önlemenin hala bazı yolları vardır. Bu yöntemler, minibatch özelliklerini ve birden çok güncellemenin D'ye geri yayılmasını içerir. Artık bu yöntemlerin ayrıntılarını tartışmayacağız, daha fazlasını öğrenmek istiyorsanız, lütfen bir sonraki bölümde önerilen okuma materyalini kontrol edin.

daha fazla okuma

GAN'lar hakkında daha fazla bilgi edinmek istiyorsanız, GAN'larla ilgili ICCV 2017 eğitimlerini (https://sites.google.com/view/iccv-2017-gans/home) okumanızı öneririm, birçok yeni öğretici var ve bunlar GAN'lar için kullanışlıdır. Her birinin farklı yönlere odaklanması vardır.

Koşullu GAN'lar (Koşullu GAN'lar) kavramından da bahsetmek istiyorum Koşullu GAN'lar girdi koşulları altında çıktı üretir. Örneğin, görev, giriş açıklamasıyla eşleşen bir görüntüyü çıkarmak olabilir. Bu nedenle, bir köpek girdiğinizde, çıktı köpeğin bir görüntüsü olmalıdır.

Aşağıda bazı yeni araştırmaların sonuçları bulunmaktadır (makalelere bağlantılar ile).

"Metinden Görüntüye sentezinin" sonucu, yazar Reed ve diğerleri

Süper çözünürlüklü görüntü (Görüntü Süper çözünürlük) sonuçları, yazar Ledig et.

Görselden Görsele çeviri (Görselden Görsele çeviri) sonuçları, yazar Isola et.

Yüksek çözünürlüklü "ünlü benzeri" resimler üreten yazar Karras et. Al

Son olarak ve en önemlisi, GAN'lar hakkında daha fazla bilgi edinmek istiyorsanız, lütfen GAN uygulamalarına göre sınıflandırılan bu makalelerin listesini kontrol edin:

https://github.com/zhangqianhui/AdversarialNetsPapers

100 + GAN varyant kağıtlarının listesi:

https://deephunt.in/the-gan-zoo-79597dc8c347

sonuç olarak

Bu makale sayesinde, umarım derin öğrenme-üretken karşıt ağlar alanındaki yeni bir teknolojiyi anlayabilirsiniz. Bunlar, denetimsiz makine öğrenimindeki birkaç başarılı teknikten biridir ve bu teknik, üretken görevleri yerine getirme becerimizde hızla devrim yaratmaktadır. Geçtiğimiz birkaç yılda bazı etkileyici sonuçlar bulduk. GAN'ların dil görevlerinin kararlılığını ve eğitimin kolaylığını vb. İyileştirmek için dil görevlerinde uygulanması da sıcak bir araştırma konusudur. GAN'lar ayrıca etkileşimli görüntü düzenleme, 3B şekil tahmini, ilaç keşfi, yarı denetimli öğrenmeden robotiklere kadar endüstride yaygın olarak kullanılmaktadır. Son olarak, umarım bu makale makine öğrenimine karşı yolculuğunuzun başlangıcıdır.

Orijinal bağlantı:

Shen Libin , Yüksek lisans öğrencisi, ana araştırma yönü büyük veri makine öğrenmesidir. Şu anda NLP'de derin öğrenme uygulamasını öğreniyorum, THU veri pastası platformunda büyük veriyi seven arkadaşlarla öğrenmeyi ve ilerlemeyi umuyorum.

Tibet'teki 2.4 metrelik kardan adam trafik polisi popüler oldu! Trafik polisi kar küreiyor ve yollar aralıklı olarak üst üste yığılıyor
önceki
Üç büyük futbol yorumcusu çılgınca suratına tokat attı, Mourinho da bunu dersten sonra yapıyor
Sonraki
Ayrıntılı rehber! Tableau yazılımına başlamayı öğretin!
55 yaşındaki bir teknisyen, İtalya'daki Ravenna nehri kıyısına bir köprü çöktüğünde diri diri gömüldü.
Ülke, Veri, Yönetim: Permütasyon ve Kombinasyon Kelime Oyunu Altında Düşünme (PPT indirmeli)
Uluslararası Şampiyonlar Kupası Nanjing İstasyonu: Inter Milan 1-0 Lyon, Jovitic bir bilgi sunmak için yedek kulübesinden iniyor
Özel | Yapay sinir ağlarının öğrenme ilkesini anlamak için bir makale
Faydalar Seçilmiş büyük kahve dersleri ve kuru ürünler, temel notlar, eğitim yazılımı paylaşımı (PPT / video ile)
Dünya şampiyonu Zou Jingyuan, küçük kardeşlerini cesaretlendirmek için Yibin'e döndü: Azim, zafer her zaman gelecek!
Refah Seçilmiş 13 yabancı kaynaktan oluşan bir koleksiyon (teknik kılavuzlar, büyük kahve deneyimi, kaynak paylaşımı)
"F1 havada" saha ziyareti, dünyanın en iyi pilotları Wuhan'da yarışmayı dört gözle bekliyor
Özel | Yapay Sinir Ağlarını Tek Bir Makalede Okuma
Python'da test veri setleri oluşturmak için Scikit'i kullanmayı öğretin (kod ve öğrenme materyalleri ile)
95 yaşındaki "Marvel'in Babası" Stan Lee öldü, Deng Ziqi'yi süper kahraman yapmak istiyor
To Top