Yazarlar: Harshit Sharma, Saurabh Mishra
Üretken modeller, denetimsiz öğrenmenin bir alt kümesidir; burada bazı eğitim verileri verildiğinde, aynı dağıtımdan yeni örnekler / veriler oluştururuz. Bu dağıtımı modellemenin iki yolu vardır, bunlardan en verimli ve popüler olanı Otomatik Regresif modeller, Otomatik Kodlayıcılar ve GAN'lardır.
Üretken Çekişmeli Ağlar (GAN'lar) ile Otomatik gerileyen modeller arasındaki temel fark, GAN'ların örtük veri dağıtımını öğrenirken, ikincisinin model yapısı tarafından önceden empoze edilen açık bir dağılımı öğrenmesidir. Bir dağıtım, herhangi bir şey olabilir, örneğin sınıf etiketi, araba veya kedi resimleri. Daha basit terimlerle bir önceki, bir miktarın olasılık dağılımı anlamına gelir.
Otomatik gerileyen modellerin GAN'lara göre avantajlarından bazıları şunlardır:
1. Olasılığı hesaplamanın bir yolunu sağlar : Bu modeller, açık olasılık yoğunluklarını (GAN'ların aksine) döndürme avantajına sahiptir, bu da sıkıştırma ve olasılıklı planlama ve keşif gibi alanlarda uygulamayı kolaylaştırır.
2. Eğitim GAN'lardan daha kararlıdır : Bir GAN eğitimi, Nash dengesini bulmayı gerektirir. Bunu yapan bir algoritma olmadığından, bir GAN eğitimi PixelRNN veya PixelCNN ile karşılaştırıldığında kararsızdır.
3. Hem ayrık hem de sürekli veriler için çalışır : GAN için metin gibi ayrı veriler oluşturmayı öğrenmek zordur.
GAN'ların daha yüksek kaliteli görüntüler ürettikleri ve eğitilmeleri daha hızlı olduğu bilinmektedir. Her iki sınıfın avantajlarını tek bir modelde birleştirmek için çaba sarf edilmektedir, ancak bu hala bir açık araştırma alanıdır. Bu blogda, yalnızca Otomatik gerileyen kısma odaklanacağız ve diğerlerini daha sonra bırakacağız.
Denetimsiz öğrenmedeki en önemli ve en iyi bilinen sorunlardan biri, doğal görüntülerin dağılımının modellenmesidir ve bu, özellikle bu blogu yazmayı seçmemizin nedenidir.
Bu sorunu çözmek için izlenebilir ve ölçeklenebilir bir modele ihtiyacımız var. PixelRNN, PixelCNN, bu koşulların her ikisini de karşılayan Otomatik gerilimli modeller sınıfının bir parçasıdır.
Bu tür modeller tercihen görüntü tamamlamada kullanılır. Bunun nedeni, bu tür problemlerde diğer üretici modellerden daha iyi performans göstermesidir.
Böyle bir ağı modellemeye yönelik etkili bir yaklaşım, bir görüntünün piksellerini koşullu dağılımların bir ürünü olarak ölçmek için olasılıklı yoğunluk modellerini (Gaussian veya Normal dağılım gibi) kullanmaktır. Bu yaklaşım, modelleme problemini, bir sonraki piksel değerinin önceden oluşturulan tüm piksel değerleri tarafından belirlendiği bir dizi problemine dönüştürür.
Piksel değerleri ve dağılımlar arasındaki bu doğrusal olmayan ve uzun vadeli bağımlılıkları işlemek için Tekrarlayan Sinir Ağı (RNN) gibi ifade edici bir dizi modeline ihtiyacımız var. RNN'lerin, sekans problemlerinin üstesinden gelmede son derece verimli olduğu gösterilmiştir.
Koşullu Bağımsızlık
Ağ, görüntüyü her satırda bir seferde bir piksel olarak tarar. Ardından, olası piksel değerleri üzerinden koşullu dağılımları tahmin eder. Görüntü piksellerinin dağılımı koşullu dağılımların ürünü olarak yazılır ve bu değerler görüntünün tüm pikselleri arasında paylaşılır.
Buradaki amaç, (nxn) görüntünün her pikseline bir olasılık p (x) atamaktır. Bu, xi piksel olasılığını şu şekilde yazarak yapılabilir:
Bu, önceden oluşturulan tüm piksellerin olasılığı verildiğinde i. Piksel olasılığıdır. Üretim, satır satır ve piksel piksel ilerler. Ayrıca her bir xi piksel, kırmızı, yeşil ve mavi (RGB) üç renk kanalının tümü tarafından ortaklaşa belirlenir. İ. Pikselin koşullu olasılığı şöyle olur:
Böylelikle her bir renk, diğer renklerin yanı sıra önceden oluşturulmuş pikseller üzerinde koşullandırılır.
Artık piksel değerimizin koşullu olasılığını bildiğimiz için, uygun piksel değerini elde etmek için 256 yollu bir softmax katmanı kullanıyoruz. Bu katmanın çıktısı 0–255 arasında herhangi bir değer alabilir, yani piksel değerimiz 0–255 arasında değişebilir.
Model Mimarisi:
Kullanılabilecek dört farklı mimari vardır:
Row LSTM, Diagonal BiLSTM, tamamen evrişimli bir ağ ve Çok Ölçekli bir ağ.
Ağ, iki boyutlu LSTM'lerin 12 katmanından oluşur. Kullanılan iki tür LSTM katmanı şunlardır:
Gizli durum (i, j) = Gizli durum (i-1, j-1) + Gizli durum (i-1, j + 1) + Gizli durum (i-1, j) + p (i, j)
Bu, görüntü satırını yukarıdan aşağıya tüm satırın bilgi işlem özelliklerini aynı anda işler. Pikselin üzerinde oldukça üçgen bir bölge yakalar. Ancak mevcut bölgenin tamamını yakalayamaz.
Çapraz BiLSTM
piksel (i, j) = piksel (i, j-1) + piksel (i-1, j).
Bu katmanın alıcı alanı, mevcut tüm bölgeyi kapsar. İşlem çapraz olarak devam ediyor. Üst köşeden başlar ve her iki yönde hareket ederken karşı köşeye ulaşır.
Artık bağlantılar (veya atlama bağlantıları) da yakınsama hızını artırmak ve ağ üzerinden sinyalleri daha doğrudan yaymak için bu ağlarda kullanılır.
Maskeli kıvrımlar:
Her katmandaki her bir giriş konumu için özellikler, her biri bir renge (RGB) karşılık gelen üç bölüme ayrılmıştır. G kanalının değerlerini hesaplamak için, önceki piksellerin değerleriyle birlikte R kanalının değerine ihtiyacımız var. Benzer şekilde, B kanalı hem R hem de G kanallarının bilgilerini gerektirir. Ağı bu kısıtlamalara uyacak şekilde kısıtlamak için kıvrımlara maskeler uyguluyoruz.
İki tür maske kullanıyoruz:
Kayıp İşlevi ve Değerlendirme metriği
Burada, ağ 0–255 değerlerinden piksel değerlerini tahmin ederken (sınıflandırırken) kayıp ve değerlendirme ölçütü olarak negatif günlük olabilirliği (NLL) kullanılır.
PixelRNN'nin ana dezavantajı, her durumun sıralı olarak hesaplanması gerektiğinden eğitimin çok yavaş olmasıdır. Bu, evrişimli katmanlar kullanılarak ve alıcı alanı artırarak aşılabilir. PixelCNN, sınırlı bir alıcı alanı yakalamak ve aynı anda tüm piksel konumları için özellikleri hesaplamak için standart evrişimli katmanlar kullanır. Uzamsal çözünürlüğü koruyan çok sayıda evrişimli katman kullanır. Ancak havuz katmanları kullanılmamaktadır. Modelin koşullu bağımlılığı ihlal etmesini kısıtlamak için evrişimlerde maskeler benimsenmiştir.
İlk katman, A maskesini kullanan 7x7'lik bir kıvrımdır ve katmanların geri kalanı 3x3 evrişim ve B maskesi kullanır. Ardından özellik haritası, ReLU aktivasyonu ve 1x1 evrişimden oluşan birkaç katmandan geçer. Bu mimarinin son katmanı 256 yollu softmax katmanıdır.
PixelCNN, PixelRNN'ye kıyasla eğitim süresini önemli ölçüde azaltır. Bununla birlikte, her pikselin bir sonraki pikseli hesaplamak için ağa girdi olarak geri verilmesi gerektiğinden, görüntü oluşturma hala sıralıdır. PixelCNN'nin en büyük dezavantajı, performansının PixelRNN'den daha kötü olmasıdır. Diğer bir dezavantaj, alıcı alanda bir Kör Noktanın varlığıdır. Alıcı alanın bir CNN tarafından ele geçirilmesi üçgen bir şekilde ilerler. Aşağıdaki şekilde gösterildiği gibi, birkaç pikselin alıcı alanın dışında kalmasına neden olur. Evrişimli ağlar, sınırlı bir alıcı alanı yakaladığından (BiLSTM'den farklı olarak) ve tüm pikseller için özellikleri aynı anda hesapladığından, bu pikseller, istenmeyen tüm önceki piksellere bağımlı değildir. Evrişimli katmanlar alıcı alanları tam olarak işleyemez, bu nedenle piksel değerlerinin hafif bir yanlış hesaplanmasına yol açar. Dışarıda bırakılan pikseller kör noktayı oluşturur.
PixelRNN'nin günlük olasılığıyla eşleşirken PixelCNN'nin mimarisini geliştirir.
PixelRNN'nin neden PixelCNN'den daha iyi performans gösterdiğine dair temel fikir, LSTM katmanlarını kullanmasıdır. LSTM'lerin alıcı alanı, PixelCNN'de derinlikle büyürken ağdaki tüm komşu pikselleri kapsar. Bu yöntemde getirilen en büyük gelişme veya değişiklik, ReLU yerine aşağıdaki etkinleştirmenin kullanılmasıdır:
Bu modelin diğer bir büyük iyileştirmesi, CNN'nin mevcut alıcı alanı yığınları kullanarak tamamen kullanmaktır. PixelCNN'deki alıcı alan sınırlıdır, bu da koşullu dağılım hesaplamalarından birkaç pikselin çıkarılmasına yol açar, böylece CNN'nin işleyemeyeceği bir kör nokta oluşturur. Bu model, yukarıda bahsedilen sorunu ortadan kaldırmak için iki yığın katman kullanır:
OpenAI'nin bu modeli, hesaplama verimliliğini korurken PixelCNN'nin performansını iyileştirmek için bazı değişiklikler yapar. Önemli değişiklikler şunları içerir:
Sonuç
Deneyler, PixelCNN ++ 'nın PixelGAN gibi birçok araştırma makalesinde görülebileceği gibi devam eden araştırmalarda uygulama alanı olan Değişken Otomatik Kodlayıcılarda (VAE) kod çözücü olarak kullanılabileceğini gösterdi. PixelCNN, ağın kendisi daha düşük boyutlu özelliklerle ilgilenebildiğinden, kodlayıcıyı daha yüksek seviyeli özellikleri öğrenmeye zorlar. VAE'lerin, GAN'ların ve Otomatik gerileyen modellerin birlikte kullanılması aktif bir araştırma alanıdır. Bu modeller, Pekiştirme teknikleriyle birlikte, en son teknikleri geliştirebilir ve denetimli öğrenmede devam eden araştırma düzeyine uyacak şekilde denetimsiz / yarı denetimli öğrenme alanındaki araştırmaya öncülük edebilir.
Referanslar
Bir ürün yöneticisi olarak sürekli olarak ekibimi ve kendimi daha verimli ve etkili hale getirmenin yollarını arıyorum. Aşağıda, zamandan tasarruf etmek ve daha fazla etki yaratmak için ChatGPT'yi bir Proje Yöneticisinin iş akışına nasıl dahil edebileceğinize dair birkaç başlangıç fikri verilmiştir.
Bu makalede, Dolandırıcılık Tespitinde Makine Öğreniminin Önemi : Müşterileri Korumak İçin Bir Model Nasıl Oluşturulur konusunu ele alıyoruz. 1.
İnsanlara şans verme konusunda hayatta biraz geç kalındığına inanıyorum. Cömertçe.
Google UX Design sertifikasını bitirdikten sonra Görsel Tasarımım hala düşük seviyedeydi, Berbattı ve diğer öğrencilerin oldukça benzer çalışmalarını gördüm. Ama bizim suçumuz değil arkadaşlar, Google UX Design sertifikasında bir boşluk olduğu sonucuna vardım ve bugün onu doldurmanıza yardımcı olacağım.
COVID-19 salgınının Grand Rapids şehri ve sakinleri üzerinde derin bir etkisi oldu. Virüs 2020'nin başlarında ilk ortaya çıktığında, topluluktaki birçok kişi başlangıçta ciddiyetine ve yayılmasını kontrol etmek için katı önlemlere duyulan ihtiyaç konusunda şüpheciydi.
"En sıcak aşk, en soğuk sona sahiptir." — Yunan filozofu Sokrates “Aşk, iki bedende yaşayan tek bir ruhtan oluşur.