Makine Öğrenimi ve Sinir Ağları - sayfa 17

 

Derin Öğrenme ve Makine Öğrenimi için PyTorch – Tam Kurs (8-10. bölümlerin açıklaması)


Derin Öğrenme ve Makine Öğrenimi için PyTorch – Tam Kurs


8. Bölüm

  • 07:00:00 Bu bölümde eğitmen, bir modeli eğittikleri ve basit bir veri kümesi üzerinde tahminler yaptıkları önceki videoyu inceler. Ardından izleyiciyi, muhtemelen modeli daha uzun süre eğiterek, modelin tahmin edilen kırmızı noktaları gerçek yeşil noktalarla hizalama yeteneğini geliştirmenin yollarını bulması için zorlarlar. Eğitmen daha sonra kodu 100 dönem daha çalıştırır ve modelin test kaybında ve tahminlerinde önemli bir gelişme gösterir. Eğitmen, bu eğitim ve model değerlendirme sürecinin PyTorch ile derin öğrenme için temel olduğunu ve kursun geri kalanında kullanılacağını vurgular. Ayrıca, yararlı değerleri saklamak için boş bir liste kullanarak model ilerlemesini izlemenin önemini de tartışıyorlar.

  • 07:05:00 Bu bölümde eğitmen, kayıp değerleri takip etmenin neden önemli olduğunu ve bunları modelimizin ilerlemesini izlemek ve gelecekteki deneylerde geliştirmek için nasıl kullanabileceğimizi açıklıyor. Sunulan kod parçacığı, dönem sayısını, mevcut kayıp değerini ve mevcut test kaybı değerini daha sonra çizilebilmeleri için farklı listelere ekler. Eğitmen, listelerden oluşturulan kayıp eğrilerinin bir grafiğini gösterir ve bunların önemini açıklar. İdeal bir kayıp eğrisi, yüksek başlamalı ve zamanla azalarak azalan bir kayıp değerini temsil etmelidir.

  • 07:10:00 Bu bölümde eğitmen, kayıp değerlerinin Matplotlib'de çizilmesi için PyTorch'tan NumPy'ye nasıl dönüştürüleceğini açıklıyor. Matplotlib yalnızca NumPy ile çalıştığı için onları NumPy'ye dönüştürmenin gerekli olduğunu gösteriyor. Ayrıca eğitim kaybı ve test kaybı eğrilerinin nasıl takip edileceğini açıklıyor ve bir noktada yakınsa, modelin yakınsadığı ve kaybın mümkün olduğunca sıfıra yaklaştığı anlamına geldiğinden bahsediyor. Eğitmen daha sonra test döngüsünden geçer ve test verilerini modelden geçirmenin, test kaybı değerini hesaplamanın ve neler olup bittiğinin değerlerini takip etmek için eğitim sırasında neler olduğunu yazdırmanın gerekli olduğunu açıklar. Son olarak, tüm bu adımları bir işleve koymayı önerir ve adımları hatırlamak için resmi olmayan bir PyTorch optimizasyon döngü şarkısı sağlar.

  • 07:15:00 bu bölümde hakkında bilgi ediniliyor - PyTorch'ta modelleri kaydetmek ve yüklemek için üç ana yöntem. İlk yöntem olan torch.save, bir PyTorch nesnesini Python'un turşu biçiminde kaydetmenize olanak tanır. İkinci yöntem olan torch.load, kaydedilmiş bir PyTorch nesnesini yüklemenizi sağlar. Ve üçüncü yöntem olan torch.nn.module.loadStateDict, bir modelin kaydedilmiş sözlüğünü yüklemenize veya aşağıdaki videoda inceleyeceğimiz kayıtlı durum sözlüğünü kaydetmenize olanak tanır. Bu yöntemler, özellikle daha büyük modellerle çalışırken veya modelleri başkalarıyla paylaşmanız gerektiğinde, modelleri kaydetmek ve yeniden kullanmak için çok önemlidir.

  • 07:20:00 Bu bölümde eğitmen devlet sözlükleri kavramını ve PyTorch'taki önemini açıklar. PyTorch, bir modelin önemli parametrelerini, ağırlıklar ve sapmalar gibi öğrenilebilir parametreler de dahil olmak üzere, modelin durumunu tutan, durum sözlüğü adı verilen bir sözlükte saklar. Eğitmen, PyTorch modelinin durum sözlüğünü torch.save ve torch.load yöntemlerini kullanarak kaydetme ve yükleme işleminin nasıl yapılabileceğini gösterir. Ayrıca eğitmen, kullanıcıya yalnızca durum sözlüğü yerine tüm modeli kaydetmenin artılarını ve eksilerini okuması ve anlaması için ek bir zorluk sağlar. Son olarak eğitmen, modeli kaydetmek ve modeller adlı bir klasör oluşturmak için PyTorch kodunu paylaşır.

  • 07:25:00 Videonun bu bölümünde eğitmen, önerilen durum diktesini kaydetme yöntemini kullanarak bir PyTorch modelinin nasıl kaydedileceğini gösterir. Modele bir ad verilir ve yol, pathlib kitaplığı kullanılarak oluşturulur. Yol hazır olduğunda, ilk parametrenin nesne olduğu ve ikinci parametrenin modelin kaydedileceği yol olduğu torch.save() işlevi kullanılarak model durumu dikte kaydedilir. Eğitmen, modelin modeller dizinine kaydedilip kaydedilmediğini kontrol etmek için LS komutunun nasıl kullanıldığını gösterir. Video ayrıca kaydedilen modeli yerel bir makineye veya Google Drive'a indirmek için bir kılavuz sağlar. Ek olarak eğitmen, izleyiciyi belgeleri okumaya devam ederek ve kayıtlı bir modeli nasıl yükleyeceğini öğrenmek için torch.load() işlevini kullanarak kendilerini zorlamaya teşvik eder.

  • 07:30:00 Bu bölümde eğitmen bir PyTorch modelinin yüklenmesinden ve torch nokta yükleme yönteminin nasıl kullanılacağından bahsediyor. Sınıfın bir modelden önceden kaydedilmiş parametreler sözlüğü, bir durum destesi olarak yüklenecek ve bu bölüm, lineer regresyon modeli sınıfının yeni bir örneğinin nasıl oluşturulacağını ve kaydedilen durum destesinin buna nasıl yükleneceğini gösteriyor. Torç nn modülünün yük durum destesi yöntemi, durum sözlüğünün doğrudan model örneğine yüklenmesine izin verirken, torç nokta yük yöntemi F'yi alır ve önceki durum destesinin kaydedildiği modelin kaydetme yolundan geçirir.

  • 07:35:00 Bu bölümde eğitmen, PyTorch'ta bir modeli kaydetme ve yükleme konusunu ele alıyor. Test verileriyle yeni tahminler yaparak ve eşdeğer eşittir eşittir işlevini kullanarak bunları orijinal modelin tahminleriyle karşılaştırarak yüklü modeli test ederler. Eğitmen, yeni bir dizi model tahminleri yaparak ve eşdeğerliği tekrar test ederek modellerin eşdeğer olmaması sorununu giderir. Bir modeli kaydetmenin ve yüklemenin ana yönlerini kapsarlar, ancak daha fazla ayrıntı için öğreticilere göz atmanızı öneririz. Eğitmen, şu ana kadar ele alınan tüm adımları sonraki birkaç videoda bir araya getirmeyi planlıyor.

  • 07:40:00 Videonun bu bölümünde eğitmen, PyTorch'u içe aktarma, modelleri kaydetme ve yeniden yükleme ve gerekirse kodun GPU'yu kullanmasına izin veren cihazdan bağımsız kod oluşturma dahil olmak üzere PyTorch kullanarak derin öğrenmenin tüm iş akışını gözden geçirir. yoksa varsayılan olarak CPU'dur. Eğitmen, izleyicileri duraklatmaya ve kendi başlarına kodu yeniden oluşturmaya teşvik ederken, aynı zamanda rehberlik ve yardımcı ipuçları sunar. Video ayrıca, mavi noktalardan yeşil noktaları tahmin etmeyi öğrenecek bir model oluşturmak için kullanılacak sahte veri kümelerinin nasıl oluşturulacağını ve veri noktalarının nasıl çizileceğini de kapsar.

  • 07:45:00 Bu bölümde eğitmen, y eşittir ağırlık çarpı özellikler artı sapma şeklindeki doğrusal regresyon formülünü kullanarak verilerin nasıl oluşturulacağını gösterir. Bu değerleri tahmin etmek için bir model oluşturma ilkelerinin aynı kaldığını açıklar ve eğitim ve test değerlerini tahmin etmek için kullanılacak x ve y özelliklerini oluşturmaya devam ederler. Ayrıca verileri eğitim ve test kümelerine bölerler ve verilerdeki kalıpları görselleştirmek için verileri çizerler.

  • 07:50:00 Bu bölümde eğitmen, verilen doğrusal kukla veriler için bir PyTorch doğrusal modeli oluşturma kavramını tanıtıyor. Doğrusal bir regresyon modeli oluşturmak ve katmanları kullanarak parametreleri başlatmak için nn.module alt sınıfını oluştururlar. nn.Linear katmanı, özellikleri girdi ve çıktı olarak alır ve doğrusal regresyon modeliyle aynı formülü kullanarak gelen verilere doğrusal bir dönüşüm uygular. Modelin girdi ve çıktı şekilleri verilere bağlıdır ve eğitmen, ders boyunca girdi ve çıktı özelliklerinin farklı örneklerinin görüleceğini vurgular.

  • 07:55:00 Bu bölümde eğitmen, bir model oluşturmak için önceden var olan bir katman olarak PyTorch'taki lineer katmanın nasıl kullanılacağını açıklar. Doğrusal katman, y eşittir x, a devrik artı b, iç özellikler, dış özellikler şeklinde bir doğrusal regresyon biçimidir. nn.module'ü alt sınıflandırarak, doğrusal bir katman oluşturabilir ve verileri önceden tanımlanmış ileri hesaplamayı gerçekleştiren doğrusal katmandan geçirmek için forward yöntemini geçersiz kılabiliriz. PyTorch'un torch.nn'sinin gücü, perde arkasında bizim için parametreleri yaratmasında ve bunları manuel olarak başlatmamız gerekmiyor. Ek olarak, eğitmen doğrusal katman için doğrusal dönüşüm, araştırma katmanı, tamamen bağlı katman, yoğun katman ve yoğun akış gibi farklı adları tartışır.

9. Bölüm

  • 08:00:00 Bu bölümde eğitmen, evrişimli, havuzlama, doldurma, normalleştirme, yineleme, dönüştürücü, doğrusal ve bırakma dahil olmak üzere torch.nn'de bulunan farklı katmanları tartışır. Bu katmanların önceden oluşturulmuş uygulamaları, ortak derin öğrenme görevleri için PyTorch tarafından sağlanır. Bölüm daha sonra kayıp ve optimize edici işlevleri kullanarak önceden oluşturulmuş PyTorch doğrusal modelini eğitmeye geçer. Optimize edici, modelin ne kadar yanlış olduğunu ölçen kayıp işlevini en aza indirmek için modelin ağırlık ve yanlılık parametrelerini optimize eder. Eğitmen bu görev için L1 kayıp işlevini ve SGD optimize ediciyi ayarlar.

  • 08:05:00 Videonun bu bölümünde eğitmen, çok küçük veya çok büyük bir adımın modelin performansını olumsuz etkileyebileceğinden, optimize edici için uygun bir öğrenme hızı seçmenin önemini tartışıyor. İleriye geçiş yapmayı, kayıp değerini hesaplamayı, optimize ediciyi sıfırlamayı, geri yayılımı gerçekleştirmeyi ve ağırlıkları ve önyargıları ayarlamayı içeren bir eğitim döngüsü yazma adımları da açıklanır. Ek olarak, eğitmen tekrarlanabilir sonuçlar sağlamak için torch.manual_seed() kullanılmasını önerir ve her 10 dönemde bir eğitim kaybı ve test kaybını yazdırmak için kod sağlar.

  • 08:10:00 PyTorch kursunun bu bölümünde eğitmen, veriler için aygıt agnostik kodunun nasıl yazılacağını açıklıyor ve tüm hesaplamaların aynı aygıtta olmasının hatalardan kaçınmak için çok önemli olduğunu vurguluyor. Model ve veriler, CPU veya CUDA olabilen aynı cihazda olmalıdır. Eğitim ve test verilerini X treni ve Y treni kullanarak hedef cihaza koyarak, bu, modeli eğitirken daha doğru sonuçlar sağlayan cihaz agnostik kodu oluşturur. Eğitmen ayrıca, durum katlı kullanılarak modelin nasıl değerlendirileceğini açıklayarak, tahmin edilen parametrelerin ideal değere yakın olduğunu gösterir. Bölüm, kullanıcıların tahminlerde bulunmaları, değerlendirmeleri ve bunları orijinal veriler üzerinde çizmeleri için bir meydan okuma ile sona erer.

  • 08:15:00 Bu bölümde eğitmen, PyTorch modelini değerlendirme moduna çevirmenin ve modelin daha önce hiç görmediği test verileri üzerinde tahminler yapmanın önemini tartışır. Modelin tahminlerini görselleştirmek için arsa tahminleri işlevini getiriyorlar, ancak Matplotlib, PyTorch ile değil NumPy ile çalıştığı için CUDA cihaz tipi tensörünü NumPy'ye dönüştürmeye çalışırken bir tip hatasıyla karşılaşıyorlar. Bu hatayı, önce tensörü ana belleğe kopyalamak için tensör nokta CPU'yu kullanarak çözerler. Eğitmen ayrıca izleyicileri, bir modeller dizini oluşturarak ve ona model yolunu ayarlayarak gösterdikleri yol modülünü kullanarak eğitilmiş modellerini kaydetmeye ve yüklemeye teşvik eder.

  • 08:20:00 Bu bölümde, eğitmen Python'dan path lib modülünü kullanarak PyTorch modellerinin nasıl kaydedileceğini ve yükleneceğini açıklar. İlk olarak, PyTorch için .PTH uzantılı bir model kaydetme yolu oluşturulur. Model durumu sözlüğü daha sonra torç kaydetme yöntemi kullanılarak kaydedilir. Eğitmen, durum destesini açıkça görüntülemenin birçok parametreye sahip modeller için uygun olmayabileceğini not eder. Kaydedilen modeli yüklemek için, kaydedilen durum sözlüğü, yük durumu katlı yöntemi kullanılarak ve kaydedilen PyTorch nesnesinin dosya yolundan geçirilerek doğrusal regresyon modeli V2'nin yeni bir örneğine yüklenir. PyTorch'un önceden oluşturulmuş doğrusal katmanının kullanımı ve ileri yöntemde çağrılması da tartışılmaktadır.

  • 08:25:00 Bu bölümde eğitmen, torç çıkarım modunu kullanarak yüklenen modelin kayıtlı model ile aynı parametrelere sahip olduğunu kontrol ederek sonlandırır. Daha sonra kullanıcıyı, PyTorch iş akışını bir model oluşturmaktan, onu eğitmekten ve yeniden kullanmak için kaydetmeye kadar tamamladığı için tebrik ederler. Eğitmen daha sonra, kullanıcıların alıştırmaları ve ekstra müfredatı, Learnpytorch.io adresindeki ders materyallerinin kitap versiyonunda bulabileceklerini belirtir. Ayrıca, bölüme göre numaralandırılmış alıştırma defteri şablonları sağlarlar ve PyTorch derin öğrenme GitHub deposunda ekstralar ve alıştırmalar altında bulunabilirler.

  • 08:30:00 Bu bölümde eğitmen, iş akışı alıştırmalarının nasıl tamamlanacağı ve PyTorch kursu için ekstra kaynakların nasıl bulunacağı hakkında bilgi verir. Herhangi bir örnek çözüme bakmadan önce egzersizleri kendiniz denemenin önemini vurguluyor. Bölüm, verileri hazırlamayı, tensörlere dönüştürmeyi, bir model oluşturmayı veya seçmeyi, bir kayıp fonksiyonu ve bir optimize ediciyi seçmeyi, modeli eğitmeyi, tahminlerde bulunmayı ve modeli değerlendirmeyi içeren PyTorch iş akışının bir özeti ile sona erer. Bir sonraki bölüm, makine öğrenimindeki en büyük sorunlardan biri olan PyTorch ile sinir ağları sınıflandırmasına odaklanmaktadır. Eğitmen, kurs boyunca yardım almak için kurs GitHub tartışma sayfası ve PyTorch belgeleri dahil kaynaklar sağlar. Ayrıca sınıflandırma problemlerinin ne olduğunu açıklıyor ve bir e-postanın spam olup olmadığını tahmin etmek gibi örnekler veriyor.

  • 08:35:00 PyTorch kursunun bu bölümünde, eğitmen derin öğrenmede farklı türde sınıflandırma problemlerini tartışır. İkili sınıflandırma, spam veya spam değil gibi yalnızca iki seçeneğin olduğu zamandır. Çok sınıflı sınıflandırma, bir görüntüyü suşi, biftek veya pizza olarak sınıflandırmak gibi ikiden fazla seçeneğin olduğu zamandır. Çok etiketli sınıflandırma, bir örneğin bir Wikipedia makalesine etiket atamak gibi birden fazla etiketi olabileceği zamandır. Eğitmen gerçek dünyadan örnekler verir ve kavramları ayrıntılı olarak açıklar. Ayrıca, bir ikili sınıflandırma probleminde köpek ve kedi görüntülerini sınıflandırma ve çok sınıflı bir sınıflandırma probleminde farklı hayvanların görüntülerini sınıflandırma örnekleriyle ikili ve çok sınıflı sınıflandırma arasında ayrım yapar.

  • 08:40:00 Bu bölümde eğitmen, bir sinir ağı sınıflandırma modelinin mimarisini ve bir sınıflandırma modelinin girdi ve çıktı şekillerini açıklar. Makine öğrenimi modelleri için sayısal girdilerin önemini vurguluyor ve sayısal girdilerin genellikle verilere bağlı olarak nasıl farklı şekillerde ortaya çıktığını açıklıyor. Ayrıca uydurma ve tahmin için özel veri oluşturma sürecini tartışıyor ve sinir ağı sınıflandırması için modellemeye dahil olan adımları kapsıyor. Ek olarak, eğitmen bir sınıflandırma modeli için bir kayıp fonksiyonunun ve optimize edicinin nasıl kurulacağını, eğitim ve değerlendirme döngülerinin nasıl oluşturulacağını, modelleri kaydedip yükleyeceğinizi, doğrusal olmamayı nasıl kullanacağınızı ve sınıflandırma modellerini nasıl değerlendireceğinizi açıklar. Bir makine öğrenimi algoritması kullanarak yiyecek fotoğraflarının sayısal olarak nasıl temsil edileceğine ve bunun tahmininin nasıl yapılacağına dair bir örnek sunarak bitiriyor.

  • 08:45:00 Bu bölümde, PyTorch for Deep Learning & Machine Learning kursunun eğitmeni, sayısal kodlama süreci ve çıktı formatı hakkında ayrıntılar sağlar. Makine öğrenimi algoritmasının girdileri, tahmin olasılıklarında bazı ilişkili çıktılara sahip sayısal olarak kodlanmış görüntülerdir. Eğitmen, tahmin olasılığının bire ne kadar yakın olduğunu, modelin çıktısından o kadar emin olduğunu not eder. Bu çıktı, birden fazla örneğe bakmaktan gelir ve bu tahminleri iyileştirmek için algoritmayı ve verileri ayarlamak mümkündür. Kodlanmış çıktılar, insanların anlayabileceği etiketlerle değiştirilmelidir. Ek olarak, eğitmen parti boyutu, renk kanalları ve yükseklik/genişlik dahil olmak üzere tensörlerin şeklini tartışır. 32 parti boyutu yaygın bir uygulamadır ve şekli, çözülmekte olan probleme bağlı olarak değişebilir.

  • 08:50:00 Bu bölümde eğitmen, bir sinir ağının ne olduğunun şeması olan bir sınıflandırma modelinin mimarisini açıklar. Giriş katmanı şekli, sayısal bir temsil olarak kodlanması gereken özelliklerin sayısı tarafından belirlenir ve çıkış katmanı genellikle belirli bir sınıf için bir tahmin olasılığıdır. Kullanıcı tarafından karar verilmesi gereken gizli katman sayısı, gizli katman başına düşen nöron sayısı ve çıktı katmanı şekli gibi hiperparametreler vardır. Eğitmen ayrıca PyTorch kullanarak katmanlar ve nöronlar oluşturmak için kod örnekleri verir ve çözülmekte olan probleme bağlı olarak şekillerin değişeceğini not eder.

  • 08:55:00 Bu bölümde eğitmen, gizli katman aktivasyonu, çıktı aktivasyonu, kayıp fonksiyonu ve optimize edici dahil olmak üzere bir sınıflandırma probleminin bileşenlerini tartışır ve her birine örnekler verir. Eğitmen daha sonra çok sınıflı bir sınıflandırma problemi sunar ve mimarinin çoklu çıktı özelliklerine sahip olacak şekilde nasıl inşa edilebileceğini tartışır. Son olarak eğitmen, Google CoLab'de PyTorch'u kullanarak kod yazmaya geçer ve izleyicilere tüm kodun bir GitHub deposuna kaydedileceğini hatırlatır. Eğitmen ayrıca herhangi bir makine öğrenimi problemine verilerle başlamanın önemini vurgular.

10. Bölüm

  • 09:00:00 Bu bölümde video, scikit-learn kitaplığını kullanarak özel bir veri kümesi oluşturmaya odaklanıyor. make circles veri kümesi içe aktarılır ve rastgelelik için biraz gürültü eklenerek 1000 örnek oluşturulur. X ve Y'nin uzunluğu yazdırılır, bu da 1000 örnek özellik ve etiket olduğunu gösterir. X ve Y'nin ilk beş örneği daha sonra yazdırılır ve verilerin halihazırda sayısal olduğunu ve yalnızca iki sınıfa sahip olduğunu gösterir: ikili sınıflandırma için sıfır ve bir. Daha sonra, X1 ve X2 olarak etiketlenen özelliklere sahip bir pandas veri çerçevesi oluşturulur ve büyük veri kümelerini keşfetmek için potansiyel olarak yararlı bir yaklaşım olarak rastgele örnekleme tartışılır.

  • 09:05:00 Kursun bu bölümünde eğitmen, ikili sınıflandırma için PyTorch'ta bir sinir ağı oluşturma pratiği yapmak için kullanılacak oyuncak veri setini açıklıyor. Veri seti, scikit-learn kullanılarak oluşturuldu ve ikili sınıflandırma probleminin iki sınıfını temsil eden farklı renklere sahip iki daireden oluşuyor. Eğitmen, veri görselleştirmenin veri kümesini anlamaya ve bir sinir ağı oluşturmaya hazırlanmaya nasıl yardımcı olabileceğini gösterir. Problemin girdi ve çıktı şekillerinin yanı sıra, veri setinin eğitim ve test setlerine nasıl bölüneceği de tartışılacaktır, bu dersin bir sonraki bölümünde ele alınacaktır.

  • 09:10:00 Bu bölümde eğitmen, yaygın hata kaynakları oldukları için makine öğreniminde girdi ve çıktı şekillerini kontrol etmenin önemini tartışıyor. NumPy dizilerini kullanarak bir veri kümesinin giriş ve çıkış şekillerini nasıl görüntüleyeceğinizi ve verileri PyTorch tensörlerine nasıl dönüştüreceğinizi gösterirler. Verileri tensörlere dönüştürme ve onu tren ve test kümelerine bölme işlemi, bu örnekte kullanılana benzer oyuncak veri kümeleri için bile makine öğreniminde çok önemli bir adımdır. Eğitmen, PyTorch'un nasıl içe aktarılacağını ve kullanılan sürümün 1.10 olduğundan emin olunacağını, NumPy dizilerinin PyTorch tensörlerine nasıl dönüştürüleceğini ve veriler için tren ve test setlerinin nasıl oluşturulacağını gösterir.

  • 09:15:00 Bu bölümde eğitmen, "torch.float" komutunu kullanarak NumPy dizilerindeki verilerin PyTorch'un varsayılan float 32 türüne nasıl dönüştürüleceğini gösterir. Bunun yapılmaması daha sonra hatalara neden olabilir. Eğitmen daha sonra, scikit-learn'ün "train_test_split" işlevi kullanılarak gerçekleştirilen rastgele bölmeyi kullanarak verilerin eğitim ve test kümelerine nasıl bölüneceğini gösterir. Kod örneği, özelliklerin ve etiketlerin işleve aktarılırken görünmeleri gereken sırayı gösterir. Eğitmen ayrıca, verilen değerin test verisi olarak kullanılacak verilerin yüzdesi olduğu "test_size" parametresinin ve rastgele bir seed gibi davranan "random_state" parametresinin kullanımını da açıklar.

  • 09:20:00 Bu bölümde video, PyTorch'ta Scikit-learn kütüphanesini kullanarak verilerin eğitim ve test setlerine bölünmesini konu alıyor. Torç noktası manuel çekirdeği, aynı rasgele bölmelerin kullanıldığından ve bunların karşılaştırmak istediğinizle aynı olmasını sağlayacak şekilde ayarlanmıştır. Video, tren ve test setlerinin uzunluğunu kullanarak, çalışacakları veri setini oluşturan sırasıyla 800 ve 200 örneğe sahip olduklarını açıklıyor. Bir sonraki adım, kırmızı ve mavi noktaları sınıflandırmak için bir model oluşturmak ve seçmektir. Bunu başarmak için, cihazı bir hızlandırıcı üzerinde çalışacak, modeli oluşturacak, kaybı tanımlayacak ve bir sonraki bölümde daha ayrıntılı incelenecek olan bir eğitim ve test döngüsü oluşturmak için PyTorch'u kullanacak şekilde içeren agnostik bir kod oluşturdular.

  • 09:25:00 Bu bölümde, PyTorch için bir GPU'nun nasıl kurulacağını ve kodun bir CPU üzerinde sorunsuz çalışmasını sağlamak için cihazdan bağımsız bir kod oluşturmayı öğreniyoruz. Daha sonra bir nn.Module'ü alt sınıflayarak ve dört ana adımı izleyerek bir model oluşturmaya geçiyoruz. İlk olarak, bir nn.Module'ü alt sınıflayan bir model yaratıyoruz. İkinci olarak, verilerimizin şekillerini işleyebilen iki Doğrusal Katman oluşturuyoruz. Üçüncü olarak, modelin ileri geçişini özetleyen bir forward yöntemi tanımlıyoruz. Dördüncü olarak, model sınıfımızın örneğini başlatıyoruz ve onu hedef cihaza gönderiyoruz. Modelimizin bir sinir ağı kullanarak kırmızı ve mavi daireleri ayırmak için kullanılacağını öğreniyoruz.

  • 09:30:00 Kursun bu bölümünde eğitmen, girdi özelliklerini işleme yeteneğine sahip bir sinir ağı katmanının nasıl tanımlanacağını tartışır. Her katman için gereken özellik sayısının kullanılan veri setine bağlı olduğunu açıklamaya devam ediyor. X'in iki özelliğe sahip olduğu bu örnekte, ilk katman, n özelliğin ikiye eşit olduğu bir "n-doğrusal" olarak tanımlanırken, ikinci katman, modelin daha fazla örüntü öğrenmesine yardımcı olmak için beş özellikle tanımlanır. Eğitmen ayrıca şekil uyuşmazlığı hatalarını önlemek için ikinci katmanın iç özelliklerinin önceki katmanın dış özellikleriyle eşleşmesi gerektiğini açıklar. Son olarak, Ford geçişini ana hatlarıyla belirleyen ve ikinci öz katmanı döndüren bir Ford yöntemi tanımlar (bu, birinci katmanı ve X'i girdi olarak alır).

  • 09:35:00 Bu bölümde eğitmen, model sınıfının bir örneğinin nasıl oluşturulacağını ve hedef cihaza nasıl gönderileceğini açıklar. Daha sonra TensorFlow oyun alanında iki giriş özelliğini kullanarak ve bunları, bir çıkış özelliğine sahip başka bir katmana beslenen beş nöronlu gizli bir katmana geçirerek basit bir çok katmanlı sinir ağının nasıl oluşturulacağını gösteriyor. Ağı bazı verilere uydurur ve test kaybı yaklaşık %50'dir, yani model yalnızca rastgele tahmin yapıyorsa, yaklaşık 0,5'lik bir kayıp alır çünkü yalnızca iki sınıf vardır.

  • 09:40:00 Videonun bu bölümünde eğitmen, bir ikili sınıflandırma problemi için bir sinir ağını görsel olarak temsil etmek üzere Fig Jam adlı bir beyaz tahta aracı kullanıyor. Eğitmen, bir ikili sınıflandırma probleminde rastgele tahmin yapmanın size yaklaşık %50 doğruluk sağlayacağını açıklıyor. Sinir ağı, girdiler, gizli birimler ve bir çıktı katmanı kullanılarak oluşturulur ve eğitmen, katmanların şeklinin eşleşmesi gerektiğini vurgular. TensorFlow oyun alanı, bu tür veriler üzerinde bir sinir ağı oluştururken kendini keşfetmenin ve kendine meydan okumanın eğlenceli bir yolu olarak öneriliyor. Daha sonra eğitmen, giriş özelliklerini işleyebilen ve ağın öğrenmesini iyileştirmek için bunları yükseltebilen iki doğrusal katman kullanarak önceden oluşturulmuş sinir ağını daha da az kodla çoğaltmayı tartışır.

  • 09:45:00 Bu bölümde eğitmen, PyTorch'ta nn.Sequential kullanarak bir sinir ağı modelinin nasıl kopyalanacağını gösterir. Kodun çoğu arka planda uygulandığından, nn.Sequential kullanılarak modelin kodu basitleştirilebilir. Eğitmen, videonun bir önceki bölümünde gösterildiği gibi, basit, doğrudan işlemler için nn.Sequential kullanmanın alt sınıflandırmadan daha verimli olabileceğini açıklıyor. Bununla birlikte, alt sınıflandırma, daha karmaşık ileri geçişler oluşturmak gibi daha karmaşık işlemlere izin verir. Bu bölüm, PyTorch'un esnekliğini ve model oluşturmanın farklı yollarını vurgulamaktadır. Eğitmen ayrıca verileri modelden geçirmeyi ve durum sözlüğünü analiz etmeyi gösterir.

  • 09:50:00 Bu bölümde eğitmen, PyTorch'un iki katmanlı bir sinir ağı uygularken perde arkasında nasıl otomatik olarak ağırlık ve yanlılık parametreleri oluşturduğunu gösterir. Eğitmen, modelin rasgele sayılarla somutlaştırıldığını ve PyTorch'un verileri daha iyi sığdırmak veya temsil etmek için geri yayılım ve gradyan iniş işlemi sırasında bu değerleri biraz değiştireceğini vurgular. Eğitmen ayrıca çok sayıda özelliğe sahip birçok katmana sahip olmanın potansiyel karmaşıklığını ve bu değerleri elle takip etmenin nasıl ayrıntılı hale gelebileceğini gösterir. Son olarak eğitmen, eğitilmemiş modeli kullanarak tahminlerde bulunmaya devam eder ve sorun gidermenin ve verileri görselleştirmenin önemini vurgular.

  • 09:55:00 Bu bölümde video, derin öğrenme için bir model oluşturduktan sonra bir kayıp fonksiyonunun ve optimize edicinin nasıl seçileceğini açıklıyor. İhtiyaç duyulan kayıp fonksiyonu ve iyileştirici türü genellikle üzerinde çalışılan veri setinin doğasına bağlıdır. Regresyon problemleri için, ortalama mutlak hata veya ortalama karesel hata uygun olabilir. Bu arada, sınıflandırma sorunları için ikili çapraz entropi veya kategorik çapraz entropi seçilebilir. Video, kayıp fonksiyonunun bir modelin tahminlerinin ne kadar doğru olduğunu ölçmeye yardımcı olduğunu belirterek sona eriyor.

PyTorch for Deep Learning & Machine Learning – Full Course
PyTorch for Deep Learning & Machine Learning – Full Course
  • 2022.10.06
  • www.youtube.com
Learn PyTorch for deep learning in this comprehensive course for beginners. PyTorch is a machine learning framework written in Python.✏️ Daniel Bourke develo...
 

Derin Öğrenme ve Makine Öğrenimi için PyTorch – Tam Kurs (11-16. Bölümler)


Derin Öğrenme ve Makine Öğrenimi için PyTorch – Tam Kurs


Bölüm 11

  • 10:00:00 Video kursunun bu bölümünde eğitmen, sinir ağı sınıflandırması için PyTorch'ta yaygın olarak kullanılan çeşitli kayıp fonksiyonlarına ve optimize edicilere genel bir bakış sağlar. Eğitmen, ikili çapraz entropi kaybını, çapraz entropi kaybını, ortalama mutlak hatayı ve ortalama karesel hatayı ve hangilerinin tipik olarak regresyona karşı sınıflandırma görevleri için kullanıldığını açıklar. İkili sınıflandırma görevleri için sağlanan kod örnekleri arasında, logitlerle birlikte torch.nn BCE kaybı ve BCE kaybı yer alır. Video ayrıca derin öğrenmede logit kavramını da ele alıyor ve yaygın olarak kullanılan iki optimize ediciyi, SGD ve Adam'ı araştırıyor. Eğitmen, başka optimize ediciler olsa da, bu ikisine bağlı kalmanın birçok problemde iyi sonuçlar elde edebileceğini belirtiyor.

  • 10:05:00 Videonun bu bölümünde konuşmacı, derin öğrenme ve makine öğrenimi için PyTorch'ta kayıp işlevini ve optimize ediciyi kuruyor. Kayıp fonksiyonuna, yerleşik sigmoid aktivasyon fonksiyonuna sahip olan logit kaybı ile BCE denir. Seçilen optimize edici, öğrenme oranı 0.1 olan stokastik gradyan inişidir (SGD) ve parametreler, model parametrelerini kayba göre güncellemek üzere ayarlanmıştır. Son olarak, konuşmacı bir değerlendirme ölçütü oluşturur.

  • 10:10:00 Bu bölümde eğitmen, bir değerlendirme ölçütü olarak doğruluğun önemini tartışır ve pytorch kullanarak bir doğruluk fonksiyonunun nasıl oluşturulacağını gösterir. Doğruluk işlevi, tahminleri temel gerçek etiketleriyle karşılaştırır ve toplam örnek sayısından doğru tahminlerin yüzdesini verir. Eğitmen ayrıca bir pytorch eğitim döngüsünde yer alan ileri geçiş, kayıp hesaplama, optimize edici sıfır gradyan, geri yayılma ve gradyan iniş dahil olmak üzere adımlara genel bir bakış sağlar. Adımlar listelenir ve her adımın önemi tartışılır.

  • 10:15:00 Bu bölümde, eğitmen ham logitlerden tahmin olasılıklarına ve tahmin etiketlerine nasıl geçileceğini açıklar. Modelin ham çıktıları, ikili sınıflandırma için sigmoid ve çok sınıflı sınıflandırma için softmax gibi bir aktivasyon fonksiyonuna geçirilerek tahmin olasılıklarına dönüştürülebilen logitler olarak adlandırılır. Tahmin olasılıkları daha sonra ikili sınıflandırma için yuvarlayarak veya çok sınıflı sınıflandırma için argmax alarak tahmin etiketlerine dönüştürülebilir. Eğitmen ayrıca aktivasyon fonksiyonu kavramını bir katmandan ayrı bir şey olarak açıklar ve doğrusal bir katmandan geçen verilerin, bir nokta çarpım ve yanlılık terimi aracılığıyla gelen verilere nasıl doğrusal bir dönüşüm uyguladığını gösterir.

  • 10:20:00 Videonun bu bölümünde eğitmen, logit adı verilen bir modelin ham çıktısını ikili sınıflandırma için kullanılabilecek tahmin olasılıklarına dönüştürmek için sigmoid aktivasyon fonksiyonunun nasıl kullanılacağını açıklıyor. Eğitmen, daha sonra tahmin etiketleri elde etmek için bir meşale nokta yuvarlama işlevine geçirilebilecek olan predprob'ları oluşturmak için model logit'lerde sigmoid işlevinin nasıl kullanılacağını gösterir. Bu tahmin etiketleri, genellikle 0,5 olarak ayarlanan bir karar sınırı kullanılarak bir girdinin hangi sınıfa ait olduğunu belirlemek için kullanılır. Eğitmen ayrıca, tahmin olasılıklarının test verileriyle aynı formatta olmasını sağlamak için bu adımı ham logitlerde gerçekleştirmenin önemini vurgular.

  • 10:25:00 Bu bölümde video, modeldeki ham logitleri bir aktivasyon fonksiyonu kullanarak tahmin olasılıklarına dönüştürme ve ardından bunları tahmin etiketlerine dönüştürme sürecini tartışıyor. Adımlar, adil bir kod parçasıyla gösterilir; burada y-pred, tahminler, pred problarından pred etiketlerine logitler dahil olmak üzere tam adım kullanılarak y-pred problarından oluşturulur. Modelin tahminleri test etiketleri ile karşılaştırılır ve sıkma fonksiyonu kullanılarak aynı format oluşturulur. Bir sonraki adım, ileri geçiş yapmayı, kaybı hesaplamayı ve eğimleri optimize etmeyi içeren bir eğitim ve test döngüsü oluşturmaktır. Video, izleyiciyi daha fazla talimat için bir sonraki videoya geçmeden önce bunu kendi başına denemeye teşvik eder.

  • 10:30:00 Bu bölümde, eğitmen yeniden üretilebilirlik için manuel bir tohum, özellikle bir CUDA cihazındaki işlemler için bir CUDA rasgele tohum ayarlar. Daha sonra verileri hedef cihaza yerleştirmeye ve eğitim ve değerlendirme döngüsünü oluşturmaya geçerler. Eğitmen, ham logitlerin çıktılandığı ve bunları tahmin olasılıklarına ve etiketlere dönüştürmek için torch.round ve torch.sigmoid'den geçirilmesi gereken ileri geçişte küçük bir bilgiyi vurgular. Son olarak, kayıp ve doğruluğu hesaplarlar, doğruluğu hesaplamak gerekli olmasa da, model eğitilirken farklı ölçümleri görselleştirmenin yararlı olabileceğini belirtirler.

  • 10:35:00 Bu bölümde video, PyTorch'ta BCE kaybı ile logits kaybı ile BCE arasındaki farkı tartışıyor. Logits kaybı olan BCE, logitleri girdi olarak bekler ve bir sigmoid katmanı ile BCE kaybını birleştirerek onu sayısal olarak daha kararlı hale getirir. Öte yandan, BCE kaybı tahmin olasılıklarını girdi olarak bekler, bu nedenle logitleri olasılıklara dönüştürmek için meşale sigmoidinin çağrılması gerekir. Video ayrıca, gradyanları sıfırlama, geri yayılım gerçekleştirme ve gradyanları azaltmak için parametreleri güncelleme dahil olmak üzere PyTorch optimizasyon döngüsünün adımlarını özetliyor. Aynı şekilde, test ederken veya tahmin yaparken, model çıkarım moduna alınmalı ve tahmin olasılıklarını elde etmek için sigmoid işlevi çağrılarak test logitleri işlenmelidir.

  • 10:40:00 Bu bölümde eğitmen, sınıflandırma modeli için test kaybının ve doğruluğunun nasıl hesaplanacağını tartışır. Eğitmen test kaybını hesaplamak için logit kayıp fonksiyonu ile BCE'yi kullanır ve bunu Y test etiketleriyle karşılaştırır. Eğitmen, test doğruluğunu hesaplamak için Y true ve Y pred değişkenlerinde doğruluk işlevini kullanır. Eğitmen bunu scikit-learn'ün metrik paketine dayandırdığından, doğruluk işlevi için değişkenlerin sırası tersine çevrilir. Son olarak, eğitmen her 10. çağda bir dönem numarasını, eğitim kaybını ve doğruluğunu ve test kaybını ve doğruluğunu yazdırır. Eğitmen, kullanıcıları bu dev kodu çalıştırmaya ve ortaya çıkan hataları düzeltmeye teşvik eder.

  • 10:45:00 Bu bölümde eğitmen, önceki bölümde verilen ve doğrulukta önemli bir gelişme göstermeyen model eğitiminin sonuçlarını tartışır. Eğitmen, model için ideal bir doğruluğun 100 ve bir kayıp değerinin sıfır olması gerektiğini önermektedir. Ancak mevcut modelin doğruluğu %50'nin altındadır ve bu da rastgele tahmine eşdeğerdir. Eğitmen, düşük performansın nedenini belirlemek için model tarafından yapılan tahminlerin görselleştirilmesini önerir. Eğitmen, bu görselleştirme sürecinde kullanılmak üzere bir yardımcı işlev dosyasından "çizgi karar sınırı" adlı bir işlevi içe aktarır. Eğitmen ayrıca, makine öğreniminin temelleri ve makine öğrenimi işlemleri hakkında daha fazla bilgi edinmek isteyenler için madewithml.com adlı bir kaynak önerir.

  • 10:50:00 Bu bölümde eğitmen, Python'un "pathlib" ve "request" modüllerini kullanarak yardımcı işlevlerin PyTorch öğrenme havuzundan programlı bir şekilde nasıl indirileceğini açıklar. Eğitmen, yardımcı işlevlerin yolunun zaten var olup olmadığını kontrol etme sürecini gösterir ve yoksa, yardımcı işlevin "helper_functions.py" adlı bir dosya olarak indirilmesi için bir istek yapılır. Eğitmen, "plot_predictions" ve "plot_decision_boundary" yöntemlerinin, kursta daha sonra kullanılacak olan, indirilen yardımcı işlevden başarıyla içe aktarıldığını gösterir. Son olarak eğitmen, eğitim seti için bir karar sınırını başarıyla çizen "plot_decision_boundary" işlevini kullanarak yardımcı işlevi görselleştirmek için bir test gerçekleştirir.

  • 10:55:00 Videonun bu bölümünde sunum yapan kişi, modelin karar sınırı görselleştirmesinde gösterildiği gibi dairesel verileri düz çizgilerle ayırmada doğrusal bir modelin sınırlamalarını tartışıyor. Modelin doğruluğunu artırmanın çözümü, daha fazla katman eklemek, yani sinir ağının derinliğini artırmaktır, bu da verilerdeki kalıplar hakkında daha fazla bilgi edinme şansı sağlar. Bir modelin performansını iyileştirmenin diğer yolları, eğitim verisi miktarını artırmayı ve öğrenme hızı ve yığın boyutu gibi hiperparametreleri ayarlamayı içerir. Harici Python betiklerinden yardımcı işlevleri içe aktarmak ve kullanmak da yaygın bir uygulama olarak belirtilir.

Bölüm 12

  • 11:00:00 Bu bölümde, eğitmen bir modeli geliştirmenin yollarını tartışıyor: daha fazla gizli birim eklemek, daha uzun süre uydurmak, aktivasyon fonksiyonlarını değiştirmek, öğrenme oranını ayarlamak ve kayıp fonksiyonunu değiştirmek. Eğitmen, bir modeldeki parametre sayısını artırmanın potansiyel olarak verileri daha iyi temsil etmeye yardımcı olabileceğine, ancak çok fazla parametrenin modeli basit bir veri kümesi için çok karmaşık hale getirebileceğine dikkat çekiyor. Eğitmen ayrıca, deneylerin yapısını ve hiperparametrelerini değiştirerek modeli geliştirmeye nasıl yardımcı olabileceğini gösterir. Son olarak eğitmen, katman eklemenin, gizli birimlerin sayısını artırmanın, aktivasyon işlevleri eklemenin ve optimizasyon işlevini değiştirmenin modeli potansiyel olarak nasıl geliştirebileceğine dair grafiksel örnekler gösterir.

  • 11:05:00 Bu bölümde eğitmen, bir modelin model perspektifinden nasıl geliştirileceğini tartışır. Makine öğrenimi mühendislerinin ve veri bilimcilerin modelin sonuçlarını iyileştirmek için değiştirebileceği değerler olan hiper parametreler kavramını açıklıyor. Eğitmen, gizli birimlerin sayısı, katmanların sayısı ve çağların sayısı gibi bir modelin hiper parametrelerinin nasıl değiştirileceğini gösterir. Ayrıca, hangisinin iyileştirme veya bozulma sağladığını belirlemek için bu değişiklikleri teker teker test etmenin önemini vurguluyor. Son olarak, parametreler ile hiper parametreler arasındaki farkı ve bu ayrımı yapmanın neden önemli olduğunu açıklıyor.

  • 11:10:00 Bu bölümde eğitmen, bu modeli daha uzun süre çalıştırmanın daha iyi sonuçlar verip vermediğini görmek için daha fazla gizli birim içeren üç katmanlı bir model oluşturur. İleri yöntemi, verileri her katmandan geçirmek için fazladan bir gizli birim ve genel olarak fazladan bir katmanla geçersiz kılınır. Hızlandırmalardan yararlanan yöntemin, tüm işlemleri bir kerede gerçekleştirdiği de gösterilmiştir. Üç katmanlı modelin bir örneği oluşturulur ve hedef cihaza gönderilir, ardından bir kayıp fonksiyonu ve bir optimize edici ile birinci model için bir eğitim ve değerlendirme döngüsü oluşturulur.

  • 11:15:00 Bu bölümde video, daha fazla gizli birim ve fazladan bir katman içeren yeni bir model olan Circle Model V1'i oluşturmak için nn.module'ün alt sınıflandırıldığı bir öncekinden devam ediyor. Şimdi, iş akışındaki bir sonraki adım, bir kayıp işlevi seçmektir ve video, eskisi gibi nn.BCEWithLogitsLoss() işlevini, aynı optimize edici torch.optin.SGD() ile kullanır. Video, öğrenme oranını 0,1'e, çağ sayısını 1000'e ayarlar ve verileri hedef cihaza (CPU veya GPU) koyar. Video ayrıca çağlar boyunca bir döngü gösterir ve eğitim verilerini yeni mimariye sahip modelden geçirir, kaybı hesaplar ve torç'un otogradını kullanarak parametreleri günceller.

  • 11:20:00 Videonun bu bölümünde eğitmen, modelin doğruluğunu ve kaybını değerlendirme adımlarını anlatıyor. Kayıp işlevi, tahmin edilen etiket değerlerini alır ve bunları gerçek etiket değerleriyle karşılaştırır. Doğruluk fonksiyonu, modelin tahminlerinin ne kadar doğru olduğunu belirlemek için kullanılır. İyileştirici, verilerin daha iyi bir temsilini oluşturmak için modelin parametrelerini ayarlamak için kullanılır. Test, modelin eval() yöntemi çağrılarak ve çıkarım kipi açılarak yapılır. Günlükler, girdi verilerinin modele iletilmesiyle oluşturulur ve ardından bunları tahminlere dönüştürmek için torch.round() ve torch.sigmoid() işlevleri kullanılır. Test verileri için kayıp ve doğruluk hesaplanır ve modelin eğitimi sırasında her 100 dönemde bir yazdırılır.

  • 11:25:00 Derin Öğrenme ve Makine Öğrenimi için PyTorch kursunun bu bölümünde eğitmen, modelin herhangi bir şey öğrenip öğrenemeyeceğini görmek için daha küçük bir sorunu test etmek gibi bir modelin çalışmadığı durumlar için sorun giderme tekniklerini tartışır. Doğrusal bir modelin düz bir çizgiye sığdırabildiği önceki bir bölümden veri setinin kopyalanmasını ve mevcut modelin şu anda yalnızca tahminde bulunduğundan ve doğruyu ayırmak için düz bir çizgi çizemediğinden herhangi bir şey öğrenip öğrenemeyeceğini görmek için kullanılmasını önerir. dairesel veri. Eğitmen ayrıca, bir modeli geliştirmek için bazı yöntemlerin, katman sayısı ve gizli birimler gibi hiperparametreleri değiştirmeyi ve aktivasyon ve kayıp fonksiyonlarını değiştirmeyi içerdiğinden bahseder.

  • 11:30:00 Bu bölümde eğitmen, modelin herhangi bir problem üzerinde çalışıp çalışmadığını görmek için lineer regresyon formülünü kullanarak bir veri seti oluşturur. Veri kümesine x regresyon adı verilir ve y değeri başına bir x değerinden 100 örnek içerir. Eğitmen daha sonra veriler için eğitim ve test bölümleri oluşturur ve bunların uzunluklarını kontrol eder. Son olarak, verileri görsel olarak incelemek için yardımcı işlevler dosyasındaki arsa tahminleri işlevi kullanılır.

  • 11:35:00 Bu bölümde sunum yapan kişi, düz olmayan bir veri kümesini sığdırmaya çalışmadan önce modellerinin düz bir veri kümesine uyup uymayacağını görmek için bir yan projeyi tartışır. Model 1'i, modele mümkün olduğunca çok parametre vermek için çıkış özelliklerini 10'da tutarken, verilerle eşleşmesi için giriş özelliklerinin sayısını ikiden bire değiştirerek Model 1'i yeni veri kümesine uyacak şekilde ayarlarlar. Ayrıca, verileri katmanlardan geçiren ve bir kayıp ve optimize edici işlevi kuran NN nokta dizisini kullanarak Model 2'yi oluştururlar.

  • 11:40:00 Bu bölümde eğitmen, bir regresyon problemini optimize etmek için L1 kayıp fonksiyonunu tanıtır ve modelin parametrelerini optimize etmek için öğrenme oranı 0,1 olan SGD optimizer'ı kullanır. Veri setini yükleyip hedef cihaza koyduktan sonra model bir döngü ile bin epoch için eğitilir. Her çağda ileri geçiş gerçekleştirilir, kayıp hesaplanır ve geri ve adım fonksiyonları kullanılarak parametreler güncellenir. Eğitim ilerlemesi, her 100 çağda bir çağ, kayıp ve test kaybıyla yazdırılır. Model optimize edildikçe kayıp azalır.

  • 11:45:00 Videonun bu bölümünde eğitmen, bir düz çizgi veri seti oluşturdukları ve buna uyması için bir model eğittikleri önceki bölümü özetliyor. Modelin bir şeyler öğrendiğini onaylıyorlar ve öğrencilerin makine öğrenimi modelleriyle denemeler yapmak için öğrenme oranının farklı değerleriyle oynamalarını öneriyorlar. Eğitmen daha sonra değerlendirme modunun nasıl açılacağını ve çıkarım olarak da bilinen tahminlerin nasıl yapılacağını açıklamaya devam eder. Ayrıca, arsa tahminleri işlevinin nasıl kullanılacağını ve tensör girişlerinde nokta CPU'yu çağırarak çözdükleri modelle aynı cihazda olmayan verilerden kaynaklanan bir hatayla karşılaşmayı da öğretir.

  • 11:50:00 Bu bölümde eğitmen, makine öğrenimi ve derin öğrenme modellerinde doğrusal olmamanın önemini tanıtıyor. Doğrusal işlevler tek başına eğriler gibi doğrusal olmayan işlevlerin onları doğru bir şekilde temsil etmesini gerektiren verilerdeki karmaşık kalıpları yakalayamaz. Sinir ağları, karmaşık veri modellerini modellemek için doğrusal işlevleri doğrusal olmayan işlevlerle veya aktivasyonlarla birleştirerek oluşturulur. Eğitmen, doğrusal olmayan aktivasyonları ve bunların derin öğrenme modellerindeki rollerini kapsayacak yakında çıkacak videolar hakkında ipucu veriyor.

  • 11:55:00 Bu bölümde eğitmen, makine öğrenimi ve sinir ağlarında doğrusal olmamanın gücünü tartışıyor. Veriler her zaman düz çizgilerden oluşmadığı için makine öğreniminde doğrusal olmama çok önemlidir. Eğitmen daha sonra, make circles işlevini kullanarak doğrusal olmayan verilerin nasıl oluşturulacağını ve çizileceğini ve PyTorch ve sklearn'den train test split işlevini kullanarak verilerin zamanlara ve tren ve test bölmelerine dönüştürüleceğini gösterir.

Bölüm 13

  • 12:00:00 Bu bölümde, Derin Öğrenme ve Makine Öğrenimi için PyTorch kursundaki eğitmen, bir model oluşturmanın çok önemli bir bileşeni olan doğrusal olmamayı tanıtıyor. Eğitmen, izleyiciyi TorchNN modülünde bir girdi üzerinde bazı matematiksel işlemleri gerçekleştirmek için havuzlama katmanları, dolgu katmanları ve aktivasyon işlevlerini içerebilen belirli bir doğrusal olmayan işlevi bulmaya zorlar. n nokta sigmoid ve n nokta relu gibi doğrusal olmayan aktivasyon örnekleri sağlanmaktadır. Eğitmen daha sonra PyTorch ile doğrusal olmayanlığı kullanarak bir sınıflandırma modelinin nasıl oluşturulacağını gösterir. Doğrusal olmama, grafiğin düz bir çizgi olmadığı anlamına gelirken doğrusal olmama, grafiğin tam tersi anlamına gelir.

  • 12:05:00 Derin Öğrenme ve Makine Öğrenimi için PyTorch kursunun bu bölümünde eğitmen, doğrusal olmayan veri kavramını ve sinir ağlarının ve makine öğrenimi modellerinin yüzlerce boyuttaki sayılarla nasıl çalışabileceğini ve bunların nasıl doğrusal olmayan verileri işleyin. Yeni bir sinir ağı, daire modeli V2, bir yapıcıya sahip sınıflar ve "relu" adı verilen doğrusal olmayan bir aktivasyon fonksiyonunun eklenmesiyle doğrusal işlemler gerçekleştiren birkaç katman kullanılarak oluşturulur. Bu fonksiyon, modelin negatif girişlerini sıfıra çevirirken pozitifleri olduğu gibi bırakır. Yeni model daha sonra çıktıyı belirlemek için sigmoid işlevinden geçirilir.

  • 12:10:00 Bu bölümde, eğitmen izleyicileri, TensorFlow Playground'da iki gizli katman ve beş nöronlu bir sinir ağı modelini, kullandıkları doğrusal aktivasyon işlevi yerine Düzeltilmiş Doğrusal Birim (ReLU) aktivasyon işlevini kullanarak yeniden oluşturmaya davet ediyor. kullanıyordum. Eğitmen, ReLU aktivasyon fonksiyonunun, sinir ağlarının yapmak için tasarlandığı lineer olmayan verileri modellemek için gerekli olan popüler ve etkili bir lineer olmayan aktivasyon fonksiyonu olduğunu açıklar. Eğitmen, öğrenme oranını değiştirmenin antrenman kaybı üzerindeki etkisini gösterir ve izleyicileri, kayıp eğrisi üzerindeki etkiyi gözlemlemek için farklı öğrenme oranlarını denemeye teşvik eder.

  • 12:15:00 Bu bölümde eğitmen, PyTorch kullanarak bir ikili sınıflandırma problemi için bir optimize edici ve bir kayıp fonksiyonu oluşturmayı tartışıyor. Modelin doğrusal olmayan aktivasyon işlevini ReLU olarak ayarlarlar ve CUDA için rastgele tohumlar oluştururlar. Daha sonra modeli eğitmek için 1000 dönem boyunca döngü yaparlar ve sırasıyla logit kayıp fonksiyonu ve bir doğruluk fonksiyonu ile BCE'yi kullanarak kayıp ve doğruluğu hesaplarlar. Eğitmen, eğitim kodunun nasıl işlevselleştirileceği konusunda düşünmeye teşvik eder ve bu bölümün, gerçek dünya PyTorch projelerinde çalışmaya yönelik deneyim ve ivme oluşturmak için olduğunu önerir.

  • 12:20:00 Bu bölümde eğitmen PyTorch'ta geri yayılım yöntemi ile modelin optimize edilmesi sürecini anlatıyor. Geri yayılımı gerçekleştirmeden önce, optimize edicinin gradyanları, temiz bir sayfadan başlayabilmesi için sıfırlanır. Loss.backward() yürütüldükten sonra, model parametreleri üzerinde gradyan iniş gerçekleştirmek için optimize edicinin adım yöntemi çağrılır. Eğitmen ayrıca modelin parametrelerinde nasıl hata ayıklanacağını gösterir ve ReLU aktivasyon işlevinin herhangi bir parametreye sahip olmadığını açıklar, bu da onu etkili kılar. Son olarak eğitmen, modelin öğreniminin ilerlemesini izlemek için eğitim ve test kaybı, doğruluk ve dönemi yazdırır.

  • 12:25:00 Bu bölümde eğitmen, PyTorch kodundaki bir şekil sorununu giderir ve test logit nokta şeklindeki fazladan bir boyutu kaldırmak için sıkma işlevini kullanarak sorunu giderir. Daha sonra, doğrusal olmamanın gücünü ve relu katmanlarının eklenmesinin, modelin veri kümesindeki daireleri ayırmak için potansiyel olarak bir çizgi çizmesine izin vererek, modelin performansını nasıl iyileştirdiğini tartışıyorlar. Eğitmen ayrıca modeli değerlendirmede ve tahminlerde bulunmada görselleştirmenin önemini vurgular ve izleyicileri karar sınırlarını çizmeye davet eder.

  • 12:30:00 Bu bölümde eğitmen, doğrusal olmayan bir modelin performansını doğrusal bir modele kıyasla görselleştirmek için grafik karar sınır fonksiyonunu kullanmayı gösterir. Doğrusal olmayan modelin doğrusal olandan daha iyi doğruluğa sahip olduğu gösterilmiştir, ancak eğitmen, izleyiciyi doğruluğu daha da geliştirmeye zorlar. Eğitmen daha sonra, nöral ağların, verilerdeki kalıpları keşfetmek için araçlar olarak doğrusal ve doğrusal olmayan işlevleri nasıl kullandığını tartışmaya devam ederek, tensörlerin nasıl oluşturulacağının ve PyTorch'ta doğrusal olmayan aktivasyon işlevlerinin nasıl kullanılacağının bir gösterimine yol açar.

  • 12:35:00 Bu bölümde eğitmen, popüler ReLU ve Sigmoid işlevlerini kopyalayarak PyTorch'ta özel aktivasyon işlevlerinin nasıl oluşturulacağını açıklıyor. Eğitmen önce bir torç şamandırası 32 veri tipini ayarlar ve x ekseni üzerinde negatif 10 ila 10 değerleri kullanılarak çizilmiş bir düz çizgi görselleştirir. ReLU işlevi daha sonra bir giriş tensörü alıp sıfır ve x'in maksimumunu döndürerek torch.relu ve nn.relu işlevleri kullanılarak oluşturulur. Benzer şekilde, Sigmoid işlevi, bir giriş tensörü alıp bir bölü bir artı negatif x'in üstelini döndürerek oluşturulur. Eğitmen, özel ReLU ve Sigmoid işlevlerinin etkinliğini, bunları çizerek ve PyTorch yerleşik işlevleriyle karşılaştırarak gösterir.

  • 12:40:00 PyTorch kursunun bu bölümünde eğitmen, bir veri kümesine sığdırmak amacıyla verilerdeki kalıpları bulmak için doğrusal ve doğrusal olmayan fonksiyonları birleştirmenin önemini açıklıyor. Sinir ağlarının arkasındaki fikir, bir model oluşturmak için bu işlevlerin katmanlarını istiflemektir. Bu katmanları sıfırdan oluşturmak mümkün olsa da Pytorch, hataları test edilmiş ve sahne arkasında olabildiğince hızlı işlem yapan önceden oluşturulmuş katmanlar sunarken aynı zamanda GPU'ların kullanımına da izin verir. Eğitmen ayrıca iki olası sonucu içeren ikili sınıflandırma ile ikiden fazla olası sonucu içeren çok sınıflı sınıflandırma arasındaki farkı tartışır. Son olarak, bölüm, sinir ağlarında doğrusal olmamanın önemini yineleyerek sona erer ve eğitmen, önceki ikili sınıflandırma modellerini geliştirmek için bir meydan okuma yayınlar.

  • 12:45:00 Bu bölümde, dersin hocası çok sınıflı sınıflandırmayı ve bunun ikili sınıflandırma ile arasındaki farkları tanıtır. Sigmoid yerine softmax aktivasyon fonksiyonu ve ikili çapraz entropi yerine çapraz entropi kullanılır. Eğitmen daha sonra, her biri iki özelliğe sahip dört sınıf oluşturmak için scikit-learn.datasets'ten make blobs işlevini kullanarak 20 çok sınıflı bir veri seti oluşturmaya devam eder. Merkez standart sapma, kümelere biraz rasgelelik vermek ve onları biraz sallamak için ayarlanır, böylece model için biraz daha zorlaşır.

  • 12:50:00 Bu bölümde, transkript alıntı, verilerin PyTorch kullanılarak çok sınıflı bir sınıflandırma modeli için nasıl hazırlanacağını tartışır. Verileri tensörlere dönüştürürler ve verileri eğitim ve test setlerine bölmek için scikit-learn'deki tren testi bölme işlevini kullanırlar. Ayrıca, plot.figure kullanarak verileri görselleştirirler ve tekrarlanabilirliği sağlamak için rastgele çekirdeği ayarlarlar. Çok sınıflı sınıflandırma veri setini oluşturduktan sonra, verileri ayırmak için doğrusal olmamanın gerekip gerekmediğini düşünürler ve ardından veriler için bir model oluşturmaya devam ederler.

  • 12:55:00 Bu bölümde eğitmen, PyTorch kullanarak çok sınıflı bir sınıflandırma modelinin nasıl kurulacağını tartışır. Giriş katmanı şeklini tanımlamak ve gizli katman başına nöron sayısını belirlemekle başlayarak süreci adım adım açıklıyor. Eğitmen daha sonra, sınıf başına bir çıktı özelliği gerektiren çıktı katmanı şeklinin nasıl ayarlanacağını açıklar. Modeli oluşturmak için eğitmen, nn.module'den miras alan ve model için bazı parametreler ayarlayan "blob model" adlı bir sınıf oluşturur. Son olarak, eğitmen çok sınıflı sınıflandırma modelinin girdi özellikleri ve çıktı özellikleriyle nasıl başlatılacağını gösterir.

Bölüm 14

  • 13:00:00 Bu bölümde eğitmen, PyTorch'un nn.Sequential yöntemini kullanarak doğrusal bir katman yığın modelinin oluşturulmasını tartışıyor. Modeli somutlaştırmak için, gizli katmanların yapılandırmasını belirlemek için girdi özelliklerinin sayısına ve çıktı sınıflarının sayısına erişilir. Eğitmen, verileri her katmandan birer birer geçirmek için sıralı bir katman yığını kurar. Ayrıca, veri kümesine doğrusal olmama özelliğinin eklenmesiyle ilgili talimatlar sağlarlar ve ardından girdinin belirtilen katmanlardan sırayla geçmesine izin vermek için bir iletme yöntemi oluştururlar. Son olarak, uygun sayıda giriş ve çıkış özelliği ile blob modelinin bir örneği oluşturulur.

  • 13:05:00 Videonun bu bölümünde eğitmen, bir nn.Module'ü alt sınıflayarak çok sınıflı bir sınıflandırma modeli oluşturur ve giriş ve çıkış özelliklerini özelleştirmek için sınıf kurucusu için parametreleri ayarlar. Ayrıca, çıktı özellikleri parametresinin verilerdeki sınıf sayısıyla aynı hizada olduğunu da açıklarlar. Eğitmen, çok sınıflı bir sınıflandırma modeli için bir kayıp işlevi oluşturmak üzere, girdi ile hedef arasındaki kaybı hesaplayan ve C sınıfları ile bir sınıflandırma problemini eğitirken faydalı olan torch.nn modülünde çapraz entropi kaybını arar ve bulur. Eğitmen ayrıca ağırlık parametresinin dengesiz bir eğitim seti ile uğraşırken yararlı olduğunu açıklar.

  • 13:10:00 Bu bölümde eğitmen, çok sınıflı sınıflandırma için bir kayıp fonksiyonu ve optimize edicinin oluşturulmasını tartışır. İki yaygın optimize edici olan SGD ve Adam'ı önerir, ancak bu örnek için SGD'yi kullanmayı seçer. Ardından, izleyicileri önceki videoda oluşturulan modelle ileriye doğru bir geçiş yapmaya ve bir modelin ham çıktılarının ne olduğunu düşünmeye davet ediyor. Eğitmen ayrıca izleyicilere cihaz parametrelerine dikkat etmelerini hatırlatır çünkü tensörler aynı cihazda değilse çalışma zamanı hatası oluşabilir. Son olarak modeli değerlendirme moduna çevirir ve bazı tahminlerde bulunur.

  • 13:15:00 Bu bölümde eğitmen, bir modelin çıktı logitlerinin çok sınıflı sınıflandırma problemleri için tahmin olasılıklarına ve tahmin etiketlerine nasıl dönüştürüleceğini açıklar. Bunu yapmak için, logitleri tahmin olasılıklarına dönüştürmek için softmax fonksiyonu kullanılır ve ardından en yüksek olasılığa sahip tahmin, tahmin edilen etiket olarak kabul edilir. Eğitmen bu işlemi PyTorch kodunu kullanarak gösterir ve ayrıca softmax işlevinin doğası gereği her örnek için olasılıkların toplamının her zaman bir olacağını not eder.

  • 13:20:00 Bu bölümde eğitmen, çok sınıflı bir sınıflandırma problemi için bir PyTorch modelinin ham çıktısından softmax aktivasyon fonksiyonunu kullanarak tahmin olasılıklarına ve ardından argmax'ı alarak tahmin etiketlerine nasıl geçileceğini açıklar. tahmin olasılıkları. Bu süreç, tahmin olasılıklarını elde etmek için softmax işlevini kullanarak ve tahmin etiketlerini almak için bu olasılıkların argmax'ını alarak modelin ham çıktısını logitlere dönüştürmeyi içerir. Eğitmen, model henüz eğitilmediğinden mevcut tahminlerin rastgele olmasına rağmen, bu adımların modeli eğitmek ve değerlendirmek için bir eğitim döngüsünde kullanılacağını not eder.

  • 13:25:00 Bu bölümde eğitmen, çok sınıflı bir model için bir eğitim ve test döngüsü oluşturmaya başlar. İlk olarak, her seferinde aynı çıktıyı elde etmeye çalışmak için manuel tohumlamalar kurarlar, ancak bunun garanti edilmediğini unutmayın. Daha sonra çağ sayısını 100 olarak ayarlarlar ve verileri hedef cihaza koyarlar. Veri döngüsü başlar ve her dönem için model bir ileri geçiş ve x blob dizisinden oluşturulan günlükler ile eğitilir. Torch softmax fonksiyonunun çıktısı, çapraz entropi kaybı ve doğruluğu ile kaybı hesaplamak için kullanılır. Optimize edici daha sonra sıfırlanır ve optimize ediciye adım atılmadan önce geri yayılım gerçekleştirilir. Modelin değerlendirme moduna ayarlanmasını içeren test veya çıkarım kodu da sunulur.

  • 13:30:00 Bu bölümde eğitmen, tahminleri daha hızlı yapmak için bırakma katmanlarını, eşleştirme normunu kapatmayı ve meşale çıkarım modunu tartışır. Eğitim sırasında, bırakma katmanlarının aşırı uyumdan kaçınmak için bazı nöronları rastgele bıraktığını açıklıyorlar. Eğitmen ayrıca test kayıplarını ve test etiketlerini perde arkasından geçirerek test logitlerinin ve test doğruluğunun nasıl hesaplanacağını gösterir. Daha sonra çalışma zamanı hatasına neden olan can sıkıcı bir veri türü sorununu ve bunu nasıl çözdüklerini tartışırlar. Eğitmen, sorun giderme kodunun makine öğreniminin önemli bir parçası olduğunu ve hataları belirleyip çözmenin zaman aldığını vurgular.

  • 13:35:00 Bu bölümde anlatıcı, çok sınıflı bir sınıflandırma modeli oluştururken çeşitli sorun giderme güçlükleriyle karşılaşır. İlk olarak, kodundaki hatanın tensörlerden birinin yanlış veri türüne sahip olmasından kaynaklandığını anlar. Bazı araştırma ve deneyler yoluyla, tensörü çapraz entropi kaybı için hesaplamayı optimize eden bir "torch.long tensör" olarak değiştirir. Daha sonra, eğitim ve test verilerinin farklı boyutlarından dolayı başka bir hatayla karşılaşır. Anında kodda hata ayıklayarak sorunu tanımlar ve verileri yeniden atar. Bu zorluklara rağmen, modelin doğruluğu ve kaybı, modelin çok sınıflı bir sınıflandırma veri kümesi için çalıştığını gösterecek şekilde beklendiği gibi çalışır.

  • 13:40:00 Bu bölümde eğitmen, tahminler yaparak ve bunları değerlendirerek eğitilmiş çok sınıflı sınıflandırma modelinin nasıl değerlendirileceğini tartışır. Eğitmen, modeli değerlendirme moduna alıp, test verilerini geçtikten ve sonuç olarak ham logitleri elde ettikten sonra tahminlerin yapıldığını açıklar. Bir sonraki adım, logitlerde torch.softmax'ı çağırarak logitleri tahmin olasılıklarına dönüştürmektir. Daha sonra tahmin olasılıkları üzerinde torch.argmax çağrılarak tahmin etiketleri elde edilir. Eğitmen, tahminleri çizerek ve gerçek verilerle karşılaştırarak görselleştirmenin önemini vurgular.

  • 13:45:00 Bu bölümde eğitmen çok sınıflı sınıflandırma modelini görsel olarak değerlendirir ve verileri ayırmak için kullanılan doğrusal ve doğrusal olmayan fonksiyonları keşfeder. Eğitmen ayrıca çoğu verinin sınıflandırma için hem doğrusal hem de doğrusal olmayan işlevler gerektirdiğinden bahseder ve PyTorch bu işlevleri modellere eklemeyi kolaylaştırır. Ek olarak bu bölüm, modelleri değerlendirmenin önemini ele alır ve farklı miktarlarda değerlere sahip sınıflarla uğraşırken kesinlik ve hatırlamayı önemli ölçütler olarak sunar.

  • 13:50:00 Bu bölümde eğitmen, doğruluk, kesinlik, hatırlama, F1 puanı, karışıklık matrisi ve sınıflandırma raporu dahil olmak üzere çeşitli sınıflandırma değerlendirme yöntemlerini tartışır. Eğitmen, sınıflandırma problemlerinde doğruluk varsayılan ölçü olsa da dengesiz veri kümeleri için en iyisi olmayabileceğini açıklıyor. Dengesiz veri kümeleri için kesinlik ve geri çağırma kullanılmalıdır. Kesinlik, gerçek pozitifin gerçek pozitif artı yanlış pozitife oranı tarafından belirlenirken, geri çağırma, gerçek pozitifin gerçek pozitif artı yanlış negatife göre belirlenir. Eğitmen ayrıca, bir ölçüyü artırmanın diğerini düşüreceği kesinlik ve hatırlama arasındaki değiş tokuşu da not eder. Torçmetriklerin ve scikit-learn kitaplıklarının sınıflandırma ölçütleri için kullanımı da tartışılmaktadır.

  • 13:55:00 Bu bölümde eğitmen, torchmetrics paketi kullanılarak PyTorch'ta önceden oluşturulmuş metrik fonksiyonların nasıl içe aktarılacağını ve kullanılacağını gösterir. Torç ölçümlerinin nasıl kurulacağını, doğruluk metriğinin nasıl alınacağını ve çok sınıflı bir modelin doğruluğunu hesaplamak için nasıl kullanılacağını gösterirler. Bununla birlikte, meşale ölçümlerini kullanırken, cihazdan bağımsız kod kullanılarak metriklerin verilerle aynı cihazda olması gerektiğine de dikkat çekiyorlar. Eğitmen, daha fazla araştırma için meşale ölçümü modülüne ve ders dışı makalelere bir bağlantı sağlar. Ayrıca, önceki bölümlerde ele alınan kodu uygulamak için alıştırmalar ve çözümler sunarlar.

Bölüm 15

  • 14:00:00 Bu bölümde, eğitmen izleyicilere kodu takip etme, Google Colab'ın doc string özelliğini kullanma, Stack Overflow'ta veya PyTorch belgelerinde kod arama ve PyTorch derin öğrenme deposunun Tartışmalar sekmesinde sorular sormak. Bu bölüm ayrıca, bir makine öğrenme modelinin bir görüntünün biftek mi yoksa pizza mı olduğunu belirlemek veya görüntüleri birden çok kategoride sınıflandırmak için farklı görüntü örneklerinden örüntüler öğrendiği ikili veya çok sınıflı sınıflandırma sorunları gibi bilgisayarla görme sorunlarının örneklerini de kapsar. .

  • 14:05:00 Bu bölümde konuşmacı, görüntü sorunları için çok sınıflı sınıflandırma, nesne algılama ve görüntü bölümleme gibi makine öğrenimini kullanan farklı bilgisayar görüşü uygulamalarını tartışıyor. Konuşmacı, yüklenen bir görüntüden 100'e kadar farklı yiyeceği sınıflandırmak için makine öğrenimini kullanan bir Nutrify örneği sağlar. Konuşmacı ayrıca Tesla'nın kendi kendine giden arabalarının hareketlerini 3 boyutlu vektör alanı ve makine öğrenimi kullanarak planlamak için bilgisayar görüşünü nasıl kullandığını tartışıyor. Konuşmacı, Tesla'nın kursta öğretilen kodun aynısı olan PyTorch'u kullandığını belirtiyor.

  • 14:10:00 Videonun bu bölümünde eğitmen, çok sınıflı görüntü sınıflandırması için bir bilgisayar görme modeli oluşturmak üzere PyTorch'u kullanmayı tartışıyor. Eğitmen, gıda için bir fotoğraf tanıma teknolojisi olan Nutrify örneğini kullanarak, bir bilgisayarla görme problemi için tipik girdileri ve çıktıları açıklar. Girdiler, bir görüntünün yüksekliğini, genişliğini ve renk kanallarını temsil eden bir tensörü içerir. Eğitmen ayrıca, popüler bilgisayarla görme sorunları için mevcut algoritmaların zaten mevcut olabileceğinden, ancak gerekirse bir algoritmanın oluşturulabileceğinden bahseder. Nutrify örneği için istenen çıktı, her gıda sınıfı için bir tane olmak üzere üç çıktıdır.

  • 14:15:00 Bu bölümde video, bilgiyi sayısal olarak temsil etmek ve modeli verilerdeki kalıpları tanıması için eğitmek için PyTorch ve evrişimli sinir ağlarını (CNN'ler) kullanarak makine öğrenimi modellerinin görüntü sınıflandırması için nasıl kullanılabileceğini açıklıyor. Verilen örnek, bilgileri kodlamak için PyTorch ve görüntülerdeki kalıpları tanımak için CNN'ler kullanılarak bir görüntüdeki suşi, biftek ve pizza gibi yiyecek türlerini tahmin etmektir. Video, giriş ve çıkış şekillerinin çözülmekte olan soruna bağlı olarak değişeceğini ve diğer modeller kullanılabilse de CNN'lerin tipik olarak görüntü verileri için en iyi seçim olduğunu vurgular. Son olarak, video, bu bölümde öğrenilen aynı ilkeleri daha fazla göstermek için kullanılacak moda öğelerinin gri tonlamalı resimlerini içeren bir sorunu tanıtıyor.

  • 14:20:00 Bu bölümde eğitmen, görüntü verilerinin PyTorch ve diğer derin öğrenme kitaplıklarındaki temsilini tartışır. Bu kitaplıklar genellikle en son renk kanallarını bekler, ancak PyTorch varsayılan olarak görüntü verilerini önce renk kanallarıyla temsil eder. Video, belirli bir problem için bir modelin girdi ve çıktı şekillerini hizalamanın önemini açıklıyor. Eğitmen, dönüşümleri ve veri yükleyicileri kullanarak verileri hazırlama, önceden eğitilmiş bir model oluşturma veya seçme, bir optimize edici ve bir kayıp işlevi seçme, metrikleri kullanarak modeli değerlendirme ve iyileştirme denemeleri dahil olmak üzere, model oluşturmaya yönelik PyTorch iş akışına genel bir bakış sağlar. model Bir sonraki bölüm, bir evrişimli sinir ağının (CNN) mimarisini tartışıyor.

  • 14:25:00 Bu bölümde, eğitmen tipik bir evrişimli sinir ağının (CNN) mimarisini tartışıyor. Girdi verileri, sınıf adlarına dönüştürülebilen bir çıktı şekline dönüştürülene kadar evrişim, aktivasyon ve havuzlama katmanları dahil olmak üzere çeşitli katmanlardan geçer. Eğitmen, bir CNN'i yığınlamanın neredeyse sınırsız yolu olduğunu vurgular ve bunu yapmanın bir yolunu slaytlar aracılığıyla gösterir. Bununla birlikte, öğrenmenin en iyi yolu, onu kodlamaktır ve eğitmen, kullanıcıları, PyTorch ve TorchVision kitaplığını kullanarak bir CNN oluşturma alıştırması yapabilecekleri bir Google Colab not defterine yönlendirir. Eğitmen ayrıca LearnPyTorch.io'da bir referans not defteri ve PyTorch bilgisayarla görme bölümü dahil olmak üzere ek kaynaklar sağlar.

  • 14:30:00 Videonun bu bölümünde eğitmen, farklı alanlar için farklı PyTorch kitaplıklarını tanıtır ve PyTorch'un bilgisayar görüşündeki gücünü vurgular. Bilgisayarla görü için ana kitaplık, veri kümeleri, bilgisayarla görü için önceden eğitilmiş modeller ve makine öğrenimi modelleri tarafından kullanılabilen sayılara görü verilerini işlemek için dönüşümler içeren Torch Vision'dır. Eğitmen, PyTorch, NN ve Torch vizyonunu içe aktarmayı gösterir ve ortak görüntü dönüşümlerini içeren ve oluşturma kullanılarak birlikte eğitilebilen dönüşümler modülünde yürür. to_tensor işlevi, görüntü verilerini tensör formatına dönüştürmek için ana dönüşüm olarak tanıtıldı.

  • 14:35:00 Derin Öğrenme ve Makine Öğrenimi için PyTorch kursunun bu bölümünde eğitmen, TorchVision, TorchVision'dan kaynaklanan modüller ve temel veri kümesi olan TorchUtils.data.dataset dahil olmak üzere PyTorch'taki temel bilgisayar görme kitaplıklarını ele alır. PyTorch için sınıf. Eğitmen ayrıca görselleştirme için Matplotlib kullanmanın önemini ve modellerle kullanmak için görüntüleri tensörlere dönüştürmenin gerekliliğini tartışır. Eğitmen daha sonra, giysi parçalarının gri tonlamalı görüntülerini içeren, orijinal MNIST veri tabanının bir versiyonu olan FashionMNIST veri setini tanıtır. Bu veri seti, bilgisayarla görme tekniklerini göstermek için kullanılacaktır. Eğitmen, ciddi makine öğrenimi araştırmacıları MNIST'in aşırı kullanıldığını ve modern bilgisayarla görme görevlerini temsil etmediğini düşünürken, FashionMNIST'in başlangıç için yararlı bir veri kümesi olduğunu açıklıyor.

  • 14:40:00 Bu bölümde eğitmen, TorchVision kitaplığından veri kümelerinin nasıl indirileceğini ve kullanılacağını tartışır. Caltech101, CIFAR-100 ve CIFAR-10 gibi çeşitli görüntü sınıflandırma veri setlerinden ve bunların torchvision.datasets modülü kullanılarak nasıl indirileceğinden bahsediyorlar. Eğitmen daha sonra Fashion-MNIST veri setinin nasıl indirileceğini ve kullanılacağını göstererek veri setine uygulanabilecek çeşitli parametreleri ve dönüşümleri açıklayarak devam eder. Ayrıca hem eğitim hem de test veri kümelerini indirmek için örnek kod sağlarlar.

  • 14:45:00 Bu bölümde eğitmen, PyTorch'un torchvision.datasetlerinin örnek bilgisayarlı görü veri setlerini, özellikle de FashionMNIST veri setini indirmek için nasıl kullanılacağını açıklar. Verileri "veri" adı verilen bir değişkende saklayabilir ve görüntü verilerini tensörlere dönüştürmek için torchvision.transforms'u kullanabiliriz. Eğitmen ayrıca ".classes" ve ".class_to_idx" gibi öznitelikleri kullanarak eğitim ve test veri kümelerinin uzunluğunun nasıl kontrol edileceğini, bir eğitim örneğinin görüntüsünün ve etiketinin nasıl görüntüleneceğini ve sınıf adları hakkında daha fazla bilgi edinileceğini gösterir. Son olarak, sadece bir tamsayı olduğu için bir etiketin bir şekli olmadığını açıklarlar.

  • 14:50:00 Bu bölümde eğitmen, farklı giysi türlerinin gri tonlamalı görüntülerinden oluşan Fashion MNIST veri setinin girdi ve çıktı şekillerini tartışır. Resimlerin giriş şekli NCHW formatındadır, burada parti boyutu "yok" olarak ayarlanmıştır ve çıkış şekli 10'dur. Verileri daha iyi anlamak için eğitmen bir resmi ve şeklini görselleştirmek için Matplotlib'i kullanır, ancak bir hatayla karşılaşır. veri formatı beklenen formatla eşleşmediğinden hata. Bu bölüm, makine öğrenimi modelleriyle çalışırken girdi ve çıktı şekillerini anlamanın ve biçimlendirmenin önemini vurgulamaktadır.

  • 14:55:00 Bu bölümde video, PyTorch ve Matplotlib kullanılarak görüntü verilerinin nasıl çizileceğini ve görselleştirileceğini araştırıyor. Eğitmen, image.squeeze() kullanarak tek bir görüntünün nasıl çizileceğini ve fazladan boyutların nasıl kaldırılacağını gösterir. Ardından, sabit bir rasgele tohum ve Matplotlib'in alt çizim işlevini kullanarak veri kümesinden 16 rasgele görüntü kümesi çizerler. Eğitmen ayrıca çizimin renk haritasını gri tonlamalı olarak değiştirmek için cmap özelliğinin veya parametresinin nasıl kullanılacağını gösterir. Ardından, verileri daha iyi anlamak ve veri kümesindeki kazaklar ile gömlekler arasındaki benzerlikler gibi olası sorunları belirlemek için bir veri kümesini görsel olarak keşfetmenin önemini tartışırlar.

Bölüm 16

  • 15:00:00 Bu bölümde eğitmen, bir bilgisayarla görme modeli için veri hazırlamanın önemini ve bunun PyTorch veri setleri ve veri yükleyicileri kullanılarak nasıl yapılacağını açıklar. Ayrıca, 10 farklı sınıfa sınıflandırılacak 60.000 giyim görüntüsünün modellenmesinde doğrusal olmama gereksinimini ve veri setini daha küçük gruplara ayırmanın hesaplama verimliliğini nasıl artırabileceğini tartışıyor. Bu hazırlığın amacı, model tarafından verilerdeki kalıpları tanımlamak için kullanılabilecek bir Python yinelemesi oluşturmaktır.

  • 15:05:00 Bu bölümde eğitmen, 60.000 görüntüden oluşan bir veri kümesini 32'lik gruplara ayırmakla başlayarak, mini toplu iş kavramını ve bunun neden derin öğrenmede yaygın olarak kullanıldığını açıklıyor. GPU bellek sınırlamalarından kaçınarak sinir ağını hesaplama açısından daha verimli hale getirin ve ağa her dönem için gradyanlarını güncellemek için daha fazla şans verin. Veriler, bir veri seti geçirilerek, parti boyutu tanımlanarak ve ağın verilerin sırasını ezberlemesini önlemek için shuffle true olarak ayarlanarak, torch.utils.data'daki veri yükleyici kullanılarak gruplanır. Eğitmen, eğitim döngüsünde kullanılacak eğitim ve test veri yükleyicileri oluşturmak için kod sağlar.

  • 15:10:00 Bu bölümde derin öğrenme problemlerinde mini partilerin önemi vurgulanmakta ve PyTorch kullanılarak tren ve test veri yükleyicileri oluşturma süreci anlatılmaktadır. Toplu iş boyutu hiperparametresi 32'ye ayarlanır ve veri kümeleri tekrarlanabilir hale getirilir. Tren ve test veri kümeleri, tren verileri ve test verileri için toplu iş boyutu 32'ye ayarlı olarak ve tren verileri için True ve test verileri için False olarak ayarlı shuffle ile DataLoader kullanılarak yüklenir. Parti boyutu ve veri seti gibi tren veri yükleyicisinin öznitelikleri araştırılır. Hem tren hem de test verisi yükleyicilerinin uzunluğu, her birindeki parti sayısını belirlemek için yazdırılır.

  • 15:15:00 Bu bölümde eğitmen, PyTorch kullanarak görüntü gruplarının nasıl görselleştirileceğini tartışıyor. Transkript alıntısı, toplu iş boyutuna ve eğitim örnekleri sayısına göre tren veri yükleyicisinin uzunluğunun nasıl belirlendiğini gösterir. Ardından eğitmen, rastgelelik kullanarak toplu işlerden tek bir görüntünün nasıl görselleştirileceğini gösterir ve bu örnekle ilişkili görüntü boyutunu ve etiketini kontrol eder. Eğitmen, bu girdi ve çıktı şekillerinin belirli bir soruna bağlı olarak değişeceğini vurgular, ancak temel öncül aynı kalır - veriler bir modele geçmek için gruplara dönüştürülür.

  • 15:20:00 Bu bölümde video eğitmeni, görüntüleri toplu halde nasıl görselleştireceğinizi ve verileri veri yükleyicilere nasıl dönüştüreceğinizi açıklıyor. Ayrıca, başlangıç noktası olarak kullanılan ve daha sonra deneylerle geliştirilebilecek basit bir model olan temel model kavramını da tanıttılar. Eğitmen daha sonra, sürekli bir karartma aralığını sıralı ile kullanım için bir tensöre düzleştiren ve bunun bağımsız bir model olarak nasıl kullanılacağını gösteren "düzleştir" adlı yeni bir katman sunar.

  • 15:25:00 Bu bölümde düzleştirmeyi ve çok boyutlu verileri tek bir vektöre dönüştürmek için nasıl kullanıldığını öğreneceğiz. Düzleştirme öncesi ve sonrası şekilleri yazdırdıktan sonra çıktının artık 1784 uzunluğunda tek boyutlu bir vektör olduğunu görüyoruz. Bu işlemin Tesla'nın derin öğrenme modellerinde kullanılmak üzere kameralarındaki bilgileri kodlamasına da benzediğini görüyoruz. Daha sonra düzleştirilmiş verilerin PyTorch modelimizin lineer katmanında nasıl kullanılacağını görüyoruz. Model, nn.Sequential kullanılarak tanımlanır ve bir düzleştirme katmanı ve iki doğrusal katman içerir. Girdi ve çıktı şekilleri tanımlandı ve birinci lineer katmanın out özelliklerinin ikinci lineer katmanın in özellikleriyle eşleştiğini görüyoruz.

  • 15:30:00 Bu bölümde, eğitmen PyTorch kullanarak basit bir sinir ağı modelinin nasıl oluşturulacağını açıklıyor. Model, lineer olmayan iki lineer tabaka tarafından takip edilen bir düzleştirme tabakasından oluşur. Bir girdi alan, bunu düzleştirme katmanından, ardından iki doğrusal katmandan geçiren ve çıktıyı döndüren modelin ileri yöntemi tanımlanır. Eğitmen daha sonra modelin bir örneğini kurar ve modelin beklendiği gibi çalıştığından emin olmak için sahte bir ileri geçiş gerçekleştirir. Ek olarak, her bir katmanın giriş ve çıkış şeklini ve bunların istenen çıktı şeklini elde etmek için nasıl düzenlendiğini de açıklarlar. Son olarak, düzleştirme katmanını kullanmanın önemini ve önceki katmanın çıktısını tek bir vektörde birleştirmenin neden gerekli olduğunu gösterirler.

  • 15:35:00 Bu bölümde eğitmen, bir bilgisayarla görme sorunu için model sıfır oluşturdukları önceki videoyu gözden geçiriyor ve girdi ve çıktı şekillerinin olması gereken yerde hizalanmasını sağlamanın önemini yineliyor. Ayrıca, ağırlıkların ve yanlılık matrislerinin, modelin derin öğrenme ve makine öğrenimi yoluyla öğreneceği görüntülerdeki farklı özellikleri temsil ettiğini açıklıyorlar. İleriye doğru, model için bir kayıp fonksiyonu, optimize edici ve değerlendirme metriği seçimini, sırasıyla çapraz entropi kaybı, stokastik gradyan iniş optimize edici ve doğruluk değerlendirme metriğini seçmeyi tartışırlar. Ayrıca, sınıflandırma değerlendirme ölçümleri için çevrimiçi bir PyTorch kaynağına referans sağlarlar.

  • 15:40:00 Bu bölümde video eğitmeni, Python makine öğrenimi projelerinde yardımcı işlevleri kullanma kavramını tartışıyor. Doğruluk adı verilen bir yardımcı işlev de dahil olmak üzere ortak işlevleri içeren bir Python betiğini içe aktarmak için örnek bir kod sağlar. Doğruluk işlevi, doğruluk metriğini hesaplar ve eğitmen, bir belge dizesini kontrol ederek bunun başarıyla içe aktarılabileceğini gösterir. Ayrıca, Python projelerinde yardımcı işlevleri kullanmanın, özellikle her seferinde yeniden yazılması gerekmeyen yaygın işlevlerle uğraşırken çok fazla zaman ve emek tasarrufu sağlayabileceğini açıklıyor. Son olarak, modeli eğitmek için nn nokta çapraz entropi kaybına eşit bir kayıp işlevi ve optimize edici ayarlar.

  • 15:45:00 Bu bölümde eğitmen, stokastik gradyan inişi için optimize ediciyi kurar ve 28x28 görüntülerden oluşan basit veri kümesi için nispeten yüksek bir öğrenme oranı olan 0,1'i ayarlar. Daha sonra, ikisi arasında genellikle bir değiş tokuş olduğundan, bir modelin çalışma süresinin yanı sıra performansını izlemenin önemini tartışırlar. Python'daki zaman modülünü kullanarak ve modelin farklı cihazlarda ne kadar hızlı çalıştığını karşılaştırmak için torch.device'den geçerek modelin eğitimini zamanlamak için bir işlevin nasıl oluşturulacağını göstermeye devam ediyorlar.

  • 15:50:00 Bu bölümde eğitmen, bir modelin eğitilmesinin ne kadar sürdüğünü ölçmek için zamanlama fonksiyonlarının önemini tartışır. Python "zamanlayıcı" modülünü kullanarak bir zamanlayıcının nasıl oluşturulacağını ve bunun eğitim sürecine nasıl dahil edileceğini gösteriyor. Eğitmen ayrıca Google Colab'ın yeniden bağlanma özelliğinin nasıl kullanılacağını açıklar ve eğitim amacıyla verileri gruplara ayırmak için veri yükleyicilerin kullanılması hakkında bir hatırlatma sağlar. Ardından, bir eğitim döngüsü oluşturma ve veri yığınları üzerinde bir model eğitme ile ilgili adımları özetliyor, dönemler ve gruplar arasında döngü yapma, eğitim adımlarını gerçekleştirme ve toplu iş başına tren kaybını hesaplama ihtiyacını vurguluyor. Son olarak, modelin eğitimle aynı adımda değerlendirileceğinden bahseder.

  • 15:55:00 Bu bölümde eğitmen, eğitim döngüsünün kaç aşamadan geçtiğini gösteren bir ilerleme çubuğu için TQDM'yi içe aktararak test aşamasına başlar. TQDM, ek yükü düşük ve açık kaynaklı bir yazılım olan bir Python ilerleme çubuğudur. TQDM çok popüler olduğu için Google CoLab'da yerleşiktir. Eğitmen çekirdeği ayarlar ve daha fazla deney yapmak için daha hızlı eğitim süresi için dönem sayısını üçe ayarlamadan önce zamanlayıcıyı başlatır. Bir eğitim ve test döngüsü oluştururlar, tren kaybını somutlaştırırlar ve dönem başına eğitim kaybını hesaplarlar. Veriler gruplandırılır ve eğitim toplu verisi boyunca döngü oluşturmak için bir döngü eklenir.

PyTorch for Deep Learning & Machine Learning – Full Course
PyTorch for Deep Learning & Machine Learning – Full Course
  • 2022.10.06
  • www.youtube.com
Learn PyTorch for deep learning in this comprehensive course for beginners. PyTorch is a machine learning framework written in Python.✏️ Daniel Bourke develo...
 

Derin Öğrenme ve Makine Öğrenimi için PyTorch – Tam Kurs (17-22. bölümlerin açıklaması)


Derin Öğrenme ve Makine Öğrenimi için PyTorch – Tam Kurs


Bölüm 17

  • 16:00:00 Bu bölümde, eğitmen sinir ağı için eğitim döngüsünü kurar. Model eğitim moduna alınır ve kaybı hesaplamak için ileri geçiş gerçekleştirilir. Eğitim kaybı değerleri her partide toplanır ve optimize edici dönem başına bir kez yerine parti başına bir kez güncellenir. Eğitmen ayrıca, izleme amaçları için incelenen numuneleri ve dönem başına parti başına ortalama eğitim kaybını da yazdırır. Bu döngü, tren veri yükleyicisinde tüm partiler işlenene kadar devam edecektir.

  • 16:05:00 Bu bölümde eğitmen, bir test kaybı değişkeni ayarlamayı ve eğitim verilerinde öğrenilen kalıpları değerlendirmek için bir ileri geçiş kullanmayı içeren PyTorch'taki test döngüsü kodunun üzerinden geçer. Testin doğruluğu, indirilen doğruluk işlevi kullanılarak da hesaplanır ve test kaybı ve test doğruluğu değerleri parti başına toplanır ve ardından dönem başına ortalamayı bulmak için parti sayısına bölünür. Bu değerler daha sonra modelin ilerlemesini izlemek için yazdırılır.

  • 16:10:00 Bu bölümde eğitmen, tren kaybının, test kaybının ve test doğruluğunun yazdırılmasının yanı sıra eğitim süresinin hesaplanmasını içeren eğitim döngüsünü kurmanın son adımlarını tartışır. Ayrıca PyTorch'ta kodlama yaparken ortaya çıkabilecek olası hatalar için sorun giderme ipuçları sağlarlar. Kodun nasıl çalıştırılacağını göstererek ve eğitim döngüsünün ilerleme çubuğunu göstererek bitirirler.

  • 16:15:00 Bu bölümde eğitmen, eğitim döngüsünün sonuçlarını tartışır ve temel doğruluk ve eğitim süresi fikrini sunar. Makine öğreniminin doğal rastgeleliği ve kullanılan donanım nedeniyle sayıların biraz değişebileceğinin altını çiziyor. Eğitmen daha sonra birden fazla model oluşturmak ve daha sonra sonuçları karşılaştırmak için bir işlev oluşturarak modeli değerlendirmeye geçer. İşlev bir modeli, bir veri yükleyiciyi, bir kayıp işlevini ve bir doğruluk işlevini alır ve veri yükleyicide tahmin yapan modelin sonuçlarını içeren bir sözlük döndürür. İşlevin test döngüsüne benzer olduğunu ancak birden çok model ve veri yükleyiciyle kullanılmak üzere işlevlendirildiğini açıklıyor. Eğitmen ayrıca, sonraki bölümlerin GPU ve evrişimli sinir ağı üzerinde tahminler yapmayı ve modeli değerlendirmeyi kapsayacağını belirtir.

  • 16:20:00 Bu bölümde video oluşturucu, herhangi bir model ve veri yükleyici ile kullanılabilmesi için kayıp ve doğruluk işlevinin nasıl genelleştirilebilir hale getirileceğini gösterir. Grup başına kayıp ve doğruluk değerlerinin nasıl toplanacağını, toplu iş başına ortalama kayıp/doğruluğu bulmak için bunları ölçeklendireceklerini ve sonuçları bir sözlük formatında döndüreceklerini gösterirler. Ayrıca, daha önce tanımlanan işlevleri kullanarak test veri kümesindeki modelin sonuçlarını hesaplamak için yeni bir işlevin nasıl oluşturulacağını da gösterirler. Son olarak, modelin test veri kümesindeki performansını izlemek için bir ilerleme çubuğu kullanırlar.

  • 16:25:00 Derin Öğrenme ve Makine Öğrenimi için PyTorch kursunun bu bölümünde eğitmen, modelleri hem CPU'larda hem de GPU'larda eğitmek için cihazdan bağımsız kodun nasıl kurulacağını tartışıyor. CUDA'nın kullanılabilirliğini kontrol etmeyi ve işlemci gücünden yararlanmak için GPU'ya geçmeyi gösteriyorlar. Eğitmen ayrıca, karmaşıklığı ve boyutu artırmadan önce daha küçük veri kümeleri ve modellerle başlamayı önerir. Son olarak, veri kümesi için yeni bir model oluşturmayı ve performansını GPU üzerinde çalışırken doğrusal olmayanlar olsun ya da olmasın test etmeyi öneriyorlar.

  • 16:30:00 Bu bölümde, eğitmen sinir ağlarında doğrusal olmama kavramını tanıtıyor ve izleyicileri doğrusal olmayan fonksiyonlarla bir model oluşturmayı denemeye teşvik ediyor. Doğrusal olmayan verileri modellemek için doğrusal olmamanın faydaları tartışılır ve eğitmen PyTorch kullanarak hem doğrusal hem de doğrusal olmayan katmanlarla bir sinir ağının nasıl uygulanacağını açıklar. Kodu adım adım inceliyorlar ve belirli bir veri kümesi için en iyi modeli bulmada denemenin önemini vurguluyorlar.

  • 16:35:00 Bu bölümde eğitmen, sinir ağlarını doğrusal ve doğrusal olmayan işlevlerle özelleştirmeyi tartışıyor ve önceden tanımlanmış bir ağa iki ReLU aktivasyon işlevi eklemeyi gösteriyor. Ardından, girdinin katman yığınından geçmesine izin vermek için iletme yöntemi geçersiz kılınır ve model cihazda başlatılır. Video daha sonra doğrusal olmayan katmanlar ekleyen yeni model için bir kayıp işlevi, optimize edici ve değerlendirme metrikleri oluşturmaya geçiyor ve farklı işlevlerin sinir ağlarını nasıl etkileyebileceğini anlamak için deneyler yapmanın önemini vurguluyor.

  • 16:40:00 Bu bölümde, konuşmacı yardımcı işlevler oluşturmayı ve PyTorch'ta eğitim ve değerlendirme döngülerini çalıştırmayı tartışıyor. Doğruluk işlevinin içe aktarılmasından ve bir kayıp işlevinin yanı sıra optimize edicinin ayarlanmasından bahsediyorlar. Bir sonraki adım, hata riski olmadan tekrar tekrar çağrılabilmeleri için eğitim ve değerlendirme döngülerini işlevler olarak oluşturmaktır. Konuşmacı, giriş olarak bir model, veri yükleyici, kayıp işlevi, optimize edici ve isteğe bağlı olarak bir doğruluk işlevi ve hedef cihaz gerektiren bir tren adım işlevi oluşturma sürecini adım adım anlatır. Tren adımı işlevi, bir veri yükleyicide döngü oluşturur, bir ileri geçiş gerçekleştirir, kaybı hesaplar, geri yayılım yapar ve optimize edici ile model parametrelerini günceller.

  • 16:45:00 Bu bölümde sunum yapan kişi, PyTorch'ta bir eğitim adımının nasıl gerçekleştirileceğini açıklar. Bir model, bir veri yükleyici, bir kayıp fonksiyonu, bir optimize edici ve bir cihaz dahil olmak üzere fonksiyonun girdilerini tanımlayarak başlarlar. Ardından, veri yükleyicide bir döngü ile başlayarak ve verileri hedef cihaza koyarak işlevin her satırından geçerler. Ayrıca parti başına doğruluk puanını toplamak için bir doğruluk işlevi eklerler. Son olarak, eğitim adımının sonunda parti başına ortalama kayıp ve doğruluğu hesaplar ve sonuçları yazdırırlar. Genel olarak bu bölüm, derin öğrenme ve makine öğrenimi için PyTorch'un nasıl kullanılacağına dair net ve özlü bir açıklama sağlar.

  • 16:50:00 Bu bölümde eğitmen, bir model, veri yükleyici, kayıp işlevi, doğruluk işlevi ve cihazı girdi olarak alan bir test adımı işlevi oluşturarak test döngüsünü işlevselleştirir. Eğitmen, bir test kaybının ve doğruluğunun nasıl ayarlanacağını ve veri yükleyicide döngüye girmeden ve bir ileri geçiş gerçekleştirmeden önce modelin değerlendirme moduna nasıl alınacağını gösterir. Eğitmen ayrıca çıkarım modu bağlam yöneticisini kullanmanın ve cihazdan bağımsız kod oluşturmanın önemini de açıklar. Test pred, X'te geçirilerek hesaplanır ve test kaybı ve doğruluğu, ilgili işlevler kullanılarak parti başına toplanır. Son olarak eğitmen, argmax'ı alarak çıktı logitlerini tahmin etiketlerine dönüştürür.

  • 16:55:00 PyTorch tam kursunun bu bölümünde eğitmen, tren adımı ve test adımı fonksiyonlarını kullanarak bir test adımı fonksiyonunun ve bir optimizasyon ve değerlendirme döngüsünün nasıl oluşturulacağını gösterir. Yeni işlevler, bir modeli eğitmek ve üç dönem için doğruluğunu değerlendirmek için kullanılır. Eğitmen ayrıca, modelin CPU'ya karşı GPU'da çalışması için geçen sürenin nasıl ölçüleceğini de gösterir.

Bölüm 18

  • 17:00:00 Bu bölümde eğitmen, derin öğrenme modelimiz için test adımını ayarlama ve eğitim süresini ölçmek için bir zamanlayıcı oluşturma konusunda bizi yönlendirir. Kod, gelecekteki projelerde yeniden kullanılabilecek şekilde tasarlandığından basit ve verimlidir. Ayrıca, ikinci modelleme deneyini çalıştırdık ve sonuçları doğrusal olmayan katmanlar kullanan ilk modelle karşılaştırdık. İkinci model, eğitim süresi açısından biraz daha hızlı olmasına rağmen, bir öncekinden daha iyi sonuçlar vermedi, bu da sayılarınız eğitmeninkiyle aynı olmayabilir, ancak yön olarak oldukça benzer olması gerektiği anlamına gelir. Son olarak eğitmen, modelimizin çok karmaşık olmadığını ve veri setimizin çok büyük olmadığını açıklıyor, dolayısıyla bu, CPU ve GPU eğitim sürelerinin neden önemli ölçüde farklı olmadığını açıklayabilir.

  • 17:05:00 Bu bölümde, eğitmen bazen bir modelin CPU üzerinde GPU'dan daha hızlı çalıştığını açıklıyor. Bunun iki ana nedeni, GPU'ya ve GPU'dan veri/model kopyalama ek yükünün GPU tarafından sunulan bilgi işlem avantajlarından daha ağır basması ve kullanılan donanımın hesaplama yeteneği açısından GPU'dan daha iyi bir CPU'ya sahip olmasıdır. Ancak, eğitmen bunun daha az yaygın olduğunu ve genel olarak modern bir GPU'nun derin öğrenme algoritmalarını hesaplamada genel bir CPU'dan daha hızlı olduğunu belirtiyor. Daha sonra eğitmen, diğer şeylerin yanı sıra bant genişliğini ve genel maliyetleri optimize ederek derin öğrenmenin nasıl daha hızlı ilerleyeceğinden bahseden bir kaynağı paylaşır. Son olarak eğitmen, modelleme sonuçlarını daha sonra karşılaştırmak üzere birinci model için bir sonuçlar sözlüğü oluşturur.

  • 17:10:00 Bu bölümde eğitmen, veri ve model arasındaki cihaz uyumsuzluklarıyla ilgili olarak derin öğrenme modellerinde meydana gelebilecek yaygın bir hatayı tartışır. Veri ve modelin farklı cihazlarda olması nedeniyle hatanın oluştuğunu açıklıyor ve kodu cihazdan bağımsız hale getirerek bir düzeltme öneriyor. Ayrıca, cihaz agnostik kodu oluşturmanın her zaman daha iyi olduğu konusunda da uyarıyor. Son olarak, eğitmen bir evrişimli sinir ağı (CNN) oluşturmayı içeren ve tipik bir CNN'nin mimarisini açıklayan bir sonraki modelleme deneyini sunar.

  • 17:15:00 Bu bölümde eğitmen, basit evrişimli sinir ağındaki (CNN) farklı katman türlerini açıklar. CNN, bir görüntü için kırmızı, yeşil ve mavi bir tensöre önceden işlenmiş bir girdiyle başlar. Girdi daha sonra evrişimli katmanların, relu katmanlarının ve havuzlama katmanlarının bir kombinasyonundan geçer. Derin öğrenme modeli, verilerde daha fazla kalıp bulmak için kendisine daha fazla katman eklenebilir ve her katman, veriler üzerinde farklı bir matematiksel işlem kombinasyonu gerçekleştirir. Eğitmen, CNN açıklayıcı web sitesini kullanarak, farklı görüntülerin girişinin farklı katmanlardan geçtiği ve nihai çıktının en yüksek değere sahip sınıf olduğu CNN'yi gösterir.

  • 17:20:00 Bu bölümde eğitmen, evrişimli sinir ağlarının nasıl çalıştığını ve derin öğrenmenin güzelliğini açıklıyor. Ağın her katmanı, verilerin farklı özelliklerini öğrenmek için tasarlanmıştır ve ağın kendisi bu özellikleri öğrenmenin en iyi yolunu bulur. Eğitmen daha sonra evrişimli sinir ağları hakkında daha fazla bilgi edinmek için bir kaynak olarak CNN açıklayıcı web sitesini tanıtır, ancak aynı zamanda teşvik eder
    öğrenenler, sinir ağını PyTorch kodunda çoğaltmaya katılırlar. Eğitmen daha sonra PyTorch'ta küçük bir VGG evrişimli sinir ağı oluşturmaya devam ediyor ve araştırma makalelerinin yazarlarının gelecekte başvurmayı kolaylaştırmak için yeni model mimarileri adlandırdıklarını açıklıyor. Kod, bir PyTorch modeli oluştururken tipik parametreler olan giriş şekli, gizli birimler ve çıkış şekli ile başlatılır.

  • 17:25:00 Bu bölümde eğitmen, PyTorch'ta genellikle evrişimli bloklar olarak adlandırılan blokları kullanarak bir sinir ağının nasıl oluşturulacağını açıklar. Bu bloklar birden çok katmandan oluşur ve genel bir mimari birden çok bloktan oluşur. Eğitmen, giriş ve çıkış kanalları, çekirdek boyutu, adım ve dolgu gibi hiperparametrelere sahip iki katman örneğini yazarak evrişimli blokların nasıl oluşturulacağını gösterir. Eğitmen ayrıca öğrencilerin hiperparametrelerin temellerini anlamaları için etkileşimli kaynaklar sağlar ve onları bunları gözden geçirmeye teşvik eder.

  • 17:30:00 Bu bölümde, eğitmen, özellikle evrişimli blok katmanlarına odaklanarak, PyTorch kullanarak bir derin öğrenme modeli oluşturmak için kodu gözden geçiriyor. Model, 2B görüntü verilerini alır ve katmanlar, girdi verilerinin maksimum değerini almak için kullanılan maksimum havuzlama ile girdi verilerinin sıkıştırılmış bir temsilini öğrenmek için kullanılır. Kod iki bloğa bölünür ve ardından bir çıktı katmanı eklenir. Son katmanın girdileri, nihai çıktıyı oluşturmak için son lineer katmana yerleştirilmeden önce düzleştirilir.

  • 17:35:00 Bu bölümde eğitmen, özellik çıkarıcı görevi gören iki katmanı ve bu özellikleri hedef sınıflara ayıran son katmanı olan minik VGG adı verilen bir evrişimli sinir ağı (CNN) için sınıflandırıcı katmanı oluşturur. Eğitmen, sıralı kullanarak sınıflandırıcı katmanını kodlar ve önceki iki katmanın çıktısını tek bir özellik vektöründe düzleştirmek için bir düzleştirme katmanından geçirir. Özellik vektörü daha sonra, özellikleri gizli birimlerin sayısına göre ve dış özellikleri sınıfların uzunluğuna göre hesaplayan bir nn.linear katmanına geçirilir. Son olarak, eğitmen ileri yöntemi kurar ve her katmanın şekil değişikliklerini izlemek için X nokta şeklini yazdırır. Eğitmen, siyah beyaz görüntüler için yalnızca bir renk kanalına sahip olan CNN modeli için giriş şeklini oluşturur, her katman için gizli birim değerini ayarlar ve modeli başlatarak bitirir.

  • 17:40:00 Videonun bu bölümünde, eğitmen PyTorch kullanarak evrişimli bir sinir ağı oluşturmak için bir önceki bölümde yazdıkları kodun üzerinden geçiyor. Koddaki bazı yazım hatalarını belirleyip düzeltirler ve maxpool2d katmanının herhangi bir öğrenilebilir parametreye sahip olmadığını açıklarlar. Daha sonra conv2d katmanını tanıtırlar ve ağırlık tensörünün ve sapma değerinin çıktıyı üretmek için girdiyi manipüle ettiğini açıklarlar. PyTorch'ta sahte bir girdi kullanarak CNN açıklayıcı web sitesinin ilk katmanının nasıl yeniden üretileceğini gösteriyorlar ve daha fazla okuma için PyTorch belgelerine bir bağlantı sağlıyorlar. Ayrıca, önce renk kanallarıyla PyTorch stilini kullanarak toplu görüntülerin nasıl oluşturulacağını gösterirler.

  • 17:45:00 Bu bölümde, video eğitimi bir PyTorch modelinin bileşimini ve evrişimlerin pratikte nasıl çalıştığını araştırıyor. Eğitmen rastgele sayılardan oluşan modelin bu katmanları comp2d katmanlarını kullanarak verileri en iyi şekilde temsil edecek şekilde nasıl ayarladığını açıklar. Bu katmanlardan birinden bazı rasgele verileri geçirdikten sonra öğretici, çekirdek boyutuna ve konvolüsyon tarafından gerçekleştirilen işlemi nasıl belirlediğine dalıyor. Eğitmen, bu çekirdeğin doğru çıktıyı sağlamak için işlemi doğru şekilde gerçekleştirebilmesini sağlamak olan evrişimli katmanın amacını detaylandırır.

  • 17:50:00 Bu bölümde eğitmen, adım ve dolgu değerlerini PyTorch'ta evrişimli bir katmanda değiştirmenin etkilerini açıklıyor. 1 adım değeri, evrişimin bir defada bir pikselin üzerinden atladığı anlamına gelirken, 2 adım değeri bir defada iki pikselin üzerinden atlayarak çıktı boyutunda bir azalmaya yol açar. Bu arada, görüntünün kenarlarına dolgu eklemek, çekirdeğin kenarlardaki görüntü bilgileri üzerinde çalışmasına izin verir. Eğitmen ayrıca, farklı parametreler için hangi değerlerin ayarlanacağından emin olmadığınızda, mevcut değerleri kopyalamanın ve gerektiğinde ayarlamanın yaygın olduğunu da not eder. Bölüm, bir test görüntüsüne toplu iş boyutunun nasıl ekleneceği ve PyTorch'ta bir evrişimli katmandan nasıl geçirileceği ile ilgili bir gösterimle sona erer.

  • 17:55:00 Bu bölümde video, derin öğrenme ve makine öğrenimi için PyTorch'taki evrişimli ve maksimum havuzlama katmanlarını ele alıyor. Video, bir çıktı üretmek için bir evrişimli katmandan bir test görüntüsü geçirerek PyTorch'un evrişimli katmanlar oluşturmak için nasıl kullanılacağını gösterir. Çekirdek boyutu, adım ve dolgu değerleri ile oynayarak, kullanıcılar çıktı boyutunun nasıl değiştiğini gözlemleyebilirler. Video ayrıca maksimum havuzlama katmanını da kapsar ve çekirdek boyutu iki olan örnek bir maksimum havuzlama katmanının nasıl oluşturulacağını gösterir.

Bölüm 19

  • 18:00:00 Bu bölümde eğitmen, verilerin PyTorch'ta evrişimli bir katmandan ve bir maksimum havuz katmanından nasıl geçirileceğini gösterir. Önce test görüntüsünü dönüştürme katmanından geçirerek ve ardından şekli yazdırarak başlarlar. Daha sonra conv katmanının çıktısını max pool katmanından geçirirler ve ortaya çıkan şekli tekrar yazdırırlar. Eğitmen, maksimum havuz katmanının belirli bir iç tensör aralığının maksimumunu aldığını ve evrişim katmanının çıktı boyutunu azalttığını açıklar. Ayrıca, katmanların ve parametrelerin değerleri değiştirilirse şekillerin nasıl değişeceğini de gösterirler.

  • 18:05:00 Bu bölümde eğitmen, Konvolüsyonel Sinir Ağlarında (CNN'ler) Max Pooling kavramını açıklar. Amaç, girdi verilerini gelecekteki tahminler için kullanılabilecek daha küçük bir özellik vektörüne sıkıştırmaktır. Maksimum havuzlama, o bölgedeki en önemli özelliği belirlemek için girdi verilerinin belirli bir bölümünün maksimum değerini almayı içerir. Eğitmen, maksimum havuzlama için çekirdek boyutunu değiştirmenin etkilerini ve bunun özellik alanını nasıl etkilediğini gösterir. Ayrıca, maksimum havuzlama sürecini göstermek için daha küçük bir rasgele tensör kullanan görsel bir örnek sağlarlar. Genel olarak, maksimum havuzlama, tahminler için önemli özellikleri korurken veri boyutsallığını azaltmak için yararlı bir tekniktir.

  • 18:10:00 Kursun bu bölümünde eğitmen, evrişimli sinir ağındaki maksimum havuz katmanının amacını tartışıyor; bu, evrişimli katmandan öğrenilen özellikleri daha küçük bir alana sıkıştırmak ve sonuçta sıkıştırılmış bir temsile yol açmaktır. tahmin yapmak için kullanılabilecek girdi verilerinin Eğitmen ayrıca izleyicileri kukla bir tensör oluşturmaya ve onu önceki videolarda oluşturdukları küçük VGG ağından geçirmeye davet ederek, evrişimli bloklardan geçerken kukla tensörün şekline ne olduğunu görmelerini istiyor. Son olarak eğitmen, başka bir yerden bir modeli çoğaltma ve verileri içinden geçirme amacının derin öğrenmede yaygın bir uygulama olduğunu açıklar.

  • 18:15:00 Bu bölümde, eğitmen PyTorch'ta bir ileri geçiş örneği sağlar ve şekil uyuşmazlığı hatalarıyla nasıl başa çıkılacağını gösterir. Fashion MNIST veri kümesinden önceden oluşturulmuş bir görüntüyü kullanırlar ve görüntüyle aynı şekle sahip bir tensör oluştururlar. Ancak, parti boyutu için fazladan bir boyuta sahip tensör nedeniyle bir hata alırlar. Bunu düzeltmek için, yığın boyutunu eklemek için tensörü sıfır boyutunda gevşetirler. Ayrıca tensörün modelle aynı cihazda olmasını sağlarlar ve modelin farklı katmanları için gereken şekillerin nasıl giderileceğini ve bulunacağını gösterirler. Bu bölüm, eğitmenin şekiller hakkında toplanan bilgileri kullanarak modeli yeniden oluşturmasıyla sona erer.

  • 18:20:00 Videonun bu bölümünde eğitmen, bir sinir ağı modelinde katmanların şekillerinde hata ayıklamak için bir numara gösteriyor. Sahte verileri modelden geçirerek ve çıktının şekillerini her katmanda yazdırarak eğitmen, şekil uyuşmazlıklarının nerede meydana geldiğini belirleyebilir ve sınıflandırıcı katmanla ilgili sorunları belirleyebilir. Eğitmen daha sonra evrişimli katmanların giriş ve çıkış şekillerinin elle nasıl hesaplanacağını gösterir, ancak bu hesaplamaları gerçekleştirmek için kod kullanmanın faydalarını da öne sürer. Son olarak eğitmen, modelin matris çarpım kurallarına uygun olduğundan emin olmak ve modelin istenen şekle sahip verileri işleyebildiğini doğrulamak için hileyi kullanır.

  • 18:25:00 Bu bölümde eğitmen, oluşturduğu modeldeki her katmanın girdi ve çıktı şekillerini tartışır. Veri kümelerinde on sınıf olduğundan, modelden rastgele bir tensör geçirirler ve bir ve on çıktı şekli elde ederler. Daha sonra ikinci modelleri için bir kayıp fonksiyonu ve optimize edici kurmaya geçerler ve ilk evrişimli sinir ağlarını (CNN) nasıl eğiteceklerini açıklarlar. Bir doğruluk işlevini içe aktarırlar, bir çapraz entropi kaybı işlevi kurarlar ve optimize ediciyi eskisi gibi tutarlar, SGD'de torch.opt. Ardından, bir sonraki videoda ayrıntılı olarak ele alacakları ikinci modeli eğitmek için tren adımı ve test adımı işlevlerini nasıl kullanacaklarını gösteriyorlar. Son olarak, modelle eğitim adımını gerçekleştirerek ve bir veri yükleyici üzerinde öğrenmeye çalışarak eğitim ve test işlevselliğini kurarlar.

  • 18:30:00 Bu bölümde video, evrişimli bir sinir ağının eğitilmesine odaklanıyor ve ilerlemeyi ölçmek için TQDM kullanarak onu eğitmek için gereken süreyi ölçüyor. Doğruluk işlevini, kayıp işlevini, optimize ediciyi, tren veri yükleyicisini ve test veri yükleyicisini ayarlarlar. Ayrıca, kodun çalışmasının ne kadar sürdüğünü bilmek için bitiş zamanını da ölçerler. Çıktıyla ilgili bir kod sorunu yaşadılar, ancak sorunu düzelttiler ve yaklaşık 42 saniyede %88,5'lik bir test doğruluğu elde ederek ilk CNN'lerini başarıyla eğittiler. Video, daha iyi performans gösteren bir modelin eğitilmesinin genellikle daha uzun sürdüğünü bilmenizi önerir.

  • 18:35:00 Bu bölümde eğitmen, makine öğrenimi deneylerinde farklı modellerde sonuçları ve eğitim süresini karşılaştırmanın önemini tartışıyor. Üç model sonuç sözlüğü sunarlar ve her modelin doğruluğunu, kaybını ve eğitim süresini karşılaştırmak için pandaları kullanarak bir veri çerçevesi oluştururlar. Evrişimli sinir ağının (Model 2) %88'lik bir doğrulukla diğer modellerden daha iyi performans gösterdiğini ve izleyicileri daha iyi sonuçlar için farklı model mimarileri, hiperparametreler ve eğitim süreleriyle deneme yapmaya teşvik ettiğini buldular. Eğitmen, pratik uygulamalarda model performansı ile hız arasındaki dengeyi dikkate almanın önemini vurgular.

  • 18:40:00 Bu bölümde eğitmen, bir önceki bölümde gerçekleştirilen üç deneyin sonuçlarını bir veri çerçevesi ve bir grafik kullanarak karşılaştırmayı tartışır. Her model için eğitim süresi ve doğruluğu karşılaştırılır ve eğitmen, eğitim süresinin kullanılan donanıma göre değişeceğini not eder. En iyi performans gösteren model, evrişimli sinir ağıydı, ancak en uzun eğitim süresine sahipti. Eğitmen, en iyi performans gösteren modeli kullanarak test veri setinden rastgele örnekler üzerinde tahminler yapmayı önerir.

  • 18:45:00 Bu bölümde eğitmen, eğitilmiş bir makine öğrenimi modelini değerlendirmek için "tahmin yapma" adlı bir işlevin nasıl oluşturulacağını tartışır. Fonksiyon, bir torç ve son modül tipi modeli, bazı verileri ve bir cihaz tipini alır. Amaç, test veri setinden rastgele örnekler almak, modeli kullanarak bunlar üzerinde tahminler yapmak ve tahminleri görselleştirmektir. İşlev, örneği sıkıştırarak ve hedef cihaza ileterek hazırlar. Ardından, ham logitleri elde etmek için model üzerinde bir ileri geçiş yapar ve tahmin olasılığını elde etmek için softmax aktivasyon fonksiyonunu uygular. Son olarak, tahmin olasılıkları tahmin etiketlerine dönüştürülür ve belirli örneklerle ilgili tahmin olasılıkları listesi, listeyi bir tensöre dönüştürmek için istiflenir. Bu bölüm, test örnekleri kullanılarak işlevin çalışırken gösterilmesiyle sona erer.

  • 18:50:00 Bu bölümde eğitmen, test verilerinin nasıl rasgele örnekleneceğini ve modelin tahminlerini değerlendirmek için test etiketlerinin nasıl oluşturulacağını açıklar. Test verileri henüz bir veri yükleyiciye dönüştürülmedi ve kod örnekleri dokuz rastgele test verisi örneği. Eğitmen, modelin nasıl performans gösterdiğini anlamak için modeli eğittikten sonra bile rastgele test verisi örnekleri üzerinde tahminler yapmanın önemini vurgular. Eğitmen ayrıca, olasılıklardaki en yüksek değerin indeksini almak için argmax kullanarak tahmin olasılıklarının tahmin etiketlerine nasıl dönüştürüleceğini tartışır.

  • 18:55:00 Bu bölümde, eğitmen rastgele örnekler için tahminleri ve görüntüleri çizmek için kod yazar. Kod, üç satır ve üç sütun içeren bir Matplotlib şekli oluşturur ve test numunelerindeki her numuneyi numaralandırır. Her örnek için bir alt grafik oluşturulur ve hedef görüntü çizilir. Tahmin etiketi ve doğruluk etiketi de bulunur ve sınıf adları ile ön sınıflar ve test etiketleri dizinleri kullanılarak metin biçimine dönüştürülür. Son olarak, arsa için bir başlık oluşturulur ve başlık metninin rengi, tahmin etiketi doğruluk etiketine eşitse yeşil, eşit değilse kırmızı olarak değiştirilir.

Bölüm 20

  • 19:00:00 Bu bölümde sunum yapan kişi, makine öğrenimi modeli tahminlerini görselleştirmenin önemini tartışıyor ve eğitilmiş bir evrişimli sinir ağının (CNN) tahminlerinin bir test veri kümesinden rastgele seçilen örnekler üzerinde nasıl çizileceğini gösteriyor. Sunum yapan kişi, tahmin edilen ve gerçek etiketleriyle görüntülerin nasıl çizileceğini ve tahminin doğru olup olmadığına bağlı olarak başlık metninin renginin nasıl değiştirileceğini gösterir. Sunum yapan kişi, tahminleri analiz ederek, etiket sınıfları arasındaki olası karışıklıkları gösterir ve tahminleri görselleştirmenin, etiketleri veya modelin kendisini iyileştirmeye yönelik öngörüler sağlayabileceğini öne sürer. Sunum yapan kişi daha sonra, büyük bir test numunesi setinin tahmin edilen ve gerçek etiketlerini karşılaştırarak model performansını değerlendirmenin başka bir yolu olarak karışıklık matrisi kavramını sunar.

  • 19:05:00 Bu bölümde eğitmen, PyTorch'ta karışıklık matrisini kullanarak çok sınıflı bir sınıflandırma modelinin nasıl değerlendirileceğini tartışır. Karışıklık matrisi, modelin farklı sınıflardaki performansını gösteren görsel bir temsildir. Eğitmen, meşale metriklerinin değerlendirme metrikleri için nasıl kullanılacağını açıklar ve karışıklık matrisi değerlendirme metriklerine nasıl erişileceğini gösterir. Ek olarak, karışıklık matrisini çizmek için makine öğrenimi genişletmesi kullanılır. Eğitmen, daha da önemlisi, Google Colab'in gerekli ML uzantısı sürümüne sahip olmadığını ve paketin doğru şekilde yüklenmesini sağlamak için 0.19.0 sürümünün gerekli olduğunu açıklar. Son olarak video, test veri kümesi genelinde nasıl tahminde bulunulacağını ve bağlam yöneticisi olarak meşale çıkarım modu ile modelin değerlendirme moduna nasıl ayarlanacağını gösterir.

  • 19:10:00 Bu bölümde eğitmen, PyTorch kullanarak tahminlerde bulunmak için test veri yükleyicisi aracılığıyla nasıl yineleme yapılacağını gösterir. Tahminler bir listeye eklenir ve ardından torch.cat kullanılarak bir tensörde birleştirilir. Ortaya çıkan tensör, test numunesi başına bir tahmine sahiptir. Eğitmen ayrıca meşale metriklerini kurar ve içe aktarmak için bir dene ve kabul et döngüsünün nasıl kullanılacağını gösterir. Son olarak, makine öğrenimi genişletmesinin gerekli sürümü, olay örgüsü karışıklık matrisi işlevinde kullanım için bir iddia ifadesi kullanılarak kontrol edilir.

  • 19:15:00 Bu bölümde, eğitmen, meşale metriklerini yükleme ve ML uzantısını 0.19.0 veya sonraki bir sürüme yükseltme örneğini kullanarak Google Colab'da paketlerin nasıl kurulacağını ve yükseltileceğini açıklar. Eğitmen kodu gözden geçirir ve kurulumun iyi gidip gitmediğini nasıl kontrol edeceğini ve gerekirse çalışma zamanının nasıl yeniden başlatılacağı da dahil olmak üzere işlem sırasında ortaya çıkan hatalar varsa ne yapılacağını açıklar. Kurulum tamamlandıktan sonra eğitmen, önceki videodaki tüm test veri setinde yapılan tahminlerle bir karışıklık matrisinin nasıl oluşturulacağını açıklamaya devam eder.

  • 19:20:00 Bu bölümde eğitmen, bir derin öğrenme modelinin performansını değerlendirmek için bir karışıklık matrisinin nasıl oluşturulacağını ve çizileceğini açıklar. İlk olarak, meşale metriklerinden karışıklık matrisi sınıfı ve ML extension'dan çizim karışıklık matrisi işlevi içe aktarılır. Ardından, sınıf adları listesinin uzunluğu olarak sınıf sayısı geçirilerek bir karışıklık matrisi örneği kurulur. Karışıklık matrisi tensörü, test veri kümesindeki tahminlerin ve hedeflerin geçirilmesiyle oluşturulur. Son olarak, karışıklık matrisi, karışıklık matrisi tensörü ve sınıf adları listesinden geçerek, doğru tahminleri ve modelin hata yaptığı potansiyel alanları gösteren görsel olarak hoş bir köşegen oluşturarak, arsa karışıklık matrisi işlevi kullanılarak çizilir.

  • 19:25:00 Bu bölümde eğitmen, bir sınıflandırma modelinin tahminlerini görsel olarak değerlendirmek için bir karışıklık matrisi kullanmanın önemini açıklıyor, özellikle model tarafından yapılan hatalar önemliyse, örneğin gömlekler ve gömlekler gibi benzer görünen iki veri sınıfını karıştırmak gibi. Kabanlar. Karışıklık matrisi kullanmak, bir modelin performansını değerlendirmenin güçlü bir yoludur ve mevcut etiketlerle ilgili sorunları tanımlamaya yardımcı olabilir. Ayrıca, özellikle modelin performansı tatmin edici olduğunda, eğitilmiş bir modeli kaydetmenin ve yüklemenin öneminden bahsediyor. Modeli bir dosyaya kaydederek, başka bir yerde kullanılabilir veya doğru şekilde kaydedildiğinden emin olmak için yeniden yüklenebilir. Eğitmen, bir model dizini yolunun ve bir model kaydetme yolunun nasıl oluşturulacağını ele alır ve ardından torch.save yöntemini kullanarak model durumu diktesinin nasıl kaydedileceğini gösterir.

  • 19:30:00 Bu bölümde, eğitmen bir PyTorch modelinin nasıl kaydedileceğini ve yükleneceğini gösterir. Eğitildikten sonra modelin öğrenilen tüm parametrelerini temsil eden durum sözlüğü kaydedilir. Kaydedilen modeli yüklemek için orijinaliyle aynı parametrelere sahip yeni bir örnek oluşturulur. Şekil uyuşmazlığı hatasını önlemek için yüklü modeli orijinaliyle aynı parametrelerle ayarlamak önemlidir. Yüklenen model daha sonra orijinal modelle benzer sonuçlar ürettiğinden emin olmak için değerlendirilir. Eğitmen, doğru bir şekilde kaydedildiğinden emin olmak için bir modeli kaydettikten ve yükledikten sonra değerlendirmenin önemini vurgular.

  • 19:35:00 Bu bölümde yüklenen modelin daha önce eğitilen model ile kaydedilmeden önce aynı sonuçları verdiğini görüyoruz ve torch.is_close kullanarak model sonuçlarının birbirine yakın olup olmadığını programlı olarak kontrol edebiliyoruz. Mutlak tolerans düzeyi, sonuçların yeterince benzer olmasını sağlamak için ayarlanabilir ve tutarsızlıklar varsa, modelin doğru şekilde kaydedip kaydetmediğini ve rastgele tohumların ayarlanıp ayarlanmadığını kontrol etmeniz önerilir. Bir bilgisayarla görme problemi için iş akışı da tartışılır, kaynak materyalleri ve torchvision gibi kitaplıkları kullanmaktan modeli değerlendirmeye ve en iyisini bulmak için doğrusal olmayan ve evrişimli sinir ağı modellerini denemeye kadar.

  • 19:40:00 "PyTorch for Deep Learning & Machine Learning"in bu bölümünde eğitmen, Learn pytorch.io web sitesine giderek ve sağlanan alıştırmaları tamamlayarak izleyicileri şimdiye kadar öğrendiklerini uygulamaya teşvik ediyor. Alıştırmalar, önceki bölümlerde ele alınan kod ve kavramların uygulanmasına odaklanır ve ayrıca bilgisayar görüşüne daha derin dalmak isteyenler için ekstra müfredat mevcuttur. Ayrıca bölüm, pytorch özel veri kümeleri konusunu kapsar ve gerektiğinde yardım almak için pytorch belgeleri ve yığın taşması gibi kaynaklar sunar.

  • 19:45:00 PyTorch kursunun bu bölümünde, özel veri kümelerinin yanı sıra, meşale vizyonu, meşale metni, meşale sesi ve meşale kaydı gibi farklı alan kitaplıklarıyla nasıl çalışılacağı tartışılır. Etki alanı kitaplıkları, farklı veri kaynakları için veri yükleme işlevleri içerir ve Fashion MNIST gibi önceden oluşturulmuş görüş veri kümeleri ve özelleştirilmiş olanlar için meşale görüş veri kümeleri gibi yerleşik veri kümeleriyle birlikte gelir. Her etki alanı kitaplığında ayrıca, kullanıcıların farklı etki alanlarındaki farklı veri kümeleriyle çalışmasına yardımcı olan bir 'veri kümeleri' modülü vardır ve vizyon, metin, ses, öneri gibi çalıştığınız etki alanına bağlı olarak, özel kitaplığına bakmanız önerilir. PyTorch'ta.

  • 19:50:00 Bu bölümde eğitmen, bir bilgisayarla görme modeli oluşturmak için özel veri setlerinin PyTorch'a nasıl yükleneceğini tartışır. Oluşturacakları model, pizza, suşi ve biftek görüntülerini sınıflandıracak olan food vision mini olarak adlandırılıyor. Eğitmen, bir kayıp fonksiyonu ve bir optimize edici seçmek, bir eğitim döngüsü oluşturmak ve modeli değerlendirmek gibi bir modelin eğitimiyle ilgili çeşitli adımları kapsar. Ayrıca, bir modelle kullanım için verilerin nasıl dönüştürüleceğini ve veri artırmalı ve veri artırmasız modelleri karşılaştırmayı açıklar. Son olarak, özel veriler üzerinde nasıl tahminde bulunulacağını gösterirler ve PyTorch derin öğrenme deposundaki video not defterine erişim için bir kaynak sağlarlar.

  • 19:55:00 Bu bölümde eğitmen, özel veri kümeleri aracılığıyla kendi verilerinizi PyTorch'a alma sürecini tartışıyor. Veri yükleme işlevleri ve özelleştirilebilir veri yükleme işlevleri için etki alanı kitaplıklarını kullanmanın önemini vurguluyor ve bu kitaplıklardan görüntü, metin, ses ve öneri gibi çeşitli kategoriler için örnekler veriyorlar. Eğitmen ayrıca PyTorch ile en iyi uygulamalar için gerekli kitaplıkların nasıl içe aktarılacağını ve cihaz agnostik kodunun nasıl kurulacağını gösterir. Mevcut CUDA cihazlarının nasıl kontrol edileceğini ve daha hızlı işleme için GPU'ları kullanmak üzere çalışma zamanı türünün nasıl değiştirileceğini gösterirler. Son olarak, eğitmen bir sonraki videoda çalışmak için veri elde etmenin ipuçlarını veriyor.

Bölüm 21

  • 20:00:00 Kursun bu bölümünde eğitmen, 101.000 görsel ile 101 farklı gıda kategorisini içeren Food 101 veri setini tanıtıyor. Ancak, PyTorch kullanarak alıştırma yapmak için eğitmen bu veri kümesinin üç gıda kategorisini ve görüntülerin yalnızca %10'unu içeren daha küçük bir alt kümesini oluşturmuştur. Bu daha küçük veri kümesinde sınıf başına 750 eğitim görüntüsü, 250 test görüntüsü ve yaklaşık 75 eğitim görüntüsü ve 25 test görüntüsü bulunur. Bu daha küçük veri kümesiyle başlayarak amaç, deneyleri hızlandırmak ve modelleri eğitmek için gereken süreyi azaltmaktır. Eğitmen, bu özel veri kümesinin nasıl oluşturulacağına ilişkin bir not defteri sağlar ve öğrencileri küçük adımlarla başlayıp gerektiğinde yükseltmeye teşvik eder.

  • 20:05:00 Bu bölümde eğitmen, PyTorch için bir görüntü veri seti indirme ve hazırlama sürecini açıklıyor. Veri kümesi, veri adı verilen bir klasörde saklanan pizza, biftek ve suşi resimlerini içerir. Eğitmen, verileri indirmek için Python istekleri kitaplığını kullanır ve ardından onu veri klasörüne açar. Bu bölümün amacı, herhangi bir benzer projeye uygulanabilen görüntü verilerinin PyTorch'a nasıl yükleneceğini göstermektir. Eğitmen, veriler için yerel bir bilgisayarda veya bulutta bulunabilecek ayrı bir dizine sahip olmanın önemini vurgular.

  • 20:10:00 Bu bölümde eğitmen, bir zip dosyasından veri ayıklamak için Python kitaplığının, zipfile'nin nasıl kullanılacağını anlatıyor. Bir bilgisayarla görme problemini öğrenen bir makine için pizza, biftek ve suşi resimlerini içeren bir zip dosyasını çıkarma örneğini kullanıyorlar. Eğitmen, zipfile.extractall() yöntemini kullanarak zip dosyasının içeriğinin belirli bir dosya yoluna nasıl çıkarılacağını gösterir. Ayrıca, veri kümelerini indirmek için doğru bağlantının kullanıldığından emin olmanın önemini vurgulayarak, GitHub'dan yanlış bağlantı adresinin kopyalanmasından kaynaklanan koddaki bir hatayı da ele alıyorlar. Genel olarak, gösterilen işlem, PyTorch'ta kullanılmak üzere herhangi bir özel veri setini indirmek ve çıkarmak için kullanılabilir. Bir sonraki video, verileri daha ayrıntılı olarak keşfedecek.

  • 20:15:00 Bu bölümde eğitmen, veri hazırlama ve keşfetme yoluyla verilerle bütünleşmenin önemini tartışır. Veri setini hazırlamak için çok zaman harcamak gerektiğini vurgulayarak Abraham kayıp işlevinden uydurma bir alıntı paylaşıyor. Eğitmen daha sonra, standart bir görüntü sınıflandırma formatında olan, indirilen örnek verilerin her bir dizininde gezinir. Her dizin için bir dizin ağacı oluşturmak için OS dot walk işlevini kullanır ve her birinde bulunan dizinler ve resimler hakkında bilgi görüntüler. Son olarak eğitmen, eğitim ve test bölümlerini kurar ve bunlar için standart görüntü sınıflandırma kurulumunu gösterir.

  • 20:20:00 Bu bölümde eğitmen, genel bir veri seti klasörünün, ilgili görüntüleri içeren sınıf adlı alt dizinlere sahip eğitim ve test klasörlerini içerdiği standart görüntü sınıflandırma veri yapısını açıklar. Eğitmen, belirli veri türlerini depolamanın standartlaştırılmış yollarının, veri formatları için bir referans olarak var olduğunu not eder. Görüntü verilerini PyTorch ile kullanıma hazırlamak için, verileri tensörlere dönüştürmek için kod yazılır. Eğitmen, eğitim ve test görüntü dizinlerinin ilgili sınıf klasörlerini tuttuğu köpek ve kedi görüntülerini sınıflandırmak için gereken veri formatını vurgular. Eğitmen ayrıca bir görüntüyü görselleştirme planlarından ve bunu gerçekleştirmek için tüm görüntü yollarının alınmasını, rastgele bir görüntü yolunun seçilmesini, Pathlib modülünü kullanarak görüntü sınıfı adının alınmasını içeren koddan bahseder.

  • 20:25:00 Bu bölümde eğitmen, Pillow adlı Python resim kitaplığını kullanarak resimlerin nasıl açılacağını ve değiştirileceğini açıklıyor. İlk olarak, belirli bir klasör içindeki tüm görüntü yollarının bir listesini oluştururlar ve bu listeden rastgele bir görüntü seçmek için Python'un rastgele kitaplığını kullanırlar. Daha sonra görüntüyü açar ve görüntülerken aynı zamanda onunla ilgili meta verileri de çıkarırlar. Ayrıca eğitmen, görüntüleri yükleme ve işleme yöntemleri de dahil olmak üzere Torch Vision kitaplığının yeteneklerine genel bir bakış sağlar.

  • 20:30:00 Bu bölümde eğitmen, PIL kütüphanesini kullanarak resimlerle nasıl çalışılacağını ve resim meta verilerinin nasıl açılıp analiz edileceğini gösterir. Görüntü sınıfı, görüntü verilerinin depolandığı dizinin adıdır ve meta veriler, Yazdır işlevi kullanılarak elde edilir. Eğitmen daha sonra veri setinden pizza, suşi ve biftek gibi bazı rastgele yiyecek resimlerini gösterir ve veri setine aşina olmak için resimleri rastgele görselleştirmenin önemini açıklar. Eğitmen, izleyicilere bir sonraki bölüm için Matplotlib kullanarak bir görüntüyü görselleştirmeleri için küçük bir meydan okuma sunuyor.

  • 20:35:00 Bu bölümde eğitmen, görüntülerin ve verilerin matplotlib ile nasıl çizileceğini ve NumPy yöntemi NP kullanılarak görüntülerin nasıl dizilere dönüştürüleceğini gösterir. Şekil uyuşmazlığı sorunlarını önlemek için verilerin şeklini anlamanın önemi vurgulanır. Hap kitaplığı ve matplotlib için varsayılan biçim, renk kanallarının son biçimidir, ancak PyTorch varsayılan olarak renk kanallarının ilk biçimini kullanır. Eğitmen ayrıca farklı görüntülerin nasıl görselleştirileceğini ve verilere nasıl aşina olunacağını ve verileri PyTorch tensörlerine dönüştürerek PyTorch ile kullanmak üzere nasıl dönüştüreceğini gösterir.

  • 20:40:00 Bu bölümde eğitmen, hedef verileri PyTorch tensörlerine dönüştürme ve PyTorch veri kümeleri ve veri yükleyicileri oluşturma sürecini tartışır. Eğitmen, PyTorch belgelerini kullanarak görüntü klasörü modülüyle veri setlerinin nasıl oluşturulacağını gösterir ve veriler üzerinde belirli dönüşümlerin uygulanmasına izin veren transform parametresini tanıtır. Eğitmen daha sonra, veri setinin çeşitliliğini yapay olarak artırmak için görüntüleri 64x64 olarak yeniden boyutlandıran ve yatay düzlemde rastgele çeviren görüntü verileri için bir dönüşümün nasıl oluşturulacağını gösterir. Bu, argümanı olarak dönüşümlerin bir listesini alan transforms.compose yöntemi kullanılarak yapılır.

  • 20:45:00 Bu bölümde eğitmen, PyTorch'taki transforms modülünü kullanarak bir görüntünün nasıl bir torch tensöre dönüştürüleceğini açıklıyor. Bu, bir PIL görüntüsünü veya bir NumPy dizisini 0 ila 255 aralığındaki renk kanallarına sahip bir yükseklikten, 0 ila 255 aralığında şekil renk kanalları yükseklik genişliğine sahip bir torç kayan tensörüne dönüştüren "transforms.ToTensor()" işleviyle yapılır. 1. Eğitmen, verileri bu dönüşümden geçirmeyi önerir ve "transforms.Resize()" işlevini kullanarak görüntü şeklinin nasıl değiştirileceğini gösterir. Bu bölüm, veri artırma dönüşümleri dahil olmak üzere torchvision kitaplığında bulunan çeşitli dönüşümlerin tartışılmasıyla ve dönüştürülen görüntüleri keşfetmek için yaklaşan görselleştirme kodunun bir ön izlemesiyle sona erer.

  • 20:50:00 Bu bölümde eğitmen, görüntüleri bir yoldan rastgele örneklemeyi, yüklemeyi ve dönüştürmeyi ve ardından PyTorch kullanarak orijinal ve dönüştürülmüş sürümleri karşılaştırmayı gösterir. Kod, rastgele işlevin çekirdeğini ayarlamak için rastgele tohum işlevini kullanır ve görüntü yolları listesinden k görüntüyü rastgele örnekler. Eğitmen daha sonra orijinal ve dönüştürülmüş görüntüleri yan yana çizmek için bir satır ve n sütun içeren bir alt plan oluşturmak için matplotlib kitaplığını kullanır. Dönüştürülen görüntünün, matplotlib kitaplığının tercih edilen renk kanalları formatına uyması için şeklinin değiştirilmesi gerekir. Son olarak, kod orijinal ve dönüştürülmüş görüntülerin başlığını ayarlar ve süper başlığı görüntünün sınıf adına ayarlar.

  • 20:55:00 Videonun bu bölümünde eğitmen, PyTorch kullanan derin öğrenme modelleri için görüntü verilerini manipüle etmek üzere dönüşümlerin nasıl kullanılacağını gösteriyor. Eğitmen, dönüşümü veri dönüşümüne eşit olacak şekilde ayarlar; bu, görüntünün yeniden boyutlandırılacağı, rastgele yatay olarak çevrileceği ve bir tensöre dönüştürüleceği anlamına gelir. Ayrıca, eksenlerin sırasını değiştirerek verilerin şeklini yeniden düzenlemek için izin verme işlevinin nasıl kullanılacağını da gösterirler. Görüntüler daha sonra, derin öğrenme modelleriyle kullanım için ideal olan tensör formatında dönüştürülmüş görüntülerle orijinal ve dönüştürülmüş sürümleri yan yana gösterecek şekilde çizilir. Eğitmen, görüntünün boyutunun ayarlanabilecek bir hiper parametre olduğunu tavsiye ediyor ve izleyicileri PyTorch'ta bulunan geniş dönüşüm dizisini keşfetmeye teşvik ediyor.

Bölüm 22

  • 21:00:00 Bu bölümde eğitmen, resim klasörü seçeneğini kullanarak resim verilerinin nasıl yükleneceğini açıklar. Genel görüntü sınıflandırma formatında verilerin nasıl yükleneceğini göstermek için meşale görüş veri setleri modülünü kullanırlar. Daha sonra dönüşümlerin yardımıyla tüm özel görüntüleri tensörlere yüklemek için kullanılabilen önceden oluşturulmuş veri kümeleri işlevi, görüntü klasörü gösterilir. Eğitmen daha sonra eğitim veri setinin nasıl dönüştürüleceğini ve yine eğitim veri setiyle aynı şekilde dönüştürülecek olan bir test veri setinin nasıl oluşturulacağını gösterir. Son olarak, oluşturulan veri setlerinin çıktısını alırlar.

  • 21:05:00 Bu bölümde eğitmen, görüntüleri tensörlere yüklemek ve daha sonra bir PyTorch modeliyle kullanılabilecek bir ardışık düzen kullanarak dönüştürmek için PyTorch'taki görüntü klasörü işlevinin nasıl kullanılacağını açıklar. Sınıf adlarını bir liste veya sözlük olarak alma ve veri kümesinin uzunluğunu kontrol etme gibi, önceden oluşturulmuş veri yükleyiciyle birlikte gelen çeşitli özniteliklere nasıl erişileceğini ve bunların nasıl kullanılacağını gösterirler. Ek olarak, indeksleme kullanılarak eğitim veri setinden örneklerin ve etiketlerin nasıl görselleştirileceğini gösterirler.

  • 21:10:00 Kursun bu bölümünde eğitmen, bir görüntü veri setinin PyTorch için varsayılan veri formatı olan tensör formatına nasıl dönüştürüleceğini gösterir. Bir pizza görseli örneği kullanıyorlar ve ilişkili etiketinin nasıl alınacağını ve sayısal biçime dönüştürüleceğini gösteriyorlar. Ardından, tensör verileri hakkında, veri türü ve şekli gibi, daha sonra sorun giderme için yararlı olacak bazı önemli bilgileri yazdırırlar. Son olarak, matplotlib kullanarak görüntüyü çizerler ve başlığı, bu örnekte pizza olan sınıf adına ayarlarlar. Öğrencileri bunu farklı görüntülerle denemeye ve farklı dönüşümleri keşfetmeye teşvik ederler.

  • 21:15:00 Videonun bu bölümünde eğitmen, yüklenen görüntüleri PyTorch'ta veri yükleyicilere dönüştürme sürecini tartışıyor. Bir veri yükleyici, veri kümelerini tekrarlanabilir hale getirmeye yardımcı olabilir ve kullanıcıların toplu iş boyutunu özelleştirmesine ve bir seferde belirli sayıda görüntüyü görüntülemesine olanak tanır. Bu önemlidir, çünkü tüm görüntüler aynı anda yüklenirse belleğin tükenme riski vardır. Bu nedenle, görüntüleri toplu hale getirmek, mevcut tüm belleğin kullanılmasına yardımcı olur. Eğitmen, bir tren veri yükleyicisi oluşturmak için adım adım bir kılavuz sunmaya devam ediyor ve ayrıca verileri yüklemek için kaç CPU çekirdeğinin kullanılacağına karar veren işçi parametresi sayısı kavramını tanıtıyor.

  • 21:20:00 Bu bölümde eğitmen, PyTorch'ta eğitim ve test verileri için veri yükleyicilerin nasıl oluşturulacağını ve özelleştirileceğini tartışır. Veri kümelerinin nasıl başlatılacağını ve parti boyutu ve çalışan sayısı gibi veri yükleyiciler için hiperparametrelerin nasıl özelleştirileceğini gösteriyor. Eğitmen ayrıca yükleyiciler arasında nasıl yineleme yapılacağını ve resimlerin ve etiketlerin şekli hakkında bilgi edinileceğini gösterir. Bölüm, yükleme sürecinin bir özeti ve görüntü tensörlerindeki kalıpları belirlemek için evrişimli bir sinir ağı oluşturma önerisiyle sona eriyor.

  • 21:25:00 Bu bölümde eğitmen, görüntü verilerini Tensor formatına yüklemek için özel bir veri yükleme sınıfı oluşturma sürecini tartışır. Amaç, iyi bir uygulama olduğundan ve önceden oluşturulmuş bir işlevin olmadığı durumlarda gerekli olabileceğinden, bu özel sınıf aracılığıyla görüntü klasörünün işlevselliğini çoğaltmaktır. Eğitmen, özel sınıfın görüntüleri yüklemesi, sınıf adlarını liste olarak alması ve sınıfları veri kümesinden sözlük olarak alması için gerekli adımları listeler. Neredeyse her şeyden bir veri seti oluşturma esnekliğinin yanı sıra hata ve performans sorunları olasılığı da dahil olmak üzere, özel bir veri seti oluşturmanın artıları ve eksileri de tartışılmaktadır. Eğitmen daha sonra dosya sistemiyle çalışmak için işletim sistemi ve yol kitaplığı dahil olmak üzere özel sınıfı oluşturmak için gerekli modülleri içe aktarır.

  • 21:30:00 Bu bölümde, PyTorch'ta özel bir veri kümesi oluşturmayı öğreniyoruz ve hedef dizinden sınıf adlarını almak için bir işlev yazmaya odaklanıyoruz. Özel veri kümesi, bir dosyadan görüntüleri yüklemek, veri kümesinden sınıf adlarını almak ve veri kümesinden bir sözlük olarak sınıfları almak için kullanılacaktır. İşlev, hedef dizinde gezinmek ve sınıf adlarını almak için işletim sistemi tarayıcısını kullanacak ve sınıf adları bulunamazsa, dizin yapısında bir sorun olduğunu belirten bir hataya neden olacaktır. Daha sonra özel bir veri kümesi oluşturmak için torch.utils.data.Dataset'in alt sınıfını oluşturacağız.

  • 21:35:00 Videonun bu bölümünde eğitmen, bir dizini dize olarak alan ve sınıf adlarının bir listesini ve sınıf adlarını tam sayılara eşleyen bir sözlük döndüren "find_classes" adlı bir işlevin nasıl oluşturulacağını gösterir. İşlev, hedef dizini taramak ve sınıf adlarını almak için işletim sistemi tarayıcısını kullanır. Eğitmen ayrıca, sınıf adları bulunamadığında nasıl hata oluşturulacağını da gösterir. İşlev, herhangi bir dizin için kullanılabilir ve daha önce eğitim dizini için yapılan işlevselliği çoğaltır.

  • 21:40:00 Videonun bu bölümünde eğitmen, torch.utils.data.dataset'i alt sınıflandırarak özel bir veri kümesinin nasıl oluşturulacağını açıklıyor. Veri seti, anahtarlardan veri örneklerine, anahtarların hedeflere veya etiketlere atıfta bulunduğu ve bu durumda veri örneklerinin gıda görüntüleri olduğu bir haritayı temsil etmelidir. Alt sınıf, belirli bir anahtar için bir veri örneği getiren ve isteğe bağlı olarak veri kümesinin boyutunu döndürmek için len yönteminin üzerine yazan get item yöntemini geçersiz kılmalıdır. Eğitmen, özel veri kümesini oluşturma adımlarını adım adım anlatıyor ve sınıf adlarını tamsayılara eşlemek için önceki bölümde oluşturduğumuz yardımcı işlevin nasıl kullanılacağını açıklıyor.

  • 21:45:00 Bu bölümde, eğitmen PyTorch'ta özel bir veri kümesinin nasıl oluşturulacağını açıklar. Bunu yapmak için, torch.utils.data.Dataset sınıfını alt sınıflamamız ve hedef dizini (verilerin bulunduğu yer) ve dönüştürmeyi (herhangi bir veri dönüştürmesi gerçekleştirmek için) geçirerek özel veri kümemizi başlatmamız gerekir. Ek olarak, ID X için yollar, dönüşüm, sınıflar ve sınıf gibi çeşitli öznitelikler oluşturmamız gerekiyor. Ayrıca, görüntüleri yüklemek için bir işlev oluşturmamız, veri setimizin uzunluğunu döndürmek için LAN yöntemini geçersiz kılmamız ve almamız gerekiyor. Bir dizini geçtiğinde belirli bir örneği döndürmek için item yöntemi. Son olarak, pathlib uygulayarak ve test veya tren dizinleri gibi hedef dizinleri geçirerek özel bir veri kümesi yazıyoruz.

  • 21:50:00 Bu bölümde eğitmen, özel bir PyTorch veri kümesi sınıfı oluşturmanın içerdiği farklı adımları açıklıyor. İlk adım, doğru dosya adı kuralını izleyen tüm görüntü yollarının alınmasını içerir. Bir sonraki adım, isteğe bağlı olabilen bir dizi görüntü dönüşümü oluşturmaktır. Ayrıca, bir dizin alan ve bir görüntü döndüren, görüntüleri yüklemek için bir işlev de oluşturulur. Eğitmen daha sonra isteğe bağlı olan veri kümesindeki toplam örnek sayısını döndürmek için "len" yönteminin nasıl geçersiz kılınacağını gösterir. Son olarak, "öğeyi al" yönteminin üzerine yazılır, böylece bir dizin geçirilirse belirli bir örneği döndürür.

  • 21:55:00 Bu bölümde, verilerin PyTorch'a yüklenme şeklini özelleştirmek için torch.utils.data.Dataset alt sınıflarını öğreniyoruz. Sınıf, bir kök dizin ve sınıf adlarını dizinlere eşleyen bir sözlükle başlatılır. __len__ yöntemi, veri kümesinin uzunluğunu döndürürken, __getitem__, bir torç tensör görüntüsünün ve karşılık gelen tamsayı etiketinin bir demetini döndürmek için veri kümesine indekslemeye izin verir. Sınıfın ayrıca, tanımlama grubunu döndürmeden önce görüntüye dönüşümler uygulamak için isteğe bağlı bir dönüştürme parametresi vardır. Torç.utils.data.Dataset alt sınıflandırmasının avantajları, sunduğu özelleştirme yetenekleridir, ancak hatalara açık olabilecek önemli miktarda kod yazmayı gerektirir.
PyTorch for Deep Learning & Machine Learning – Full Course
PyTorch for Deep Learning & Machine Learning – Full Course
  • 2022.10.06
  • www.youtube.com
Learn PyTorch for deep learning in this comprehensive course for beginners. PyTorch is a machine learning framework written in Python.✏️ Daniel Bourke develo...
 

Derin Öğrenme ve Makine Öğrenimi için PyTorch – Tam Kurs (23-26. bölümlerin açıklaması)


Derin Öğrenme ve Makine Öğrenimi için PyTorch – Tam Kurs

Bölüm 23

  • 22:00:00 Bu bölümde eğitmen, Torchvision modülünü kullanarak PyTorch'ta özel bir veri kümesinin nasıl oluşturulacağını gösterir. Ham JPEG görüntülerini tensörlere dönüştürmek için bir dönüşüm oluştururlar ve tren ve test dönüşümleri oluştururlar. Daha sonra özel görüntü klasörü sınıfını test ederler ve kendi özel veri kümelerinde çalışıp çalışmadığına bakarlar. Düzgün çalıştığından emin olmak için uzunluk ve sınıf niteliklerini kontrol ederler. Son olarak, her şeyin beklendiği gibi çalıştığını doğrulamak için özel tren verilerini inceler ve özel verileri test ederler.

  • 22:05:00 Derin Öğrenme ve Makine Öğrenimi için PyTorch tam kursunun bu bölümünde eğitmen, sınıfı ID ile karşılaştırarak orijinal görüntü klasörü veri kümesi ile önceki bölümde oluşturduğu özel veri kümesi arasındaki eşitliğin nasıl kontrol edileceğini gösterir. Her iki veri kümesinin X'i. Kendi özel veri kümesi yükleme işlevimizi oluşturarak görüntü klasörü veri kümesi sınıfının ana işlevselliğini çoğaltabileceğimizi onaylıyor ve bundan alınacak dersler, PyTorch'un miras alınacak bir temel veri kümesi sınıfı sağlaması ve araziyi geçersiz kıldığımız sürece ve öğe yöntemlerini alıp bir tür değerler döndürerek, kendi veri seti yükleme işlevimizi oluşturabiliriz. Eğitmen, verilerimizi görselleştirmek için eğitimli veri özel sınıfından rastgele görüntüler gösteren bir işlevin nasıl oluşturulacağını açıklamaya devam eder.

  • 22:10:00 Bu bölümde eğitmen, parametre olarak bir "veri seti", "sınıflar" ve "n" alan "rastgele görüntüleri göster" adlı bir işlev oluşturma adımlarını gözden geçirir. İşlev, veri kümesinden rastgele seçilen n sayıda görüntüyü görüntüler ve "görüntü şekli" doğru olarak ayarlanmışsa şeklini yazdırır. Eğitmen ayrıca, n 10'dan büyükse gösterimi ayarlamak ve yeniden üretilebilirlik için rasgele çekirdeği ayarlamak gibi uygulama ayrıntılarını da ele alır. Ek olarak, işlev rastgele örnek görüntüler veya dizinler arasında döngü yapar ve bunları Matplotlib ile çizer.

  • 22:15:00 Bu bölümde eğitmen, çizimi ayarlayarak ve görüntülerinin boyutlarının matplotlib ile aynı hizada olduğundan emin olarak PyTorch'ta derin öğrenme modelini oluşturmaya devam ediyor. Çizim için tensör boyutlarını ayarlarlar, matplotlib çizimlerine bir alt çizim eklerler ve bir sınıf listesi olan sınıflar değişkenine göre çizimin başlığını ayarlarlar. Ardından, hem yerleşik pytorch görüntü klasörü hem de eğitmen tarafından oluşturulan özel veri seti için görüntü klasöründen rastgele görüntüleri görüntülemek üzere bir işlev oluştururlar. Son olarak, çizimi ayarlamak için kodlarının ne kadar mantıklı olduğunu görmek için çekirdeği ayarlarlar ve görüntüleri çizerler.

  • 22:20:00 Transkriptin bu bölümünde eğitmen, özel olarak yüklenmiş bir görüntü veri setinin nasıl veri yükleyicilere dönüştürüleceğini gösterir; bu, görüntüleri toplu hale getirmek ve bir modelle kullanmak için gerekli bir adımdır. Torchvision.datasets.ImageFolder ve torchvision.transforms kullanılarak, özel veri seti bir tensör biçimine dönüştürülür. Bir sonraki adım, torch.utils.data.DataLoader kullanarak veri setini veri yükleyiciye dönüştürmektir. Eğitmen, hem özel tren veri yükleyicisi hem de özel test verisi yükleyicisi için parti boyutunu 32'ye ve çalışan sayısını 0'a ayarlar. Aralarındaki fark, tren verilerinin karıştırılması, test verilerinin karıştırılmamasıdır.

  • 22:25:00 Bu bölümde video, özel veri yükleyicileri ve PyTorch'ta veri dönüştürmeyi konu alıyor. Eğitmen önce OOS CPU sayısını sıfırlar ve eğitimin sorunsuz çalışmasını sağlamak için uyuşuk çalışanları sıfıra ayarlar. Özel veri yükleyiciyi kurduktan sonra, daha önce ayarlanan dönüşüm tarafından 32'ye ayarlanan görüntü şeklini ve yığın boyutunu kontrol etmek için yazdırma işlevini kullanır. Eğitmen ayrıca veri artırmanın eğitim veri setinin çeşitliliğini yapay olarak nasıl artırabileceğini açıklar ve yeniden boyutlandırma, merkez kırpma, gri tonlama, rastgele dönüşümler ve rastgele büyütme dahil olmak üzere meşale görüntü dönüşümleri modülü kullanılarak verilerin dönüştürülebileceği çeşitli yolları gösterir. .

  • 22:30:00 , çeşitli görüntü dönüşümleri uygulayarak eğitim verilerinize yapay olarak çeşitlilik ekleme süreci olan veri artırmayı öğrendi. Bu, modeli görünmeyen veriler için daha genelleştirilebilir hale getirmeye yardımcı olur. Kırpma, değiştirme, yamultma ve daha fazlası gibi birçok farklı türde veri büyütme vardır. PyTorch, modellerin iyi performans göstermesi için eğitilmesine yardımcı olabilecek ilkel öğeleri veya işlevleri içeren bir meşale görüş paketine sahiptir. PyTorch, veri artırma ve diğer geliştirmeleri kullanarak, ResNet 50 modeli gibi son teknoloji modelleri yüksek doğrulukla eğitmeyi başardı.

  • 22:35:00 Bu bölümde eğitmen, öğrenme oranı optimizasyonu, daha uzun süre eğitim ve farklı güçlendirme teknikleri kullanmak gibi model doğruluğunu geliştirmenin yollarını tartışır. Eğitmen, bir dizi büyüklük kutusu kullanarak görüntüleri çeşitli şekillerde değiştirmek için rastgeleliğin gücünden yararlanan önemsiz artırma tekniğine odaklanır. Eğitmen, PyTorch Torch Vizyon Dönüşümleri kitaplığını kullanarak önemsiz artırmanın nasıl uygulanacağını gösterir ve bu konuda daha fazlasını okumak isteyenler için makaleye bir bağlantı sağlar. Ek olarak, eğitmen, bireysel problemler için neyin en iyi olduğunu görmek için farklı büyütme teknikleri ve deneyleri denemeyi önerir. Son olarak eğitmen, tüm görüntü yollarını alarak ve belirli bir modelle eşleşen tüm dosya ve klasörleri toplayarak büyütme boru hattının nasıl test edileceğini gösterir.

  • 22:40:00 Bu bölümde video, bir eğitim veri kümesine yapay olarak çeşitlilik eklemek için görüntülerin dönüştürülmesinde bir veri artırma tekniği olan önemsiz artırmanın kullanımını gösteriyor. Rastgeleliğin gücü, farklı güçlendirme türleri arasından seçim yapılarak ve bunlar değişen yoğunluk seviyelerinde uygulanarak kullanılır. Bu bölüm, önemsiz artırmanın rastgele dönüştürülmüş görüntülere nasıl uygulandığını gösterir ve sonuçlar görüntülenir. Amaç, makine öğrenimi modelinin manipüle edilmiş görüntülerin kalıplarını öğrenmesini ve buna göre tanımlayabilmesini sağlamaktır. Bir sonraki bölüm, küçük VGG mimarisini kullanarak veri artırma olmadan ilk bilgisayarla görme modelini oluşturmaya odaklanıyor.

  • 22:45:00 Bu bölümde sunum yapan kişi, bir PyTorch modeli için dönüşümler oluşturma ve veri yükleme sürecinden geçer. Amaç, veri klasöründen, bu durumda pizza, biftek ve suşi görüntüleri yüklemek ve bunları tensörlere dönüştürmektir. Dönüşümler, görüntülerin 64x64'e yeniden boyutlandırılmasını ve değerlerin 0 ile 1 arasında olması için tensörlere dönüştürülmesini içerir. Sunum yapan kişi ayrıca veri yükleyicilerin nasıl oluşturulacağını ve toplu iş boyutunun ve verileri yüklemeye ayrılmış CPU çekirdeği sayısının nasıl ayarlanacağını açıklar. Bu örnekte kullanılan parti boyutu 32'dir.

  • 22:50:00 Bu bölümde eğitmen, PyTorch'un DataLoader'ını kullanarak verileri nasıl yükleyeceğinizi ve dönüştüreceğinizi açıklıyor. İşlem, bir dönüşüm oluşturmayı ve ardından DataLoader işlevini kullanarak verileri aynı anda yüklemeyi ve dönüştürmeyi içerir. Eğitmen ayrıca, COM, ReLU, MaxPool ve ComToD gibi katmanlardan oluşan ilk COM bloğunun oluşturulmasını içeren, Tiny VGG mimarisini sıfırdan oluşturmak için basit bir kod sağlar. Model, giriş şekli, gizli birimler ve çıkış şekli parametreleri ile başlatılır. Eğitmen, öğrencileri çekirdek boyutu ve adım gibi hiperparametreler için farklı değerlerle denemeye teşvik eder.

  • 22:55:00 Bu bölümde, PyTorch kullanarak evrişimli bir sinir ağının oluşturulmasını görüyoruz. Ağ için evrişim bloklarını ve maksimum havuzlama katmanlarını tanımlayarak başlıyoruz. Ardından, aynı bloğu başka bir blok oluşturmak için çoğaltıyoruz ve giriş şeklini çıkış şekline uyacak şekilde değiştiriyoruz. Bunu takiben, evrişimli blokların çıktısını bir özellik vektörüne dönüştürmek için bir sınıflandırıcı katmanı oluşturuyoruz ve bunu doğrusal bir katmandan geçirerek on sınıf çıkarıyoruz. Son olarak, verileri evrişimli bloklardan geçirmek ve her adımda şeklini yazdırmak için ileri yöntemi geçersiz kılıyoruz. İletme yöntemi, GPU hesaplamasını hızlandıran operatör füzyonunu içerecek şekilde yeniden yazılabilir.

Bölüm 24

  • 23:00:00 Bu bölümde eğitmen, derin öğrenme derleyicilerindeki en önemli optimizasyon olan operatör birleştirme kavramını tartışır. Ayrıca RGB renkli görüntüler için küçük VGG mimarisini kullanarak bir model oluştururlar ve girdi ve çıktı şekillerini kontrol ederler. Eğitmen, bellek ve bilgi işlem arasında taşımayı önleyerek büyük sinir ağlarının hesaplamasını hızlandırmak için operatör füzyonunu kullanmanın önemini vurgular. Ayrıca, sorunu gidermek ve iletme yönteminin doğru çalıştığından emin olmak için sahte verilerin modelden geçirilmesini önerirler. Son olarak, girdi tiplerindeki bir uyumsuzluktan dolayı görüntü grubunu modele geçirmeye çalışırken bir hata mesajı gösteriliyor.

  • 23:05:00 Bu bölümde, eğitmen model için bir şekil hatasını gideriyor. Tensörleri doğrusal katmanlardan geçirirken matris çarpım kurallarının karşılanması gerektiğini açıklıyorlar. Eğitmen matris şekillerini inceler ve gizli birimlerin sayısını temsil eden 10'un 2560 ile çarpıldığında bir soruna neden olduğunu belirler. 2560'ı elde etmek için 10'un 16x16 ile çarpılması gerektiğini belirlemek için önceki katmanın çıktı şeklini kullanır. bunu ve modelin şekillerinin CNN açıklayıcısının çıktısıyla hizalandığını doğrulayarak, daha fazla sorun gidermeye geçerler ve sonunda evrişimli katmanlardan dolguyu kaldırmanın şekilleri CNN açıklayıcısının çıktısıyla hizalayacağını keşfederler.

  • 23:10:00 Bu bölümde eğitmen, kullanıcıların PyTorch modellerinin bir özetini çıktı almalarını sağlayan bir paket olan Torch Info'yu tanıtıyor. İlk olarak eğitmen, forward yöntemindeki print ifadelerini yorumlar ve pip install komutunu kullanarak Torch Info'yu Google CoLab'a yükler. Eğitmen daha sonra Torch Info'dan özeti içe aktarır ve bunu modele iletmek için kullanır ve modelden akan verilerin şekillerini elde etmek için bir girdi boyutu kullanır. Eğitmen, Torch Info'nun katmanlar ve bunlara karşılık gelen şekiller de dahil olmak üzere modelin bir özetini nasıl yazdırdığını gösterir.

  • 23:15:00 Bu bölümde konuşmacı, bir PyTorch modelindeki her katmanın giriş ve çıkış şekilleri hakkında fikir vermek için kullanılan meşale bilgi paketini tartışıyor. Paketin ayrıca her katmandaki parametre sayısı hakkında bilgi sağladığını ve bunun gelecekteki uygulamalar için model boyutunu ve depolama kısıtlamalarını belirlemede yardımcı olabileceğini açıklıyorlar. Konuşmacı, bir model büyüdükçe ve daha fazla katmana sahip oldukça, daha fazla parametreye sahip olacağını ve bunun da daha büyük bir girdi boyutu ve tahmini toplam boyutla sonuçlanacağını belirtiyor. Bir sonraki bölümde, konuşmacı özel bir veri kümesini eğitmeye doğru ilerliyor ve genel olan ve hemen hemen her model ve veri yükleyiciyle kullanılabilen iki işlev (eğitim adımı ve test adımı) oluşturuyor. Tren adımı işlevi, bir model, bir veri yükleyici, bir kayıp işlevi ve bir optimize edici alır ve değerlendirme ölçümlerini ayarlarken modeli tren moduna alır.

  • 23:20:00 Bu bölümde, konuşmacı PyTorch'ta bir tren döngüsü işlevi için tren kaybı ve tren doğruluk değerlerinin ayarlanmasını tartışıyor. Veriler, veri yükleyici kullanılarak döngüye alınır ve her parti için, tahminlerde bulunmak ve kaybı hesaplamak için ileri geçiş yapılır. Optimize edici daha sonra geri yayılımı gerçekleştirmek ve bir adım atmak için kullanılır. Tren döngüsü tamamlandıktan sonra, tahmin edilen sınıf alınıp doğru etiketlerle karşılaştırılarak doğruluk hesaplanır. Bu, toplu iş döngüsünün dışında yapılır; burada tren kaybı ve tren doğruluğu tüm gruplarda dönem başına ortalamayı alacak şekilde ayarlanır. Konuşmacı daha sonra izleyicileri bir test döngüsü işlevi yazmaya davet eder.

  • 23:25:00 Bu bölümde eğitmen, bir PyTorch derin öğrenme modelinin performansını bir veri kümesi üzerinde değerlendirmek için bir test adımı oluşturma sürecinden geçer. Adım, modeli değerlendirme modunda kurmayı, veri kümesinin grupları arasında döngü yapmayı, verileri hedef cihaza göndermeyi, ileri geçiş yapmayı, toplu iş başına kayıp ve doğruluğu hesaplamayı, kayıp ve doğruluğu toplamayı ve metrikleri ayarlamayı içerir. ortalama değerleri elde etmek için Eğitmen daha sonra, bir sonraki bölümde ele alınacak olan modeli eğitme sürecini işlevselleştirmek için bir tren işlevi oluşturmayı önerir.

  • 23:30:00 Bu bölümde eğitmen, tren adımı ve test adımı fonksiyonlarını birleştiren bir tren fonksiyonu oluşturma sürecini adım adım anlatmaktadır. Buradaki fikir, yalnızca bir işlev çağrısıyla bir modeli eğitmek ve değerlendirmek için bu işlevlerin her ikisini de çağıracak bir işlev oluşturmaktır. Tren işlevi, optimize edici, veri yükleyiciler, kayıp işlevi ve diğerleri dahil olmak üzere bir dizi model parametresini alır. Eğitmen daha sonra, eğitim ve test kaybı ve doğruluğu dahil olmak üzere, modelin eğitirken performansını izlemeye yardımcı olmak için boş bir sözlük oluşturur. Daha sonra, model eğitilirken bir ilerleme çubuğu almak için TQDM'yi arayarak dönemler arasında dolaşırlar. Tren işlevi, daha fazla model eğitirken ve mevcut koddan yararlanırken kodu yeniden yazmak zorunda kalmamak için yararlı bir araçtır.

  • 23:35:00 Bu bölümde eğitmen, sırasıyla train ve test adımı fonksiyonlarını kullanarak eğitim ve testi takip eden train fonksiyonunu açıklar. İşlev, belirli sayıda dönem için çalışacak ve her dönem için, süslü bir baskı ifadesi kullanarak tren ve test kaybını ve doğruluğunu yazdıracaktır. Sonuçlar, daha sonra analiz için kullanılmak üzere sonuçlar sözlüğünde saklanacaktır. Tren işlevi, modeli güncellemek ve sırasıyla test etmek için tren adımı işlevinden ve test adımı işlevinden yararlanacaktır. İşlev, çağın sonuçlarını döndürür.

  • 23:40:00 Bu bölümde eğitmen, veri hazırlama, bir model oluşturma ve seçme, bir eğitim döngüsü oluşturma ve şimdi de bir kayıp işlevi ve bir optimize edici oluşturma zorluğunu içeren PyTorch iş akışında kaydedilen ilerlemeyi gözden geçiriyor. Eğitmen, bölüm 7.7'ye geçerek, model sıfırın, temel modelin kendi özel veri kümelerinde nasıl eğitileceğini ve değerlendirileceğini adım adım anlatıyor. Tekrar üretilebilirlik için rasgele tohumları ayarlarlar, renkli görüntüler için üç giriş şekliyle minik VGG modelini başlatırlar, gizli birimlerin sayısını ve çıktı şeklini eğitim veri kümelerindeki sınıf sayısıyla eşleşecek şekilde ayarlarlar. Ayrıca çoklu sınıf sınıflandırması için çapraz entropi kaybı fonksiyonunu seçerler ve 0.001 öğrenme oranıyla Adam iyileştiriciyi denerler.

  • 23:45:00 Bu bölümde, eğitmen bir derin öğrenme modelinin eğitim sürecinin nasıl zamanlanacağını gösterir. Önce time'dan varsayılan zamanlayıcı sınıfını içe aktarırlar ve ardından önceki bir videodaki tren işlevini kullanarak eğitim modeli sıfırdan önce zamanlayıcıyı başlatırlar. Daha sonra, veri yükleyiciyi basit eğitmek için tren verilerini ve veri yükleyiciyi basit test etmek için test verilerini, ayrıca optimize ediciyi FriendlyAtomOptimizer'a ve kayıp işlevini n çapraz entropi kaybına ayarlarlar. Model beş dönem için eğitilir ve toplam eğitim süresini görüntülemek için zamanlayıcı sonlandırılır. Eğitmen daha sonra sırasıyla %40 ve %50 civarında olan eğitim ve test setlerinde modelin doğruluk sonuçlarını gösterir. Daha fazla katman veya gizli birim eklemek, daha uzun süre uydurmak, aktivasyon fonksiyonlarını değiştirmek ve öğrenme oranını ayarlamak gibi modeli geliştirmek için farklı yöntemler denemeyi önerirler.

  • 23:50:00 Bu bölümde eğitmen, modelin zaman içindeki ilerlemesini izlemek için kayıp eğrilerinin nasıl çizileceğini açıklar. Kayıp eğrisi, soldaki kayıp değerini ve alt eksendeki adımları görselleştirerek bir modelin zaman içindeki ilerlemesini izlemenin bir yoludur. Sonuç sözlüğümüzün tren ve test kayıp ve doğruluk değerlerini matplotlib kullanarak çizerek, modelimizin nasıl performans gösterdiğini görebilir ve değerlendirebiliriz. Eğitmen, kayıp ve doğruluk değerlerini bir dizi ve değişkenlerin bir listesi olarak içeren bir sonuç sözlüğünü alan "def plot Loss Curves" adlı bir işlev yazar.

  • 23:55:00 Bu bölümde eğitmen, zaman ölçüsü olarak dönemleri kullanarak hem eğitim hem de test verileri için kayıp eğrilerinin nasıl oluşturulacağını gösterir. Arsa, her biri için etiketler ve başlıklar içeren, biri kayıp ve diğeri doğruluk için olmak üzere iki alt plandan oluşur. Bir kayıp eğrisi için ideal eğilim, kaybın zamanla azalması ve doğruluğun artmasıdır. Eğitmen, izleyiciyi, kaybın optimal değere ulaşıp ulaşmadığını görmek için ek çağlarla denemeye teşvik eder. Bir sonraki video, kayıp eğrilerinin farklı biçimlerini ele alacak ve eğitmen, kayıp eğrilerinin yorumlanması konusunda bir rehber önerecektir.

Bölüm 25

  • 24:00:00 Derin Öğrenme ve Makine Öğrenimi için PyTorch kursunun bu bölümünde eğitmen, kayıp eğrilerini ve bunların bir modelin zaman içindeki performansını değerlendirmedeki önemini tartışır. Bir kayıp eğrisi, zaman içinde azalan kayıp ve artan doğruluk eğilimi göstermelidir. Farklı kayıp eğrileri vardır ve ideal bir kayıp eğrisi, eğitim ve test kaybının benzer oranda azaldığını gösterir. Yetersiz uyum, modelin kaybı daha düşük olduğunda meydana gelirken, aşırı uyum, model eğitim verilerini çok iyi öğrendiğinde meydana gelir ve test kaybından daha düşük bir eğitim kaybına yol açar. Eğitmen, Google'ın kayıp eğrisi kılavuzundan ekstra müfredat sağlar ve normalleştirme teknikleri ve model karmaşıklığını azaltma gibi fazla uydurmayı ele alan yöntemleri tartışır.

  • 24:05:00 Bu bölümde ele alınan derin öğrenme modelinizde fazla uydurmayı azaltmanın birkaç yolu. Veri artırma veya daha iyi veri kalitesi yoluyla daha fazla veri elde etmek, modelinizin daha genelleştirilebilir kalıpları öğrenmesine yardımcı olabilir. Önceden eğitilmiş modellerden öğrenilen kalıpları alarak ve bunları kendi veri kümenize uygulayarak transfer öğrenmeyi kullanmak da etkili olabilir. Katman veya gizli birimlerin sayısını azaltarak modelinizi basitleştirmek de yardımcı olabilir. Öğrenme oranı düşüşü, öğrenme oranını zaman içinde azaltarak yardımcı olabilir ve erken durdurma, aşırı uyum oluşmadan eğitim sürecini durdurabilir.

  • 24:10:00 Bu bölümde, erken durdurma kavramı, makine öğreniminde fazla uydurma ile başa çıkmak için bir yöntem olarak ele alınmaktadır. Test hatası artmaya başlamadan önce, modelin test hatası izlenir ve modelin eğitimi durdurulur veya model kaybının en düşük olduğu ağırlıklar/desenler kaydedilir. Modele daha fazla katman/birim eklemek, öğrenme oranını ayarlamak, daha uzun süre eğitim vermek ve transfer öğrenmeyi kullanmak gibi yetersiz uyumla başa çıkmak için farklı yöntemler de araştırılır. Fazla uydurma ve yetersiz uydurma arasındaki denge vurgulanır ve bir modelin zaman içindeki performansını kayıp eğrileri kullanarak değerlendirmenin önemi vurgulanır. Son olarak, modelin aşırı düzenli hale getirilmesini ve yetersiz uyumla sonuçlanmasını önlemenin yolları tartışılmakta ve yetersiz uyum ile fazla uyum arasında doğru bir denge sağlama hedefi vurgulanmaktadır.

  • 24:15:00 Videonun derin öğrenme ve makine öğrenimi için PyTorch'taki bu bölümünde eğitmen, modellerde fazla uydurma ve yetersiz uydurma kavramlarını ve bunlarla başa çıkma yollarını tartışıyor. Veri büyütme, eğitim veri setinin çeşitliliğini artırmak için görüntülerin manipüle edildiği, fazla uydurma ile başa çıkmak için tanıtılan yöntemlerden biridir. Eğitmen daha sonra, eğitim ve test veri kümeleri ve veri yükleyiciler oluşturmak için bu dönüşümleri kullanarak veri artırma ve veri yükleme ile bir dönüşümün nasıl oluşturulacağını göstermeye devam eder. Video, belirli bir soruna en uygun modeli bulmak için çeşitli ince ayarlar ve dönüşümlerle farklı modelleri denemenin önemini vurguluyor.

  • 24:20:00 Videonun bu bölümünde eğitmen, PyTorch dönüşümlerini ve ImageFolder sınıfını kullanarak bir veri seti ve veri yükleyici oluşturma sürecini adım adım anlatıyor. Kod örnekleri sağlarlar ve izleyicileri isterlerse kendi başlarına test etmeye teşvik ederler. Veri seti, hem eğitim hem de test klasörleri için pizza, biftek ve suşi görüntülerinden oluşturulmuştur. Eğitmen aynı zamanda defter boyunca benzer isimlerle çalışırken değişken isimleriyle anlaşılır olmanın önemini tartışır. Hem eğitim hem de test veri setleri için veri yükleyicileri kurdular, eğitim veri seti önemsiz büyütme geniş işleviyle artırıldı. Eğitmen daha sonra izleyicilere küçük VGG sınıfını ve tren işlevini kullanarak birinci modeli oluşturmalarını ve eğitmelerini önerir.

  • 24:25:00 PyTorch tam kursunun bu bölümünde eğitmen, izleyiciyi öncekiyle aynı mimariyi kullanarak ancak artırılmış eğitim verileriyle yeni bir model oluşturma ve eğitme sürecinde yönlendirir. Amaç, bu modelin performansını veri artırma olmadan temel modelle karşılaştırmaktır. Eğitmen, küçük VGG modeli için önceden oluşturulmuş sınıfı kullanır ve yeniden üretilebilirlik için manuel bir tohum ayarlar. Daha sonra kayıp işlevini ve optimize ediciyi tanımlar, hiperparametreleri ayarlar ve zamanlayıcıyı başlatırlar. Son olarak eğitmen, önceden oluşturulmuş tren işlevini çağırarak, modeli ve veri yükleyicileri ileterek ve sonuçları değerlendirerek modeli eğitir.

  • 24:30:00 Bu bölümde eğitmen veri arttırmalı ikinci modelin eğitimine devam eder ve veri arttırmasız ilk model kadar performans göstermediğini gösterir çünkü zaten kayıp düşüyordu ve oradaydı. fazla uygun değildi. Eğitmen daha sonra kayıp eğrilerini çizmek için bir fonksiyon sunar ve bunu ikinci modelin performansını değerlendirmek için kullanır. Kayıp eğrisi, eğitim kaybına kıyasla daha yüksek test kaybıyla gösterilen, modelin yetersiz ve muhtemelen fazla uyumlu olduğunu gösterir. Eğitmen daha sonra, daha fazla veri elde etme, modeli basitleştirme, transfer öğrenmeyi kullanma veya daha fazla katman ekleme gibi seçenekler önererek, modelde hem yetersiz hem de fazla uydurmayı ele almak için neler yapılabileceği sorusunu sorar.

  • 24:35:00 Bu bölümde eğitmen, model sonuçlarını karşılaştırmanın önemini tartışır ve farklı deneyleri izlemek için PyTorch artı TensorBoard ve ağırlıklar ve önyargılar gibi bazı araçlar sağlar. Ancak, bu kursun şimdilik sadece saf PyTorch'a odaklanacağını vurguluyor. Eğitmen daha sonra, model sonuçlarının her biri için veri çerçevelerini kullanarak model sonuçlarını yan yana karşılaştırmak için bir grafik oluşturur. Ayrıca, iyileşip gelişmediğini görmek için model sıfırı daha uzun süre eğitmek için bir deney yapmayı öneriyor. Sonuç olarak, farklı deneyleri ve ölçümlerini birbirleriyle görsel olarak karşılaştırmak, modelleri geliştirmek için çok önemlidir.

  • 24:40:00 Bu bölümde, eğitmen denedikleri iki modeldeki farklı ölçümleri karşılaştırmak için alt grafikler kullanır. Çağ sayısı için bir aralık oluşturarak başlarlar ve ardından PLT.subplot() ve PLT.plot() kullanarak tren kaybı için bir grafik oluştururlar. Hem eğitim hem de test verileri için test kaybı ve doğruluğu için aynı şeyi yaparlar. Eğitmen, veri artırmayı uygulayan birinci modelin bu aşamada fazla uyumlu göründüğüne, sıfır modelinin ise kayıp açısından daha iyi performans gösterdiğine dikkat çekiyor. Eğitmen, karşılaştıracak daha fazla modelleri olsaydı, bunu potansiyel olarak bir işleve dönüştürebileceklerini öne sürüyor, ancak aynı zamanda TensorBoard, ağırlıklar ve sapmalar ve MLflow gibi araçların çok sayıda deney yapıldığında bu grafikleri anlamlandırmaya yardımcı olabileceğini de belirtiyor.

  • 24:45:00 Bu bölümde konuşmacı, modelleri yalnızca eğitim veri kümesi yerine test veri kümesinde ne kadar iyi performans gösterdiklerine göre değerlendirmenin önemini tartışıyor. Eğitim veri setindeki ölçümler iyi olsa da nihai hedefin, modelin görünmeyen veriler üzerinde iyi performans göstermesini sağlamak olduğunu öne sürüyorlar. Konuşmacı, modellerin daha uzun süre eğitilmesini ve daha iyi sonuçlar elde etmek için muhtemelen her katmana daha fazla gizli birim eklenmesini önerir. Daha sonra, örnek olarak bir gıda tanıma uygulaması kullanarak, eğitim veya test veri setinde olmayan özel görüntüler üzerinde nasıl tahminde bulunulacağını göstermeye geçerler. Eğitimli bir PyTorch modeli kullanarak özel bir görüntü indirme ve tahmin yapma iş akışını açıklar, ancak mevcut modelin çok iyi performans göstermeyebileceğine dikkat çeker.

  • 24:50:00 Bu bölümde eğitmen, pizzanın özel bir görüntüsünün nasıl indirileceğini ve eğittikleri modeli kullanarak tahmin için nasıl hazırlanacağını gösterir. Görüntü, ham GitHub URL'si kullanılarak indirilir ve veri klasörüne kaydedilir. Eğitmen, özel görüntünün, modeli eğitmek için kullanılan verilerle aynı formatta olması gerektiğini, özellikle de torch float 32 veri türü ve 64'e 64'e üç şeklinde bir Tensor formu olması gerektiğini not eder. Bir JPEG veya PNG'yi üç boyutlu bir RGB veya gri tonlama tensörüne okuyan meşale görüş paketi ve read_image işlevini kullanarak görüntünün PyTorch'a nasıl yükleneceğini gösterirler.

  • 24:55:00 Bu bölümde eğitmen, torch vision.io kullanarak özel bir görüntünün PyTorch'ta nasıl okunacağını ve onu tensöre nasıl dönüştüreceğini gösteriyor. Ayrıca görüntü hakkında şekli ve veri türü gibi meta verilerin nasıl alınacağını da gösteriyor. Eğitmen, görüntüyü bir modelden geçirmeden önce yeniden boyutlandırılması, float32'ye dönüştürülmesi ve doğru cihaza yerleştirilmesi gerekebileceğini not eder. Bir sonraki bölümde, bir PyTorch modeli kullanarak özel görüntü üzerinde nasıl tahmin yapılacağını göstermeyi planlıyor.

Bölüm 26

  • 25:00:00 Bu bölümde eğitmen, derin öğrenmede veri türleri ve şekillerinin önemini ve bunlarla ilgili hataların nasıl düzeltileceğini tartışır. Eğitmen bir görüntü üzerinde tahminde bulunmaya çalışır ancak özel veriler, modelin orijinal olarak üzerinde eğitildiği veri türüyle aynı olmadığı için hatalarla karşılaşır. Özel görüntü tensörünü yeniden oluşturarak ve bunu torç şamandıra 32'ye dönüştürerek hatanın nasıl düzeltileceğini gösterirler. Eğitmen daha sonra özel görüntünün şekliyle ilgili başka bir sorunla karşılaşır ve görüntüyü yeniden boyutlandırmak için bir dönüştürme boru hattı oluşturarak nasıl düzeltileceğini gösterir. modelin eğitildiği boyutta.

  • 25:05:00 Bu bölümde eğitmen, PyTorch'un transforms paketinin bir girdi görüntüsünü dönüştürmek ve onu bir derin öğrenme modeli tarafından kullanıma hazırlamak için nasıl kullanılacağını gösterir. Özel bir görüntüye, görüntünün sıkıştırılmasına ve pikselleştirilmesine neden olan bir dönüştürme boru hattının nasıl uygulanacağını gösterirler. Eğitmen, bunun potansiyel olarak modelin doğruluğunu etkileyebileceğini belirtiyor ve performansı artırmak için daha büyük görüntü boyutlarıyla deneme yapılmasını öneriyor. Ayrıca, çıkarım için modelden geçmeden önce özel bir görüntüye parti boyutu eklemek de dahil olmak üzere tensör boyutlarının modelin gereksinimleriyle uyumlu olmasını sağlamanın önemini tartışıyorlar.

  • 25:10:00 Videonun bu bölümünde sunum yapan kişi, bir PyTorch modeli kullanarak özel görüntü verileri üzerinde nasıl tahminde bulunulacağını gösterir. Verileri doğru biçimlendirmenin ve hatalardan kaçınmak için modelin eğitildiği veri türü, şekli ve aygıtıyla aynı veri tipine, şekline ve aygıtına sahip olmasını sağlamanın önemini vurgularlar. Sunucu ayrıca, modelin ham çıktılarının veya logitlerin softmax işlevini kullanarak tahmin olasılıklarına nasıl dönüştürüleceğini de gösterir. Örnekte kullanılan model iyi performans göstermese de, özel veriler üzerinde tahmin yapma süreci gösterilmektedir.

  • 25:15:00 Videonun bu bölümünde eğitmen, özel görüntü tahmin sürecinin nasıl çalıştırılacağını gösterir. Bu işlev girdi olarak bir PyTorch modeli, bir görüntü yolu, bir sınıf adları listesi, bir dönüşüm ve bir aygıt alır. Görüntüyü TorchVision kullanarak yükler, biçimlendirir, tahmin etiketlerini alır ve görüntüyü başlık olarak tahminiyle birlikte çizer. Eğitmen, izleyicileri bu işlevi kendi başlarına oluşturmaya davet eder ve ardından videoda olası bir uygulamadan geçer. İşlev bu bölümde tam olarak uygulanmamıştır ve bir sonraki videoda devam edecektir.

  • 25:20:00 Bu bölümde PyTorch kullanarak özel veriler üzerinde nasıl tahmin yapacağımızı görüyoruz. İlk olarak, modelimizin düzgün bir şekilde işleyebilmesi için görüntü verilerini 0 ile 1 arasında olacak şekilde ölçeklendirmemiz gerekiyor. Ardından, herhangi bir dönüşüm gerekip gerekmediğini kontrol eder ve varsa görüntüyü içinden geçiririz. Ardından, modelin doğru cihazda olduğundan emin olur ve çıkarım moduna alırız. Modelimizin tahmin edeceği 1 parti boyutunu yansıtmak için görüntüye ekstra bir boyut da ekliyoruz. Sonra bir tahmin yaparız, ham logitleri softmax kullanarak tahmin olasılıklarına dönüştürürüz ve sonra bunları argmax kullanarak tahmin etiketlerine dönüştürürüz. Son olarak, tahmin ve tahmin olasılığının yanı sıra görüntünün bir grafiğini oluşturuyoruz. Bir sınıf adları listesi sağlanmışsa, işlev grafikteki her tahmin için sınıf adlarını çoğaltır.

  • 25:25:00 Bu bölümde eğitmen, önceden eğitilmiş bir PyTorch modelini kullanarak görüntüleri alabilen ve tahmin edilen sınıfı gösterebilen bir işlevin nasıl oluşturulacağını açıklıyor. İşlev, etiketleme için bir sınıf adları listesi alabilir ve ayrıca tahmin olasılığını da görüntüler. Eğitmen daha sonra, matplotlib ile uyumluluk için sonucun CPU'ya yerleştirilmesinin önemini açıklayarak, bu işlevi özel görüntüler ve önceden eğitilmiş bir model üzerinde kullanmayı gösterir. Modelin zayıf performansına rağmen eğitmen, sonuçları görselleştirmenin gücünü vurgular.

  • 25:30:00 Bu bölümde eğitmen, PyTorch ile özel verilerin nasıl tahmin edileceğini kapsayan önceki bölümdeki ana çıkarımları özetler. Hatırlanması gereken ana noktalar, verilerin, doğru veri türü, doğru cihaz ve doğru şekil dahil olmak üzere, modelin beklenen biçimiyle eşleşmesi için önceden işlenmesi gerektiğidir. PyTorch, farklı veri türlerini işlemek için birçok yerleşik işleve sahiptir ve gerekirse kullanıcılar kendi özel veri kümesi sınıflarını yazabilir. Buna ek olarak, eğitimci, eğitim modelleri oluştururken fazla uydurma ve yetersiz uydurmayı dengelemenin önemini vurgular ve alıştırmalar ve müfredat dışı materyaller de dahil olmak üzere daha fazla öğrenme ve uygulama için çeşitli kaynaklardan bahseder.

  • 25:35:00 Bu bölümde eğitmen, öğrencileri önce PyTorch özel veri kümeleri alıştırmaları şablonunu incelemeye ve tüm kodu kendi başlarına doldurmaya teşvik eder. Takılmaları durumunda öğretim elemanı tarafından verilen örnek çözümlere başvurabilirler. Sunulan çözümler, işleri yapmanın yalnızca bir yoludur ve kullanıcılar bunları referans almakta ve uygulamalarıyla karşılaştırmakta özgürdür. Süreç boyunca karşılaşılan çözümler ve hatalar, YouTube'da bulunan canlı izlenecek yollarda da görülebilir. Eğitmen, kullanıcılara çok fazla alıştırma yaptıklarını ve PyTorch derin öğrenme deposundaki ekstra alıştırmaları ve çözümleri kontrol edebileceklerini hatırlatır. Eğitmen, öğrenenlerin transfer öğrenimi, pytorch modeli deneme takibi, pytorch kağıdı kopyalama ve pytorch modeli konuşlandırması hakkında daha fazla bilgi edinmek için öğrenebilecekleri, learnpytorch.io'da beş bölüm daha bulunduğunu söyleyerek bitirir.
PyTorch for Deep Learning & Machine Learning – Full Course
PyTorch for Deep Learning & Machine Learning – Full Course
  • 2022.10.06
  • www.youtube.com
Learn PyTorch for deep learning in this comprehensive course for beginners. PyTorch is a machine learning framework written in Python.✏️ Daniel Bourke develo...
 

Kara Kutu Yok Makine Öğrenimi Kursu - Kitaplıklar Olmadan Öğrenin



Kara Kutu Yok Makine Öğrenimi Kursu - Kitaplıklar Olmadan Öğrenin

00:00:00 - 01:00:00 Bu YouTube videosunda eğitmen, kitaplıklara güvenmeden makine öğreniminde nasıl kod yazılacağını öğreten Kara Kutu Yok Makine Öğrenimi Kursu sunuyor. Kurs, veri toplama, özellik çıkarma ve görselleştirme dahil olmak üzere çizimleri tanıyan bir web uygulaması oluşturma ve en yakın komşu ve K en yakın komşu gibi sınıflandırıcıları uygulama ile ilgili konuları kapsar. Eğitmen, makine öğreniminde verileri anlamanın önemini vurguluyor ve lise matematik ve programlama deneyimini tazelemesi gerekenler için kaynaklar öneriyor. Video, herhangi bir harici kitaplık olmadan JavaScript kullanarak veri oluşturucu görevi gören bir web sayfası oluşturma sürecini gösterir. Sunum yapan kişi ayrıca bir geri alma düğmesi ve bir ad giriş alanı oluşturma, çizimleri bir veri nesnesinde saklama ve yolları kullanıcının bilgisayarına kaydetme hakkında talimatlar da içerir. Son olarak video, node.js'de bir veri kümesi oluşturucunun nasıl oluşturulacağını ve JavaScript kullanarak her örnekle ilişkili verilerin nasıl oluşturulacağını gösterir.

01:00:00 - 02:00:00 Eğitmen bu YouTube videosunda, izleyicilere bir makine öğrenimi veri kümesi oluşturmayı ve kitaplıkları kullanmadan özellikleri çıkarmayı öğretiyor. Veri kümesinin, düğüm betikleri ve web uygulamaları arasında iletişim kurabilen ve bir veri görüntüleyici uygulaması oluşturabilen bir klasörde nasıl saklanacağını gösterirler. Eğitmen ayrıca Google grafiklerini kullanarak toplanan verilerin nasıl görselleştirileceğini ve tablo ve listedeki seçili öğelerin nasıl belirleneceğini ve vurgulanacağını gösterir. Genel olarak video, öğrencilerin yalnızca JavaScript kullanarak makine öğrenimi veri kümeleri oluşturması ve özellikleri ayıklaması için kapsamlı bir kılavuz sağlar. 02:00:00 - 03:00:00 "Kara Kutu Makine Öğrenimi Kursu Yok – Kitaplıklar Olmadan Öğrenin" videosu, makine öğrenimi kitaplıklarını kullanmadan çizimlerin özelliklerine göre nasıl sınıflandırılacağını gösterir. Video oluşturucu, manuel hatalardan kaçınmak için verileri incelemek için hızlı ve yanıt veren bir sisteme sahip olmanın önemini vurguluyor. HTML ve CSS ile dinamik kaplar kullanılarak grafiğe nasıl özellik ekleneceğini, arka planın nasıl gizleneceğini ve tahmin edilen etiketlerin ekranda nasıl görüntüleneceğini gösterirler. Video ayrıca normalleştirme ve standardizasyon gibi veri ölçeklendirme tekniklerini de içeriyor. Son olarak, video, K en yakın komşu sınıflandırıcısının nasıl uygulanacağını ve K en yakın komşu içindeki her bir etiketin sayısının nasıl sayılacağını gösterir.

03:00:00 - 03:50:00 "Kara Kutu Makine Öğrenimi Kursu Yok - Kitaplıklar Olmadan Öğrenin" adlı YouTube videosu, JavaScript ve Python gibi makine öğrenimi kitaplıklarını kullanmadan K-en yakın komşu sınıflandırmasıyla ilgili çeşitli konuları kapsar. Videoda, veri kümelerinin eğitim ve test kümelerine nasıl bölüneceği, eğitim ve test örneklerinin nasıl ayrı ayrı ele alınacağı ve verilerin normalleştirilmesi açıklanmaktadır. Eğitmen ayrıca bir sınıflandırıcının nasıl çalıştığını anlamada karar sınırlarının önemini tartışır, bir K-en yakın komşu (KNN) sınıflandırıcısının JavaScript'te nasıl uygulanacağını gösterir ve makine öğrenimi kitaplıklarını kullanmadan piksel tabanlı bir çizim oluşturur. Son olarak video, izleyicilere Python'un ek yeteneklerini keşfetme ve şimdiye kadar öğrendikleri üzerinde düşünme çağrısıyla sona eriyor.

Bölüm 1

  • 00:00:00 Bu bölümde konuşmacı, kitaplıklara güvenmeden kodlamaya odaklanan kara kutu olmayan makine öğrenimi kursunu tanıtıyor. Kurs, veri toplama, özellik çıkarma ve görselleştirme ve en yakın komşu ve K en yakın komşu gibi sınıflandırıcıların uygulanması dahil olmak üzere çizimleri tanıyan bir web uygulaması oluşturmak için çeşitli konuları kapsar. Konuşmacı, makine öğreniminde verileri anlamanın önemini vurguluyor ve öğrencilere ev ödevlerine odaklanmaları için kısa bir mola verirken aynı zamanda lise matematik ve programlama deneyimlerini tazelemek için kaynaklar öneriyor. Kurs daha sonra, sinir ağları gibi daha gelişmiş yöntemlerin ele alınacağı ikinci aşamaya geçer. Veri toplama için bir çizim uygulaması oluşturma örneği, geri alma ve kaydetme işlevleriyle de gösterilmiştir.

  • 00:05:00 Videonun bu bölümünde eğitmen, bir veri kümesi için veri oluşturucu olarak kullanılacak bir web sayfası oluşturma sürecini adım adım anlatıyor. Web adında yeni bir klasör oluşturarak işe başlarlar ve bu klasörün içinde ilk dosyayı, Creator.html adlı bir web sayfasını oluştururlar. Sayfa, temel HTML, bir başlık bölümü ve Styles.css adlı harici bir stil sayfası içerir. Ayrıca yazı tipi ailesi ve arka plan rengi dahil olmak üzere sayfa için temel stiller eklerler. Eğitmen daha sonra sketchpad.js adlı harici bir JavaScript dosyasını kullanarak eskiz defterini uygulamaya geçer ve tuval öğesini tutmak için eskiz defteri sınıf oluşturucusunu tanımlar.

  • 00:10:00 Bu bölümde eğitmen, JavaScript kullanarak bir tuval kurar ve fare eylemlerini algılamak için bir "onmousedown" olay dinleyicisi ekler. Tuval sınırlama alanının dikdörtgenini alıp sırasıyla sol ve üst tarafları çıkararak fare koordinatlarını elde ederler. Koordinatları tam sayılara yuvarladıktan sonra eğitmen, tuvale tıklandığında fare koordinatlarını içeren bir yol dizisi oluşturur. Ayrıca "çizim"i yanlış olarak ve "yol"u boş olarak ayarlarlar. Fare hareket ettirildikçe yol dizisine daha fazla nokta eklemeye devam etmek için "onmousemove" için başka bir olay dinleyicisi eklenir.

  • 00:15:00 Bu bölümde konuşmacı, kitaplıklar kullanılmadan JavaScript kullanılarak bir tuval üzerine çizim yapmak için fare olaylarının nasıl uygulanacağını açıklar. "onMouseMove" ve "onMouseUp" için olay dinleyicilerini kullanan kod, fare hareketlerini izler ve kullanıcı çizim yapıyorsa konumu bir yola ekler. Ek olarak, tuvale konum eklemek için yeni bir "fare getir" işlevi oluşturulur. Son olarak, konuşmacı yolu temizlemek ve tuval üzerine çizmek için bir "çiz" yardımcı nesnesinin nasıl oluşturulacağını gösterir.

  • 00:20:00 Bu bölümde, video eğitmeni çizilen çizgilerle ilgili köşe görünümü ve düz çizgi sonları gibi bazı sorunları ele alarak herhangi bir harici kitaplık olmadan bir çizim programı oluşturmaya devam ediyor. Daha sonra birden çok yol çizmek için bir işlev oluşturmaya ve onu programa dahil etmeye devam ederler. Eğitmen, programı bir mobil cihazda çalıştırırken görüntü alanı nedeniyle bazı sorunlarla karşılaşır ve HTML dosyasının baş bölümünde bir meta etiket kullanarak giderir.

  • 00:25:00 Bu bölümde öğretici, HTML kodundaki viewport meta etiketine belirli komutlar ekleyerek tuvali mobil cihazlarınki gibi daha küçük ekranlara sığdırmaya odaklanır. Bununla birlikte, dokunma için olay dinleyicileri, fare için olanlardan farklıdır ve bu da, dokunma için olay dinleyicileriyle eskiz defterinin değiştirilmesini gerektirir. Tuvali daha da geliştirmek için, yalnızca geri alınacak yollar olduğunda bir geri alma düğmesi oluşturulur. Tuval boşken düğme devre dışı bırakılır.

  • 00:30:00 Bu bölümde video, CSS dosyasındaki stili değiştirerek düğme görünümünün nasıl iyileştirileceğini açıklıyor. Anlatıcı, üzerine gelme efekti ekler ve devre dışı bırakılmış durum için stilleri ayarlar. Ardından, kullanıcıların adlarını girmeleri için bir giriş alanı ve bir sonraki çizime ilerlemek için bir düğme oluşturmayı öğreneceğiz. Video ayrıca bu alanlardan nasıl veri toplanacağını ve bunların üç alana sahip bir nesnede nasıl saklanacağını açıklıyor: öğrenci, oturum ve çizimler. Son olarak anlatıcı, çizim sürecini başlatmak için kullanılacak başlatma işlevini uygulamaya başlar.

  • 00:35:00 Videonun bu bölümünde sunucu, herhangi bir kitaplık kullanmadan JavaScript kullanarak bir çizim uygulamasının nasıl uygulanacağını gösteriyor. Araba, balık, ev vb. çizmek istedikleri şeylerin etiketleri için bir indeks tanımlayarak başlarlar. Ayrıca talimatlar için bir alan eklerler ve ilk çizimden sonra başlat düğmesini "sonraki" olarak değiştirmek için değiştirirler. . Ardından, dizini artıran, sonraki etiketi alan ve talimatları güncelleyen "sonraki" düğmesi için bir işlev uygularlar. Ayrıca çizimleri belirli bir etiket için bir veri nesnesinde saklarlar ve çizim defterini sıfırlamak için genel bir yöntem eklerler. Sunum yapan kişi uygulamayı test eder ve veri nesnesinin çizimleri topladığını gösterir.

  • 00:40:00 Bu bölümde eğitmen, kullanıcılar tarafından yerel olarak çizilen yolların bilgisayarlarına nasıl kaydedileceğini açıklar. Href özniteliği "veri düz metni" olarak ayarlanmış bir "a" öğesi oluştururlar ve verilerin dizilmiş sürümünü kullanarak URI bileşenini kodlarlar. Toplanan veriler, bir zaman damgasından oluşturulan benzersiz bir ada sahip bir dosyada bir JSON dizesi olarak kaydedilir. Son olarak, dosyayı indirmek için indirme eylemi tetiklenir. Eğitmen ayrıca indirilen dosya ile ne yapılacağına dair yönergeler de ekler ve bunun bir sonraki dersten sonra daha anlamlı olacağını belirtir.

  • 00:45:00 Bu bölümde eğitmen, tuval yerine belgeye bir olay dinleyicisi ekleyerek eskiz defteriyle ilgili olası bir sorunun nasıl giderileceğini gösterir. Ayrıca izleyicilerden sistemi farklı cihazlarda test etmelerine ve sorunları bildirmelerine veya çözüm önermelerine yardımcı olmalarını istiyor. Eğitmen daha sonra node.js kullanılarak toplanan verilerin nasıl daha yönetilebilir bir forma dönüştürüleceğini açıklar ve proje dizinine nasıl gidileceğini ve verilerin saklanması için yeni bir klasörün nasıl oluşturulacağını gösterir. Son olarak, her biri sekiz farklı çizim içeren yaklaşık 500 öğrenci sunumundan topladığı tüm verileri yapıştırdığı bir "ham" klasör oluşturur ve her örneğin bir çizim olduğu bir veri seti oluşturmak için bu dosyaları nasıl işleyeceğini açıklar.

  • 00:50:00 +Alt+M ve Json dosyası güzel bir şekilde biçimlendirilecektir. Bu bölümde eğitmen, örnekleri işlemek ve bunları iki ayrı klasör kullanarak görselleştirmek için nodejs'de bir veri kümesi oluşturucuyu nasıl oluşturacaklarını açıklıyor: biri Json temsilleri için, diğeri görüntüler için. Komut dosyası, ham veri dizininden dosya adlarını okuyacak, bunlardan içerik çıkaracak ve kimlik, etiket, öğrenci adı ve öğrenci kimliği, oturum ve çizim gibi her örnek hakkında bilgi depolayacaktır. Son olarak, bölüm, kodun nasıl çalıştırılacağını ve test edileceğini kısaca gösterir ve bunun sonucunda belirlenen dizinde örnek bir Json dosyası oluşturulur.

  • 00:55:00 Bu bölümde, konuşmacı JavaScript kullanarak her örnekle ilişkili verilerin nasıl üretileceğini açıklıyor. Bu, dosyaların bir Json dizinine yazılmasını ve her belirli etiketin çiziminin dizilmesini içerir. Konuşmacı daha sonra bir kanvas ve ortak bir dizinden 'yolları çiz' işlevini kullanarak her bir çizimin bir görüntü temsilinin nasıl oluşturulacağını gösterir. Bunu yapmak için konuşmacı, veri seti üretecinde kullanılmak üzere 'draw.js' dosyasından 'draw' nesnesini dışa aktarır ve düğüm paket yöneticisini kullanarak canvas kitaplığını kurar.


Bölüm 2

  • 01:00:00 Bu bölümde, eğitmen bir tuvalin nasıl oluşturulacağını ve tuval üzerinde yol çizmek için nasıl kullanılacağını ve ardından onu bir görüntü olarak nasıl saklayacağını gösterir. Ayrıca yeni yollar çizmeden önce tuvali temizlerler. Görüntü dosyalarını oluşturduktan sonra eğitmen, çizim uygulamasında modülün Draw JS'de tanımlanmamasından kaynaklanan bir sorunu düzeltir. Sabitleri başka bir dosyada ayırarak ve zorunlu kılarak kurs boyunca kullanılacak bir yapı kullanırlar. Eğitmen, utils nesnesini oluşturarak ve print advance adlı işlevi ekleyerek utils adlı yeni bir dosyaya bir ilerleme göstergesi ekler. Standart çıktıyı almak için STD çıkışını kullanırlar, yüzdeyi biçimlendirme işlevini kullanarak yüzdeyi hesaplarlar ve bunu ilerleme göstergesini göstermek için standart çıktıya yazarlar.

  • 01:05:00 Bu bölümde video oluşturucu, oluşturulan veri kümesini tarayıcının okuyabileceği şekilde nasıl saklayacağını açıklar. Düğüm betikleri ve web uygulamaları arasında iletişim kurabilen dosyaları içerecek olan "JS_objects" adlı bir klasör oluşturur. JS_objects klasörü içinde bir JavaScript nesnesini başlatacak bir "samples" JavaScript dosyası oluşturulur. Video yaratıcısı ayrıca veri seti için bir görüntüleyici uygulaması oluşturacağını ve temel HTML koduyla "viewer.html" adlı bir HTML dosyası oluşturacağını belirtiyor. Dosyanın baş bölümü, UTF karakterlerini desteklemek için bir meta etiketi ve sayfa için bir başlık içerir. Gövde bölümü, veri setini tutmak için "Veri Görüntüleyici" başlıklı bir H1 etiketi ve "kapsayıcı" kimliğine sahip bir div içerir. "Örnekler" JavaScript dosyası, HTML dosyasına dahildir.

  • 01:10:00 Bu bölümde eğitmen, öğrenci kimliğine göre gruplandırılmış örneklerle bir tablo oluşturmaya çalışmaktadır. Bunu yapmak için, utils.js dosyasında bir diziyi belirli bir anahtara göre gruplandıran bir "grupla" işlevi uygularlar. Ardından çalışıp çalışmadığını kontrol etmek için grupları konsola kaydederler. Ardından, ayrı bir display.js dosyasında "satır oluştur" adlı bir işlev oluştururlar. Her öğrenci kimliğini yinelemek için bir döngü oluştururlar, "satır oluştur" işlevini çağırırlar ve verileri bir tablo biçiminde görüntülemek için gerekli parametreleri iletirler.

  • 01:15:00 Bu bölümde eğitmen, etiketlerle dinamik olarak bir dizi resim oluşturmayı ve bunları CSS ile düzgün bir şekilde hizalamayı gösteriyor. Bir dizi görüntü örneği arasında dolaşarak, bir görüntü öğesi oluşturarak ve kaynak ve stil niteliklerini atayarak başlarlar. Daha sonra, bir etiket div oluşturulurken ve bir numune kabına eklenirken görüntüler bir satıra eklenir. Numune kabı daha sonra bir kimlik ve sınıf verilen bir div ile sarılır. Eğitmen daha sonra etiketleri ve resimleri ortalamak ve daha uzun adlara üç nokta eklemek için CSS'yi hassaslaştırır. Son olarak bir div oluşturarak ve etiketten sonra ekleyerek örnek çizimlere beyaz bir arka plan eklerler.

  • 01:20:00 Bu bölümde, video oluşturucu web uygulamasında toplanan görüntü örneklerinin görüntüsünü değiştirir. Değişiklik, beyaz bir arka plana, ortaya hizalanmış bir metne, yuvarlatılmış bir köşeye ve bir piksel kenar boşluğuna sahip bir örnek kapsayıcı oluşturmayı gerektirir. Küçük resim 100 olarak ayarlanmıştır ve satır etiketi, alanın yüzde 20'sini kaplayan bir özelliğe sahiptir ve kalan sekiz örneğin her biri, alanın yüzde onunu alır. Ortaya çıkan görüntü yapısı düzgün, ancak bazı görüntüler tam olarak uymuyor, bu da masaüstü uygulamaları için tasarlandığından çok da önemli değil. Ek olarak, içerik oluşturucu, işaretlenen kullanıcılar tarafından kimliklerini kullanarak yapılan bazı çizimlere bir bulanıklık filtresi ekler. Toplanan çizimlerin bazıları etkileyiciyken bazıları verileri zorlaştıran yanlış yorumlar içeriyor.

  • 01:25:00 Bu bölümde YouTuber, veri setindeki bazı çizimlere bakıp kaliteleri hakkında yorum yapıyor, bazılarının çok detaylı olduğunu ve oluşturulmasının uzun sürmüş olması gerektiğini belirtiyor. Ayrıca geri alma düğmeleri olduğundan ve zaman sınırlaması olmadığından, veri kümelerinin Hızlı Çizim veri kümesinden farklı olduğunu belirtiyorlar, bu da çizimlerinin ortalama olarak daha kaliteli olması gerektiği anlamına geliyor. Son olarak, sayfanın düzeni ve tasarımı hakkında gelişigüzel bir yorumda bulunurlar.

  • 01:30:00 Bu bölümde eğitmen, herhangi bir kitaplık kullanmadan örneklerden özniteliklerin nasıl çıkarılacağını açıklar. Yol sayısını ve nokta sayısını ayıklama işlevleri, feature.js adlı bir dosyada uygulanır ve özellikler adlı bir nesneye eklenir. Ardından, feature extractor.js dosyasında, örnekler okunur ve tüm örnekler arasında döngü yapılarak ve her biri için yol sayısı ve nokta sayısı alınarak özellikler çıkarılır. Bu özellik değerleri daha sonra bir dizide birleştirilir ve yeni bir dosyaya yazılır. Son olarak, özellik adları ve örnekler, feature.json adlı başka bir dosyada birleştirilir. Özellik çıkarıcı komut dosyasını çalıştırırken, günlükte "özellikler ayıklanıyor" ve sonunda "tamamlandı" yazıyor. Veri kümesi dizininde ortaya çıkan özellikler daha sonra incelenebilir.

  • 01:35:00 Bu bölümde, videoyu oluşturan kişi, bir özellik dosyasında henüz yer almayan ek verileri tutmak için bir JavaScript nesnesinin nasıl kullanılacağını açıklar. Nesne, ayrı bir JavaScript dosyasına kaydedilebilir ve bir web uygulaması için gereken tüm verileri çıkarmak için kullanılabilir. İçerik oluşturucu ayrıca, genişlik, yükseklik, eksen başlıkları ve çekirdek grafik paketi gibi seçeneklerin bir nesnede tanımlanabildiği Google grafiklerini kullanarak verilerin nasıl görselleştirileceğini de gösterir. Özellik değerleri ve bunlara karşılık gelen adlar için iki sütun içeren bir veri tablosu oluşturulur.

  • 01:40:00 Bu bölümde video, Google Görselleştirme ile bir dağılım grafiğinin nasıl oluşturulacağını gösterir ve kullanıcıların yakınlaştırmak ve uzaklaştırmak için Explorer eylemlerini kullanarak verilerin farklı özelliklerini daha yakından incelemesine olanak tanır. Video ayrıca her sınıf için farklı renklerin nasıl kullanılacağını ve malzeme çizelgeleri adı verilen Google grafik kitaplığının farklı bir sürümünü kullanarak farklı bölümlerdeki yoğunluğun daha iyi görselleştirilmesi için şeffaflığın nasıl uygulanacağını gösterir.

  • 01:45:00 Bu bölümde, videoyu oluşturan kişi, Google çizelgelerini kullanarak bir dağılım grafiğinin nasıl oluşturulacağını ve ardından kendi JavaScript koduyla yeni bir grafiğin nasıl oluşturulacağını gösterir. Oluşturucu, grafik seçeneklerini basitleştirir ve bunun yerine emoji kullanmak için renk şemasını değiştirir, bu da etiketlere veya göstergelere ihtiyaç duymadan veri noktalarının daha kolay tanınmasına olanak tanır. Grafiğin şeffaflığı, yoğun olarak çizilen verilerin daha iyi görülebilmesini sağlamak için de ayarlanır.

  • 01:50:00 Bu bölümde eğitmen, aşağıdaki tabloda seçilen herhangi bir öğeyi tanımlamak için grafiğe bir geri çağırma işlevi ekler. Yeni işlev, seçilen öğeye bir "vurgu" sınıfı ekleyen ve otomatik olarak sayfanın ortasına kaydırılmasını sağlamak için "görünüme kaydır" ve "blok merkezi"ni kullanan "tutma kolu" olarak adlandırılır. Eğitmen daha sonra sayfa düzenini, tablo sayfanın sağ tarafında ve diğer içerik sol tarafta olacak şekilde değiştirir. Grafik ayrıca, kullanıcı kaydırdığında hareket etmeyecek şekilde sabitlenmiştir.

  • 01:55:00 Videonun bu bölümünde sunum yapan kişi tablodan ve listeden öğelerin nasıl seçileceğini ve seçimlerinin nasıl kaldırılacağını gösterir. Kaydırmanın gerçekleşip gerçekleşmeyeceğini ayarlamak için bir parametre belirtirler ve hiçbir şey seçmeye çalışırken oluşan hatayı işlemek için kod eklerler. Ek olarak sunum yapan kişi, bir sınıf aracılığıyla bir öğeyi vurgulama yeteneği ekler ve zaten vurgulanmışsa sınıfı kaldırır. Son olarak, grafiğin işlevselliğini test ederler ve grafiğin boyutunu ayarlarlar.


Bölüm 3

  • 02:00:00 Bu bölümde, konuşmacı sınıflandırılacak bir şeyi çizmek için girdi olarak eskiz defterinin kullanımını gösteriyor. Bunun için bir kap hazırlarlar, ona stiller eklerler ve ekranın sağından ve üstünden belirli bir mesafede konumunu sabitlerler. Ayrıca, net görüş için bir kenar boşluğu ve merkezde bir geri alma düğmesi sağlarlar. Daha sonra, testten sonra başarılı bir şekilde çalışan girişi görünür veya kapalı olarak değiştirmek için bir kontrol paneli ve bir düğme eklerler. Konuşmacı, hatalara yol açabilecek manuel hatalardan kaçınmak için verileri incelerken hızlı ve yanıt veren bir sisteme sahip olmanın önemini vurgular.

  • 02:05:00 Bu bölümde, video eğitmen grafiğe nasıl kontrol paneli ekleneceğini ve giriş varken arka planın nasıl gizleneceğini gösterir. Eskiz defteri tuvalini şeffaf hale getirerek görüntüleyici HTML'sindeki arka planı gizlemek için bir çözüm gösteriyorlar. Ayrıca, özellikleri öznitelik çıkarıcıyla aynı şekilde çıkaran bir güncelleme geri çağırma işlevi ekleyerek, eskiz defterinde bir şey çizildiğinde hemen grafikte özelliklerin nasıl görüntüleneceğini gösterirler. Eğitmen, özellikler adı verilen çakışan nesnelerle ilgili bir sorunla karşılaşır, ancak bunları her yerde özellik işlevleri olarak yeniden adlandırarak sorunu çözer.

  • 02:10:00 Bu bölümde konuşmacı, çizim yapılırken hareket eden, grafiğe eklenebilecek dinamik bir noktayı gösterir. Bu, bir değere bir öznitelik ayarlayarak ve onu yeniden çizerek elde edilir. Dinamik nokta, grafik sınıfına eklenir ve eksenler görüntülenmeden önce çizilir. Sürükleyerek nokta farklı alanlara taşınır ve siyah zemin üzerine şeffaf beyaz bir nokta ile çizildiğinde çok daha görünür hale gelir. Grafik yakınlaştırılabileceğinden ve nokta kenarlardan taşmadan görünür durumda kalacağından, değerin büyük olması gerekir.

  • 02:15:00 Bu bölümde eğitmen, dinamik girdiyi gizleyerek ve geçiş girişine basıldığında verileri göstererek çalışan sketchpad.js'de bir güncelleme yönteminin nasıl tetikleneceğini gösterir. Tetikleyici güncelleme yöntemiyle eğitmen, düğüm özellik çıkarıcısında yeni özellikler çıkarmak için kullanılan çizimin genişliğini ve yüksekliğini hesaplamak için Ortak özellik fonksiyonlarındaki genişlik ve yükseklik özelliği fonksiyonlarını uygular. Eğitmen, verileri ayıklamak ve görüntülemek için aynı kaynağın kullanılması için HTML'yi yeniden yapılandırmaları gerektiğini önerir.

  • 02:20:00 Bu bölümde, videoyu oluşturan kişi, gereksiz kodun nasıl kaldırılacağını ve bunun yeni özellik işlevleriyle değiştirilerek daha genelleştirilmiş ve çok boyutlu bir nokta oluşturma sürecinin nasıl sağlanacağını gösteriyor. Unsurları yeniden oluşturduktan ve özellik adlarını güncelledikten sonra, verilerle çalışırken yaygın bir sorun olan birkaç sorunlu örnek nokta gözlemlendi. Oluşturucu, verilerde aykırı değerlerin ve tutarsızlıkların beklenebileceğini belirtiyor ve izleyicileri sorunun nedenini belirlemeye yardımcı olmaya davet ediyor.

  • 02:25:00 Bu bölümde eğitmen, makine öğrenimi kitaplıklarını kullanmadan bir çizimin özelliklerine göre nasıl sınıflandırılacağını açıklar. Girişten öznitelikler çıkarırlar ve girişi sınıflandırmak için yakındaki noktalara bakarlar. Eğitmen en yakın noktayı bulmak için math.js grafiğinden en yakına alma işlevini kopyalar ve koduna yapıştırır. Ardından, çizim için etiketi tanımlamak ve sonucu günlüğe kaydetmek için işlevi çağırırlar.

  • 02:30:00 Bu bölümde, videoyu oluşturan kişi, HTML ve CSS içeren dinamik kapsayıcıları kullanarak tahmin edilen etiketi ekranda görüntüleme işlevini ekler. Öngörülen etiket, nesnenin bir araba olup olmadığını gösteren birleştirilmiş bir metinle birlikte beyaz bir kapta görüntülenir. Yaratıcı, programın öngörü yeteneklerini test etmek için saatler ve kalemler gibi farklı nesneler çizmeyi deneyler. Video oluşturucu daha sonra, etiketler ve resimler içeren dinamik noktaları kullanarak grafiği günceller ve en yakın örnekleri birleştiren çizgiler çizer.

  • 02:35:00 Bu bölümde konuşmacı, makine öğrenimi projeleri üzerinde çalışırken grafiklerdeki verileri sıkıştırmamanın veya genişletmemenin önemini tartışıyor. Bir grafiğin en boy oranının, verilerin yorumlanma şeklini nasıl etkileyebileceğini, bunun da kafa karışıklığına ve hatalara yol açabileceğini gösterirler. Bu sorunu çözmek için, konuşmacı maksimum x ve y değerleri için bir delta hesaplar ve grafiği buna göre ayarlar. Bu boş alan oluştursa da verilerin uygun şekilde görselleştirilmesine ve doğru makine öğrenimi sonuçlarına olanak tanır.

  • 02:40:00 Konuşma metninin bu bölümünde video oluşturucu, tüm özelliklerin sınıflandırmada aynı öneme sahip olmasını sağlamak için makine öğreniminde veri ölçeklemenin önemini vurguluyor. İçerik oluşturucu, özellik çıkarma sırasında verilerin nasıl sıkıştırılabileceğini ve genişletilebileceğini gösterir, bu da belirli özelliklerin eşit olmayan bir şekilde ele alınmasına neden olur. İçerik oluşturucu, oyun alanını eşitlemek için, özellik değerlerini 0 ile 1 arasında bir aralığa yeniden eşlemeye yönelik yaygın bir teknik olan normalleştirmeyi sunar. Video, bunu gerçekleştirmek için "utils" bölümünde "noktaları normalleştir" adlı yeni bir işlevin uygulanmasını anlatıyor. yeniden eşleme.

  • 02:45:00 Bu bölümde, video eğitimi, değerleri 0 ile 1 arasında değiştirerek verilerin nasıl normalleştirileceğini gösterir. İşlev yeterince genel olacak şekilde başlatılır ve her özellik için minimum ve maksimum değerler hesaplanır. Noktalar, minimum değer çıkarılarak ve farka bölünerek 0 ile 1 arasında olacak şekilde değiştirilir. Çizimden çıkarılan özelliklerin normalleştirilmesi için verilen değeri bir yüzdeye dönüştürmek için ters lerp işlevi kullanılır. Min-max değerleri işlevden döndürülür ve arabirimle iletişim kurmak için JavaScript nesne dosyalarından birine yazılır. Son olarak, veriler oluşturulur ve minimum-maks değerleri JavaScript nesne dosyalarına dahil edilir.

  • 02:50:00 Bu bölümde sunum yapan kişi, Utils noktaları normalleştirme işlevini kullanarak sınıflandırmaya çalışmadan önce noktaların nasıl normalleştirileceğini açıklar. Bunu yapmak için, ham özellik verileri yüklenir ve işleve girdi olarak iletilir. Ek olarak, normalleştirmeyi desteklemek için bunları hesaplamak zorunda kalmadan bir minimum-maks değeri iletilebilir. Ayrıca, normalizasyonun aykırı noktalara karşı ne kadar hassas olduğu ve bunlarla nasıl başa çıkılacağı, örneğin bunları otomatik olarak tespit edip kaldırarak veya standardizasyonu farklı bir veri ölçeklendirmesi olarak kullanarak gösterir.

  • 02:55:00 Bu bölümde eğitmen, her bir özelliğin ortalamasını ve standart sapmasını hesaplamayı ve ortalamayı çıkarıp standart sapmaya bölerek yeniden eşleştirmeyi içeren standardizasyon tekniğini tartışıyor. Bu teknik, aykırı değerlere karşı daha az hassastır ve belirli durumlarda daha iyi çalışabilir. Eğitmen ayrıca, sınıfın K en yakın komşunun çoğuna göre belirlendiği K en yakın komşu sınıflandırıcısını da tanıtır. Kod, K en yakın komşu aramasına izin verecek şekilde güncellenir ve eğitmen, K en yakın komşu içindeki her bir etiketin numarasının nasıl sayılacağını gösterir.


4. Bölüm

  • 03:00:00 Bu bölümde eğitmen, etiketlerine göre bir dizi numunenin çoğunluğunu bulma sürecini açıklar. Bu, numunelerdeki her bir etiketin oluşumlarının sayılmasını ve çoğunluk etiketinin en yüksek sayıya sahip olan olarak ayarlanmasını içerir. Eğitmen, en yakın örneklerin tümünü döndürmek için kodda güncellemeler yapar ve yalnızca en yakın örnek yerine çizelgede onlara çizgiler çizer. Daha sonra sınıflandırıcının işleyişini çeşitli veri kümeleri üzerinde gösterirler ve izleyicileri en yakın komşu sınıflandırıcıların diğer varyantlarının kendi uygulamalarını paylaşmaya teşvik ederler. Son olarak, eğitmen, sınıflandırıcı performansını objektif olarak değerlendirmek için verileri eğitim ve test kümelerine ayırma ihtiyacını vurgular.

  • 03:05:00 Bu bölümde video, bir veri kümesinin eğitim ve test kümelerine nasıl bölüneceğini, bunların dosyalara nasıl yazılacağını ve JavaScript kullanılarak kodda bu bölmeler için sabitlerin nasıl tanımlanacağını gösterir. Eğitim seti, örnek sayısının %50'si olacak şekilde ayarlanmıştır ve video, eğitim verileri üzerinde test yapma hatası konusunda uyarır. Test etmek için, kod tüm test numuneleri arasında dolaşır ve test amacıyla etiketi bilmiyormuş gibi davranırken, etiketin değerini Truth adlı bir öznitelikte depolar.

  • 03:10:00 Bu bölümde video, eğitim ve test örneklerinin nasıl ayrı ayrı ele alınacağını ve verilerin nasıl uygun şekilde normalleştirileceğini anlatır. Konuşmacı, test setinin ne olacağı hakkında hiçbir fikrimiz olmadığı için verileri sadece eğitim setiyle normalleştirmenin önemli olduğunu açıklıyor. Ayrıca, yalnızca eğitim verilerinden gelen bilgileri kullanarak düzgün bir şekilde nasıl sınıflandırılacağını ve sınıflandırma işlevini kullanarak bilinmeyen veri noktalarının nasıl ele alınacağını gösterirler.

  • 03:15:00 Bu bölümde, videoyu oluşturan kişi bir test etiketine doğru bir özellik ekler ve doğruluğu belirlemek için bu etiketi daha önceki doğruluk değeriyle karşılaştırır. Test setinin nerede başladığını netleştirmek için bir alt başlık da eklenir. Oluşturucu daha sonra, en yakın 10 komşuya ayarlanan K en yakın komşu sınıflandırıcısının doğruluğunu hesaplamak ve görüntülemek için bir istatistik alanı ekler ve bu da %39,62'lik bir doğrulukla sonuçlanır. Parametreyi bir en yakın komşu olarak değiştirerek, doğruluk aslında çok daha kötüdür ve birden çok komşuyu dikkate almanın iyi bir fikir olduğunu gösterir.

  • 03:20:00 Bu bölümde, eğitmen kodu yeniden düzenler ve bir sınıflandırıcının nasıl çalıştığını anlamada karar sınırlarının önemini tartışır. "Çalışma değerlendirme" adlı yeni bir dosya oluştururlar ve gerekli sabitleri ve yardımcı programları yüklerler. Eğitmen, bir sınıflandırıcının nasıl oluşturulacağını ve bir sınıflandırıcının doğruluğunu hesaplamak için eğitim ve test örneklerinin nasıl alınacağını açıklar. Ayrıca, bir sınıflandırıcının bir veri noktasının sınıflandırmasını nasıl belirlediği hakkında değerli bilgiler sağlayan karar sınırlarını da sunarlar. Eğitmen, karar sınırlarının bir veri noktasının farklı özelliklerini basitçe saymaktan daha yararlı olduğunu belirtmektedir.

  • 03:25:00 Bu bölümde, konuşmacı bir K-en yakın komşu (KNN) sınıflandırıcısının JavaScript'te nasıl uygulanacağını açıklıyor. Kod, KNN yöntemini kullanarak her bir test numune noktası için tahmin etiketleri ve doğru tahmin sayısını kontrol ederek doğruluğu hesaplama ile başlar. KN.js dosyası, eğitim örneklerini alan sınıfı ve belirli bir noktayı depolamak ve tahmin etmek için K'yi tanımlamak için oluşturulur. Sınıflandırma için sınıf kodu, görüntüleyici HTML'sinden KN.js'ye kopyalanır ve yeni sınıfa uyacak şekilde değiştirilir. Çalıştırma değerlendirme betiği, eski sınıflandırma yöntemi yerine KNN sınıflandırıcısını kullanacak şekilde güncellendi. Bu şekilde yeniden düzenleyerek kod daha kolay yönetilebilir hale gelir ve aptalca hatalardan kaçınılabilir.

  • 03:30:00 Bu bölümde eğitmen, piksel değerlerini normalleştirerek ve tahmin edilen değerlere göre renk kodlayarak makine öğrenimi kitaplıklarını kullanmadan piksel tabanlı bir grafiğin nasıl oluşturulacağını gösterir. Arsa daha sonra bir PNG görüntüsü olarak kaydedilir ve bir grafiğin arka planı olarak ayarlanır. Eğitmen, bu yeni özelliğin chart.js dosyasında nasıl uygulanacağını, verilere göre sol üst koordinatı alarak, piksel değerini veri sınırlarından piksel sınırlarına alarak ve kullanarak ölçeklemenin nasıl yapıldığına göre bölerek gösterir. dönüşüm.

  • 03:35:00 Videonun bu bölümünde sunum yapan kişi önceki bölümde oluşturulan görüntüyü tartışıyor ve düşük çözünürlüğü ve yumuşatma etkisi hakkında yorum yapıyor. Ardından, artık verilerin gösterilmesini gerektirmeyen daha yüksek çözünürlüklü bir görüntü sunarlar. Renkli bölgelerin bize farklı etiketler hakkında bilgi verdiğini ve farklı bölgelerin ortaya çıkmasını gözlemlemenin ne kadar ilginç olduğunu açıklıyorlar. Ardından izleyicileri K'nin tüm olası değerleri için doğruluğu hesaplamaya ve en iyi değeri belirlemek için bir çizgi grafiği oluşturmaya ve ayrıca en iyi değer için yüksek çözünürlüklü bir karar sınır grafiği oluşturmaya davet ederler.

  • 03:40:00 Bu bölümde YouTuber, JavaScript kullanarak örnek verileri CSV formatına dönüştürmek için bir işlev yazarak Python için verilerin nasıl hazırlanacağını açıklıyor. Python'da yaygın olarak kullanılan, başlıklar ve özellik adlarıyla birlikte örnek verileri CSV biçimine dönüştüren toCSV adlı bir işlev oluştururlar. CSV'yi hem eğitim hem de test verileri için özellik adları ve etiketlerle çıktılar ve ardından kitaplıkları kullanarak K en yakın komşunun Python uygulamasına geçerler. Eğitim CSV dosyasını açarlar, satırları okurlar ve verileri yeni satır karakteriyle bir dize olarak temsil edilen bir satır dizisi olarak ayrıştırırlar.

  • 03:45:00 Bu bölümde eğitmen, K en yakın komşu sınıflandırması için verilerin kütüphaneler kullanılmadan nasıl hazırlanacağını açıklar. Veriler bir CSV dosyasından okunur ve Python'da özellik değerleri için X ve etiketler için Y olmak üzere iki boş dizide saklanır. Eğitmen, dizileri doldurmak, özellik değerlerini değişkenlere dönüştürmek ve etiketleri sayılara yeniden eşlemek için bir döngüden geçer. Yeniden eşleme bir Python sözlüğü kullanılarak elde edilir. Veriler daha sonra, 250 komşu, kaba kuvvet algoritması ve tek tip ağırlıklar dahil olmak üzere web uygulamasını taklit edecek şekilde ayarlanan parametrelerle bir KNN sınıflandırıcı nesnesine sığdırılır. Eğitmen, Python'da girintinin önemini vurgulayarak ve okuma özelliği verilerini bir dosyadan bir işlev olarak çıkararak bitirir.

  • 03:50:00 Bu bölümde konuşmacı, verilerin modele nasıl aktarılacağını ve puanlama işlevini kullanarak doğruluğunun nasıl kontrol edileceğini gösterir. Ayrıca görüntüleyenleri, özellik değerlerini ve karar sınırlarını görselleştirmek için matplotlib yüklemek gibi Python'un ek yeteneklerini keşfetmeye teşvik ederler. Video, izleyicilere şu ana kadar öğrendikleri üzerinde düşünmeleri ve kursun bir sonraki aşamasına hazırlanmaları için bir çağrıyla sona eriyor.
No Black Box Machine Learning Course – Learn Without Libraries
No Black Box Machine Learning Course – Learn Without Libraries
  • 2023.04.17
  • www.youtube.com
In this No Black Box Machine Learning Course in JavaScript, you will gain a deep understanding of machine learning systems by coding without relying on libra...
 

MIT 6.034 "Yapay Zeka". Güz 2010. Ders 1. Giriş ve Kapsam



1. Giriş ve Kapsam

Bu video MIT 6.034 dersi "Yapay Zeka"ya bir giriş niteliğindedir. Profesör yapay zekanın tanımını ve önemini açıklıyor ve konuyu anlamak için önemli olan düşünme modellerini ve temsilleri tartışmaya devam ediyor. Son olarak, video, notun nasıl hesaplandığı ve sınav ile finalin neleri içereceği de dahil olmak üzere kursa kısa bir genel bakış sunar.

  • 00:00:00 Bu videoda bir profesör yapay zekanın tanımını ve önemini tartışıyor. Kursu alan herkesin daha akıllı olacağını söylemeye devam ediyor. Profesör ayrıca konuyu iyi anlamak için düşünme modellerini ve bunların nasıl önemli olduğunu tartışır. Son olarak, iyi modeller yapmak için temsillerin öneminden bahsediyor.

  • 00:05:00 Bu videoda profesör jiroskopların nasıl çalıştığını ve bir problemin grafik olarak nasıl temsil edileceğini açıklıyor. Ardından, birçok kişinin çocukluktan aşina olabileceği bir örnek olan çiftçi Tilki kaz ve tahıl sorununun nasıl çözüleceğini açıklamaya devam ediyor.

  • 00:10:00 Video, yapay zeka kavramını ve yapay zeka tarafından oluşturulan testler de dahil olmak üzere çeşitli bileşenlerini tanıtıyor. Video daha sonra Rumpelstiltskin ilkesini tartışarak devam ediyor; bu ilke, bir şeyi bir kez adlandırabildiğinizde, onun üzerinde güç sahibi olabileceğinizi belirtiyor.

  • 00:15:00 Bu video, güçlü ve basit veya karmaşık olabilen basit fikirler kavramını tanıtıyor. Video daha sonra basit fikirlerin tanımını ve örneklerini tartışmaya devam ediyor. Videonun ana fikri, basit fikirlerin daha akıllı programlar oluşturmak için önemli olduğu ve bilim adamlarının ve mühendislerin bunları incelemek için farklı motivasyonları olduğu.

  • 00:20:00 Bu video, Ada Lovelace'in bir asır önce yaptığı çalışmadan başlayarak yapay zekanın tarihini tartışıyor. Yapay zekanın modern çağı, 1960 yılında Marvin Minsky tarafından yazılan makaleyle başladı. Bir gün içinde, kursta yapay zeka tartışması ele alınacak.

  • 00:25:00 " Buldozer çağı ", insanların sınırsız bilgi işlem gücüne erişebildiklerini görmeye başladıkları ve kural tabanlı uzman sistemler geliştirmeye başladıkları çağa atıfta bulunur.

  • 00:30:00 Video, insanın evrim tarihini ve insanların kademeli ve sürekli gelişim yoluyla evrimleştiği lise fikrini tartışıyor. İnsan evrimine yol açan tesadüfi değişimlerin nasıl tesadüfi evrimsel ürünler olduğu tartışılıyor ve bu değişimlerin neler olabileceği üzerine spekülasyonlar yapılıyor.

  • 00:35:00 Bu video, Noam Chomsky'nin insan zekasının gelişimi hakkındaki fikirlerine kısa bir giriş sağlar. Dilin insan zekasının merkezinde yer aldığı ve dersin asıl amacının öğrencilerin bu alanda beceri geliştirmelerine yardımcı olmak olduğu vurgulanan temel noktalardır. Videoda ayrıca kursun temel unsurları olan alıntıların ve öğreticilerin öneminden de bahsediliyor.

  • 00:40:00 Bu video, derslere katılım ve notlar arasındaki korelasyon da dahil olmak üzere MIT kursuna kısa bir genel bakış sağlar. Ardından video, kursun bir öğrencinin notunu nasıl hesapladığına dair bir özet sağlar; bu, öğrencinin kısa sınavlardaki ve finaldeki performansını dikkate almayı içerir. Son olarak, video, çok fazla baskı olacağı ve gelişme için daha az fırsat olacağı için öğrencileri final sınavlarının tümüne girmemeleri konusunda uyarıyor.

  • 00:45:00 Video quiz ve finali tanıtıyor ve quizin nasıl çalışacağını ve final sınavı formatını açıklıyor. Video ayrıca öğrencilerin eğitmenle nasıl iletişim kurabileceklerini ve eğitimleri planlayabileceklerini de açıklıyor.
1. Introduction and Scope
1. Introduction and Scope
  • 2014.01.10
  • www.youtube.com
MIT 6.034 Artificial Intelligence, Fall 2010View the complete course: http://ocw.mit.edu/6-034F10Instructor: Patrick WinstonIn this lecture, Prof. Winston in...
 

Anlatım 2. Akıl Yürütme: Hedef Ağaçları ve Problem Çözme



2. Akıl Yürütme: Hedef Ağaçları ve Problem Çözme

Bu video akıl yürütmeyi, ağaçları hedeflemeyi ve problem çözmeyi tartışıyor. "Problem azaltma" adı verilen bir tekniği tanıtır ve matematik problemlerini çözmek için nasıl kullanılabileceğini açıklar. Ayrıca, sorunları çözmek için buluşsal dönüşümlerin nasıl kullanılacağını ve karmaşık alanlardaki sorunları çözmek için bilginin nasıl kullanılabileceğini tartışır.

  • 00:00:00 Video, matematikte öğrenciler tarafından kullanılan yaygın bir problem çözme tekniği olan problem azaltmayı tanıtıyor. Sorun azaltmanın ardındaki eğitim felsefesini tartışır ve sorun azaltma örneklerinin bir listesini sunar.

  • 00:05:00 Konuşmacı, problem çözmenin nasıl çalıştığını ve farklı dönüşümlerin bir problemi çözmeye nasıl yardımcı olabileceğini açıklıyor. Bir sorunu çözmek için gerekli olan dört güvenli dönüşümün üzerinden geçerler. İlk adım, tüm güvenli dönüşümleri uygulamak ve ardından sorunun çözülüp çözülmediğini görmek için tabloya bakmaktır. Sorun çözüldüyse, konuşmacı başarıyı bildirecektir.

  • 00:10:00 Video, hedef ağaçları kavramını ve problem çözmeyi tartışıyor ve buluşsal dönüşümler fikrini tanıtıyor. Bu dönüşümler her zaman başarılı olmasa da bazı durumlarda faydalı olabilir.

  • 00:15:00 Video, sorunları çözmek için kullanılabilecek çeşitli sezgisel dönüşümleri tartışıyor. Bu dönüşümlerden biri, size sadece birini göstereceğim bir dönüşüm ailesidir. Bu dönüşüm şu şekildedir: Eğer teğet ve X'in bir fonksiyonunun integraline sahipseniz, bunu Y bölü 1 artı y kare dy'nin bir fonksiyonunun integrali olarak yazabilirsiniz. Bir trigonometrik formdan bir polinom forma bu dönüşüm, uğraşmak istemediğimiz tüm trigonometrik çöplerden kurtulur. Bizim de ihtiyacımız olan bir C var ve bu sizin doğru tepkiniz olacak. 1 eksi x kare şeklinde bir şey görüyorsunuz ve onu gördüğünüzde ne yapıyorsunuz? Bunu yapabilirsin. Kristen'ın önerebileceği bir şey varsa yapabileceğin hiçbir şey yok. Macarcamızın genç dönüşümüzün nerede olduğu nedeniyle, X kişi işaretini içeren dönüşümü uygulamamızı önerdiğini söylüyor. Bu, Scylla'nın artık bunu hatırlaması gerekmediği anlamına gelir, çünkü ileride hiçbir şeyi kişisel olarak hayatına entegre etmek zorunda kalmayacaktır. Sadece programı simüle edebilir. Bunlar polinom formundan trigonometrik forma geri döner, yani üç tane var.

  • 00:20:00 Video akıl yürütmeyi, hedef ağaçlarını ve problem çözmeyi tartışıyor. Sunum yapan kişi, "hedef ağacı" adı verilen bir problem çözme tekniği sunar. Bu ağaç, hedeflerin birbiriyle nasıl ilişkili olduğunu gösterir ve hangi sorunun çözüleceğine karar vermede yardımcı olabilir. Sunucu, bu tekniğin aynı zamanda "problem çıkarım ağacı" veya "hedef ağacı" olarak da bilindiğini açıklıyor.

  • 00:25:00 Bu video, hedef ağaçları ve problem çözme kavramını tanıtıyor ve semboller kullanarak fonksiyon kompozisyonunun derinliğinin nasıl ölçülebileceğini gösteriyor. Ardından video, bir integrali üç parçaya ayırmak için güvenli bir dönüşümün nasıl uygulanabileceğini ve bunun belirli bir rasyonel fonksiyon için nasıl çalıştığını gösterir.

  • 00:30:00 Video, güvenli dönüşümler oluşturarak sorunları çözen muhakeme programını tartışıyor. Programın belirli bir sorun üzerinde nasıl çözüm bulamadan durduğunu ve başka bir sorun üzerinde çalışmaya nasıl geri döndüğünü gösterir.

  • 00:35:00 Video, Schlegel'in birinci sınıf kalkülüs problemleri modelinin arkasındaki mantığı tartışıyor; bu model, problemleri çözmek için dönüşümler, yaşlı ağaçların nasıl çalıştığı ve tabloların gerekli olduğu bir modeldir. Videoda ayrıca, Brett'in önerdiği bir teknik olan işlevsel kompozisyonun derinliğinin, ağaç derin veya geniş büyümediği için aslında önemli olmadığından da bahsediliyor.

  • 00:40:00 Video, problem çözmede bilginin nasıl temsil edildiğini ve belirli dönüşümlerin problemi nasıl basitleştirdiğini tartışıyor. Ayrıca bilginin karmaşık alanlardaki sorunları çözmek için nasıl kullanılabileceğini tartışır.

  • 00:45:00 Konuşmacı, sözde bilgisayarların nasıl "akıllı" olabileceğini gösteren bir programı gösteriyor. Ancak konuşmacı, programın kendisi ile aynı şeyi yaptığını hemen fark eder ve bu nedenle bilgisayar gerçekten zeki değildir.
2. Reasoning: Goal Trees and Problem Solving
2. Reasoning: Goal Trees and Problem Solving
  • 2014.01.10
  • www.youtube.com
MIT 6.034 Artificial Intelligence, Fall 2010View the complete course: http://ocw.mit.edu/6-034F10Instructor: Patrick WinstonThis lecture covers a symbolic in...
 

Anlatım 3. Akıl Yürütme: Hedef Ağaçları ve Kural Tabanlı Uzman Sistemler



3. Akıl Yürütme: Hedef Ağaçları ve Kural Tabanlı Uzman Sistemler

Bu video, kural tabanlı bir uzman sistemin nasıl çalıştığını açıklar. Sistem, daha geleneksel yöntemlerle çözülmesi zor olan sorunları çözmek için tasarlanmıştır. Sistem, kapılarla birbirine bağlanan ve sistemin belirli bir hayvanı kesin olarak tanımasını sağlayan birkaç kuraldan oluşur.

  • 00:00:00 Bu video, kural tabanlı bir uzman sistemin (RBS) nasıl oluşturulduğunu açıklamakta ve sistemin nasıl çalıştığına dair bir örnek sunmaktadır. RBS, cebirsel denklemler gibi daha geleneksel yöntemlerle çözülmesi zor olan problemleri çözmek için tasarlanmıştır.

  • 00:05:00 Bu videoda, Profesör Patrick Winston akıl yürütme programlarının veya kural tabanlı uzman sistemlerin nasıl çalıştığını açıklıyor. Programın yapısı, istenen bir sonuca ulaşmak için yinelemeli bir döngüde yürütülen dört blok ile çok basittir. Program, geçmişte cevapladığı sorulardan ipuçları aldığı ve karmaşık bir sonuca ulaşmak için özyinelemeyi kullandığı için basit blokları içeren sorunları çözebilir.

  • 00:10:00 Video, bir şeyin nasıl yapıldığına ilişkin soruları yanıtlamak için bir hedef ağacının nasıl kullanıldığını ve bunu yapmak için bir ve-veya ağacının nasıl kullanılabileceğini açıklıyor. Ayrıca, entegrasyon programının kendi davranışıyla ilgili soruları yanıtlamak için hedef ağaçlarını kullanabileceğini açıklar.

  • 00:15:00 Bu video, karmaşık davranışın programın karmaşıklığının değil, ortamın karmaşıklığının sonucu olduğunu tartışıyor. Kural tabanlı uzman sistemler, 60'ların sonlarında bilgiyi basit kurallarla özetlemenin bir yolu olarak geliştirildi ve bugün hala kullanılıyor.

  • 00:20:00 Bu YouTube videosu, küçük bir hayvanat bahçesindeki hayvanları tanımlamak için ileri zincirleme kural tabanlı bir uzman sistemin (RBSES) nasıl kullanılabileceğini tartışıyor. RBSES, sistemin belirli bir hayvanı kesin olarak tanımasını sağlayan ve kapılarla birbirine bağlanan birkaç kuraldan oluşur.

  • 00:25:00 Bu video, bir nesnenin belirli bir hayvan türü olup olmadığını belirlemek için bir hipotezden geriye doğru giderek kural tabanlı bir uzman sistemin (RBE) nasıl çalıştığını açıklıyor.

  • 00:30:00 Portekizli mimar Siza tarafından tasarlananlara benzer evler tasarlamak için kural tabanlı bir uzman sistem oluşturuldu. Sistem, bir bakkal torbacısının söylediklerini bir eğer-o zaman kuralına çevirebilir ve bir bilgi mühendisinin bunu anlamasına olanak tanır.

  • 00:35:00 Bu videoda Profesör Patrick Winston, belirli durumlara duyulan ihtiyaç ve buluşsal yöntemlerin kullanımı da dahil olmak üzere bilgi mühendisliği ilkelerini tartışıyor. Ayrıca, iki nesnenin aynı mı yoksa farklı mı olduğu sorusu olan iki numaralı buluşsal yöntemin sorunları çözmek için nasıl kullanılabileceğine dair bir örnek veriyor.

  • 00:40:00 Sunucu, insan zekasının geliştirilebileceği üç yolu tartışıyor: kural tabanlı sistemler kurarak, hedef odaklı programlar geliştirerek ve entegrasyon programları kullanarak. Üç numaralı buluşsal yöntem, bir kurala veya hedefe uyulmadığında, sistemin daha fazla bilgiye ihtiyaç olduğunu gösterecek şekilde çatlamasıdır. Sunucu bunu, bir programın bir hastaya bir varil penisilin reçete ettiği bir vakayı tartışarak gösterir.

  • 00:45:00 Bu video, hedef ağaçları ve kural tabanlı uzman sistemler aracılığıyla akıl yürütmenin nasıl çalıştığını açıklıyor. Her iki örnekte de sistem hikayeleri okuyabilir ve eylemlerin sonuçlarını belirleyebilir.
3. Reasoning: Goal Trees and Rule-Based Expert Systems
3. Reasoning: Goal Trees and Rule-Based Expert Systems
  • 2014.01.10
  • www.youtube.com
MIT 6.034 Artificial Intelligence, Fall 2010View the complete course: http://ocw.mit.edu/6-034F10Instructor: Patrick WinstonWe consider a block-stacking prog...
 

Anlatım 4. Arama: Önce Derinlik, Tepe Tırmanışı, Kiriş



4. Arama: Önce Derinlik, Tepe Tırmanışı, Kiriş

Bu YouTube videosunda Patrick Winston, Önce Derinlik, Tepe Tırmanışı, Işınlama ve Önce En İyi aramaları dahil olmak üzere farklı arama algoritmalarını tartışıyor. Örnek olarak bir harita kullanarak, her bir algoritmanın avantajlarını ve sınırlamalarını ve farklı arama yöntemlerini anlamanın problem çözme becerilerini nasıl geliştirebileceğini gösteriyor. Winston, Macbeth hikayesiyle ilgili soruları yanıtlamak için Genesis sistemini kullanarak akıllı sistemlerde arama algoritmalarının uygulanmasını da tartışıyor. Ayrıca bir Pyrrhic zaferi kavramını ve arama programlarının grafiklere bakarak ve bulgularını İngilizce olarak bildirerek bu tür durumları nasıl keşfedebileceğini tanıtıyor. Genel olarak, video, arama algoritmalarına ve bunların gerçek dünya senaryolarındaki pratik kullanımlarına kapsamlı bir genel bakış sağlar.

  • 00:00:00 Bu bölümde Patrick Winston, farklı arama yöntemlerini ve bunların kendi problem çözme becerilerimizle nasıl ilişkili olduğunu tartışıyor. İyi bir arama algoritmasının önemini bir harita üzerinde bir noktadan diğerine en uygun yolu bulma örneğiyle gösteriyor. Ayrıca, olası her yolun keşfedildiği bir British Museum araması kavramını da tanıtıyor, ancak bu yöntemin verimli olmadığını belirtiyor. Önce derinlik, tepe tırmanma ve kiriş aramayı ve bunların farklı senaryolarda nasıl kullanılabileceğini tartışmaya devam ediyor. Farklı arama algoritmalarını anlamanın, problem çözme konusunda sezgi geliştirmeye yardımcı olabileceğini ve beynimizin problemlerle nasıl başa çıktığına dair fikir verebileceğini vurguluyor.

  • 00:05:00 Bu bölümde, bir harita örneği kullanılarak Önce Derinlik, Tepe Tırmanışı ve Işın arama kavramları tanıtılmaktadır. British Museum algoritması, bir haritada kendi kuyruğunu ısırmadan tüm olası yolların nasıl bulunabileceğini göstermek için kullanılır. Arama, haritalar aracılığıyla temsil edilirken, bunlarla sınırlı olmadığı ve aslında karar vermeye çalışırken yapılan seçimlerle ilgili olduğu açıkça belirtilir. Derinlik öncelikli arama, gösterilen aramalardan biridir ve tek bir düşünceyle hızla ileri gitmekten, bir yol seçmekten ve bir çıkmaz sokakla karşılaşıldığında geri gitmekten oluşur. Geri izleme süreci, algoritmayı daha verimli hale getirmenin bir yolu olarak da tanıtıldı.

  • 00:10:00 Bu bölümde, video iki ana arama algoritmasını tartışıyor: Derinlik Öncelikli Arama ve Genişlik Öncelikli Arama. Derinlik Öncelikli Arama, hedefe götüren bir yolu kaçırmayı önleyebileceğinden, isteğe bağlı geri izleme tekniğiyle birlikte en iyi şekilde kullanılır. Genişlik Öncelikli Arama, düzeylere göre bir ağaç oluşturur ve hedefe götüren bir yolu tamamlar. Ardından video, başlangıç konumunu hareket ettirerek ve aramayı buna göre ayarlayarak her iki arama algoritmasını da örnek bir problem üzerinde test eder. Göz önünde bulundurulan yolları temsil etmek için bir sıra kullanan arama algoritmasını göstermek için bir akış şeması sunulmuştur.

  • 00:15:00 Bu bölümde, konuşmacı Derinlik Öncelikli Arama algoritmasının nasıl çalıştığını açıklıyor. Algoritma, kuyruğu başlatmakla ve sıradaki ilk yolu genişletmekle başlar. s'yi genişlettikten sonra, konuşmacı iki yol alır, s a'ya ve s b'ye gider. Derinlik Öncelikli Arama için, algoritmanın arama ağacına inmeye devam edebilmesi için yeni genişletilmiş yollar sıranın önüne konur. Konuşmacı ayrıca, Genişlik Öncelikli Aramanın, Derinlik Öncelikli Arama ile aynı algoritmayı kullandığını ve bir satır değiştirildiğini açıklıyor; bu, yeni yolları sıranın önü yerine arkasına koymak anlamına geliyor.

  • 00:20:00 Bu bölümde, Breadth-First Search'ün sınırlamalarını ve nasıl iyileştirileceğini öğreniyoruz. Algoritma verimsiz olarak kabul edilir ve hedefe yaklaşıp yaklaşmadığını söyleyemez. Ek olarak, genellikle aynı düğüme birden fazla giden yolları genişletir ve bundan kaçınmamız gerekir. Algoritmayı, daha önce son bir düğüm genişletilmedikçe bir yolu genişletmeyecek şekilde değiştirerek, yinelenen yollarda zaman kaybetmekten kaçınabiliriz. Bu yöntemi kullanarak, arama verimliliğinde ve yol kalitesinde önemli bir gelişme görüyoruz.

  • 00:25:00 Bu bölümde video, düğüme olan mesafeyi dikkate alarak hedef düğümü bulmaya yönelik daha bilinçli bir yaklaşım olarak Tepe Tırmanışı aramasını araştırıyor. Derinlik öncelikli aramaya benzer şekilde, Tepe Tırmanışı seçenekleri sözcüksel olarak listeler ve hedef düğüme olan yakınlığa göre bağları koparır. Bu, her zaman en uygun yol olmasa da geri dönüş olmadan daha düz bir yol sağlar. Video, Tepe Tırmanışının Derinlik Öncelikli Aramaya kıyasla daha az kuyruk oluşturduğunu ve daha doğrudan bir yol oluşturduğunu gösteriyor. Video, varsa arama algoritmalarında buluşsal yöntemlerin kullanılmasını teşvik eder.

  • 00:30:00 Bu bölümde, eğitmen buluşsal yöntemler kullanarak bilinçli bir aramaya izin veren Breadth-First Search'ün bir tamamlayıcısı veya eki olan Işın Arama tekniğini tartışır. Işın Arama, her düzeyde dikkate alınacak yol sayısına bir sınır koyar ve yalnızca ekstra bilgiden veya hedefe olan mesafenin buluşsal ölçümünden yararlanarak hedefe en yakın olabilecek en iyi iki yolu tutar. Eğitmen, Tepe Tırmanışının ayrıca, her şeyi düz tutmak için sıralanan hedefe olan mesafeyi dikkate alarak kuyruğun önüne yeni yollar ekleyen bilinçli bir arama olduğundan bahseder.

  • 00:35:00 Bu bölümde, konuşmacı, dağlar gibi sürekli uzaylarda kullanılabilen iki ek arama algoritması olan Işın Arama ve En İyi İlk Arama'yı tartışıyor. Işın Arama, bir çözüm olarak w en iyi yolların seçilmesini ve saklanmasını içerirken, En İyi İlk Arama, her zaman hedefe en yakın olan ve arama ağacında atlayabilen yaprak düğüm üzerinde çalışmayı içerir. Tepe Tırmanışı, sürekli alanlarda yerel bir maksimumda takılma veya düz bir alanda hareket edememe gibi sorunlarla karşılaşabilir. Son olarak, konuşmacı, keskin bir köprünün bulunabileceği yüksek boyutlu alanlarda Tepe Tırmanışı ile ilgili ek bir sorunu göstermektedir.

  • 00:40:00 Bu bölümde video, akıllı sistemlerin oluşturulmasında modelleme zekası ve arama algoritmalarına olan ihtiyacı tartışıyor. Konuşmacı, aslında zirvede olmadığımız halde zirvede olduğumuzu düşünmeye nasıl aldanabileceğimizi göstermek için bir topografik harita örneğini kullanıyor. Bu, plan yapmak ve seçimleri değerlendirmek için gerekli olan arama kavramına yol açar. Konuşmacı daha sonra, bir arama algoritması kullanarak Macbeth hikayesiyle ilgili soruları yanıtlamak için Genesis sisteminin kullanımını gösterir. Sistem bilgileri alır, bir detaylandırma grafiği oluşturur ve hikayede intikam ve diğer üst düzey kavramlarla ilgili kalıplar arar.

  • 00:45:00 Bu bölümde Patrick Winston, ilk başta her şeyin yolunda gibi göründüğü ancak sonunda olumsuz sonuçlara yol açan bir durum olan Pyrrhic zaferi kavramını tartışıyor. Arama programlarının grafiklere bakarak bu tür bilgileri nasıl keşfedebileceğini ve bu bilgilere dayalı olarak soruları nasıl yanıtlayabileceğini gösteriyor. Programlar, bu grafikleri oluşturmak ve bilgileri İngilizce olarak raporlamak için açık ifadelerin ve eğer/ise kurallarının bir kombinasyonunu kullanır. Winston ayrıca, bu programların bilgiyi üreten aramaları raporlayarak sağduyulu cevaplar ve daha üst düzey düşünceler üretebileceğinden bahseder. Son olarak, bir çözümleyici sistem tarafından üretilen dil çıktısını kullanarak sistemin Macbeth'in karakteri ve motivasyonları hakkındaki soruları yanıtlama yeteneğini gösterir.
4. Search: Depth-First, Hill Climbing, Beam
4. Search: Depth-First, Hill Climbing, Beam
  • 2014.01.10
  • www.youtube.com
MIT 6.034 Artificial Intelligence, Fall 2010View the complete course: http://ocw.mit.edu/6-034F10Instructor: Patrick WinstonThis lecture covers algorithms fo...
 

Anlatım 5. Arama: Optimal, Dal ve Sınır, A*



5. Arama: Optimal, Dal ve Sınır, A*

Video, Chicago ve Los Angeles arasındaki Route 66 örneğine odaklanarak, iki yer arasındaki en kısa yolu bulmak için çeşitli arama algoritmalarını tartışıyor. Video, buluşsal mesafe kavramını tanıtıyor ve yokuş tırmanma, ışın arama ve dal ve sınır gibi farklı arama algoritmalarına ilişkin örnekler sunuyor. Konuşmacı, aramayı optimize etmek için A* algoritmasında kabul edilebilir ve tutarlı buluşsal yöntemler kullanmanın önemini vurgular. Ayrıca video, en kısa yoldaki alt sınırları belirlemek için genişletilmiş bir liste ve havayolu mesafeleri kullanmanın etkinliğini not ediyor. Son olarak video, bir sonraki derste A* algoritmasının daha fazla ayrıntılandırılmasını tartışma vaadiyle sona eriyor.

  • 00:00:00 Bu bölümde profesör, Chicago ve Los Angeles arasındaki Route 66 örneğine odaklanarak iki yer arasındaki en kısa yolun nasıl bulunacağını tartışıyor. Alman ordusunun birlikleri ülke çapında hızlı bir şekilde hareket ettirme yeteneğini çoğaltmak isteyen Başkan Eisenhower tarafından eyaletler arası otoyol sisteminin oluşturulmasından bahsediyor. Profesör daha sonra sezgisel mesafe kavramını ve her zaman doğru olmasa da en iyi yolu bulmaya nasıl yardımcı olabileceğini tanıtıyor. Ayrıca, hedefe yakın olarak en iyi yolu bulmayı amaçlayan tepe tırmanma ve ışın arama gibi farklı arama algoritmalarına örnekler veriyor.

  • 00:05:00 Bu bölümde profesör, cevabı bilen birine sorarak buluşsal mesafe kavramını ve problem çözme ilkesini tartışır. Profesör, bir haritadaki en kısa yolu bulma örneğini kullanarak, Juana tarafından önerilen yolu izlemeyi önerir, ancak diğer tüm olası yolların önerilen rotadan daha uzun olduğunu kontrol ederek bunu doğrular. Profesör, yol uzunluğu Juana tarafından önerilenle eşleşene kadar, yol uzunluğunu hesaplama ve uzatılacak en kısa yolu seçme sürecini detaylandırır.

  • 00:10:00 Bu bölümde konuşmacı, kehanet olmadan en kısa yolun nasıl bulunacağını tartışıyor. Yaklaşım, hedefe ulaşana kadar şimdiye kadarki en kısa yolu genişletmeyi içerir. Konuşmacı, uzunlukları negatif olmayan yolları dikkate alarak en kısa yolu bulma sürecini göstermek için bir örnek sağlar. Yaklaşım, şimdiye kadar yapılan işlerden herhangi birinin boşa gidip gitmediğini kontrol eder ve eğer değilse, yol uzunluğu en kısa olandır. Konuşmacı, bu yaklaşımın en kısa yolu bulabileceğini, ancak sıfır uzunlukta uzunluklar varsa başka yollar da olabileceğini açıklar.

  • 00:15:00 Videonun bu bölümünde, konuşmacı daha karmaşık bir harita üzerinde en kısa yolu bulmak için dal ve sınırı kullanmayı gösteriyor. Akış şemasını dekore etmekten bahsediyorlar ve kuyruğu başlatma, sıradaki ilk yolu test etme ve kazanan olmayan yolları genişletme sürecini açıklıyorlar. Konuşmacı, dal ve sınır yaklaşımının kuyruğa birçok yol koyduğunu ve optimal olmayan birçok yolu genişlettiğini, ancak bunun yalnızca daha önce genişletilmemiş yolları genişleterek iyileştirilebileceğini belirtiyor. Konuşmacı, optimum yolları bulmak için yalnızca genişletilmiş yollar yaklaşımını kullanmanın önemini vurgular.

  • 00:20:00 Bu bölümde, dal-sınır algoritmasında bir ayarlama iyileştirmesi olarak genişletilmiş liste kavramı tanıtılmaktadır. Genişletilmiş liste, algoritmanın halihazırda genişletilmiş ve aynı noktaya ulaşmış olanlardan daha uzun yol uzunluklarına sahip yolları genişletmesini engeller. Uzatılmış bir liste tutularak, ağacın geniş alanları budanarak çözüme ulaşmak için gereken uzantıların sayısı azaltılabilir. Önceki örnekle karşılaştırıldığında, yeni algoritma 835 yerine yalnızca 38 uzantı gerektiriyor ve bu da hesaplama süresinde önemli bir tasarruf sağlıyor.

  • 00:25:00 Bu bölümde, mümkün olan en kısa yolun alt sınırını belirlemek için havayolu mesafelerini kullanma kavramı tanıtılmaktadır. Yolda bir alt sınır sağlamak için birikmiş mesafe ve havayolu mesafesi eklenir. Simülasyon daha sonra S'den G'ye en kısa potansiyel mesafeye sahip yolun seçilmesiyle gösterilir. Puanın eşit olması durumunda sözcüksel olarak en az değere sahip yol seçilir.

  • 00:30:00 Bu bölümde konuşmacı, grafik arama algoritmalarını hızlandırmak için buluşsal yöntemleri kullanmayı tartışıyor. Kabul edilebilir bir buluşsal yöntemin kullanılması, bir tahminin gerçek mesafeden daha az olduğunun garanti edilmesidir. Genişletilmiş liste, bu alt sınır buluşsal yöntemlerden birini kullanmaktan daha kullanışlıdır. Ancak buluşsal yöntemin etkinliği soruna bağlıdır ve başlangıç konumunun yerleşimi değiştirilerek arama sonuçları değiştirilebilir. Son olarak, buluşsal yöntemleri kullanmanın aynı düğüm boyunca hareketleri tekrar etmeyebileceğini, ancak verimli bir arama için gerekli bir şeyi mutlaka yapmayacağını not etmek önemlidir.

  • 00:35:00 Bu bölümde video, hem kabul edilebilir buluşsal yöntemi hem de dal ve sınır algoritmasını birleştiren bir arama algoritması olan A*'yı tartışıyor. A*, her iki tekniği kullanarak bireysel performanslarını büyük ölçüde geliştirebilir. Kabul edilebilir buluşsal yöntem katı bir hedef kullanırken dal ve sınır algoritması ilgili uzay araştırmasını anlar. Video, A*'nın her iki teknik birlikte kullanıldığında sorunları nasıl daha verimli çözebileceğini gösteriyor. Ancak video, arama geleneksel haritaların ötesine geçerse belirli koşulların kabul edilebilirliği imkansız hale getirebileceğini de belirtiyor. Sonuç olarak, kabul edilebilir hiyerarşi ve A* algoritması, optimum çözümler bulmada daha az etkili olabilir.

  • 00:40:00 Bu bölümde, profesör A* algoritmasında kabul edilebilir buluşsal yöntemler kavramını açıklıyor. Tuhaf mesafelere sahip bir harita örneği gösteriyor ve kabul edilebilir bir buluşsal yöntemin kullanımının her zaman en kısa yolu bulmaya neden olmayabileceğini açıklıyor. Profesör, kabul edilebilir buluşsal yöntemin yalnızca haritalar için işe yaradığını ve algoritmanın harita olmayan durumlarda çalışmasını sağlamak için buluşsal yöntemde kabul edilebilirlikten daha güçlü bir şeye ihtiyaç duyduğunu vurgular. Video, bir sonraki derste bu iyileştirmeyi tartışma vaadiyle sona eriyor.

  • 00:45:00 Bu bölümde öğretim görevlisi, buluşsal bir işlevin A* algoritması içinde çalışması için gereklilikleri tartışır. Kabul edilebilirlik ve tutarlılık kavramlarını tanıtarak, buluşsal bir işlevin harita olmadığı durumlarda çalışmak için hem kabul edilebilir hem de tutarlı olması gerektiğini açıklar. Kabul edilebilir ancak tutarsız bir buluşsal yöntem kullanmanın, tutarlı bir buluşsal yöntemin işe yarayacağı senaryolarda bile algoritmanın başarısız olmasına neden olabileceğini gösteriyor. Son olarak, öğretim görevlisi, A* algoritmasını optimize etmek için, genişletilmiş bir liste ve uygun bir buluşsal işlev dahil olmak üzere mevcut tüm avantajları kullanmanın önemini vurgular.
5. Search: Optimal, Branch and Bound, A*
5. Search: Optimal, Branch and Bound, A*
  • 2014.01.10
  • www.youtube.com
MIT 6.034 Artificial Intelligence, Fall 2010View the complete course: http://ocw.mit.edu/6-034F10Instructor: Patrick WinstonThis lecture covers strategies fo...
Neden: