6 puan yazan GN⁺ 2023-11-20 | 2 yorum | WhatsApp'ta paylaş
  • 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
  • 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

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_DIR veya ./data
  • load_data(cifar=None, one_hot_labels=False, normalize=False, flatten=True) fonksiyonu gerektiğinde veriyi indirir ve flatten doğ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_target olmak üzere dört tensördür
  • cifar=True ise CIFAR10, False ise MNIST kullanılır; None ise --cifar argümanını izler
  • one_hot_labels=True ise hedefler, sınıf sayısı kadar sütunu olan 2D torch.Tensor yapısına dönüştürülür; doğru sınıf konumu 1, diğerleri -1 olur
  • normalize=True ise veri tensörleri eğitim verisinin ortalama ve varyansına göre normalize edilir
  • flatten=True ise veri N × D biçiminde 2D tensör olur; yanlışsa N × C × H × W biçiminde 4D tensör olur
  • Varsayılan örnek MNIST kullanır; --full yoksa eğitim için 1000, test için 1000 örneğe düşürülür ve girdi boyutu torch.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

 
bigtallee 2023-11-20

Derslerde altyazı olmaması üzücü..

 
GN⁺ 2023-11-20
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

    • Bu Stanford dersi oldukça ileri seviye ve zorlu bir program gibi görünüyor
  • Ç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/

    • Jeremy Howard'ın AI alanındaki en iyi 100 kişi listesinde olmaması beni şaşırtmıştı. Bu ders gerçekten mükemmel
  • Video izlemeyi gerektirmeyen, derinlikli iyi bir ders var mı?

  • 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

    • Biraz daha ileri matematik eksiği olan biri için de uygun olur mu?
  • 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

    • Türevin ne olduğunu hatırlıyorsanız ve matematik ile olasılıkta bir miktar temeliniz varsa gayet mümkün. Çoğunu React'ten bile daha kolay öğrenebileceğinizi düşünüyorum
      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