Pelajari AI dengan Python · Pelajaran

Autoenkoder untuk Pembelajaran Perwakilan

Seni bina pengekod-penyahkod, bottleneck, kehilangan pembinaan semula, aplikasi dalam pengesanan anomali.

Pelajaran 1 daripada 413 langkah

Autoenkoder untuk Pembelajaran Perwakilan ialah pelajaran Pelajari AI dengan Python percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Pelajari AI dengan Python, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Pelajari AI dengan Python merangkumi sejumlah 4 pelajaran.

Apakah Pengekod Automatik?

Pengekod automatik mempelajari cara memampatkan data menjadi kod kecil dan membinanya semula. Ia mempunyai dua bahagian: pengekod yang memampatkan dan penyahkod yang membina semula. Ruang sempit di tengah memaksanya mempelajari perkara yang penting.

import torch
import torch.nn as nn

Idea Leher Botol

Lapisan sempit di tengah ialah leher botol atau kod terpendam. Dengan memaksa semua maklumat melalui beberapa nombor, rangkaian perlu membuang hingar dan mengekalkan struktur penting data.

Membina Pengekod

Untuk imej 28x28 (784 piksel), pengekod mengecilkan masukan secara berperingkat: 784 kepada 256 kepada kod terpendam berdimensi 64. Setiap lapisan Linear diikuti oleh ketaklinearan ReLU.

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

Membina Penyahkod

Penyahkod mencerminkan pengekod dengan mengembangkan kod 64 dimensi kembali kepada 784 piksel. Sigmoid terakhir memampatkan keluaran kepada [0,1] agar sepadan dengan nilai piksel yang dinormalkan.

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

Pengekod Automatik Lengkap

Sambungkan pengekod dan penyahkod menjadi satu modul. Laluan forward mengekod kemudian menyahkod, lalu mengembalikan pembinaan semula 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)

Kerugian Pembinaan Semula (MSE)

Sasaran latihan ialah masukan itu sendiri. Ralat Kuasa Dua Min mengukur sejauh mana pembinaan semula berbeza daripada piksel asal, piksel demi piksel. Meminimumkannya mengajar pemampatan yang setia.

criterion = nn.MSELoss()

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

Melatih Pengekod Automatik

Latihan adalah tanpa seliaan: tiada label, hanya masukan. Lelaran ini menggunakan zero_grad, forward, backward, step yang standard, tetapi kerugian membandingkan keluaran dengan masukan.

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

Ruang Pendam

Selepas latihan, pengekod memetakan setiap masukan kepada satu titik dalam ruang pendam. Masukan yang serupa berada berdekatan antara satu sama lain, jadi kod 64 dimensi ini ialah representasi data yang dipelajari dan padat.

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

Visualisasi dengan t-SNE

Ruang pendam 64 dimensi sukar dilihat. t-SNE memproyeksikannya kepada 2D untuk diplotkan. Kelompok dalam plot menunjukkan bahawa pengekod automatik mengumpulkan 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 label

Pengesanan Anomali

Pengekod automatik yang dilatih menggunakan data normal membina semula data tersebut dengan baik tetapi menghadapi kesukaran dengan anomali yang tidak pernah dilihatnya. Ralat pembinaan semula yang tinggi menandakan pencilan, lalu menghasilkan pengesan anomali tanpa seliaan yang berkuasa.

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

Mengapa Pembelajaran Representasi?

Hasil sebenar ialah kod pendam: vektor ciri yang dipelajari dan boleh digunakan untuk pengelompokan, visualisasi, pengesanan anomali atau sebagai masukan kepada model lain, semuanya dipelajari tanpa label.

Semakan Pantas

Uji pemahaman anda tentang pengekod automatik.

Imbas Kembali: Pengekod Automatik

Anda membina pengekod (784 kepada 256 kepada 64) dan penyahkod yang mencerminkannya, dilatih dengan kerugian pembinaan semula MSE tanpa label. Anda menggunakan kod pendam untuk pembelajaran representasi, memvisualisasikannya dengan t-SNE dan mengesan anomali melalui ralat pembinaan semula yang tinggi.

Percuma untuk bermula

Pelajari Python dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
53
Pelajaran
225

Soalan Lazim

Adakah pelajaran “Autoenkoder untuk Pembelajaran Perwakilan” percuma?

Ya — sebanyak 3 pelajaran dalam laluan pembelajaran Pelajari AI dengan Python, termasuk “Autoenkoder untuk Pembelajaran Perwakilan”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus Pelajari AI dengan Python merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Autoenkoder untuk Pembelajaran Perwakilan”?

Seni bina pengekod-penyahkod, bottleneck, kehilangan pembinaan semula, aplikasi dalam pengesanan anomali. Anda berlatih Pelajari AI dengan Python menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Pelajari AI dengan Python?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Pelajari AI dengan Python di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “Autoenkoder untuk Pembelajaran Perwakilan” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Pelajari AI dengan Python ini?

Ya. Setiap pelajaran Pelajari AI dengan Python menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Autoenkoder untuk Pembelajaran Perwakilan
  2. Autoenkoder Variasi (VAE)
  3. GAN: Penjana dan Pembezanya
  4. GAN Bersyarat dan Pemindahan Gaya
← Kembali ke Pelajari AI dengan Python