2 puan yazan GN⁺ 2023-11-27 | 1 yorum | WhatsApp'ta paylaş
  • 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 = 2023
    • url = "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/udlbook deposunda yer alır ve her öğe ipynb/colab bağ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

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

    • Benim deneyimim daha çok ters yöndeydi. İnsanlar sistem kurma gücünü ve çözmeye değer sorunların çoğunun sıkıcı, kalıplaşmamış teknikler gerektirdiğini hafife alıyor
      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 ayrım benzer bir benzetme gibi mi görünüyor? Modeli yapan kişi ile modeli kullanan kişi, programlama dilini yapan kişi ile o dili kullanan kişi
    • Bu, yapay zeka bilim insanı satmaya yönelik bir satış metni gibi duyuluyor
    • Pratikte tıkanınca temellere dönmek neredeyse apaçık bir şey; iyi insanlar ikisini de yapmaya çalışmalı
      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?

    • Pratik amaçlar açısından en önemli şey, bu şeyin gerçekte ne yapabildiğini öğrenmek. ML çevresinde “Yapay zekayı üstüne atınca sihirli şekilde daha iyi olur” türünden bulanık bir düşünce çok var
      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
    • Bu, LLM’lerin üst kategorisi olan derin öğrenme ile ilgili. Makine öğrenmesiyle ilgileniyorsanız derin öğrenmeyi öğrenmeniz gerekir ve birçok nedenle çok faydalıdır
      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
    • ML sistemleri kurmak istiyorsanız hâlâ çok ilgili. OpenAI medyada çok yer kaplıyor, ama gerçekte faydalı ve ilginç şeyler yapan çok sayıda ekip var
    • Uygulama açısından, tüm ML sürecinin nasıl çalıştığını, temel kavramların neler olduğunu ve bileşenlerin nasıl birbirine geçtiğini anlamak daha önemli
      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
    • Yapay zeka hizmetleri pazarına birileri hâkim olacaktır, ama küçük uç yapay zeka uygulamaları o kadar fazla ki tek bir tedarikçinin hepsini ele geçirmesi mümkün değil
      Ö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ı?

    • DeepMind’ın bu sunumu temel ML kitaplarını özetliyor: https://drive.google.com/file/d/1lPePNMGMEKoaDvxiftc8hcy-rFp...
      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
    • Gerçekten etkileyici; bu konunun başlıca ders kitabı olma potansiyeli var gibi görünüyor
      İ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
    • https://news.ycombinator.com/item?id=38425368
  • Ş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

    • Bu kitabı okursan temel teoriyi çok iyi oturtabilir ve birçok ML mühendisinden daha derin bir anlayış kazanabilirsin
      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
    • Öğrenilecek bilginin sürekli arttığı bir dünyada işe yarar tek yol işareti, kendine “bunu öğrenmekten keyif alıyor muyum?” diye sormaktır
      “Uzman olabilir miyim?” gibi sorular belirsizdir, bu yüzden iyi bir yol işareti olmaları zordur
    • Hedefini bilmiyorsak yanıtlamak çok zor. Derin öğrenme uygulayıcısı mı olmak istiyorsun, araştırmacı mı; buna bağlı
    • Muhtemelen uzman olamayacaksın, ama neden uzman olmak istediğini de pek bilmiyorum
  • Ü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

    • Makine öğrenimi platformları eskir
      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
    • Derin öğrenmedeki epey çok teknik zaten zamanın sınavından geçti. Yeni teknikler de eski tekniklere dayanıyor ya da onların kusurlarını gidermek için geliştiriliyor
      Ö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
    • Kesinlikle katılmıyorum. Eskidiyse muhtemelen sadece son modanın peşinden gitmişsindir
      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
    • Teknolojide aynen kalan şey çok azdır. Teknolojiyi evrimin başka bir biçimi olarak görmek gerekir
      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
    • Peki hangi temel bilgileri öğrenmek gerek? ML’de de yıllar geçse de geçerliliğini koruyan genel ilkeler yok mu?
  • 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

    • Yazarı güçlü biçimde tavsiye edebilirim. Önceki kitabı Computer Vision: Models, Learning, and Inference okunması kolay, konuya alışılmışın dışında bir bakış açısıyla yaklaşıyor ve metni destekleyen harika görsellere sahip
      Bu kitabı basılı olarak almayı planlıyorum
    • Aramayla doğrulanabilir
      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ş
    • Tam PDF o sayfada ücretsiz indirme olarak sunuluyor. En üstteki ilk bağlantı
      https://github.com/udlbook/udlbook/releases/download/v1.16/U...
    • Marcus Hutter, [Marcus' AI Recommendation Page] üzerinde “Prince(2023), derin öğrenme hakkında gerçekten iyi olan tek ders kitabı” diye yazmış
  • Aptalca bir soru değildir umarım, basılı kitabı nasıl satın alabilirim?

  • 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ç

    • RNN’ler, bugün erişilebilir maliyet verimli donanımlarda eğitilmek için yapısal olarak verimsiz olduğundan donanım piyangosunu kaybetmiş sayılır
      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