0Pricing
Learn AI with Python · Ders

Gösterim Öğrenmesi için Otokodlayıcılar

Kodlayıcı-kod çözücü mimarisi, darboğaz, yeniden yapılandırma kaybı, anomali tespitindeki uygulamalar.

Gösterim Öğrenmesi için Otokodlayıcılar, CoddyKit'te ücretsiz bir Learn AI with Python dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Learn AI with Python öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Learn AI with Python kursu toplamda 4 dersten oluşur.

Otomatik Kodlayıcı nedir?

Bir otomatik kodlayıcı, verileri küçük bir koda sıkıştırmayı ve ardından yeniden oluşturmayı öğrenir. İki bölümden oluşur: sıkıştırma yapan bir kodlayıcı ve veriyi yeniden oluşturan bir kod çözücü. Ortadaki daralma, onu önemli olanı öğrenmeye zorlar.

import torch
import torch.nn as nn

Darboğaz Fikri

Dar orta katman, darboğaz veya gizil kod olarak adlandırılır. Tüm bilgileri birkaç sayıdan geçmeye zorlayarak ağ, gürültüyü atmak ve verilerin temel yapısını korumak zorunda kalır.

Kodlayıcıyı Oluşturma

28x28 görüntüler (784 piksel) için kodlayıcı, girdiyi adım adım küçültür: 784'ten 256'ya, oradan da 64 boyutlu gizil koda. Her Linear katmanını bir ReLU doğrusal olmayanlığı izler.

encoder = nn.Sequential(
    nn.Linear(784, 256),
    nn.ReLU(),
    nn.Linear(256, 64)
)

Kod Çözücüyü Oluşturma

Kod çözücü, kodlayıcıyı yansıtır ve 64 boyutlu kodu yeniden 784 piksele genişletir. Son Sigmoid katmanı, çıktıları normalize edilmiş piksel değerleriyle eşleşmeleri için [0,1] aralığına sıkıştırır.

decoder = nn.Sequential(
    nn.Linear(64, 256),
    nn.ReLU(),
    nn.Linear(256, 784),
    nn.Sigmoid()
)

Tam Otomatik Kodlayıcı

Kodlayıcıyı ve kod çözücüyü tek bir modülde birleştirin. forward geçişi önce kodlar, ardından kodu çözer ve girdinin şekliyle aynı şekle sahip bir yeniden yapılandırma döndürür.

class AutoEncoder(nn.Module):
    def __init__(self, enc, dec):
        super().__init__()
        self.enc, self.dec = enc, dec
    def forward(self, x):
        z = self.enc(x)
        return self.dec(z)

Yeniden Yapılandırma Kaybı (MSE)

Eğitim hedefi girdinin kendisidir. Ortalama Kare Hata, yeniden yapılandırmanın özgün pikselden piksel bazında ne kadar uzak olduğunu ölçer. Bunu en aza indirmek, verilerin aslına sadık biçimde sıkıştırılmasını öğretir.

criterion = nn.MSELoss()

x_flat = x.view(x.size(0), -1)
recon = model(x_flat)
loss = criterion(recon, x_flat)

Otomatik Kodlayıcıyı Eğitme

Eğitim denetimsizdir: etiket yoktur, yalnızca girdiler vardır. Döngüde standart zero_grad, forward, backward, step adımları kullanılır; ancak kayıp, çıktıyı girdiyle karşılaştırır.

optimizer.zero_grad()
recon = model(x_flat)
loss = criterion(recon, x_flat)
loss.backward()
optimizer.step()

Gizil Uzay

Eğitimden sonra kodlayıcı, her girdiyi gizil uzayda bir noktaya eşler. Benzer girdiler birbirine yakın konumlanır; böylece bu 64 boyutlu kod, verilerin öğrenilmiş ve sıkıştırılmış bir gösterimi olur.

z = model.enc(x_flat)
print(z.shape)  # [batch, 64]

t-SNE ile Görselleştirme

64 boyutlu gizil uzayı görmek zordur. t-SNE, çizim yapmak üzere bu uzayı 2B'ye yansıtır. Çizimdeki kümeler, otomatik kodlayıcının etiketleri hiç görmeden benzer öğeleri bir araya topladığını gösterir.

from sklearn.manifold import TSNE

codes = model.enc(all_data).detach().numpy()
proj = TSNE(n_components=2).fit_transform(codes)
# scatter plot proj colored by true label

Anomali Tespiti

Normal veriler üzerinde eğitilen bir otomatik kodlayıcı, bu verileri iyi bir şekilde yeniden yapılandırır; ancak daha önce hiç görmediği anomalilerde zorlanır. Yüksek yeniden yapılandırma hatası, güçlü bir denetimsiz anomali algılayıcı olarak aykırı bir değeri işaretler.

errors = ((model(data) - data) ** 2).mean(dim=1)
anomalies = errors > threshold

Temsil Öğrenimi Neden Önemlidir?

Asıl değer gizil koddadır: bunu kümeleme, görselleştirme, anomali tespiti veya başka bir modele girdi olarak kullanabileceğiniz, öğrenilmiş bir özellik vektörüdür; üstelik bunların tümü etiketler olmadan öğrenilir.

Hızlı Kontrol

Otomatik kodlayıcı anlayışınızı sınayın.

Özet: Otomatik Kodlayıcılar

Bir kodlayıcı (784'ten 256'ya, ardından 64'e) ve bunun yansıtılmış bir kod çözücüsünü oluşturdunuz; bunları etiket kullanmadan MSE yeniden yapılandırma kaybı ile eğittiniz. Gizil kodu temsil öğrenimi için kullandınız, bunu t-SNE ile görselleştirdiniz ve yüksek yeniden yapılandırma hatası aracılığıyla anomalileri tespit ettiniz.

Sıkça Sorulan Sorular

“Gösterim Öğrenmesi için Otokodlayıcılar” dersi ücretsiz mi?

Evet — “Gösterim Öğrenmesi için Otokodlayıcılar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Learn AI with Python kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Learn AI with Python kursu toplamda 4 dersten oluşur.

“Gösterim Öğrenmesi için Otokodlayıcılar” dersinde ne öğreneceğim?

Kodlayıcı-kod çözücü mimarisi, darboğaz, yeniden yapılandırma kaybı, anomali tespitindeki uygulamalar. Learn AI with Python ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Learn AI with Python öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Learn AI with Python, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Gösterim Öğrenmesi için Otokodlayıcılar” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Learn AI with Python dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Learn AI with Python dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Gösterim Öğrenmesi için Otokodlayıcılar
  2. Varyasyonel Otokodlayıcılar (VAE)
  3. GAN'ler: Üretici ve Ayrıştırıcı
  4. Koşullu GAN'ler ve Stil Aktarımı
← Learn AI with Python Sayfasına Dön