Derin Öğrenme Kursu
(fleuret.org)- Cenevre Üniversitesi'nin 14x050 dersi için derlenmiş açık derin öğrenme ders materyalleri; François Fleuret'in slaytlarını, el notlarını ve kayıt videolarını tek yerde sunuyor
- PyTorch örneklerini temel alarak tensör işlemleri, otomatik türev, gradyan inişten üretici, yinelenen ve attention modellere kadar başlangıç seviyesindekilerin takip edebileceği geniş bir kapsam sunuyor
- Tam PDF arşivi 1107 slayt büyüklüğünde ve ekran kaydı altyazıları OpenAI Whisper ile otomatik üretilmiş ZIP dosyası olarak sağlanıyor
- Practical 1~6, çözüm kodları ve ortak Python prologue birlikte sunuluyor; böylece MNIST/CIFAR10 yükleme ve ön işleme seçenekleri doğrudan pratik çalışmalarda kullanılabiliyor
- Lineer cebir, türev, Python, olasılık ve istatistik, optimizasyon, algoritmalar ve sinyal işleme temelleri gerekiyor; materyaller CC BY-NC-SA 4.0 koşullarıyla dağıtılıyor
Kursa genel bakış
- Deep Learning Course, François Fleuret'in Cenevre Üniversitesi'ndeki 14x050 derin öğrenme kursu için hazırladığı slaytları ve kayıt materyallerini bir araya getiren sayfadır
- PyTorch framework örnekleri içeren bir derin öğrenmeye giriş dersi olarak yapılandırılmıştır
- Ders kapsamı şu eksenler boyunca ilerler
- Makine öğrenmesinin hedefleri ve temel problemleri
- Tensör işlemleri
- Otomatik türev ve gradyan iniş
- Derin öğrenmeye özgü teknikler
- Üretici modeller, yinelenen modeller ve attention modelleri
- Ek materyal olarak "The Little Book of Deep Learning" de sunuluyor
- STEM geçmişine sahip okurlar için cep telefonu formatında kısa bir derin öğrenme giriş kitabıdır
- Bu kurs ilk olarak 2018'de Idiap Research Institute'ta geliştirildi ve 2022'ye kadar École Polytechnique Fédérale de Lausanne'da EE-559 olarak verildi
Materyal formatları ve indirme
- Ders için hazırlanan slayt PDF'leri, sunuma uygun olarak yatay düzen ve overlay kullanır
- Handout PDF'leri dikey düzenle derlenir, overlay efektleri olmadan ek notlar içerir
- Ekran kayıtları tarayıcı üzerinden akış olarak izlenebilir ve indirilebilir mp4 dosyaları olarak da sunulur
- Tam PDF arşivi şu dosyalarla indirilebilir
- dlc-handout-all.zip: 101.7Mb
- dlc-slides-all.zip: 101.7Mb
- Ekran kaydı altyazıları OpenAI'nin Whisper aracıyla otomatik üretildi; dlc-video-subtitles.zip dosyasının boyutu 502.1Kb
13 bölümün akışı
- Tüm ders materyali 13 ana bölümden oluşur; her bölüm için slayt sayısı ve video süresi birlikte verilir
- İlk bölüm, derin öğrenme ve makine öğrenmesinin temel kavramlarını oturtmaya odaklanır
- Introduction: sinir ağlarından derin öğrenmeye, güncel uygulamalar ve başarı örnekleri, tensör temelleri ve lineer regresyon, yüksek boyutlu tensörler, tensörlerin iç yapısı
- Machine learning fundamentals: kayıp ve risk, aşırı öğrenme ve yetersiz öğrenme, bias-variance ikilemi, değerlendirme protokolleri, kümeleme ve embedding
- Multi-layer perceptron and back-propagation: perceptron, lineer sınıflandırıcıların olasılıksal bakışı, lineer ayrılabilirlik, MLP, gradyan iniş, geri yayılım
- Orta bölüm, PyTorch kullanımı ve derin öğrenme katmanlarıyla eğitim tekniklerine geçer
- Graphs of operators, autograd, and convolutional layers: DAG ağları, Autograd, PyTorch modülleri ve batch işleme, convolution, pooling, PyTorch modülü yazma
- Initialization and optimization: çapraz entropi kaybı, stokastik gradyan iniş, PyTorch optimizer, L2/L1 cezası, parametre başlatma, mimari seçimi ve eğitim protokolleri, Autograd fonksiyonu yazma
- Going deeper: derinliğin avantajları, Rectifier, Dropout, Batch Normalization, Residual Network, GPU kullanımı
- Son bölüm, üretici modellerden bilgisayarlı görüye, model içi analize ve dizi modellerine kadar genişler
- Autoencoders: Transposed convolution, Deep Autoencoder, Denoising Autoencoder, Variational Autoencoder
- VAE ekran kaydı güncel değildir; bu nedenle slaytlara bakmak gerekir
- Computer vision: bilgisayarlı görü görevleri, görüntü sınıflandırma ağları, nesne tespit ağları, anlamsal segmentasyon ağları, DataLoader ve neuro-surgery
- Under the hood: parametreleri görüntüleme, aktivasyonları görüntüleme, girdiden işleme sürecini görselleştirme, girdi optimizasyonu
- Autoregression and Normalizing Flows: otoregresyon, Causal convolution, Non-volume preserving network
- Generative Adversarial Networks: GAN, Wasserstein GAN, Conditional GAN ve görüntü dönüşümü, model kalıcılığı ve checkpoint'ler
- Recurrent models and NLP: RNN, LSTM ve GRU, kelime embedding'leri ve çeviri
- Attention models: bellek ve dizi çevirisi için attention, attention mekanizması, Transformer Network
- Attention bölümü ekran kaydı güncel değildir; bu nedenle slaytlara bakmak gerekir
- Autoencoders: Transposed convolution, Deep Autoencoder, Denoising Autoencoder, Variational Autoencoder
Pratik materyaller ve Python prologue
- Pratik çalışmalar Practical 1~6 olarak sunulur; her bir PDF ve çözüm kodu birlikte bağlantılanmıştır
- Pratikler için Python prologue dosyası dlc_practical_prologue.py olarak sağlanır
- Prologue, komut satırı argümanlarını işler
--full: tam veri kümesini kullan--tiny: hızlı kontrol için çok küçük veri kümesini kullan--seed SEED: rastgele seed belirle; 0'dan küçükse seed uygulanmaz--cifar: MNIST yerine CIFAR veri kümesini kullan--data_dir DATA_DIR: PyTorch veri konumunu belirt; varsayılan$PYTORCH_DATA_DIRveya./data
load_data(cifar=None, one_hot_labels=False, normalize=False, flatten=True)fonksiyonu gerektiğinde veriyi indirir veflattendoğruysa görüntüleri 1 boyutlu vektörlere dönüştürür- Dönüş değerleri
train_data,train_target,test_data,test_targetolmak üzere dört tensördür cifar=Trueise CIFAR10,Falseise MNIST kullanılır;Noneise--cifarargümanını izlerone_hot_labels=Trueise hedefler, sınıf sayısı kadar sütunu olan 2Dtorch.Tensoryapısına dönüştürülür; doğru sınıf konumu 1, diğerleri -1 olurnormalize=Trueise veri tensörleri eğitim verisinin ortalama ve varyansına göre normalize edilirflatten=Trueise veriN × Dbiçiminde 2D tensör olur; yanlışsaN × C × H × Wbiçiminde 4D tensör olur- Varsayılan örnek MNIST kullanır;
--fullyoksa eğitim için 1000, test için 1000 örneğe düşürülür ve girdi boyututorch.Size([1000, 784])olur
Ön bilgi ve referans dokümanlar
- Gerekli ön bilgi şu alanları kapsar
- Lineer cebir: vektörler, matrisler, Öklid uzayı
- Türev: Jacobian, Hessian, Chain rule
- Python programlama
- Olasılık ve istatistik temelleri: ayrık ve sürekli dağılımlar, büyük sayılar yasası, koşullu olasılık, Bayes, PCA
- Optimizasyon temelleri: minimum kavramı, gradyan iniş
- Algoritma temelleri: hesaplama maliyeti
- Sinyal işleme temelleri: Fourier transform, wavelet
- Referans olarak Python, Jupyter notebook ve PyTorch dokümantasyonlarına bakılabilir
Kullanım lisansı
- Sayfadaki özgün materyaller Creative Commons BY-NC-SA 4.0 International License ile dağıtılır
- Düzenli akademik eğitim amaçlı kullanıma izin verilir; ancak kitaplarda, yoğun reklam içeren YouTube içeriklerinde ve diğer gelir elde etme modellerinde kullanılmaması şartı açıkça belirtilir
2 yorum
Derslerde altyazı olmaması üzücü..
Hacker News yorumları
Stanford'un YouTube kanalına da bakmaya değer. Makine öğrenimi derslerinin tamamı için 19 videoluk bir seri yüklemişler
https://m.youtube.com/playlist?list=PLoROMvodv4rNyWOpJg_Yh4NSqI4Z4vOYy
Kanala girip bakınca epey fazla bilgisayar bilimi dersi olduğunu ve kalitelerinin de iyi sayıldığını görüyorsunuz
Çok sayıda iyi kaynak paylaşılmış ama listede Understanding Deep Learning eksik gibi
Simon J.D. Prince'in bu kitapla gerçekten harika bir iş çıkardığını düşünüyorum. Sadece ana içerik değil, her bölümün notları doğrudan ileri seviye kaynakçalara götürüyor; kavrayışı gerçekten sınayan alıştırmalar ve kavramları gerçek koda döken mükemmel notebook'lar da sunuyor
Derin öğrenme dersi veriyorsanız öğrencilere sunabileceğiniz ücretsiz alıştırma materyali olarak da iyi, ama muhtemelen bu topluluk ana hedef kitlesi değildir
[0] https://udlbook.github.io/udlbook/
Bu ders ilginizi çekiyorsa aynı yazarın Little Book of Deep Learning kitabına da mutlaka bakmaya değer
https://fleuret.org/francois/lbdl.html
Bir başka iyi kaynak da Yann LeCun ve Alfredo Canziani'nin NYU Deep Learning dersi; tamamı YouTube'da izlenebiliyor
https://atcold.github.io/NYU-DLSP20/
https://www.youtube.com/playlist?list=PLLHTzKZzVU9eaEyErdV26ikyolxOsz6mq
Practical Deep Learning for Coders da bakmaya değer
https://course.fast.ai/
Video izlemeyi gerektirmeyen, derinlikli iyi bir ders var mı?
Teoriyi biraz azaltıp uygulamayı biraz daha artıran bir ders hazırlıyorum: https://github.com/VikParuchuri/zero_to_gpt
Videoların hepsi isteğe bağlı ve metinle aynı içeriği kapsıyor
Andrej Karpathy'nin bu ders paketini de öneririm. İlk ders başlangıç seviyesi bakış açısından da oldukça erişilebilir
https://karpathy.ai/zero-to-hero.html
Sebastian Raschka'nın bu dersi de genel olarak erişilebilir. Biraz Python ya da benzer bir dil biliyorsanız takip edebilirsiniz
https://youtube.com/playlist?list=PLTKMiZHVd_2KJtIXOW0zFhFfBaJJilH51&si=ocsN2zSPN7YsrGiY
Birkaç yıllık, eli biraz paslanmış bir full-stack geliştirici olarak bu alana girmek istiyorum; ama 6 aylık çalışmayla herhangi bir seviyede giriş yapmak mümkün mü, hiç kestiremiyorum
Başlangıç eğimi daha az dik, ama toplam süre daha uzun olabilir; bu yüzden kısa mesafe koşusundan çok maratona benziyor