Autoencoder untuk Pembelajaran Representasi
Arsitektur encoder-decoder, bottleneck, loss rekonstruksi, penerapan dalam deteksi anomali.
Autoencoder untuk Pembelajaran Representasi adalah pelajaran Learn AI with Python gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Learn AI with Python, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Learn AI with Python mencakup 4 pelajaran total.
Apa itu Pengode Otomatis?
Pengode otomatis mempelajari cara memampatkan data menjadi kode kecil dan merekonstruksinya kembali. Model ini memiliki dua bagian: pengode yang memampatkan dan dekoder yang membangun kembali. Penyempitan di tengah memaksanya mempelajari hal-hal yang penting.
import torch
import torch.nn as nnGagasan Leher Botol
Lapisan tengah yang sempit adalah leher botol atau kode laten. Dengan memaksa semua informasi melewati beberapa angka, jaringan harus membuang derau dan mempertahankan struktur penting data.
Membangun Pengode
Untuk gambar 28x28 (784 piksel), pengode menyusutkan masukan secara bertahap: 784 menjadi 256 lalu menjadi kode laten berdimensi 64. Setiap lapisan Linear diikuti nonlinieritas ReLU.
encoder = nn.Sequential(
nn.Linear(784, 256),
nn.ReLU(),
nn.Linear(256, 64)
)Membangun Dekoder
Dekoder mencerminkan enkoder, memperluas kode 64 dimensi kembali menjadi 784 piksel. Sigmoid terakhir memampatkan keluaran ke rentang [0,1] agar sesuai dengan nilai piksel yang dinormalisasi.
decoder = nn.Sequential(
nn.Linear(64, 256),
nn.ReLU(),
nn.Linear(256, 784),
nn.Sigmoid()
)Autoenkoder Lengkap
Satukan enkoder dan dekoder ke dalam satu modul. Proses forward melakukan enkode lalu dekode, dan mengembalikan rekonstruksi dengan bentuk yang sama seperti masukan.
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)Galat Rekonstruksi (MSE)
Target pelatihan adalah masukan itu sendiri. Galat Kuadrat Rata-rata mengukur seberapa jauh rekonstruksi dari piksel asli, piksel demi piksel. Meminimalkannya mengajarkan kompresi yang setia.
criterion = nn.MSELoss()
x_flat = x.view(x.size(0), -1)
recon = model(x_flat)
loss = criterion(recon, x_flat)Melatih Autoenkoder
Pelatihan dilakukan tanpa pengawasan: tidak ada label, hanya masukan. Perulangannya menggunakan zero_grad, forward, backward, step standar, tetapi galatnya membandingkan keluaran dengan masukan.
optimizer.zero_grad()
recon = model(x_flat)
loss = criterion(recon, x_flat)
loss.backward()
optimizer.step()Ruang Laten
Setelah dilatih, enkoder memetakan setiap masukan ke sebuah titik dalam ruang laten. Masukan yang serupa berada berdekatan, sehingga kode 64 dimensi ini menjadi representasi data yang ringkas dan dipelajari.
z = model.enc(x_flat)
print(z.shape) # [batch, 64]Visualisasi dengan t-SNE
Ruang laten 64 dimensi sulit dilihat. t-SNE memproyeksikannya ke 2D untuk dibuat plot. Gugus pada plot menunjukkan bahwa autoenkoder mengelompokkan item yang serupa tanpa pernah melihat label.
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 labelDeteksi Anomali
Autoenkoder yang dilatih menggunakan data normal dapat merekonstruksinya dengan baik, tetapi kesulitan merekonstruksi anomali yang belum pernah dilihatnya. Galat rekonstruksi yang tinggi menandai pencilan, sehingga menjadi pendeteksi anomali tanpa pengawasan yang ampuh.
errors = ((model(data) - data) ** 2).mean(dim=1)
anomalies = errors > thresholdMengapa Pembelajaran Representasi?
Hasil terpentingnya adalah kode laten: vektor fitur yang dipelajari dan dapat digunakan untuk pengelompokan, visualisasi, deteksi anomali, atau sebagai masukan bagi model lain, semuanya dipelajari tanpa label.
Uji Singkat
Uji pemahaman Anda tentang autoenkoder.
Ringkasan: Autoenkoder
Anda membangun enkoder (784 ke 256 ke 64) dan dekoder yang mencerminkannya, lalu melatihnya dengan fungsi kerugian rekonstruksi MSE tanpa label. Anda menggunakan kode laten untuk pembelajaran representasi, memvisualisasikannya dengan t-SNE, dan mendeteksi anomali melalui galat rekonstruksi yang tinggi.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Autoencoder untuk Pembelajaran Representasi” gratis?
Ya — teks lengkap “Autoencoder untuk Pembelajaran Representasi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Learn AI with Python, upgrade ke CoddyKit PRO. Kursus Learn AI with Python mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Autoencoder untuk Pembelajaran Representasi”?
Arsitektur encoder-decoder, bottleneck, loss rekonstruksi, penerapan dalam deteksi anomali. Kamu berlatih Learn AI with Python dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Learn AI with Python?
Tidak diperlukan pengalaman sebelumnya. Learn AI with Python di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Autoencoder untuk Pembelajaran Representasi” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Learn AI with Python ini?
Ya. Setiap pelajaran Learn AI with Python menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Autoencoder untuk Pembelajaran Representasi
- Variational Autoencoder (VAE)
- GAN: Generator dan Diskriminator
- GAN Kondisional dan Transfer Gaya