Autoencoderlar; girdi verisini daha düşük boyutlu, anlamlı bir temsile sıkıştırarak ve bu temsilden girdiyi yeniden oluşturarak öğrenen yapay sinir ağı tabanlı bir makine öğrenmesi yöntemidir. İlk olarak 1980'li yıllarda tanıtılan autoencoderlar, denetimsiz öğrenme yaklaşımı çerçevesinde çalışmakta ve temel amaç olarak veri içerisindeki önemli özellikleri öğrenerek verinin düşük boyutlu bir temsilini oluşturmaktadır. Girdi ve çıktı verilerinin aynı olduğu bu mimaride, ağın eğitimi sırasında veri kaybının minimize edilmesi hedeflenir. Autoencoderlar, veri sıkıştırma, özellik çıkarımı, boyut indirgeme, gürültü temizleme ve üretici modeller gibi birçok alanda kullanılmaktadır.
Autoencoderların Temel Yapısı
Autoencoderlar, temel olarak encoder (kodlayıcı) ve decoder (çözücü) olmak üzere iki ana bölümden oluşur. Encoder, girdiyi düşük boyutlu bir kod haline dönüştürürken, decoder bu kodu kullanarak orijinal veriyi yeniden üretmeye çalışır.
Bir Autoencoder'ın temel yapısı. (YZ ile oluşturulmuştur.)
Encoder ve Decoder Yapısı
Encoder, yüksek boyutlu girdi verilerini daha küçük boyutlu bir gizli katman temsiline dönüştürür. Bu süreçte amaç, verinin en önemli özelliklerini kaybetmeden temsil etmektir. Encoder tarafından üretilen bu düşük boyutlu temsile "code" ya da "latent representation" adı verilir.
Decoder ise bu kodu alarak, orijinal girdi verisinin bir tahmini olan çıktıyı üretir. Autoencoderlar, çıktının girdi verisine olabildiğince yakın olması için optimize edilir.
Matematiksel Model
Autoencoderlar, iki fonksiyonun öğrenilmesi ile ifade edilir:
- A : Rn→Rp (Encoder)
- B : Rp→Rn (Decoder)
Amaç, aşağıdaki optimizasyon problemini minimize etmektir:
argminA,B E[Δ(x,B(A(x)))]
Burada Δ (Delta) fonksiyonu, çıktı ile orijinal girdi arasındaki farkı ölçer ve genellikle ℓ2-normu (ortalama kare hata) kullanılır.
Autoencoder Türleri
Autoencoderların farklı varyasyonları, farklı amaçlara hizmet etmek üzere geliştirilmiştir. Bu varyasyonlar, temel yapıyı korurken farklı düzenleme stratejileri ve kayıp fonksiyonları kullanır.
Undercomplete ve Overcomplete Autoencoderlar
- Undercomplete Autoencoder: Gizli katmanın boyutu, giriş katmanının boyutundan küçüktür. Bu sayede ağ, yalnızca önemli özellikleri öğrenmek zorunda kalır.
- Overcomplete Autoencoder: Gizli katmanın boyutu girişten büyük veya eşittir. Bu durumda aşırı öğrenmeyi (overfitting) önlemek için ek düzenlemelere ihtiyaç duyulur.
Sparse Autoencoderlar
Sparse autoencoderlarda, gizli katman aktivasyonlarının büyük kısmının sıfıra yakın olması teşvik edilir. Bu sayede veriden sadece önemli özelliklerin çıkarılması sağlanır. Genellikle L1 regularizasyonu veya Kullback-Leibler divergence gibi yöntemler kullanılarak sparsity sağlanır.
Denoising Autoencoderlar
Denoising autoencoderlar, giriş verisine bilinçli olarak gürültü ekler ve ağın orijinal temiz veriyi yeniden oluşturmayı öğrenmesini sağlar. Bu yaklaşım, modelin daha sağlam ve genel geçer özellikler öğrenmesine yardımcı olur.
Variational Autoencoderlar (VAE)
Variational autoencoderlar, klasik autoencoderlardan farklı olarak veri oluşturabilen (generative) modellerdir. Latent temsili bir olasılık dağılımı üzerinden örnekleyerek veri üretimi sağlarlar. Bu yapıda encoder, bir olasılık dağılımının parametrelerini (ortalama ve varyans) öğrenir, decoder ise bu parametrelerden örneklenen kodları kullanarak veri üretir.
Autoencoderların Kullanım Alanları
Autoencoderlar geniş bir uygulama alanına sahiptir. Farklı yapılandırmaları, çeşitli problem türlerinde kullanılabilir.
Autoencoderların günlük hayatta kullanımları hakkında. (YZ ile oluşturulmuştur.)
Boyut İndirgeme
Autoencoderlar, verinin daha düşük boyutlu bir temsiline indirgenmesi amacıyla kullanılabilir. Bu kullanım, geleneksel boyut indirgeme yöntemleri (örneğin, Principal Component Analysis - PCA) ile benzerlik gösterse de, autoencoderlar doğrusal olmayan ilişkileri de öğrenebilir.
Gürültü Temizleme
Denoising autoencoderlar, özellikle görüntü işleme alanında veriden gürültüyü temizlemek için kullanılır. Ağ, bozulmuş giriş verisini kullanarak orijinal temiz veri tahmin etmeyi öğrenir.
Anomali Tespiti
Autoencoderlar, normal veri örnekleri üzerinde eğitildikten sonra, anormal örneklerin tespit edilmesinde kullanılabilir. Anormal veriler, ağ tarafından doğru şekilde yeniden yapılamayacağı için yüksek yeniden yapılandırma hatasına sahip olacaktır.
Üretici Modeller
Özellikle variational autoencoderlar (VAE), yeni veri örnekleri üretmek için kullanılabilir. Eğitim sırasında öğrenilen dağıtımdan rastgele örneklemeler yapılarak yeni veriler oluşturulabilir.
Öznitelik Çıkarımı
Autoencoderlar, verilerden öznitelik (feature) çıkarımı için de kullanılır. Özellikle sınıflandırma veya kümeleme gibi diğer makine öğrenmesi görevlerinde, autoencoderın encoder kısmı bir öznitelik çıkarıcı olarak kullanılabilir.