Oto-kodlayıcıların amaçları nelerdir?


10

Otomatik kodlayıcılar , girdinin daha sonra yeniden yapılandırılması için sıkıştırılmış bir temsilini öğrenen sinir ağlarıdır, böylece boyutsallığın azaltılması için kullanılabilirler. Bir kodlayıcı ve bir kod çözücüden oluşurlar (ayrı sinir ağları olabilir). Boyut azalması, verilerin seyrekleştiği ve "istatistiksel anlamlılık" elde etmenin daha zor olduğu boyutsallığın laneti ile ilgili meseleleri ele almak veya azaltmak için faydalı olabilir. Böylece, otomatik kodlayıcılar (ve PCA gibi algoritmalar) boyutsallığın lanetiyle başa çıkmak için kullanılabilir.

Özellikle otomatik kodlayıcıları kullanarak boyutsal küçültmeyi neden önemsiyoruz? Amaç boyutsallık azalmasıysa neden sadece PCA'yı kullanamıyoruz?

Sadece boyutsal küçültme yapmak istiyorsak neden girdinin gizli gösterimini açmamız gerekiyor veya neden bir otomatik kodlayıcıda kod çözücü kısmına ihtiyacımız var? Kullanım durumları nelerdir? Genel olarak, girdiyi neden daha sonra açmak için sıkıştırmamız gerekiyor? Sadece orijinal girişi kullanmak daha iyi olmaz mıydı?


1
Ayrıca aşağıdaki CrossValidated SE istatistiklerine bakın . Stackexchange.com/q/82416/82135.
nbro

Yanıtlar:


6

Verilerdeki ne tür modellerin temsil edildiğini düşünmek önemlidir.

Her görüntünün aynı yoğunlukta olacağı şekilde bir gri tonlamalı görüntü veri kümeniz olduğunu varsayalım. Bir insan beyni olarak, bu veri kümesindeki her öğenin, tek bir sayısal parametre, yani bu yoğunluk değeri olarak tanımlanabileceğini fark edersiniz. Bu, PCA'nın iyi çalışacağı bir şeydir, çünkü boyutların her biri (her pikseli farklı bir boyut olarak düşünebiliriz) mükemmel bir şekilde doğrusal olarak ilişkilidir.

Bunun yerine, ortalanmış dairelerin siyah beyaz 128x128 piksel bitmap görüntülerinin veri kümesine sahip olduğunu varsayalım. Bir insan beyni olarak, bu veri kümesindeki her öğenin, dairenin yarıçapı olan tek bir sayısal parametre ile tam olarak tanımlanabileceğini hemen anlayacaksınız. Bu, 16384 ikili boyutlarından çok etkileyici bir azalma düzeyidir ve belki de daha da önemlisi, verilerin anlamsal olarak anlamlı bir özelliğidir. Bununla birlikte, PCA muhtemelen bu modeli bulamayacaktır.

Sorunuz "Amaç boyutsallık azalmasıysa neden sadece PCA kullanamıyoruz?" Basit cevap, PCA'nın boyutsal azaltma için en basit araç olduğu, ancak otomatik kodlayıcılar gibi daha güçlü tekniklerin bulabileceği birçok ilişkiyi kaçırabileceğidir.


3

Otomatik kodlayıcıların (özellikle kod çözücünün veya otomatik kodlayıcının üretken modelinin) bir kullanım durumu girişi kınamaktır. Dengeleyici oto-kodlayıcılar olarak adlandırılan bu tip otomatik kodlayıcılar kısmen bozuk bir girdi alır ve karşılık gelen bozulmamış girişi yeniden yapılandırmaya çalışırlar. Bu modelin çeşitli uygulamaları vardır. Örneğin, bozuk bir görüntünüz varsa, bozulmayan bir otomatik kodlayıcı kullanarak bozulmamış görüntüyü kurtarabilirsiniz.

Otomatik kodlayıcılar ve PCA aşağıdakilerle ilgilidir:

tek bir tam bağlı gizli katmana sahip bir otomatik kodlayıcı, doğrusal bir aktivasyon fonksiyonu ve bir kare hata maliyet fonksiyonu, ana bileşen yükleme vektörlerinin kapsadığı ile aynı alt boşluğa yayılan ancak yükleme vektörleri ile aynı olmayan ağırlıkları eğitir.

Daha fazla bilgi için Elad Plaut'un Temel Alt Uzaylardan Lineer Otomatik Enkoderli Temel Bileşenlere (2018) ait makalesine göz atın. Ayrıca PCA ve otomatik kodlayıcılar arasındaki ilişkiyi de açıklayan bu cevaba bakınız.


3

PCA, vektör projeksiyonlarını (eksen değiştirerek) değiştirebilen bir dönüşüm oluşturan doğrusal bir yöntemdir

PCA maksimum varyans yönünü aradığından, genellikle yüksek ayrımcılığa sahiptir, ancak çoğu varyansın yönünün çoğu ayrımcılığın yönü olduğu garanti edilmez.

LDA, bir vektörün A veya B sınıfına ait olup olmadığına karar vermek için en uygun yönü bulabilen bir dönüşüm oluşturan doğrusal bir yöntemdir.

PCA ve LDA, doğrusal sınırlamalarının üstesinden gelebilecek doğrusal olmayan Çekirdek sürümlerine sahiptir.

Otomatik kodlayıcılar, diğer kayıp fonksiyonu türleriyle boyutsallık azalması yapabilir, doğrusal olmayabilir ve birçok durumda PCA ve LDA'dan daha iyi performans gösterebilir.

Muhtemelen bir şey yapmak için en iyi makine öğrenme algoritması yoktur, bazen Derin Öğrenme ve Sinir Ağları basit sorunlar için aşırıya kaçar ve PCA ve LDA diğer daha karmaşık boyutsal azaltmalardan önce denenebilir.


1
LDA'nın soru ile ne ilgisi var?
nbro

LDA boyutsallık azalması olarak kullanılabilir. Orijinal algoritma yalnızca bir projeksiyon elde eder, ancak daha doğru modelleme için daha düşük düzeyli ayrımcı yön elde etmek için kullanabilirsiniz
Pedro Henrique Monforte

PCA da maksimum varyansı garanti etmez, açgözlü bir algoritma olduğundan sadece maksimum değere yaklaşır.
Mathieu Bouville

PCA kapalı bir çözüme sahiptir, ana eksen her zaman maksimum varyansın yönü olacaktır. Açgözlü bir algoritma değil (ama bir tane olarak uygulanabilir)
Pedro Henrique Monforte

1
  1. Ağın eğitimi için kayıp fonksiyonunu hesaplamak için dekoder yarısı gereklidir. Sadece rakip bileşenle ilgileniyor olsanız bile, bir GAN'da 'düşmanın' nasıl gerekli olduğuna benzer.
  2. Otomatik kodlayıcılar, verilerin doğrusal olmayan düğünlerini öğrenebilir ve bu nedenle vanilya PCA'dan daha güçlüdür.
  3. Otomatik kodlayıcıların boyutsal küçülmenin ötesinde uygulamaları vardır :
    • Yeni veri noktaları oluşturma veya enterpolasyon gerçekleştirme (bkz. VAE'ler)
    • Gürültü giderici filtreler oluşturma (örn. Görüntü işlemede)
    • Verileri sıkıştırma / açma
    • Bağlantı tahmini (örneğin ilaç keşfinde)
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.