Derin Öğrenmeyi Anlamak
(udlbook.github.io)- Bu, Simon J.D. Prince’ın 2023 tarihli MIT Press kitabı Understanding Deep Learning ile birlikte çalışmayı kolaylaştırmak için kodlama alıştırmalarını, ders materyallerini ve ek okumaları tek yerde toplayan bir öğrenme sitesidir
- Kitabın tamamını kapsayan 68 Python notebook sunulur ve öğrenenler metni takip ederek eksik kodu doldurma tarzında alıştırma yapar
- Eğitmen materyalleri; görsel dosyalar, ilk 12 bölüm için video dersler, slaytlar, cevap kitapçığı, derslerde kullanılabilecek interaktif görseller ve denklemlerin LaTeX dosyasını içerir
- Slaytlar, 20 derslik lisans düzeyi derin öğrenme dersi düşünülerek hazırlanmıştır; gözetimli öğrenmeden CNN’e, görüntü üretimine, Transformers and LLMs’e kadar uzanır
- Ek okuma materyalleri bilgisayarlı görü, makine öğrenmesi matematiği, optimizasyon, pekiştirmeli öğrenme, ML teorisi, Responsible AI gibi alanlara genişler; bu nedenle hem bireysel çalışma hem de ders hazırlığı için uygundur
Kitap bilgileri ve alıntı
- Understanding Deep Learning, Simon J.D. Prince tarafından yazılmıştır ve BibTeX alıntı bilgisinde MIT Press tarafından 2023’te yayımlandığı belirtilir
- Verilen BibTeX girdisi şu bilgileri içerir
author = "Simon J.D. Prince"title = "Understanding Deep Learning"publisher = "The MIT Press"year = 2023url = "http://udlbook.com"
Kitabı takip eden kodlama alıştırmaları
- Site, kitabın tamamını kapsayan 68 Python notebook alıştırması sunar
- Alıştırmalar, metne dayanarak eksik kodu tamamlama biçimindedir
- Notebook’lar GitHub’daki
udlbook/udlbookdeposunda yer alır ve her öğeipynb/colabbağlantısıyla açılabilir -
Temeller ve sinir ağı yapısı
- İlk bölümler arka plan matematiği, gözetimli öğrenme, sığ sinir ağları, aktivasyon fonksiyonları, ağ bileşimi ve derin sinir ağlarını ele alır
- Kayıp fonksiyonu alıştırmaları least squares loss, binary cross-entropy loss ve multiclass cross-entropy loss içerir
-
Optimizasyon ve öğrenme hesaplamaları
- Optimizasyon notebook’ları line search, gradient descent, stochastic gradient descent, momentum ve Adam konularını ele alır
- Gradyan hesaplama alıştırmaları; toy model üzerinde backpropagation, genel backpropagation ve initialization içerir
-
Performans, düzenlileştirme, CNN
- Performansla ilgili alıştırmalar MNIST-1D performance, bias-variance trade-off, double descent ve high-dimensional spaces konularını ele alır
- Düzenlileştirme alıştırmaları L2 regularization, implicit regularization, ensembling, Bayesian approach ve augmentation içerir
- Convolution alıştırmaları 1D convolution, MNIST-1D convolution, 2D convolution, downsampling & upsampling ve MNIST için convolution içerir
-
Modern derin öğrenme konuları
- Ağ kararlılığı ve mimariyle ilgili notebook’lar shattered gradients, residual networks ve batch normalization konularını ele alır
- Transformer alıştırmaları self-attention, multi-head self-attention, tokenization ve decoding strategies içerir
- Grafik sinir ağları konuları graph representation, graph classification, neighborhood sampling ve graph attention networks içerir
- Üretici model alıştırmaları GAN toy example, Wasserstein distance, normalizing flows, latent variable models ve diffusion models konularını ele alır
- Pekiştirmeli öğrenme alıştırmaları Markov decision processes, dynamic programming, Monte-Carlo methods, temporal difference methods ve control variates içerir
- Son konular arasında random data, full-batch gradient descent, lottery tickets, adversarial attacks, bias mitigation ve explainability bulunur
Dersler ve eğitmen materyalleri
- Eğitmen kaynakları arasında görsel materyaller, slaytlar ve cevap kitapçığı bulunur
- MIT Press’e kayıt olunca answer booklet alınabilmesi için bir kayıt bağlantısı sunulur
- Interactive figures, derslerde fikirleri açıklamak için kullanılan materyallerdir
- Tüm denklemleri içeren bir working Latex file sunulur
-
20 derslik lisans düzeyi derin öğrenme slaytları
- Slaytlar, 20 lecture undergraduate deep learning course için hazırlanmış materyallerdir
- Yayınlanan slayt konuları arasında Introduction, Supervised Learning, Shallow Neural Networks, Deep Neural Networks, Loss Functions, Fitting Models, Computing Gradients, Initialization, Performance, Regularization, Convolutional Networks, Image Generation, Transformers and LLMs yer alır
Ek okuma materyalleri
- Site, Understanding Deep Learning ile benzer üslup ve aynı gösterimi kullanan başka yazıları, blogları ve kitapları ek kaynaklar olarak toplu halde sunar
-
Bilgisayarlı görü ve makine öğrenmesi temelleri
- Computer vision: models, learning, and inference, 2012’de CUP tarafından yayımlanmış bir kitaptır; olasılıksal modellere odaklanır ve derin öğrenme öncesi döneme ait çok sayıda ML içeriği barındırır
- Makine öğrenmesi matematiği materyalleri lineer cebir, olasılığa giriş, olasılık dağılımları, olasılık dağılımı uydurma ve normal dağılım konularını ele alır
- Makine öğrenmesi materyalleri learning and inference, regression models, classification models, few-shot learning ve meta-learning içerir
-
Transformers, LLMs, NLP
- Transformers ve LLMs materyalleri LLM genel bakışı, Transformers I·II·III, LLM eğitimi ve fine-tuning, LLM inference speed-up içerir
- NLP materyalleri neural natural language generation, parsing I·II·III ve XLNet konularını ele alır
- Transformer ile ilgili konular arasında self-attention, position encoding, multi-head yapı, Transformer block, encoder, decoder ve training tricks bulunur
-
Optimizasyon, zaman modelleri, pekiştirmeli öğrenme
- Optimizasyon materyalleri gradient-based optimization, Bayesian optimization ve SAT Solvers I·II·III içerir
- Zaman modeli materyalleri Kalman filter, smoothing, Extended Kalman filter, Unscented Kalman filter ve particle filtering konularını ele alır
- Pekiştirmeli öğrenme materyali Transformers in RL, RL’deki görevleri, RL’de Transformer kullanımının avantajlarını, representation learning, reward learning, policy learning, interpretability ve applications konularını içerir
-
ODEs, SDEs, ML teorisi
- Makine öğrenmesinde ODEs and SDEs derlemesi; ODEs, SDEs, gradient descent, stochastic gradient descent, residual networks, diffusion models ve physics-informed machine learning konularını ele alır
- İlgili materyaller ODE’ye giriş, ODE’lerin closed-form solutions’ı, ODE sayısal yöntemleri ve stochastic processes and SDEs içerir
- ML Theory materyalleri gradient flow, neural tangent kernel, NTK applications, Bayesian ML I·II, Bayesian neural networks ve neural network Gaussian processes içerir
-
Denetimsiz öğrenme, grafiksel modeller, Responsible AI
- Denetimsiz öğrenme materyalleri complex data densities, variational autoencoders ve normalizing flows konularını ele alır
- Grafiksel model materyalleri graphical models, models for chains and trees ve models for grids içerir
- Responsible AI materyalleri bias and fairness, explainability I·II ve differential privacy I·II içerir
1 yorum
Hacker News yorumları
Buradaki yorumlar genel olarak iki gruba ayrılıyor: 1) Bu bilgileri bilmeden de yapay zeka sistemleri kurulabildiği için bilmek şart değil, 2) Gerçekte ne olup bittiğini anlamak için bu temel bilgilere ihtiyaç var
İkisi de doğru; alanın ML mühendisi ve ML bilim insanı/araştırmacısı diye iki yetkinliğe ayrılmakta olduğunu düşünüyorum
Bir ekipte ikisinin de olması iyi olur. Bilim insanı yavaş olabilir; mühendis ise çeşitli API’leri ve açık kaynak modelleri hızla dener, ama tıkanıldığında veya algoritmayı değiştirmek gerektiğinde birçok mühendis bocalar. Bu noktada birçok mühendise yabancı gelen Ar-Ge tarzı düşünme gerekir ve yapay zeka bilim insanı önem kazanır
Son 10 yılda birçok ekipte aynı örüntüyü gördüm. Şirketin biraz bütçesi olur ve kendi probleminin özel olduğuna inanır; ardından birkaç makalesi olan doktoralı veri bilimcileri işe alır, ama bunlar çoğu zaman sadece R bilir ve Python bootcamp’ini yeni bitirmiş düzeydedir
3 ay geçmesine rağmen kayda değer çıktı yoktur, ortada yığınla Jupyter notebook vardır; üretim kodu yoktur, hatta deney ortamı bile olmayanlar vardır
İş problemi olduğu gibi kalır. Şirket, veri bilimcisi çok ama veri/ML mühendisi az olduğunda, üretime alma aşamasında takılacağını ya da Python anlayışı eksikliği yüzünden veri hattı+algoritma+altyapıdan oluşan bir Death Star inşa edip %70 daha fazla kaynak harcayacağını fark eder
Proje gecikir ve insanlar sabırsızlanır. Artık yılda 2,5 milyon dolarlık ekip, batch ya da REST API ile servis edemediği için bir kavram kanıtı bile çıkaramaz
Şirket ivme kaybeder; rakipler eksik ama daha önde çözümler çıkarıp kullanıcı toplar ve bunları geliştirir. Sonrasında PM ile mühendislik yöneticisi sorumluluğun kimde olduğu konusunda tartışır, ürün/mühendislik VP’si günah keçisi aramaya başlar. Bazı doktoralılar işten çıkarılır ve yerel üniversitelerde ders vermeye gider
Bu anlamda ML mühendisi/bilim insanı ayrımının nereden çıktığını anlamıyorum; bazı insanların kendini tatmin etmek için yaptığı bir ayrım gibi görünüyor
Bunu kaçırmış biri olarak, şimdi öğrenmenin artık yalnızca tarihsel anlamı mı var, yoksa gelecekteki istihdamla hâlâ ilgili mi merak ediyorum
Yapay zeka konusunda OpenAI herkesin ekmeğini elinden alacakmış gibi hayal ediliyor; bu tamamen yanlış bir düşünce mi?
Karpathy’nin yakın tarihli LLM açıklama videosu gibi kaynaklar genel izleyici için iyi, yarı abartılı materyaller; ama bir seviye daha derin pratik sezgiyi doğrudan denemeden edinmek zor. Tüm matematiği ezberlemek gerekmez, ama bileşenlerin “arayüzünün” nasıl hissettirdiğini bilmek iyi olur
Her model tekniğinin gerçekte ne yaptığı, özellikle de yığının geri kalanıyla iyi entegre olması gereken çıkarım anında ne yaptığı önemlidir
Hâlâ ilgili olup olmadığı sorusuna gelirsek, belirli bir fonksiyonu optimize etmek üzere eğitilen yoğun sinir ağları anlamındaki derin öğrenme, pratikte yaklaşık 15 yıldır temelden değişmedi; teorik olaraksa daha da eski. Çoğu kullanımda OpenAI tarzı şeylerden çok daha önemli ve yaygın kullanılıyor
Reklam optimizasyonu ya da finansal modelleme gibi sayısal tahmin içeren işlerde LLM kullanılmaz; daha büyük bir sistemin parçası olarak amaca özel modeller kullanılır. “Sayı verip sayı alma” arayüzü açıklanabilir, yazılım yığınına entegre etmesi kolaydır ve ölçmesi de iyidir
Anlaşılır hata payları vardır, bazen tutarlı bile olur. Birden şirket sırlarını kusmayan ya da JSON serileştirmeyi unutmayan, kontrol edilebilir bir arayüzü de vardır. Gecikme ve maliyet de çok daha düşüktür
Bir web sayfasını 100 ms içinde render etmeniz ya da milyonlarca seçenek üzerinde optimizasyon çalıştırmanız gerekiyorsa üretken yapay zeka pratik bir seçenek değildir; gelecekte de olma ihtimalinin düşük olduğunu düşünüyorum
Matematik ya da teorik ML geçmişim çok güçlü değil, ama son 10 yılın çoğunu ML uzmanlarıyla birlikte altyapı, veri hatları ve izleme sistemleri kurarak geçirdim. Sigmoid’i anında integre edemem ama asıl mesele bu değil. Bir kez yaptım; fonksiyonun nasıl çalıştığına dair sezgim var ve onu kara kutu bir bileşen olarak akıl yürüterek kullanabiliyorum
ML’nin diğer alanlarından farklı olarak derin öğrenmede bileşenler birbirine iyi oturur. İsterseniz Transformer’ı CNN ile birlikte de kullanabilirsiniz. Ayrıca metin, görüntü, video, ses gibi her tür veriye makine öğrenmesi uygulamayı sağlar ve hesaplama açısından da doğal biçimde ölçeklenir
Bu alanla epey ilgili biri olarak, LLM’ler yüzünden insanların ML ve derin öğrenmeden uzaklaşıp “artık yapmaya gerek yok” yanılgısını takip etmesi üzücü geliyor. Büyük algoritmaların çalıştırma maliyeti yüksektir, işlem hacmi düşüktür ve amaca özel modellere göre genelde daha kötü performans verirler. Birçok görevde encoder ağlarına kıyasla kullanmaları da daha kolay değildir
Önyargılı düşünüyor olabilirim ama bunun bilişimde öğrenmesi en eğlenceli alanlardan biri olduğunu düşünüyorum. İyi bir fikriniz varsa evdeki sıradan bir GPU ile bile en güncel düzeyde bir şeyler yapabilirsiniz. LLM kadar ilgi görmeyen bir niş bulmanız yeterli
Derin öğrenme bunun bir parçası. Büyük kısmı zaten kütüphaneler ve API’lerle sarmalanmış durumda; dolayısıyla iş, doğru veriyi hazırlamak, uygun API’yi çağırmak ve sonucu kullanmak haline geliyor
Örneğin OpenAI’nin havadaki belirli molekülleri gerçek zamanlı algılayan bir sensör çipi üzerindeki küçük gömülü sinir ağını geliştirmekle ilgileneceğini sanmıyorum
Bu kitap etkileyici. Sevdiğim konulardan biri olan derin öğrenmenin mantıksız etkililiği üzerine bir bölümü de var. Dikkate değer başka kitaplar var mı?
Acelesi olanlar 123. slayta bakabilir. Temel öneriler Murphy, Gelman, Barber, Deisenroth
Bu slaytların Bayesçi bir önyargısı olduğunu hesaba katmak gerek. Yine de Murphy harika bir derin öğrenme kitabı ve genelleştirilmiş doğrusal modellerden geçip derin öğrenmeye girmek de iyi bir yöntem
İlginç bir bilgi: meşhur Attention makalesi 10 bin atıfa yaklaşıyor ve muhtemelen bu yıl sonuna doğru buna ulaşacak. Bu önemli eşiğe en hızlı ulaşan makale olma ihtimali yüksek
Attention makalesinden önce yazılmış derin öğrenme kitapları eski sayılmalı ve güncellenmeleri gerekiyor. Newton yasaları olup Einstein’ın enerji eşdeğerliği denklemi eksik olan eski bir fizik ders kitabına benzer bir durum
Şimdi başlayıp yapay zekayı okuyup çalışırsam uzmana yakın bir seviyeye gelebilir miyim?
Yüksek lisans ya da doktora gerektiren bir yolculuğa başlayıp başlamadığımdan endişeliyim
Ancak gerçek sistemleri çalıştırmak için gereken küçük ipuçları ve sezgiler gibi pratik dersler eksik kalabilir. Bu zaman alır; bence bilim olduğu kadar bir sanattır da
“Uzman olabilir miyim?” gibi sorular belirsizdir, bu yüzden iyi bir yol işareti olmaları zordur
Ünlü teknoloji şirketlerinde 10 yıl boyunca çeşitli makine öğrenimi platformlarıyla uğraştım; üzerinde çalıştığım her şey oldukça hızlı biçimde eskidi
ML algoritmalarından hesaplama platformlarına kadar hepsi çok geçiciydi. Buna ML inovasyonlarının çoğunun az sayıdaki seçkin şirket tarafından üretildiği gerçeğini de ekleyince, bu tür materyalleri çokça öğrenmenin kendisi çelişkili gibi geliyor
Ama makine öğrenimi algoritmaları ve fikirleri eskimez. SVN ya da Naive Bayes öğrenip bugün işe yarar bir şey elde etmediysen, aslında hiçbir şey öğrenmemişsindir
Örneğin Transformer, uzun dizilerde LSTM’in gradyan kaybolması sorununu çözmek ve LSTM’in zaman boyutunda özünde sıralı olduğu için GPU kullanımının düşük kalması problemini iyileştirmek üzere geliştirildi
Temeller pek değişmez. Bu alanda çeşitli akımlar var ve uzun süre dayanan, gerçekten kullanılan çok sayıda algoritma mevcut. Elbette istersen bazılarını yükseltebilirsin, ama beyaz tavşanı durmadan kovalarsan elinde kalacak tek şey bir avuç pamuk olur
Kişisel olarak, teknolojiyi evrimle aynı tür güçlerin yönlendirdiğini düşünüyorum. Sanırım Linus Torvalds da bir zamanlar Linux’un doğal seçilim yoluyla evrimleştiğini söylemişti
Böyle kitapları değerlendirmek çok zor. Sadece içindekiler tablosuna bakarak mı karar vermeliyiz?
Yazarın kim olduğunu, saygı gören başka çalışmaları olup olmadığını, içeriği bilen kişilerden iyi yorumlar alıp almadığını, hiçbir şey bilmeyen öğrencilerden iyi yorumlar alıp almadığını merak ediyorum
Bu kitabı basılı olarak almayı planlıyorum
Sadece içindekiler tablosuna bakarak mı karar veriyorsun demiştin, ama bağlantı verilen sitede 1–21. bölümlerin 500 sayfadan uzun taslağını indirebilirsin
Yazar Simon J. D. Prince, University of Bath’ta bilgisayar bilimi emeritus profesörü ve Computer Vision: Models, Learning and Inference’ın yazarı. Yapay zeka ve derin öğrenme konusunda uzman bir araştırma bilimcisi; Anthropics Technologies Ltd, Borealis AI gibi yerlerde akademi ve sektörde araştırma bilimcilerinden oluşan ekipleri yönetti
Saygı gören diğer yayınları arasında CVPR, ICCV, SIGGRAPH gibi üst düzey konferanslarda 50’den fazla hakemli makale var: https://scholar.google.com/citations?user=fjm67xYAAAAJ&hl=en
Yorumlara gelince, kitap henüz yayımlanmadı ve şu anda baktığımız şey kelimenin tam anlamıyla ücretsiz bir taslak. Amazon’da 85 dolarlık ön sipariş olarak listelenmiş
https://github.com/udlbook/udlbook/releases/download/v1.16/U...
Aptalca bir soru değildir umarım, basılı kitabı nasıl satın alabilirim?
https://mitpress.mit.edu/9780262048644/understanding-deep-le...
PDF’teki şekilde Why does deep learning work ifadesinin Deep learning and ethics bölümünü işaret ettiği, tersinin de aynı şekilde olduğu görülüyor
Ian Goodfellow’un Deep Learning kitabını en son 2016’da okumuş biri olarak, RNN bölümünün olmayıp Transformer bölümünün olması ilginç
Bu yüzden günümüzde pek kullanılmıyorlar. Yine de kişisel olarak kavramsal açıdan yeterince ilginç olduklarını ve bu tür derslerde ele alınmaya değer olduklarını düşünüyorum