Kursus Deep Learning
(fleuret.org)- Materi kuliah terbuka tentang deep learning yang disusun untuk 14x050 Universitas Jenewa; slide, handout, dan rekaman video François Fleuret dapat dilihat di satu tempat
- Berdasarkan contoh PyTorch, cakupannya luas untuk pemula, mulai dari operasi tensor, automatic differentiation, gradient descent, hingga model generatif, rekuren, dan attention
- Arsip PDF lengkap berukuran 1107 slide, dan subtitle screencast disediakan sebagai file ZIP yang dibuat otomatis dengan OpenAI Whisper
- Practical 1~6, kode solusi, dan Python prologue bersama disediakan, sehingga opsi loading dan prapemrosesan MNIST/CIFAR10 bisa langsung digunakan dalam praktik
- Membutuhkan dasar aljabar linear, diferensiasi, Python, probabilitas dan statistik, optimisasi, algoritme, serta pemrosesan sinyal; materi didistribusikan dengan ketentuan CC BY-NC-SA 4.0
Ikhtisar kursus
- Deep Learning Course adalah halaman yang mengumpulkan slide dan rekaman untuk kursus deep learning 14x050 Universitas Jenewa oleh François Fleuret
- Disusun sebagai kuliah pengantar deep learning yang mencakup contoh dengan framework PyTorch
- Cakupan kuliah berlanjut melalui poros berikut
- Tujuan machine learning dan tantangan utama
- Operasi tensor
- Automatic differentiation dan gradient descent
- Teknik khusus deep learning
- Model generatif, model rekuren, model attention
- Sebagai materi terpisah, tersedia juga "The Little Book of Deep Learning"
- Buku pengantar singkat deep learning dalam format ponsel untuk pembaca berlatar belakang STEM
- Kursus ini pertama kali dikembangkan di Idiap Research Institute pada 2018, dan diajarkan sebagai EE-559 di École Polytechnique Fédérale de Lausanne hingga 2022
Format materi dan unduhan
- PDF slide untuk kuliah menggunakan orientasi lanskap dan overlay agar sesuai dengan presentasi
- PDF handout dikompilasi dalam orientasi potret dan menyertakan catatan tambahan tanpa efek overlay
- Screencast dapat ditonton melalui streaming browser dan sebagai file mp4 yang dapat diunduh
- Arsip PDF lengkap dapat diperoleh melalui file berikut
- dlc-handout-all.zip: 101.7Mb
- dlc-slides-all.zip: 101.7Mb
- Subtitle screencast dibuat otomatis dengan Whisper dari OpenAI, dan ukuran file dlc-video-subtitles.zip adalah 502.1Kb
Alur 13 unit
- Seluruh materi kuliah terdiri dari 13 unit besar, dan tiap unit disertai jumlah slide serta durasi video
- Bagian awal berfokus membangun konsep dasar deep learning dan machine learning
- Introduction: dari neural network ke deep learning, aplikasi saat ini dan kisah sukses, dasar tensor dan regresi linear, tensor berdimensi tinggi, struktur internal tensor
- Machine learning fundamentals: loss dan risk, overfitting dan underfitting, dilema bias-variance, protokol evaluasi, clustering dan embedding
- Multi-layer perceptron and back-propagation: perceptron, sudut pandang probabilistik untuk classifier linear, linear separability, MLP, gradient descent, backpropagation
- Bagian tengah beralih ke penggunaan PyTorch serta layer dan teknik pelatihan deep learning
- Graphs of operators, autograd, and convolutional layers: jaringan DAG, Autograd, modul PyTorch dan pemrosesan batch, convolution, pooling, penulisan modul PyTorch
- Initialization and optimization: cross-entropy loss, stochastic gradient descent, optimizer PyTorch, penalti L2/L1, inisialisasi parameter, pemilihan arsitektur dan protokol pelatihan, penulisan fungsi Autograd
- Going deeper: manfaat kedalaman, Rectifier, Dropout, Batch Normalization, Residual Network, penggunaan GPU
- Bagian akhir diperluas ke model generatif, computer vision, analisis internal model, hingga model sequence
- Autoencoders: Transposed convolution, Deep Autoencoder, Denoising Autoencoder, Variational Autoencoder
- Screencast VAE tidak mutakhir, jadi slide perlu diperiksa
- Computer vision: tugas computer vision, jaringan klasifikasi gambar, jaringan deteksi objek, jaringan semantic segmentation, DataLoader dan neuro-surgery
- Under the hood: melihat parameter, melihat aktivasi, visualisasi pemrosesan dari input, optimisasi input
- Autoregression and Normalizing Flows: autoregression, Causal convolution, Non-volume preserving network
- Generative Adversarial Networks: GAN, Wasserstein GAN, Conditional GAN dan transformasi gambar, persistensi model dan checkpoint
- Recurrent models and NLP: RNN, LSTM dan GRU, word embedding dan penerjemahan
- Attention models: attention untuk memori dan penerjemahan sequence, mekanisme attention, Transformer Network
- Screencast unit attention tidak mutakhir, jadi slide perlu diperiksa
- Autoencoders: Transposed convolution, Deep Autoencoder, Denoising Autoencoder, Variational Autoencoder
Materi praktik dan Python prologue
- Praktik disediakan sebagai Practical 1~6, masing-masing ditautkan dengan PDF dan kode solusi
- Python prologue untuk praktik disediakan sebagai dlc_practical_prologue.py
- Prologue menangani argumen command line
--full: gunakan dataset lengkap--tiny: gunakan dataset yang sangat kecil untuk pengecekan cepat--seed SEED: tentukan random seed; jika kurang dari 0, tidak melakukan seeding--cifar: gunakan dataset CIFAR, bukan MNIST--data_dir DATA_DIR: tentukan lokasi data PyTorch; nilai default adalah$PYTORCH_DATA_DIRatau./data
- Fungsi
load_data(cifar=None, one_hot_labels=False, normalize=False, flatten=True)mengunduh data bila diperlukan, dan jikaflattenbernilai benar, mengubah gambar menjadi vektor 1 dimensi - Nilai kembaliannya adalah empat tensor:
train_data,train_target,test_data,test_target - Jika
cifar=True, CIFAR10 digunakan; jikaFalse, MNIST digunakan; jikaNone, mengikuti argumen--cifar - Jika
one_hot_labels=True, target diubah menjaditorch.Tensor2D dengan kolom sebanyak jumlah kelas, menetapkan posisi jawaban benar ke 1 dan sisanya ke -1 - Jika
normalize=True, tensor data dinormalisasi berdasarkan rata-rata dan varians data latih - Jika
flatten=True, data menjadi tensor 2DN × D; jika salah, menjadi tensor 4DN × C × H × W - Contoh default menggunakan MNIST dan, bila tidak ada
--full, diperkecil menjadi 1000 sampel latih dan 1000 sampel uji, dengan ukuran inputtorch.Size([1000, 784])
Prasyarat dan dokumen referensi
- Prasyarat mencakup bidang berikut
- Aljabar linear: vektor, matriks, ruang Euclidean
- Diferensiasi: Jacobian, Hessian, Chain rule
- Pemrograman Python
- Dasar probabilitas dan statistik: distribusi diskret dan kontinu, hukum bilangan besar, probabilitas bersyarat, Bayes, PCA
- Dasar optimisasi: konsep minimum, gradient descent
- Dasar algoritme: biaya komputasi
- Dasar pemrosesan sinyal: Fourier transform, wavelet
- Sebagai dokumen referensi, tersedia dokumentasi Python, Jupyter notebook, dan PyTorch
Lisensi penggunaan
- Materi milik halaman ini didistribusikan di bawah Creative Commons BY-NC-SA 4.0 International License
- Penggunaan untuk tujuan pendidikan akademik formal diperbolehkan, tetapi disebutkan syarat bahwa materi tidak akan digunakan untuk buku, YouTube dengan banyak iklan, atau model monetisasi lainnya
2 komentar
Sayang sekali kuliahnya tidak memiliki subtitle..
Komentar Hacker News
Channel YouTube Stanford juga layak ditonton. Mereka mengunggah seri kuliah machine learning lengkap berisi 19 video
https://m.youtube.com/playlist?list=PLoROMvodv4rNyWOpJg_Yh4NSqI4Z4vOYy
Kalau masuk ke channel-nya, ada cukup banyak kuliah ilmu komputer yang diunggah, dan kualitasnya juga cukup bagus
Banyak materi bagus yang dibagikan, tetapi sepertinya Understanding Deep Learning tidak masuk dalam daftar
Menurut saya Simon J.D. Prince melakukan pekerjaan yang benar-benar luar biasa dengan buku ini. Bukan hanya isi utamanya, catatan di setiap bab juga langsung terhubung ke referensi tingkat lanjut, dan ada soal latihan yang benar-benar menguji pemahaman serta notebook hebat yang mengimplementasikan konsepnya ke dalam kode nyata
Jika saya mengajar kelas deep learning, ini juga akan bagus sebagai bahan latihan gratis untuk diberikan kepada mahasiswa, meskipun mungkin komunitas ini bukan target utamanya
[0] https://udlbook.github.io/udlbook/
Jika tertarik dengan kuliah ini, Little Book of Deep Learning dari penulis yang sama juga sangat layak untuk dilihat
https://fleuret.org/francois/lbdl.html
Sumber bagus lainnya adalah kuliah NYU Deep Learning dari Yann LeCun dan Alfredo Canziani, dan keseluruhannya bisa ditonton di YouTube
https://atcold.github.io/NYU-DLSP20/
https://www.youtube.com/playlist?list=PLLHTzKZzVU9eaEyErdV26ikyolxOsz6mq
Practical Deep Learning for Coders juga layak dijadikan referensi
https://course.fast.ai/
Apakah ada kuliah yang bagus, mendalam, dan tidak mengharuskan menonton video?
Saya sedang membuat kuliah yang sedikit mengurangi teori dan sedikit menambah aplikasi: https://github.com/VikParuchuri/zero_to_gpt
Videonya semuanya opsional, dan membahas konten yang sama dengan teksnya
Saya juga merekomendasikan rangkaian kuliah ini dari Andrej Karpathy. Kuliah pertamanya cukup mudah diikuti bahkan dari sudut pandang pemula
https://karpathy.ai/zero-to-hero.html
Kuliah dari Sebastian Raschka ini juga secara keseluruhan mudah diikuti. Kalau sedikit paham Python atau bahasa serupa, Anda bisa mengikutinya
https://youtube.com/playlist?list=PLTKMiZHVd_2KJtIXOW0zFhFfBaJJilH51&si=ocsN2zSPN7YsrGiY
Sebagai full-stack developer yang sudah beberapa tahun berkecimpung dan merasa agak berkarat, saya memang ingin mencoba masuk ke bidang ini, tetapi sama sekali tidak punya gambaran apakah 6 bulan belajar cukup untuk mulai masuk, setidaknya sampai tingkat tertentu
Kemiringan awal untuk masuk memang tidak seterjal itu, tetapi total waktunya bisa lebih panjang, jadi ini lebih mirip maraton daripada lari jarak pendek