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

 

Ders 9 Derin Öğrenme 2: Üretken modeller, GAN'lar, Değişken Otomatik Kodlayıcılar (VAE'ler) (MLVU2019)



9 Derin Öğrenme 2: Üretken modeller, GAN'lar, Değişken Otomatik Kodlayıcılar (VAE'ler) (MLVU2019)

Video, derin öğrenme projeleri için bölünmüş veriler, transfer öğrenme ve üretken modellere odaklanma dahil olmak üzere derin öğrenme ile ilgili çeşitli konuları kapsar. Konuşmacı, rasgele sonuçlar ve olasılık dağılımları oluşturmak için sinir ağlarını kullanma kavramını araştırıyor ve üretken rakip ağlar ve otomatik kodlayıcılar gibi farklı eğitim üreteç yöntemlerini açıklıyor. Ayrıca, veri işleme ve boyut azaltma gibi çeşitli makine öğrenimi uygulamalarında GAN'ları, koşullu GAN'ları, steganografiyi ve otomatik kodlayıcıların önemini araştırıyorlar. Konuşmacı, çok fazla etiketlenmiş veri olmadan verilerin üst düzey manipülasyonları için gizli alanda verilerin manipüle edilmesini ve varyasyonel otomatik kodlayıcılar gibi alternatif bir yaklaşıma duyulan ihtiyacı tartışır.

Videonun bu ikinci bölümü, diğer modellerde sıklıkla görülen mod çökmesi sorununu ele almayı amaçlayan bir üretken model türü olan varyasyonel otomatik kodlayıcıları (VAE'ler) araştırıyor. Girdiyi gizli alana kodlamak ve girdi alanına geri kodunu çözmek için iki sinir ağı kullanılır, bu da hem kodlamanın hem de kod çözmenin optimizasyonuna olanak tanır. Konuşmacı, kayıp işlevini, ağı optimize etmek için kullanılabilecek bir KL sapma terimine ve beklenen bir log olabilirlik terimine ayırır. VAE'lerde bir beklentiyi maksimize etmenin zorlukları açıklanır ve bu sorunun üstesinden gelmenin bir yolu olarak yeniden parametrelendirme hilesi tartışılır. Konuşmacı, VAE'leri GAN'lar ve PCA gibi diğer tekniklerle karşılaştırır ve VAE'lerin daha güçlü olmakla birlikte eğitilmesinin daha zor olduğu sonucuna varır.

  • 00:00:00 Bu bölümde konuşmacı, izleyicilere verilere bakmadan önce verilerini eğitim ve test setlerine ayırmalarını hatırlatır, çünkü bir kez görüldükten sonra görülemez. Derin öğrenme projelerinde çalışanlar için, Google gibi şirketlerden önceden eğitilmiş bir ağ kullanarak ve üstüne kendi katmanlarını ekleyerek, pahalı eğitimler olmadan güçlü modeller oluşturmak için transfer öğrenimini kullanmayı önerirler. Bu, büyük GPU'lara sahip büyük makinelere erişimi olmayanlar için iyi bir seçenektir. Ek olarak, konuşmacı, kolay bir geçme notu için tüm önemli hususların kapsandığından emin olmak için proje için değerlendirme tablosunun kontrol edilmesini tavsiye eder.

  • 00:05:00 Bu bölümde video, görüntüler veya dil parçaları gibi yeni şeylerin örneklenebileceği bir olasılık dağılımı üretmek üzere bir sinir ağının eğitildiği, üretken modelleme için derin öğrenmeyi tartışıyor. İlk adım, bu yeni şeyleri üretebilecek, jeneratör adı verilen bir sinir ağı oluşturmaktır. Gerçekte var olmayan insanların görüntülerini oluşturmak için eğitilmiş bir sinir ağının bir örneği gösterilmektedir. Video daha sonra, daha ilkeli bir yaklaşım olarak varyasyonel otomatik kodlayıcılara odaklanarak, üretken rakip ağlar ve otomatik kodlayıcılar olan üreteçleri eğitmenin iki yolunu açıklamaya devam ediyor.

  • 00:10:00 Bu bölümde konuşmacı, sinir ağlarının rastgele sonuçlar ve olasılık dağılımları oluşturmak için nasıl kullanılacağını açıklıyor. Bunu yapmanın iki yolu vardır: ağı bir miktar girdi ile besleyerek ve çıktısını çok değişkenli bir normal dağılımın ortalaması ve Sigması olarak yorumlayarak veya standart bir çok değişkenli normal dağılımdan rastgele girdileri örnekleyerek ve bunları bir sinir ağı aracılığıyla besleyerek çıktı. İkinci yaklaşım, konuşmacının çok değişkenli bir normal dağılımı karmaşık bir şekle sahip normal olmayan bir dağılıma dönüştüren iki katmanlı bir sinir ağı ile yaptığı deneyin gösterdiği gibi, oldukça karmaşık ve ilginç olasılık dağılımları üretebilir. Bu yaklaşım, insan yüzleri gibi oldukça karmaşık dağılımları modellemek için kullanılabilir.

  • 00:15:00 Bu bölümde eğitmen, üretken modeller için eğitim adımlarını ve mod çökmesi gibi karşılaşabileceği sorunları açıklar. Bir sinir ağının temsil ettiği olasılık dağılımını bir veri kümesine uydurmaya yönelik naif bir yaklaşım, oluşturulan ve orijinal görüntüler arasındaki mesafeyi bir kayıp olarak kullanan geri yayılımdır. Ancak, bu yaklaşım genellikle başarısız olur ve veri kümesinin tüm modlarının tek bir moda çökmesine neden olur. Eğitmen daha sonra iyi çalışan iki üretken model örneği sunar: Üretken Çekişmeli Ağlar (GAN'lar) ve Değişken Otomatik Kodlayıcılar (VAE'ler). Eğitmen, GAN'lara ilham veren Konvolüsyonel Sinir Ağlarının (CNN'ler) arkasındaki tarihi ve oluşturulan görüntüleri iyileştirmek için birbirleriyle rekabet eden iki ağ üzerinden nasıl çalıştıklarını açıklar. Öte yandan VAE'ler, orijinal görüntüyü bir olasılık dağılımına sıkıştıran bir kodlayıcı ağına ve bu dağıtımdan yeni bir görüntü üreten bir kod çözücü ağına sahiptir.

  • 00:20:00 Bu bölümde, konuşmacı, belirli bir çıkış nöronuyla eşleşen görüntüler oluşturmak için girdiyi optimize etmek için kullanılan bir tekniği tartışıyor, bu da ağın kandırılabileceği sahte görüntüler olan rakip örneklerin ortaya çıkmasına yol açıyor. tamamen başka bir şey. Bu teknik başlangıçta nöral ağ topluluğuna bir darbe oldu, ancak karşıt örneklerin üretildiği ve veri kümesine olumsuz örnekler olarak eklendiği geçici bir öğrenme algoritmasının geliştirilmesine yol açtı. Bununla birlikte, bu yaklaşım tamamen verimli değildi, bu nedenle, konuşmacının etkileyici örnekler oluşturmak için çerçevenin üzerine inşa etmenin diğer üç yolunu göstermek için kullandığı temel bir yaklaşım olan Vanilla GAN'lar adı verilen uçtan uca bir çözüm geliştirildi.

  • 00:25:00 Bu bölümde sunum yapan kişiler GAN'ların (Üretken Düşman Ağları) nasıl çalıştığını açıklar. GAN'lar iki sinir ağından, çıktı üreten bir jeneratörden ve çıktılardan hangisinin sahte olduğunu belirleyen bir görüntü sınıflandırıcı olan bir ayırıcıdan oluşur. Bir çeteyi eğitmenin amacı, jeneratör ağının giderek daha gerçekçi sonuçlar yaratmasını sağlamaktır. Sunucunun açıkladığı gibi, üretici ve ayrımcı, her bir ağın diğerini zekasıyla alt etmeye çalıştığı iki kişilik sıfır toplamlı bir oyun gibi çalışır. Üretici, ayrımcıyı kandıran sahte çıktılar oluşturmaya çalışmaktan sorumludur ve ayrımcının işi bu sahte çıktıları yakalamaktır. Sunum yapan kişiler, eğitimden sonra GAN'ın çıktılarının hedef girdi ve rasgeleliğin bir kombinasyonu olacağını açıklar.

  • 00:30:00 Bu bölümde, konuşmacı, veri üretme yeteneğini çıktı üzerinde kontrol ile birleştirmeyi amaçlayan koşullu GAN'ları tartışıyor. Herhangi bir kontrol olmadan çıktı üreten normal GAN'ların aksine, koşullu GAN'lar, çıktıyı kontrol eden bir girdi alır ve bu da onları birden çok etiketli veri kümeleri için kullanışlı hale getirir. Konuşmacı ayrıca, eşleştirilmemiş iki görüntü torbasını eşlemek için iki üreteç kullanan ve bir görüntünün ileri geri eşlenmesi durumunda orijinal görüntünün elde edilmesini sağlamak için bir döngü tutarlılık kaybı terimi ekleyen döngü GAN'ı tartışır. Bu, aksi takdirde oluşturulması maliyetli olacak ek görüntülerin oluşturulmasına izin verir.

  • 00:35:00 Bu bölümde konuşmacı, bir kodu herkesin görebileceği şekilde gizleyen steganografi kavramını ve bunun, bir görüntüyü diğerinin içinde gizleyen GAN'lar ve VAE'ler gibi üretken modellerle nasıl bir ilişkisi olduğunu açıklıyor. Bu modellerin amacı, ayırt edicinin bir görüntünün diğerinin içinde saklı olduğunu söyleyememesini sağlamaktır. Konuşmacı, bu modellerin, bir fotoğrafı bir Monet tablosuna dönüştürmek gibi, görüntüleri nasıl farklı stillere dönüştürebileceğine dair örnekler gösteriyor. Konuşmacı ayrıca, insanların hiper-gerçekçi görüntülerini üreten GAN stilinden ve düşük seviyeden yüksek seviyeli semantik özelliklere kadar görüntüler üreten bir dekonvolüsyonel sinir ağı yoluyla gizli vektörü besleyerek nasıl çalıştığından bahsediyor.

  • 00:40:00 Bu bölümde konuşmacı, her katmanda ağa rastgele gürültü besleyerek oluşturulan görüntülerin ayrıntıları üzerinde kontrole izin veren bir modeli tartışıyor. Bu yöntem, gizli vektör üzerindeki iş yükünü azaltır ve ayrıca benzersiz görüntülerin oluşturulmasına izin verir. Konuşmacı, üretim sürecinde belirli noktalarda ışığı ve vektörü değiştirerek bu tekniği gösterir ve her düzeyde seçilen belirli özelliklere sahip görüntülerle sonuçlanır. Bu model, yalnızca aşırı gerçekçi yüzler oluşturmanın ötesine geçen bir kontrol düzeyi sunar.

  • 00:45:00 Bu bölümde konuşmacı, bir jeneratör oluşturulduktan sonra neler yapılabileceğini tartışıyor. Tekniklerden biri, çok değişkenli dağılım uzayından iki nokta alıp aralarında bir çizgi çizmeyi, eşit aralıklı noktaları seçmeyi ve bunları üreteç aracılığıyla beslemeyi içeren enterpolasyon olarak adlandırılır; Sonraki. Bu, bir interpolasyon ızgarası oluşturarak köşeleri aydınlatma alanındaki rastgele noktalara eşlemek için eşit aralıklı noktalardan oluşan bir ızgara üzerinde yapılabilir. Bu gizli boşluklar genellikle küresel topolojilerde düzenlenir, yani enterpolasyon yapmak için küresel interpolasyon olarak bilinen bu küresel bölgeden de geçmemiz gerekir. Son olarak, veri manipülasyonu veya boyut indirgeme yapmak için, çıktıdan gizli uzaya haritalama yapmak için otomatik kodlayıcıların kullanılmasını gerektiren gizli uzaya haritalama yapılması gerekir.

  • 00:50:00 Bu bölümde, konuşmacı otomatik kodlayıcıları ve bunların veri işleme ve boyut azaltma gibi çeşitli makine öğrenimi uygulamalarındaki önemini tartışıyor. Otomatik kodlayıcılar, verileri girdiden gizli alana ve tekrar çıktıya eşlemeye yardımcı olan sinir ağlarıdır. Ağın darboğaz mimarisi, girdi özelliklerini daha sıkıştırılmış bir biçimde öğrenmesine ve yeniden üretmesine olanak tanır. Ağ bir kez eğitildikten sonra, uzayda bir küme olarak gülen bir yüz gibi üst düzey semantik özellikleri ortaya koyan iki boyutlu bir alanda gizli kod kümeleri üretebilir.

  • 00:55:00 Bu bölümde konuşmacı, çok fazla etiketlenmiş veriye ihtiyaç duymadan verilerde üst düzey manipülasyonlar yapmak için gizli alandaki verilerin manipüle edilmesini tartışıyor. Gizli alanda manipüle edilen ve sonra kodu çözülen kodlanmış resimleri kullanarak birini gülümsetmek için basit bir algoritma gösterirler. Konuşmacı ayrıca otomatik kodlayıcıların sınırlamalarını ve bir kod çözücüyü orijinal girişe yakın noktaların kodunu çözmeye zorlayan, ancak boşlukta uygun enterpolasyonu sağlamak için tamamen aynı olmayan değişken otomatik kodlayıcı (VAE) gibi alternatif bir yaklaşıma olan ihtiyacı tartışıyor. .

  • 01:00:00 Videonun bu bölümünde konuşmacı, modelin veriler arasındaki noktalara odaklanmasını sağlayan ve verilerin orijinde ortalanmasını sağlayan bir üretken model türü olan varyasyonel otomatik kodlayıcıları (VAE'ler) tartışıyor. ve her yönde ilişkisiz varyansa sahiptir. Modeli verilere uydurmak için Maksimum Olabilirlik İlkesi kullanılır ve gerçek posteriora yaklaşmak için bir sinir ağı kullanılır. X'ten Zed'e eşleme olmadığı için mod çökmesi hala bir sorundur, ancak VAE'ler önceki modellerden daha iyi bir çözüm sunar.

  • 01:05:00 Bu bölümde, üretken modelleri ve farklı girdiler için benzer çıktıların üretildiği mod çökmesinden nasıl zarar görebileceklerini öğreniyoruz. Bunu ele almak için, girdiyi gizli uzaydaki bir dağılıma kodlamak ve gizli alan dağılımını girdi uzayındaki bir dağılıma çözmek için iki sinir ağı kullanan varyasyonel otomatik kodlayıcıları (VAE'ler) kullanabiliriz. Kayıp fonksiyonu olarak kullanılabilecek gerçek olasılık için bir alt sınır elde etmek için girdinin log olasılığının ayrışmasını kullanabiliriz. Bu, nöral ağları hem kodlama hem de kod çözme için optimize etmemizi sağlar ve bu da mod çökmesi sorununu hafifletmeye yardımcı olur.

  • 01:10:00 Bu bölümde konuşmacı, L işlevinin derin öğrenme sistemlerinde kullanılabilecek bir şeye nasıl yeniden yazılacağını açıklıyor. Amaç, olasılığın alt sınırını en üst düzeye çıkarmaktır ve negatif L'yi en aza indirerek, olasılığı olabildiğince yükseltebiliriz. Konuşmacı, koşullu olasılığın tanımını kullanarak kesrin üst kısmını parçalara ayırır ve bunu, KL sapması ve beklenen log olasılığı haline gelen bir beklentiler toplamına basitleştirir. Bu terimler hesaplanabilir ve derin öğrenme sisteminde bir kayıp fonksiyonu olarak kullanılabilir. KL terimi, küme vektörlerini orijine doğru çeker ve orijinin etrafında bir hiperküreye doğru kalınlaştırırken, diğer terim bir beklenti almayı gerektirir ve uygulanmasını biraz daha zorlaştırır.

  • 01:15:00 Bu bölümde konuşmacı, Varyasyonel Otomatik Kodlayıcı (VAE) bağlamında bir beklentiyi maksimize etmenin zorluklarını tartışıyor. Konuşmacı, bir örnek alarak ve her örnek için olasılık yoğunluğunun logaritmasını hesaplayarak ve ardından ortalamayı alarak beklentiye yaklaştıklarını açıklar. İşleri basitleştirmek için L'yi 1'e ayarladılar. Ancak, yöntemlerinin türevlenemeyen örnekleme adımında takılıp kaldığını belirtiyorlar. Bu sorunu çözmek için, sinir ağlarının bir parçası olarak örnekleme adımını uygulamalarına izin veren yeniden parametreleştirme hilesini kullanıyorlar. Bu, uygulanması daha kolay olan bir üreteci eğitmek için ilkeli bir yaklaşım olan Varyasyonel Kodlayıcının geliştirilmesine yol açar.

  • 01:20:00 Bu bölümde konuşmacı, Üretken Karşıt Ağlar (GAN'lar) ve Değişken Otomatik Kodlayıcılar (VAE'ler) adı verilen üretken bir model arasındaki farkı açıklıyor. GAN'lar gizli alandan veri alanına bir eşleme sunarken, VAE'ler veri alanından gizli alana ve tekrar veri alanına doğru ters yönde çalışır. VAE'ler, dil ve ayrık veriler dahil olmak üzere veri öğeleri arasında enterpolasyon sunar ve ayrık değişkenler oluşturmada GAN'lardan daha iyi çalışır. Konuşmacı, VAE'lerin kötü niyetli deneyi gerçekleştirmek için bir gülümseme vektörünü, mevcut bir kağıdı ve güneş gözlüğü vektörünü çıkarma vektörünü nasıl kullanabileceğine dair bir örnek veriyor. Konuşmacı, VAE'lerin ilk ilkelerden doğrudan bir yaklaşım sunduğu, ancak GAN'ların görüntüler için daha uygun olduğu sonucuna varır.

  • 01:25:00 Bu bölümde, konuşmacı Varyasyonlu Otomatik Kodlayıcıları (VAE'ler) İlke Bileşen Analizi'yle (PCA) karşılaştırıyor ve her iki tekniğin de boyut azaltma ve verileri standart bir dağılıma eşlemek için kullanıldığını, ancak VAE'lerin daha güçlü olduğunu ve işleyebileceğini belirtiyor. daha fazla şey. Bununla birlikte, PCA analitik bir çözüm bulabilirken, VAE'leri eğitmek çok daha zordur. Ek olarak, PCA genellikle yüzler için gülümseyen bir boyut gibi verilere dayalı olarak anlamlı boyutlar sağlarken, VAE'ler tarafından üretilen boyutların, belirli bir semantik özellik hedeflenmedikçe genellikle bir anlamı yoktur.
9 Deep Learning 2: Generative models, GANs, Variational Autoencoders (VAEs) (MLVU2019)
9 Deep Learning 2: Generative models, GANs, Variational Autoencoders (VAEs) (MLVU2019)
  • 2019.03.05
  • www.youtube.com
slides: https://mlvu.github.io/lectures/51.Deep%20Learning2.annotated.pdfcourse materials: https://mlvu.github.ioToday we discuss neural networks that can ge...
 

Ders 10 Ağaç Modelleri ve Grupları: Karar Ağaçları, AdaBoost, Gradient Boosting (MLVU2019)



10 Ağaç Modeli ve Topluluğu: Karar Ağaçları, AdaBoost, Gradient Boosting (MLVU2019)

Videonun bu ilk bölümü, örnek uzayını bölümlere ayırarak ve her bölüm için bir sınıf seçerek çalışan, sınıflandırma ve regresyon için kullanılan popüler bir makine öğrenimi modeli olan karar ağaçlarını tanıtıyor. Videoda ayrıca karar ağaçlarının bilgi kazanımı kullanılarak nasıl eğitilebileceği ve budamanın aşırı uydurmayı azaltmaya nasıl yardımcı olabileceği tartışılıyor. Konuşmacı, modeller arasında adaleti sağlamak için verileri eğitim, doğrulama ve test setlerine ayırmanın önemini vurgular. Ek olarak, video, yüksek değişkenlik ve istikrarsızlık gibi sorunları ele almak için çoklu karar ağaçlarının veya diğer modellerin eğitildiği ve birleştirildiği toplu öğrenmeyi tartışıyor. Yükseltme aynı zamanda, sınıflandırıcıların sıralı olarak eğitilmesini ve topluluğu iyileştirmek için verilerin yeniden ağırlıklandırılmasını içeren bir model topluluk tekniği olarak tanıtılmıştır. Son olarak, topluluğu iyileştirmek için bir kayıp fonksiyonunu en aza indiren sınıflandırıcıları seçen Adaboost algoritması açıklanmaktadır.

Videonun bu ikinci bölümü, AdaBoost ve gradyan güçlendirme dahil olmak üzere çeşitli ağaç modellerini ve gruplarını kapsar. AdaBoost, sınıflandırıcının performansına dayalı olarak veri örneklerini ağırlıklandıran sınıflandırma modelleri için popüler bir güçlendirme yöntemidir. Gradyan artırma, sabit işlevli bir model başlatmayı, artıkları hesaplamayı, etiketli artıklara yeni bir model uydurmayı ve onu topluluğa eklemeyi içerir. Konuşmacı, gradyan artırma ile AdaBoost arasındaki farkları açıklıyor ve sonuçları karıştırabilecekleri için toplulukların araştırmalarda pek kullanılmadığını belirtiyor. Ek olarak, torbalama varyansı azaltır ve artırma önyargıyı azaltır.

  • 00:00:00 Videonun bu bölümünde sunucu, Kaggle gibi yapım ve yarışmalarda popüler bir yaklaşım olan üç makine öğrenimi modelini ve modal toplulukları tanıtıyor. Yaklaşım, karar ağacı öğreniminin temel fikrini, bir sınıflandırma modelini veya regresyon modelini ve birçok modeli eğiten ve modeli daha güçlü hale getirmek için birleştiren topluluk yöntemini birleştirir. Sunum yapan kişi ayrıca karar ağaçlarının hem sayısal hem de kategorik özellikler üzerinde çalıştığını açıklar; öncelikle kategorik özellikler için kullanılırlar. Bölüm, karar ağacı modelini göstermek için kullanılacak olan filmler hakkında bir veri seti sunarak sona erer.

  • 00:05:00 Bu bölümde video, karar ağaçlarının nasıl çalıştığını ve veri kümeleri kullanılarak nasıl eğitilebileceklerini tartışıyor. Karar ağacı öğrenme süreci, bölünecek iyi bir özellik bulmayı, ağacı adım adım genişletmeyi ve verilerin alt kümelerini oluşturmayı içerir. Bölünmeler, her bir alt küme içinde sınıf etiketlerinin en az tekdüze dağılımı oluşturularak belirlenir. Film derecelendirmeleri ve türlerine ilişkin bir veri seti için bir örnek verilmiştir; burada derecelendirmelere göre bölme, sınıfların iyi bir dağılımını sağlamaz, ancak türe göre bölme sağlar.

  • 00:10:00 Bu bölümde video, örnek uzayını bölümlere ayırarak ve her bölüm için belirli bir sınıf seçerek karar ağaçlarının nasıl çalıştığını açıklar. Ağaç, her yaprak için yeni bölmeler seçerek genişler, ancak kökten yaprağa giden bir yolda aynı kategorik özellik üzerinde iki kez bölmek mantıklı değildir. Durdurma koşulları, tüm girdilerin veya tüm çıktıların aynı olduğu ve düzgün olmayanlığın, sınıfların segmentler arasındaki dağılımı tarafından belirlendiği zamandır. Her sınıfın oranının dikkate alınması gerektiğinden, bu üç veya daha fazla sınıf için zor olabilir.

  • 00:15:00 Bu bölümde konuşmacı, entropinin bir dağılımın tekdüzeliğinin bir ölçüsü olarak nasıl kullanılabileceğini ve karar ağacı sınıflandırmasında bir özelliğin bilgi kazancının nasıl hesaplanacağını açıklar. Entropi, daha yüksek bir entropiye sahip olan tekdüze bir dağılımla, bir dağılımın ne kadar tekdüze olduğunun bir ölçüsüdür. Konuşmacı bunu iki dağılımla gösteriyor ve entropi formülünü kullanarak tek tip dağılımın iki bitlik bir entropiye sahip olduğunu, düzgün olmayan dağılımın ise daha kısa kodlarla bilgi iletmedeki artan etkinliği nedeniyle çok daha düşük entropiye sahip olduğunu gösteriyor. Bir şeye koşullanmış bir entropi olan koşullu entropi de açıklanır ve bir özelliğin bilgi kazancı, özelliği görmeden önceki genel entropi eksi özelliği gördükten sonraki entropi alınarak hesaplanır.

  • 00:20:00 Bu bölümde bilgi kazancı en yüksek özellikleri kullanarak ağacı bölme işlemi detaylı olarak anlatılmaktadır. Algoritma, etiketlenmemiş bir yaprakla başlar ve tüm yapraklar etiketlenene kadar döngüye girer. Segmente sahip her etiketlenmemiş yaprak için, algoritma, özelliklerin tükeniyor olabileceği veya aynı sınıfa sahip tüm örnekler olabilecek durma koşulunu kontrol eder. Durdurma koşulu sağlanmazsa, bilgi kazancı en yüksek olan özellik üzerinde yaprak bölünür. Sayısal özellikler için eşik, bilgi kazancını en üst düzeye çıkarmak için seçilir ve sayısal özelliklere sahip bir karar ağacı sınıflandırıcısı, aynı özelliği farklı eşiklerle birden çok kez bölme olasılığı nedeniyle daha karmaşık bir karar sınırına sahip olabilir.

  • 00:25:00 Bu bölümde, konuşmacı, büyük ve karmaşık karar ağaçlarını kullanırken aşırı uydurma sorununu tartışıyor. Ağacın maksimum boyutuyla eğitim doğruluğunun nasıl artabileceğini, ancak test veya doğrulama verilerindeki doğruluğun büyük ölçüde azalabileceğini açıklıyorlar. Bu konuyu ele almak için, konuşmacı budama kavramını ve bunun aşırı uydurmayı azaltmada nasıl yardımcı olduğunu tanıtıyor. Ayrıca, modeller arasında adalet sağlamak için hiper parametre seçimi ve model arama için verileri eğitim, doğrulama ve test setlerine ayırmanın önemini vurguluyorlar. Son olarak, konuşmacı, SK Learn gibi araçların budama yapmak için eğitim sürecinde bazı eğitim verilerini otomatik olarak sakladığını belirtiyor.

  • 00:30:00 Bu bölümde konuşmacı, hedef etiket bir sınıf değil de sayısal bir değer olduğunda kullanılan regresyon ağaçlarından bahsediyor. Temel ilkeler karar ağaçlarıyla aynıdır, ancak dikkat edilmesi gereken birkaç fark vardır. İlk olarak, regresyon ağaçlarında yapraklar sınıflar yerine sayılarla etiketlenir. Ortalama veya medyan genellikle segmentteki örnekleri etiketlemek için kullanılır. İkincisi, entropi yerine, her adımda hangi özelliğin bölüneceğini belirlemek için varyans kullanılır, bu da elde edilen bilgiyi en üst düzeye çıkarır. Konuşmacı ayrıca, en genelleştirici modelin sabit bir işlev olduğu ve daha fazla bölme eklemenin modelin karmaşıklığını artırdığı model uzayı için bir genelleştirme hiyerarşisini tartışır.

  • 00:35:00 Bu bölümde konuşmacı, model olarak karar ağaçlarını ve regresyon ağaçlarını ve bunların yüksek varyans ve istikrarsızlık sorunları gibi sınırlamalarını tartışır. Bu problemlerin çözümü, birden çok karar ağacını eğitmek ve bunları bir toplulukta birleştirmektir ki bu da popüler bir tekniktir. Topluluk öğrenmenin amacı, önyargının yapısal bir sorun olduğu ve varyansın model hatalarının yayılması olduğu durumlarda, sapma ve varyans değiş tokuşunu çözmektir. Toplu öğrenme, bu sorunları çözmeye yardımcı olur ve karar ağaçlarını diğer modellerle birleştirmek mümkündür. Öğrenci projelerini bir dereceli puanlama anahtarıyla derecelendirme analojisi, yüksek yanlılığı ve düşük varyansı açıklamak için kullanılır.

  • 00:40:00 Bu bölümde, konuşmacı makine öğrenimindeki yanlılık ve varyans sorununu ve önyüklemenin bu sorunu çözmeye nasıl yardımcı olabileceğini tartışıyor. Mevcut sınırlı veri seti nedeniyle, hedeften gözlemlenen mesafenin yüksek önyargıdan mı yoksa yüksek varyanstan mı kaynaklandığını belirlemek zor olabilir. Önyükleme, yeni bir örnek veri kümesi oluşturmak için orijinal veri kümesini değiştirme ile yeniden örnekleyerek başka bir veri kümesinden örnekleme sürecini simüle ederek bunu ele alır. Ampirik dağılımın kümülatif yoğunluk fonksiyonunu analiz ederek, orijinal veri setinden yeniden örneklemenin orijinal veri dağılımından örneklemeye yaklaştığı ve üzerinde çalışılacak farklı veri setleri oluşturarak yüksek varyansın tespit edilmesini sağladığı netleşir.

  • 00:45:00 Bu bölümde video, veri kümesini yeniden örneklemeyi ve her bir yeniden örnekleme veri kümesinde birden çok modeli eğitmeyi içeren Bootstrap toplama veya Torbalamayı açıklar. Modeller daha sonra yeni verileri sınıflandırmak için çoğunluk oylarını alarak birleştirilir ve yöntem değişkenliği azaltır, ancak önyargıyı azaltmaz. Ayrıca video, daha düşük önyargı elde etmek için zayıf bir model ailesini birlikte güçlendirmeye yardımcı olan güçlendirmeyi tartışıyor. Güçlendirme, öğrenme sürecinde belirli bir noktada her bir özelliğin ne kadar önemli olduğunu gösteren, veri kümesine ağırlık adı verilen küçük bir sütun eklemeyi içerir. Güçlendirmenin genel fikri, herhangi bir şey olabilen bir sınıflandırıcı M0 ile başlamaktır - doğrusal bir sınıflandırıcı, sabit bir model veya çoğunluk sınıfını çıkaran bir model.

  • 00:50:00 Bu bölümde model topluluk tekniği olarak boosting kavramı tanıtılmaktadır. Arttırma, sıralı olarak sınıflandırıcıları eğitmeyi ve önceki sınıflandırıcıların yanlış yaptığı örnekler için ağırlığı artırarak ve doğru yaptıkları örnekler için ağırlığı azaltarak verileri yeniden ağırlıklandırmayı içerir. Sınıflandırıcılara, topluluğu iyileştirmede ne kadar önemli olduklarına bağlı olarak ağırlık verilir ve son grup, kendi ağırlıklarıyla eğitilen tüm modellerin toplamıdır. AdaBoost, artırmaya yönelik daha ilkeli bir yaklaşımdır ve en aza indirmek için bir hata işlevi tanımlamayı ve ağırlıklı eğitim verilerini kullanmayı içerir. Hata fonksiyonu, topluluktaki her bir modele verilen ağırlığı belirlemek için kullanılır.

  • 00:55:00 Videonun bu bölümünde, konuşmacı Adaboost'ta kullanılan kayıp fonksiyonunu ve topluluğa eklenecek bir sonraki sınıflandırıcıyı seçmek için nasıl minimize edildiğini açıklıyor. Veri kümesindeki her bir örnek için, hedef etiket ile tahmin edilen etiket arasındaki farkın üstel değeri alınarak hatanın nasıl hesaplandığını açıklar ve bu hatanın mevcut kümenin hatasını vermek için tüm veri kümesi üzerinden nasıl toplandığını gösterir. . Konuşmacı daha sonra bu hatanın, yanlış sınıflandırılmış örneklerin ağırlıklarının toplamını en aza indirmek için bir sonraki sınıflandırıcı seçilerek en aza indirilebilecek yeni bir işleve nasıl daha da basitleştirildiğini açıklar; bu, denklemin seçimden etkilenebilecek tek kısmıdır. sınıflandırıcı Genel olarak, Adaboost algoritması, bu kayıp fonksiyonunu en aza indiren sınıflandırıcıları yinelemeli olarak seçerek, yanlış sınıflandırılmış örneklerin ağırlığını etkili bir şekilde artırarak ve gelecekteki yinelemelerde yanlış sınıflandırma sıklığını azaltarak çalışır.

  • 01:00:00 Bu bölümde konuşmacı, sınıflandırma modelleri için popüler bir boost yöntemi olan AdaBoost algoritmasını anlatıyor. Bir topluluk oluşturmak için, algoritma belirli bir sınıflandırıcı ile başlar ve sınıflandırıcının o örnek üzerinde nasıl performans gösterdiğine göre her bir veri örneği için ağırlıklar hesaplanır. Yanlış sınıflandırmaların ağırlık toplamını en aza indirmek için yeni bir sınıflandırıcı eğitilir ve bu yeni sınıflandırıcıya, hatanın üstelini alarak ve ardından toplam hatayı en aza indiren a değerini bularak hesaplanan bir ağırlık verilir. Bu süreç belirli sayıda adım için tekrarlanır ve gruptaki son model sonuçtur. Konuşmacı ayrıca artırma ve paketleme arasındaki farkı açıklar ve gerileme modelleri için tasarlanmış artırmanın bir çeşidi olan gradyan artırmayı tanıtır.

  • 01:05:00 Bu bölümde, konuşmacı, sabit işlevli bir modelin başlatılmasını ve şimdiye kadarki topluluğun artıklarının hesaplanmasını içeren gradyan artırmanın temel fikrini tartışıyor. Ardından, orijinal etiketler yerine artıklarla etiketlenen veri setine yeni bir model sığdırılır ve bu model, bir değer gama ile ağırlıklandırılmış topluluğa eklenir. Model, toplamı yavaşça genişleterek, M3 = M2 + başka bir model olarak özyinelemeli olarak yazılabilir. Bu, yalnızca model çıktısı ile hedef çıktı veya artık gradyan arasındaki fark olan, karesel hataların toplamı için bir süper aşırı uydurma modelinde gradyanı hesaplamayı içerdiğinden gradyan artırma olarak adlandırılır.

  • 01:10:00 Bu bölümde konuşmacı, bir modele tahmin alanındaki gradyanı takip etmesini söyleyerek gradyan artırmanın nasıl çalıştığını açıklıyor. Gradyan artırma, kayıp fonksiyonunun L2 kaybı yerine L1 kaybı gibi başka bir kayıp fonksiyonu ile değiştirilmesine izin verir. Model çıktısına göre kayıp değerinin türevini alarak ve zincir kuralını uygulayarak, artıkların kendileri yerine artıkların sinüsünü hesaplayabilir ve topluluktaki bir sonraki sınıflandırıcıyı artıkın sinüsünü tahmin etmesi için eğitebiliriz. Bu yöntem, gradyan artırmada farklı kayıp fonksiyonlarının optimizasyonuna izin verir.

  • 01:15:00 Bu bölümde gradient boost ile ADA boost arasındaki farklar anlatılmaktadır. Gradyan artırmada, her model önceki modelin sözde kalıntılarına uyarken, ADA artırmada her yeni model, önceki modelin performansına dayalı olarak yeniden ağırlıklandırılmış bir veri kümesine uyar. Gradyan artırma, bir kayıp fonksiyonunu optimize etmeyen ve analizden ilham alan öğrenme yöntemleriyle çalışmayan modeller için daha iyi çalışır. İstifleme ise, çeşitli modellerin yargılarını tek bir çıktıda birleştiren basit bir tekniktir. Bu teknik, bir avuç modeli eğittikten ve onları daha da iyi bir modelde birleştirmek istediğinizde performansta ekstra bir artış elde etmek için kullanılır.

  • 01:20:00 Bu bölümde, konuşmacı toplulukların, bireysel modellere göre avantaj sağlarken, araştırmalarda pek kullanılmadığını, çünkü modellerin sonuçları karıştırabilecek herhangi bir güçlendirme olmadan karşılaştırmak için ayrı ayrı test edilmesi gerektiğini açıklıyor. Ayrıca topluluklar, devasa sinir ağlarıyla kullanıldığında pahalı olabilir ve bu nedenle çoğunlukla karar damgaları veya küçük karar ağaçları gibi küçük modellerle kullanılır. Konuşmacı ayrıca, torbalamanın değişkenleri azalttığını ve artırmanın önyargıları azalttığını yineler.
10 Tree Models and Ensembles: Decision Trees, AdaBoost, Gradient Boosting (MLVU2019)
10 Tree Models and Ensembles: Decision Trees, AdaBoost, Gradient Boosting (MLVU2019)
  • 2019.03.09
  • www.youtube.com
ERRATA: In slide 55, W_i and W_c are the wrong way around in the definition of a_t.slides: https://mlvu.github.io/lectures/52.Trees.annotated.pdfcourse mater...
 

Anlatım 11 Sıralı Veriler: Markov Modelleri, Kelime Katıştırmaları ve LSTM'ler



11 Ardışık Veri: Markov Modelleri, Kelime Katıştırmaları ve LSTM'ler

Bu videoda konuşmacı, makine öğreniminde karşılaşılan, zamana veya sıraya göre düzenlenmiş sayısal veya sembolik veriler gibi farklı sıralı veri türlerini tartışıyor. Bu sorunların üstesinden gelmek için Markov modellerini, kelime gömmelerini ve LSTM'leri modeller olarak tanıtıyorlar. Video, doğrulama kavramı ve üzerinde test edilen belirli bir şeyden önce gerçekleşen veriler üzerinde eğitim dahil olmak üzere, sıralı verilerle eğitim ve tahmin sürecini özetliyor. Ek olarak, konuşmacı, farklı uzunluklardaki dizilerin nasıl ele alınacağı ve zaman modellemesi dahil olmak üzere sinir ağları ile dizilerin nasıl modelleneceğini ve zaman içinde geri yayılımı kullanarak tekrarlayan bir sinir ağının eğitim sürecini açıklar. Son olarak, video, tekrarlayan sinir ağları bir şeyleri hızla unuttuğunda Markov modelleriyle iyileştirilebilen, diziden etikete sınıflandırmanın özelliklerini kapsar.

Video, Markov modelleri ve sınırlamaları, Uzun Kısa Süreli Bellek (LSTM) ağları ve bunların avantajları, metin ve görüntü üretimi için LSTM'lerin kullanılması, öğretmen zorlama teknikleri ve görüntü alt yazısı dahil olmak üzere sıralı veri işlemeyle ilgili bir dizi konuyu kapsar. Konuşmacı, LSTM yapısı ve içerdiği çeşitli kapıların yanı sıra, Shakespeare metin oluşturma ve resim alt yazısı oluşturma gibi görevler için bu ağlardan nasıl eğitilip örnek alınacağına ilişkin ayrıntılı açıklamalar sağlar. Daha basit modellerden LSTM'ler gibi daha güçlü olanlara kadar, dizi işleme için mevcut olan yöntemlerin yelpazesiyle birlikte, kelime düzeyinde LSTM'leri iyileştirmek için katmanları gömme kullanımının önemi de tartışılmaktadır.

  • 00:00:00 Bu bölümde konuşmacı, katılım düşük olduğu için bilgisayar bilimleri öğrencileri için Ulusal Öğrenci Anketine katılmanın önemini tartışıyor. Daha sonra konuşmacı, uygulama sınavlarının yerini alacağı için önümüzdeki hafta ödev olmayacağını duyurur. Konuşmacı, izleyicilere kursun zor kısmının bittiğini ve kalan derslerin daha az karmaşık olacağını garanti eder. Bu dersin konusu sıralı verilerdir ve konuşmacı bu tür problemlerin üstesinden gelmek için Markov modellerini, kelime gömmelerini ve LSTM'leri tanıtmaktadır.

  • 00:05:00 Bu bölümde, konuşmacı, makine öğreniminde karşılaşılabilecek farklı türdeki sıralı verileri, örneğin zamana veya sıraya göre düzenlenmiş sayısal veya sembolik verileri tartışır. Veriler, problemin doğasına bağlı olarak tek boyutlu veya iki boyutlu gibi farklı boyutlara sahip olabilir. Örneğin, dil verileri, her kelimenin ayrı bir değer olduğu tek boyutlu olarak veya konuşma etiketinin metin sonrası kısmıyla iki boyutlu olarak görüntülenebilir. Konuşmacı, verilerin türüne ve boyutuna bağlı olarak sınıflandırma veya tahmin gibi olası makine öğrenimi görevlerinden de bahseder.

  • 00:10:00 Bu bölümde, konuşmacı, verileri önceki değerler ve bir hedef için özellikler içeren bir tabloya dönüştürerek, tek bir dizi ayarında önceki değerler verilen bir dizinin sonraki değerini tahmin etmek için makine öğrenimi modellerinin nasıl kullanılacağını açıklar. değer. Bir modeli eğitmek için doğrusal regresyon veya regresyon ağacı gibi bir regresyon öğrenicisi kullanmayı önerirler, ancak modelin yalnızca üzerinde eğitildiğinden emin olmak için ileriye dönük bir doğrulama süreciyle verileri eğitim, doğrulama ve test kümelerine ayırmanın önemli olduğuna dikkat edin. geçmiş veriler ve gerçek dünyadaki kullanım durumlarında olan gelecekteki veriler üzerinde test edilmiştir.

  • 00:15:00 Bu bölümde, konuşmacı sıralı verilerle eğitim ve tahmin için farklı yöntemleri tartışıyor. Test edilmeden önce meydana gelen veriler üzerinde doğrulama ve eğitimin önemini vurgularlar. Markov modelini kelime düzeyinde modelleme için olasılıksal bir model olarak tanıtıyorlar ve çoklu rastgele değişkenlerin ortak olasılık dağılımının olasılık zincir kuralını kullanarak nasıl parçalanacağını açıklıyorlar. "Tebrikler, bir ödül kazandınız" cümlesinin, altı ayrı rastgele değişken olan altı rastgele değişken üzerinden ortak bir olasılık dağılımına nasıl ayrıştırılacağını ve ortak olasılık dağılımının, koşullu kelimelerin koşullu dağılımlarının bir ürününe nasıl ayrıştırılacağını gösterirler. ondan önce gelen kelimeler.

  • 00:20:00 Bu bölümde konuşmacı, bir cümleyi koşullu olasılıkların bir ürününe ayrıştırarak olasılığının nasıl hesaplanacağını tartışıyor. Belirli bir kelimenin olasılığı, özellikle geniş bir kelime dağarcığı ile çok düşük olabileceğinden, düşük akışlardan kaçınmak için günlük olasılıklarının kullanılması önerilir, bu nedenle bunun yerine logaritmayı almak daha iyidir. İdeal dil modeli sadece gramer kurallarını değil aynı zamanda sağduyu muhakemesini ve fiziği de içermelidir, ancak şimdilik konuşmacı, bir kelimenin olasılığının sadece son iki kelimeye bağlı olduğunu varsayan Markov varsayımını kullanıyor. Bu olasılıkları, derlem olarak bilinen büyük bir dil veri kümesinde kaç kez ortaya çıktıklarını sayarak tahmin edebiliriz.

  • 00:25:00 Bu bölümde video, metin üreten bir dil modeli oluşturmak için Markov modellerinin ve koşullu olasılıkların nasıl kullanılabileceğini tartışıyor. Markov modeli, sıralı örnekleme yoluyla metin üretimi için kullanılabilen bir kelime dizisi için olasılıkların hesaplanmasına izin verir. Bu teknik, sınırlamaları olmasına rağmen, dil modellerinin yetenekleri ve doğrulukları açısından test edilmesine olanak tanır. Ayrıca Markov modeli, bir e-postanın spam olma olasılığını anlamak için spam veya ham'a bağlı olarak kelimeleri bir dil modeliyle modelleyen bir Bayes sınıflandırıcı aracılığıyla yapılan sınıflandırma için kullanılabilir.

  • 00:30:00 Bu bölümde konuşmacılar, bir sınıfa verilen bir dizinin olasılığını tahmin ederek dizi verilerini modellemek için kullanılan ve ardından sınıf olasılıklarını elde etmek için Bayes kuralını kullanan Markov modellerini tartıştılar. Spam için sıfır sıralı bir Markov modeli kullanılabilir, ancak diğer görevler için daha yüksek sıralı bir model daha iyi olabilir. Ancak Markov modelleri, kelimeleri atomik semboller olarak ele alır ve bazı kelimelerin benzer anlamlara sahip olduğu gerçeğini dikkate almaz. Bunu ele almak için, her nesneye (bu durumda sözcüklere) nesneler arasındaki benzerlikleri modelleyen bir ağırlık vektörü atamak için gömme modeller kullanılabilir. Bu, vektör temsillerindeki görüntülerin kodlanmasına benzer şekilde, gizli faktörleri hesaplamak için bu vektörlerdeki parametrelerin veya değerlerin öğrenilmesiyle yapılır.

  • 00:35:00 Bu bölümde, benzer kelimelerin yanında geçen kelimelerin genellikle aynı anlama gelebileceğini belirten dağıtım hipotezi tanıtılmaktadır. Kelime gömme algoritması daha sonra bu hipotezin bir gömmeyi hesaplamak için bir uygulaması olarak tartışılır. Algoritmayı uygulamadan önce, kelimelerin, her kelime için bir sıcak vektöre sahip bir sinir ağı olan ve kelime dağarcığının gömme alanı için 300'lük bir çıktıya eşlendiği çok basit bir sinir ağına izin veren bir temsili gereklidir. Modelin alt kısmı, gömme alanı için bir kodlama olarak kullanılır ve bazı araştırmacılar bunun bir arama tablosu olduğuna inanırken, esasen bir sıcak vektörden gömmeye eşleme ile aynı şeydir.

  • 00:40:00 Bu bölümde öğretim görevlisi, kelime gibi ayrık bir nesnenin yoğun bir vektör olarak temsil edildiği bir yöntem olan kelime gömme kavramını tartışır. Gömmeler, daha sonra kelimelerin bağlamında bir olasılık dağılımı bulmak için kullanılabilen, gömmelerin doğrusal eşlemesinin bir matrisi oluşturularak eğitilir. "Erkek" için gömme "kadın" dan çıkarmanın, şeylerin daha dişil hale geldiği bir yönü nasıl yarattığına ve bu yönün "kraliçe" gibi diğer kelimeler için kelime vektörlerini hesaplamak için nasıl kullanılabileceğine dair bir örnek veriyor. Öğretim görevlisi, bu yerleştirmelerin makine öğrenimi için daha büyük sinir ağları için bir başlangıç noktası olarak nasıl kullanılabileceğini ve büyük miktarda metin verisi üzerinde eğitilmiş çok sayıda kelime yerleştirmenin diğer projelerde kullanılmak üzere Google'ın açık kaynak model kitaplığından nasıl indirilebileceğini açıklar. .

  • 00:45:00 Bu bölümde, konuşmacı, farklı uzunluklardaki dizilerin nasıl ele alınacağı ve zamanın nasıl modelleneceği dahil olmak üzere, sinir ağları ile dizilerin nasıl modelleneceğini tartışır. Bir yaklaşım, ağda bir döngüye izin vermek için gizli bir katmanın önceki gizli katmanı aldığı tekrarlayan bir bağlantı kullanmaktır. Bu, ağın farklı uzunluklardaki diziler üzerinde çalışmasına izin verir ve diziler, bir dizi çıktısı elde etmek için teker teker beslenebilir. Konuşmacı ayrıca sinir ağları ile gruplandırma ve eğitim için aynı uzunlukta olmaları için dizileri doldurmanın önemini vurguluyor.

  • 00:50:00 Bu bölümde, zaman içinde geriye yayılım kullanarak tekrarlayan bir sinir ağının eğitim süreci açıklanmaktadır. Buradaki zorluk, gizli katman değişmeye devam ettikçe tekrarlayan katman boyunca geri yayılımdadır. Bunu çözmenin bir yolu, tekrarlayan bağlantının ağın önceki kopyasından sonraki kopyasına gitmesi için ağı devre dışı bırakmaktır. Ortaya çıkan ağ, tekrarlayan bağlantıları olmayan büyük bir ileri beslemeli ağ olarak ele alınır ve ağırlıklar, geriye yayılım yoluyla güncellenir. Bu eğitim süreci, giriş dizisinin bir çıkış dizisine eşlendiği sıralı öğrenme olarak adlandırılır.

  • 00:55:00 Bu bölümde, konuşmacı, bant sınıflandırması gibi, çıktı etiketinin bir dizi verisinden geldiği etiket dizisini açıklar. Ancak, asimetri oluşturduğundan ve gradyan yayılımıyla ilgili sorunlara yol açabileceğinden, çıktıyı tahmin etmek için dizinin yalnızca son öğesini kullanmak ideal değildir. Bunun yerine, dizinin tüm çıktısını almak ve ortalamasını almak daha iyidir, bu da ağın giriş dizisinin her bölümünü dikkate almasını sağlayarak, onu etiketin daha iyi bir tahmincisi yapar. Ek olarak, konuşmacı, etiketli dizinin iki şekilde gelebileceğini açıklar; ya giriş etiketini n kez tekrarlayarak ve onu bir sinir ağına besleyerek çıktı üreterek ya da son durumu bir girdi ile başlatarak ve sinir ağına 0 vektörleri vererek. sekans. Bununla birlikte, tekrarlayan sinir ağları şeyleri hızlı bir şekilde unutma eğiliminde olduğundan, bu verimli değildir, bu da bir Markov modelinin bazı durumlar için daha iyi bir seçim olabileceği anlamına gelir.

  • 01:00:00 Bu bölümde, konuşmacı, özellikle hangi bilginin hatırlanmaya değer olduğuna karar vermede, Markov modellerinin sınırlamalarını tartışıyor. Çözüm, hangi bilgi parçalarının hatırlanacağına veya unutulacağına karar veren birkaç öğrenme kapısına sahip bir tür tekrarlayan sinir ağı olan Uzun Kısa Süreli Bellek'tir (LSTM). Kapılar, 0 ile 1 veya -1 ile 1 arasında iki değer vektörü içerir, burada soldaki değer belleğe eklenecek kısmı seçer ve sağdaki değer, giriş bilgisinin ne kadar olması gerektiğine bağlı olarak hangi bilginin tutulacağını belirler. eklendi ve ne kadarının iptal edilmesi gerekiyor. LSTM kullanılırken, bellek için seçilen bilgiler sürekli olarak eklenir, bu da daha uzun süreli belleklerin tutulmasına yardımcı olur.

  • 01:05:00 Bu bölümde konuşmacı, hücrelerden oluşan bir tekrarlayan sinir ağı türü olan Uzun Kısa Süreli Bellek (LSTM) ağının yapısını açıklıyor. Hücreler, zaman adımları arasında bir C değeri (hücre durumu) ve bir Y değeri (çıkış) boyunca geçerken her zaman adımında girdi alır ve çıktı sağlar. Konuşmacı, LSTM ağının görsel gösterimini parçalara ayırır ve bellekteki aktivasyonu azaltan unutma kapısı ve girdinin hangi bölümlerinin belleğe ekleneceğine karar veren giriş kapısı dahil olmak üzere çeşitli kapıları açıklamaya devam eder. Son adım, başka bir sigmoid ile etkinleştirilen katman aracılığıyla ortaya çıkan çıktı değerine karar vermeyi içerir. Konuşmacı, LSTM ağlarını kullanmanın avantajını vurguluyor - ağın omurgası veya konveyör bandı boyunca kaybolan bir gradyan yok, bu da verimliliğini artırıyor.

  • 01:10:00 Bu bölümde, konuşmacı, karakter düzeyinde bir sıra üreteci oluşturmak için LSTM'lerden nasıl örnek alınacağını açıklar. Çıktı, giriş geçmişine dayalı olarak bir sonraki karakterde bir olasılık dağılımıdır. Model, virgüller gibi şeyleri yerleştirmeyi, yeni satırlar yerleştirmeyi ve yüksek sesle okunursa Shakespeare'e benzeyen yaklaşık beşli ölçü birimini yerleştirmeyi öğrenir. Model, daha güçlü olduğu için sözcük düzeyi yerine karakter düzeyinde verileri sıralamak üzere eğitilmiştir, ancak yalnızca birkaç karakter örnekleniyor olsa bile tüm diziyi beslemesi gerekir. Konuşmacı, birisinin etkileyici ve oldukça Shakespearevari bir metin üreten bir Shakespeare modelini eğittiği ve test ettiği bir deneyden alıntı yaparak, modelin bağlantılar ve belirli biçimlendirme metinleri içeren bir Wikipedia makalesini düzenleyerek sözdizimini öğrenebileceğini gösteriyor.

  • 01:15:00 Bu bölümde konuşmacı, ağın büyük miktarda veri üzerinde eğitilmesi yoluyla Wikipedia makaleleri veya Donald Trump tweet'leri gibi metin oluşturmada LS DM'lerin kullanımını tartışıyor. HTML veya XML gibi LS DM'nin tezahür edebileceği farklı modları vurguluyorlar ve ağın üst düzey matematik kağıtları gibi görünen matematik bile üretebileceğinden bahsediyorlar. Ek olarak, konuşmacı, ağa beslenen rastgele bir vektör ve varyasyonel bir dış kodlayıcıya (VAE) dayalı bir kodlayıcı/kod çözücü ağı kullanarak rastgele çıktılar oluşturmak için LS DM'lerin kullanılmasını önerir; MIDI parçacıkları üzerinde eğitildi.

  • 01:20:00 Bu bölümde sunum yapan kişi, daha karmaşık bir dizi için sıralı örnekleme tahmine dayalı dil modelinin bir dış kodlayıcı ile birleştirildiği bir öğretmen zorlama tekniği kullanılarak dilin nasıl modelleneceğini tartışır. İnsanların kediler ve baykuşlar gibi çeşitli konuları hızla çizdiği eskizleri modellemek için kullanılan SketchRNN adlı öğretmen zorlamasını kullanan bir modeli göstermeye devam ediyor. SketchRNN, aynı konunun farklı çizimleri arasında düzgün bir şekilde enterpolasyon yapmak için kullanılan gizli bir boşluğa yol açan kodlayıcıyı sıralamak için varyasyonel bir dizi kullanır. Son olarak, sunum yapan kişi, aynı tekniğin insan cümleleri arasında düzgün bir şekilde enterpolasyon yapmak için nasıl kullanılabileceğini ve bunun da oldukça düzgün bir sonuçla sonuçlanabileceğini gösteriyor.

  • 01:25:00 Bu bölümde konuşmacı, ImageNet adlı veri kümesinden görüntüler ve görüntüde neler olduğunu açıklayan beş insan yazısı altyazı içeren Image COCO veri kümesini tartışıyor. Konuşmacı, resim alt yazısı oluşturma görevine yönelik basit bir yaklaşımın, önceden eğitilmiş bir resim sınıflandırma modelini indirmek ve sınıflandırma katmanını kaldırmak olduğunu öne sürüyor. Ortaya çıkan eşleme daha sonra modeli altyazılar üretecek şekilde eğitmek için bir LSTM'ye beslenebilir. Konuşmacı ayrıca, bir katıştırma katmanı kullanarak kelime düzeyinde LSTM'nin nasıl geliştirileceğini ve LSTM'ler ile Markov modelleri arasındaki farkı da açıklar. Son olarak, konuşmacı dizi işleme için güçlüden basite kullanılabilecek yöntemler yelpazesini tartışır.
11 Sequential Data: Markov Models, Word Embeddings and LSTMs
11 Sequential Data: Markov Models, Word Embeddings and LSTMs
  • 2019.03.12
  • www.youtube.com
slides: https://mlvu.github.io/lectures/61.SequentialModels.annotated.pdfcourse materials: https://mlvu.github.ioIn the last lectures, we will discuss variou...
 

12 Matris modeli: Tavsiye sistemleri, PCA ve Grafik evrişimleri



12 Matris modeli: Tavsiye sistemleri, PCA ve Grafik evrişimleri

Videonun ilk bölümünde konuşmacı, matris modellerini ve bunların ürün tavsiyeleri, haberler ve sosyal ağlar için kullanılabilecek tavsiye sistemlerindeki uygulamalarını tartışıyor. Tavsiye sistemleri, açık ve örtülü geri bildirimin yanı sıra yan bilgilere dayanır ve uygun şekilde tasarlanmamışsa yanlış bilgileri yaymak için manipüle edilebilir. Matris çarpanlara ayırma, UTM'yi R'ye mümkün olduğunca yakın hale getirmek için U ve M matrislerini bulma optimizasyon problemi ile kullanıcı davranışına dayalı derecelendirmeleri tahmin etmek için yaygın bir yöntemdir ve kareli hata yöntemleriyle çözülür ve Frobenius normunu hesaplar. Konuşmacı ayrıca bu sorunu gradyan inişini kullanarak optimize etme yöntemlerini tartışıyor ve işbirlikçi filtreleme için gradyan güncelleme kuralını açıklıyor. Ayrıca konuşmacı, kullanıcı ve film yanlılığını kontrol etme, örtük beğenileri kullanma ve site bilgilerini dahil etme dahil olmak üzere matris çarpanlarına ayırma modelini iyileştirmenin beş yolunu ele alıyor. Son olarak, konuşmacı klasik makine öğrenimi ortamındaki matris çarpanlara ayırmanın gücünü, matris çarpanlarına ayırmadaki PCA'nın uzantılarını ve veri depolamada grafik modellerin kullanışlılığını tartışıyor.

Videonun ikinci kısmı, düğüm sınıflandırması ve bağlantı tahmini için grafik konvolüsyonları dahil olmak üzere tavsiye sistemleri için çeşitli matris modelleri sunar. Grafik konvolüsyonları, komşuluk matrisini orijinal yerleştirmelerle çarparak düğüm yerleştirmelerini karıştırır, ancak bu yaklaşımın büyük sosyal grafikleri temsil etmede sınırlamaları vardır. Geleneksel doğrulama yöntemleri, öneri sistemlerinde kullanılan karma özellik modelleri için çalışmaz, bu nedenle özelliklerin değil, yalnızca eğitim seti etiketlerinin saklandığı, transdüktif öğrenmeye ihtiyaç vardır. Ek olarak, zaman ve derecelendirme verilerinin modellenmesi, zaman damgası verilerinin ve transdüktif öğrenmenin dikkate alınmasını gerektirir. Video, dersin bir özeti ve aşağıdaki pekiştirmeli öğrenme tartışmasının bir ön izlemesi ile sona eriyor.

  • 00:00:00 Bu bölümde konuşmacı, en iyi matris olarak görülen veri kümelerini analiz etmek için farklı yaklaşımlar olan matris modelleri kavramını tanıtıyor. Tartışılacak modeller, veri kümelerini matrisler olarak ele alma özelliğini paylaşır. Ders, tipik olarak matris çarpanlarına ayırma yoluyla uygulanan öneri sistemlerine odaklanır ve Netflix yarışmasını kazanan model tartışılır. Ders ayrıca doğrulama üzerine bir tartışmayla bitirmeden önce temel bileşen analizine ve grafik modellere kısaca değinir.

  • 00:05:00 Bu bölümde, konuşmacı öneri sistemlerinde kullanılabilecek üç veri biçimini açıklıyor: açık geri bildirim, örtülü geri bildirim ve yan bilgi. Açık geri bildirim, kullanıcıdan çok değerli ancak nispeten nadir olan belirli bir öğeyi derecelendirmesinin istenmesidir. Örtülü geri bildirim, sayfa görüntülemeleri, istek listeleri ve hatta fare hareketleri gibi kullanıcının ne yaptığına bakılarak toplanabilir. Yan bilgiler, kullanıcılar ve filmler arasındaki eşleşme hakkında bilgi değil, kullanıcıların kendileri ve filmler hakkında uzunluk, aktörler ve yönetmenler gibi bilgilerdir. Konuşmacı, öneri sistemlerinin ürün önerileri (ör. Amazon), haberler (ör. Google Haberler) ve sosyal ağlar (ör. Twitter ve YouTube) dahil olmak üzere çeşitli ayarlar için yararlı olduğunu belirtiyor.

  • 00:10:00 Bu bölümde konuşmacı tavsiye sistemlerini ve güvenlik açıklarını tartışıyor. Öneri sistemleri, belirli kullanıcılara içerik önermek için kullanılır, ancak yanlış bilgi yaymak için manipüle edilebilirler. Konuşmacı, iki grup şey ve aralarında bir ilişki olan herhangi bir durumun bir tavsiye paradigması olarak kabul edilebileceğini belirtiyor. Örneğin, tarifler ve malzemeler veya politikacılar ve oylama yasaları. Her kullanıcı her filmi derecelendirmediği için tavsiye sistemleriyle ilgili sorun eksik verilerdir. Konuşmacı, her kullanıcıya ve filme bir vektör atamak için gömme modellerin kullanılmasını ve eksik verileri tahmin etmek için bir kayıp fonksiyonuna dayalı olarak bu vektörlerin değerlerinin öğrenilmesini önerir.

  • 00:15:00 Bu bölümde konuşmacı, matris çarpanlarına ayırmayı, kullanıcı davranışına dayalı olarak film derecelendirmelerini tahmin etme hedefiyle kullanıcıları ve filmleri bir modelde temsil etmenin bir yolu olarak tanımlar. Model, her kullanıcıya ve her filme bir vektör atar ve bunlar daha sonra büyük bir matriste çarpılır. Konuşmacı, nokta çarpımı kullanarak, modelin eksi sonsuz ile pozitif sonsuz arasındaki bir değeri nasıl tahmin ettiğini açıklar; daha yüksek değerler, kullanıcının filmi beğenme olasılığının daha yüksek olduğunu gösterir. Modelin kategorileri, kullanıcı davranışı hakkında sığ varsayımları güçlendirme eğilimindedir ve özellikle rafine edilmemiş olsa da, model yine de güvenilir tahminler sunabilir. Matris çarpanlara ayırma yoluyla, bir matris iki küçük matrise ayrıştırılır, bir matris kullanıcıları, diğeri filmleri ve bunların nokta çarpımları tahminleri temsil eder.

  • 00:20:00 Bu bölümde sunum yapan kişi, UTM'yi R'ye olabildiğince yakın hale getirmek için U ve M matrislerini bulma optimizasyon problemini açıklıyor. Bu, hatanın karesi yöntemi kullanılarak ve Frobenius normunun hesaplanmasıyla yapılır. Ancak sorun, derecelendirme matrisinde genellikle eksik değerlerin olmasıdır. Bu sorunu çözmek için, kayıp işlevi, R'nin tüm öğeleri yerine, yalnızca R'nin eğitim setinde derecelendirmesinin bilindiği öğeleri üzerinden hesaplanır. Sunucu ayrıca bu sorunu optimize etmek için alternatif optimizasyon olan iki yöntemi tartışır. ve gradyan iniş. Gradyan iniş yöntemi daha esnektir ve modelinize eklenmesi daha kolaydır.

  • 00:25:00 Bu bölümde konuşmacı, matris çarpanlara ayırma ile işbirlikçi filtreleme tekniği için gradyan güncelleme kuralını açıklıyor. Hata matrisini tanımlar ve kayıp fonksiyonunun parametrelere göre türevinin alınması sürecini açıklar. Ardından, gradyan güncelleme kuralının, kullanıcı ve film yerleştirmelerinin değerlerini güncellemek için nasıl kullanıldığını gösterir. Güncelleme kuralı, hata matrisinin satırı ve sütunu ile ilgili gömme matrisi arasındaki iç çarpımın hesaplanmasını ve güncellenmekte olan parametreye eklenmesini içerir.

  • 00:30:00 Bu bölümde konuşmacı, öneri sistemlerinde nokta çarpım tahmin işlevinin arkasındaki mantığı ve bunun stokastik gradyan iniş kullanılarak nasıl eğitilebileceğini açıklıyor. Yalnızca olumlu derecelendirmelere sahip olma sorunu ve bunun olumsuz örnekleme yoluyla nasıl çözüleceği de tartışılmaktadır. Konuşmacı daha sonra, PCA'daki gizli alan kavramına benzer şekilde, filmler için bazı yorumlanabilir boyutlar veren, negatif olmayan matris çarpanlarına ayırma problemini çözmenin iki yolunu araştırır.

  • 00:35:00 Bu bölümde konuşmacı, film önerileri için matris çarpanlara ayırma modelini geliştirmenin beş yolunu tartışıyor. İlk olarak, öğrenilen skaler parametreler eklenerek kullanıcı ve film yanlılığının kontrol edilmesinin modele nasıl dahil edilebileceğini açıklıyor. İkinci olarak, altın yıldız veya soğuk başlatma sorunu, ikinci bir kullanıcı yerleşimi oluşturmak için göz atma davranışı gibi örtük beğeniler kullanılarak ele alınır. Üçüncüsü, model, kayıp fonksiyonuna bir ceza terimi eklenerek aşırı uyumdan kaçınmak için düzenli hale getirilebilir. Dördüncüsü, kullanıcı ve film yerleştirmelerinin boyutsallığını azaltmak için temel bileşen analizi (PCA) uygulanabilir. Son olarak, konuşmacı, film türleriyle ilgili bilgileri birleştirmek ve modele dökmek için grafik evrişimlerinin nasıl kullanılabileceğinden bahsediyor.

  • 00:40:00 Bu bölümde konuşmacı, örtük bilgilerin ve site bilgilerinin tavsiye sistemlerine nasıl ekleneceğini açıklar. Örtülü bilgi için sistem, bir kullanıcının beğendiği tüm film yerleştirmelerini özetler ve mevcut yerleştirmelerine ekler. Benzer şekilde, site bilgisi için, bir kullanıcının özellikleri kategorik bir veri halinde kodlanır ve bunlara karşılık gelen yerleştirmeler, üçüncü yerleştirme vektörünü oluşturmak için toplanır. Konuşmacı ayrıca zamanın derecelendirmeleri etkileyebileceğini, bu nedenle iyi tahminler için zamanı kontrol etmenin gerekli olduğunu belirtiyor. Bu, yerleştirmeleri ayrık zaman dilimlerine bölerek ve her dönem için farklı yerleştirmeleri öğrenerek yapılabilir. Bu bölüm, tavsiye sistemleri için matris çarpanlara ayırma ve yanlılıkların bir özeti ile sona ermektedir.

  • 00:45:00 Bu bölümde konuşmacı, tavsiye sistemlerinde matris çarpanlara ayırmanın gücünü ve bunun klasik makine öğrenimi ortamında nasıl uygulanabileceğini tartışıyor. Bir özellik sütunları ve örnek satırları matrisi alarak, geri yayılım yoluyla matris çarpanlara ayırma veya diğer eğitim yöntemleri, bir örneğin bir C vektörü C matrisi ile çarpılarak kurtarılabilecek düşük boyutlu bir temsilini oluşturabilir. Bu, temel bileşen analizi (PCA) gibi boyut indirgeme tekniklerine benzer, ancak C'nin sütunlarının lineer olarak bağımsız olduğu varsayılarak PCA'ya eşdeğer hale getirilebilir ve bu da kısıtlı bir minimizasyon problemiyle sonuçlanır.

  • 00:50:00 Bu bölümde sunum yapan kişi PCA'yı ve matris çarpanlara ayırmadaki uzantılarını tartışıyor. PCA'nın, yalnızca verilerin bilinen değerleri üzerinden yeniden yapılandırmayı en üst düzeye çıkararak eksik veriler için kullanılabileceğini açıklarlar. Bunu yaparak, sınıflandırma veya regresyon için kullanılabilecek verilerin düşük boyutlu temsiline veya gömülmesine izin verir. Seyrekliği zorlamak ve parametre yorumlamayı kolaylaştırmak için L1 düzenleyiciyi kullanan seyrek PCA'nın uzantısı da tanıtıldı. Sunucu daha sonra ikili veriler için ikili çapraz entropi gibi farklı kayıp değerlerinin matris çarpanlara ayırma problemine nasıl uygulanabileceğini açıklamaya devam eder ve bu yöntemlerin veriler için nasıl daha iyi gömmeler üretebileceğini gösterir. Bu bölüm, yararlı bir veri biçimi olarak grafik modellere bir girişle sona ermektedir.

  • 00:55:00 Bu bölümde konuşmacı, sosyal ağlar, protein etkileşimleri, trafik ağları ve bilgi grafikleri gibi verilerin depolanmasında grafiklerin esnekliğini tartışıyor. Konuşmacı daha sonra, özellikle tavsiye problemlerine benzer olarak görülebilen bağlantı tahmini ve düğüm sınıflandırma görevleri için grafik tüketebilen makine öğrenimi modellerini kullanma fikrini önerir. Konuşmacı, düğüm yerleştirme kavramını tanıtıyor ve grafiğe daha derin bakmanın ve temel yerleştirmeyi genişletmenin bir yolu olarak grafik evrişimli sinir ağını tartışıyor.

  • 01:00:00 Bu bölümde konuşmacı, tavsiye sistemlerinde grafik konvolüsyonlarının nasıl çalıştığını açıklıyor. Grafik evrişimleri, grafikteki her bir düğüme, görselleştirme amacıyla rastgele bir renk atamak olarak yorumlanabilecek, rastgele bir boyutsal gömme atar. Grafik evrişimlerinin ardındaki sezgi, düğümün komşularından kendi yerleşimine bilgi çekmeye izin vererek, bu yerleştirmeleri karıştırmalarıdır. Birkaç karıştırma adımından sonra, tüm düğümler sonunda genel grafiği temsil eden aynı gösterime sahip olacaktır. Düğüm gömmelerini karıştırmak için bitişiklik matrisi, orijinal gömmelerle çarpılır; bu, her bir düğüm gömmesinin komşularının artı kendisinin toplamını temsil ettiği yeni gömmeler verir. Değerlerin patlamamasını sağlamak için yerleştirmelerin normalleştirilmesi gerekir.

  • 01:05:00 Bu bölümde, konuşmacı düğüm sınıflandırması ve bağlantı tahmini için grafik evrişimlerinin nasıl kullanılacağını açıklar. Düğüm sınıflandırması için, her düğüm için bir gömme basit bir grafiğe atanır ve komşu düğümlere dayalı olarak yeni katıştırmalar oluşturmak için bir grafik evrişimi uygulanır. Ardından, sınıflandırma için gömmeleri iki boyuta eşlemek için başka bir evrişim uygulanır. Bağlantı tahmini için, çoklu grafik evrişim katmanları aracılığıyla düğüm yerleştirmeleri üretilir ve bu yerleştirmelerin üzerinde bir matris çarpanlarına ayırma modeli kullanılır. Gradyanlar daha sonra, daha derin grafik yapısına dayalı bağlantı tahmini için orijinal grafik konvolüsyonları boyunca geri yaymak için kullanılır.

  • 01:10:00 Videonun bu bölümünde, konuşmacı, bir sosyal grafiği seçici ve aşırı kapsayıcı olmayan bir şekilde temsil etmeyi içeren grafik evrişimlerinin zorluklarını tartışıyor. Sosyal grafiklerin küçük dünya özelliği nedeniyle, her bir düğümün temsilinde grafiğin tamamını temsil etmek sorunludur ve geleneksel grafik evrişimleri, gereksiz bilgileri etkili bir şekilde filtrelemez. Ek olarak, eğitim tam parti halinde yapılmalıdır, bu da performansı düşürebilir. Konuşmacı, grafik dikkati daha seçici bir yaklaşım olarak önerir, ancak bu hala aktif bir araştırma alanıdır. Konuşmacı ayrıca, grafik evrişim modelleri için doğrulamanın zorlu olduğunu ve standart makine öğrenimi doğrulama yöntemlerinden sapmayı gerektirdiğini belirtiyor.

  • 01:15:00 Bu bölümde, konuşmacı, geleneksel eğitim testi doğrulama yöntemlerinin, öneri sistemlerinde kullanılanlar gibi karma özellik yaklaşımları için çalışmadığını, çünkü kullanıcı özelliklerinin veya film özelliklerinin saklanmasının, yerleştirme kaybına yol açtığını açıklıyor. Bunun yerine, özelliklerin değil, yalnızca eğitim seti etiketlerinin saklandığı transdüktif öğrenmeye ihtiyaç vardır. Bu yaklaşım, tüm kelime dağarcığının önceden bilinmesi gereken gömme modelleri eğitirken önemlidir. Ancak, kalan verilerin eğitim ve test için kullanılması için rastgele derecelendirmeler veya bağlantılar yine de saklanabilir. Son olarak konuşmacı, düğüm kimliği etiketlemesindeki sınıflandırmanın tüm grafiği kullanarak hala yapılabileceğini not eder.

  • 01:20:00 Bu bölümde konuşmacı, zaman damgası verilerinin ve transdüktif öğrenmenin hesaba katılması gereken bir veri kümesinde modelleme zamanı ve derecelendirmenin zorluğunu tartışıyor. Gelecekten eğitim verisi olmamasının önemli olduğunu ve test setinin eğitim setinin geleceğinde olması gerektiğini açıklıyorlar. Ek olarak, konuşmacı dersi özetler, soyut tavsiye görevini çözmek için matris çarpanlarına ayırmanın kullanımını ve grafik modelleri ve grafik evrişimleri kullanarak tavsiyenin genelleştirilmesini vurgular. Bölüm, pekiştirmeli öğrenme üzerine bir sonraki dersin bir ön izlemesiyle sona erer.
12 Matrix models: Recommender systems, PCA and Graph convolutions
12 Matrix models: Recommender systems, PCA and Graph convolutions
  • 2019.03.15
  • www.youtube.com
slides: https://mlvu.github.io/lectures/62.Matrices.annotated.pdfcourse materials: https://mlvu.github.ioToday we discuss a variety of models that benefit fr...
 

13 Takviyeli Öğrenme: Policy Gradients, Q Learning, AlphaGo, AlphaStar (MLVU2019)



13 Takviyeli Öğrenme: Policy Gradients, Q Learning, AlphaGo, AlphaStar (MLVU2019)

Video, robotik direk dengeleme arabası ve tic-tac-toe oyunu gibi örnekleri tartışarak, takviyeli öğrenmeye ve temel bileşenlerine bir giriş sağlar. Konuşmacı, ayırt edilemeyen işlevler, ödül almadaki gecikme ve kredi atama problemi dahil olmak üzere pekiştirmeli öğrenmenin zorluklarını derinlemesine araştırır. Kredi atama sorunu, rastgele arama, politika gradyanları ve Q-öğrenme gibi tekniklerle ele alınır; burada konuşmacı her bir algoritmayı, faydalarını ve sınırlamalarını açıklar. Q-öğrenme algoritması, Q-değerlerini temsil etmek için büyük bir sayı tablosu kullanılarak nasıl çalıştığına dair bir açıklama ile daha ayrıntılı olarak tartışılmaktadır. Sunum, derin Q-learning ve AlphaGo'nun takviyeli öğrenme alanında nasıl devrim yarattığının bir açıklamasıyla sona eriyor.

  • 00:00:00 Bu bölümde eğitmen pekiştirmeli öğrenme konusunu tanıtıyor ve çevrimdışı öğrenmeden nasıl farklı olduğunu açıklıyor. Takviyeli öğrenme, bir dünyayla etkileşime giren ve aldığı geri bildirimlerden gerçek zamanlı olarak öğrenen bir aracının modellenmesini içerir. Bilinmeyen bir ortamdaki robot elektrik süpürgesi örneği, bu kavramı açıklamak için kullanılır. Eğitmen ayrıca takviyeli öğrenme görevini çözmek için rastgele arama, politika gradyanları ve Q-öğrenme olmak üzere üç algoritmadan bahseder. Ardından tartışma, AlphaGo, AlphaZero ve yapay zeka kullanımı yoluyla StarCraft II'de dünyanın en iyi insan oyuncusunu yenmek için devam eden arayışa odaklanarak takviyeli öğrenmedeki son gelişmelere geçer.

  • 00:05:00 Bu bölümde öğretim görevlisi, bir ortam, bir model ve bir öğreniciyi içeren pekiştirmeli öğrenmenin temel çerçevesini açıklar. Model harekete geçer ve anında ödüller alır ve durumunu buna göre değiştirirken, öğrenci modeli anında günceller. Öğretim görevlisi, takviyeli öğrenmenin nasıl çalıştığını göstermek için elektrikli süpürge problemi, tic-tac-toe ve kontrol problemleri gibi basit örnekler sunar. Tic-tac-toe ve elektrik süpürgesi problemlerinde, ödüller sadece model son duruma geldiğinde verilirken, kontrol problemlerinde otomatik bir ortamda bir robotun veya makinenin nasıl kontrol edileceğini öğrenmek yer alır.

  • 00:10:00 Bu bölümde, konuşmacı, sahada klasik bir kontrol problemi olan robotik kutup dengeleme arabası bağlamında pekiştirmeli öğrenmeyi tartışıyor. Amaç, basit bir fizik motoru veya fiziksel bir robot ile yapılan arabayı dik tutmaktır. Sistem, verilen tek ödülün arabanın raydan düşmesi veya direğin dik durması durumunda verildiği seyrek bir ödül kullanır. Öğrenme hedefi, bu cezadan mümkün olduğu kadar uzun süre kaçınarak ödülü en üst düzeye çıkarmaktır. Konuşmacı daha sonra, denetimli öğrenme ile başlayıp yardımcı hedefler ve ödül şekillendirme ekleyerek akrobasi hareketleri yapmak için takviyeli öğrenme kullanılarak eğitilmiş uzaktan kumandalı bir helikopterin bir gösterimini sergiliyor.

  • 00:15:00 Bu bölümde konuşmacı, pekiştirmeli öğrenmenin derin öğrenme oyununu nasıl değiştirdiğini tartışıyor. AlphaGo'dan önce, araştırmacıların piksellerden öğrenecek algoritmalar elde etmek için Atari oyunlarını kullandıklarına dikkat çekiyor. Sistemin birçok farklı oyunu oynamayı öğrenmesini sağlayan derin pekiştirmeli öğrenme adı verilen bir sinir ağı oluşturdular. Bu güçlü bir kavramdır çünkü araştırmacılar, bizim politika dediğimiz durumlardan eylemlere eşlemeleri öğrenmek için derin bir sinir ağı kullandılar. Takviyeli öğrenmeyle ilgili üç ana sorun vardır: ayırt edilemeyen kayıp, kredi atama sorunu ve keşfetmeye karşı sömürü.

  • 00:20:00 Bu bölümde, konuşmacı, ortamdaki ayırt edilemeyen işlevler ve keşfetme ile kullanma arasındaki denge de dahil olmak üzere pekiştirmeli öğrenmenin zorluklarını tartışıyor. Çevreden gerçek ödülü almadaki gecikme, nihai sonuca hangi önceki eylemlerin katkıda bulunduğunun tanınmasını gerektirdiğinden başka bir sorundur. Konuşmacı ayrıca araba sürmeyi öğrenirken karşılaşılan zorluğa bir örnek veriyor; burada frenlemenin hemen ardından gelen bir çarpışmayla yanlış bir ilişkilendirmeye yol açabiliyor. Çözüm, ödülü önceki eylemlere dağıtmayı ve hangilerinin olumlu veya olumsuz sonuçlara yol açtığını öğrenmeyi gerektirir.

  • 00:25:00 Bu bölümde video, dünyayla etkileşim kurarken ödülü en üst düzeye çıkaracak bir sinir ağı için ağırlıkların belirlenmesini içeren pekiştirmeli öğrenmede kredi atama problemini tanıtıyor. Video, bir ödül işlevinin, durum geçişlerinin ve bir politikanın sinir ağı için ortamı nasıl belirleyebileceğini açıklıyor. En basitinden başlayarak, bu sorunu çözmek için üç yaklaşım sunar - rastgele arama. Nüfusa dayalı kara kutu optimizasyon yöntemleri kavramı da, bu yöntemin "Frostbite" adlı bir Atari oyununa başarılı bir şekilde uygulanmasının bir örneği ile tanıtılmaktadır.

  • 00:30:00 Bu bölümde öğretim görevlisi, pekiştirmeli öğrenmeyi ve kredi atama problemi için kullanılan farklı teknikleri tartışır. Bazı basit oyunlar için işe yarayan temel bir yaklaşım olarak rastgele arama ile başlamanızı önerirler. Bununla birlikte, politika gradyanları ve Q-learning gibi daha karmaşık yöntemler, daha derin pekiştirmeli öğrenme ardışık düzenleri için popülerdir. Politika gradyanı, sonundaki toplam ödüle dayalı olarak bir yörüngenin her adımına bir sıradaki ödülleri atamaya çalışır. Bu, mantığa aykırı görünse de, çoklu yörüngelerin ortalamasını alır ve derin öğrenme boru hattının bir kısmının ayırt edilemez olduğu durumlarda iyi çalışır.

  • 00:35:00 Bu bölümde, politika gradyanları kavramı ve bunların gradyanların tahmini yoluyla beklenen nihai ödülü optimize etmek için nasıl kullanılabileceği tartışılmaktadır. Algoritma, bir dizi yörüngeyi örnekleyerek, bu eylemlerin her birini boru hattının geri kalanında takip ederek ve nihai ödülü, örnekteki her bir yörünge için bu eylemin olasılığının logaritmasının gradyanı ile çarparak gradyanı tahmin etmeyi içerir. Gradyanın bu tahmini daha sonra daha fazla geri yayılım için kullanılabilir. Bu algoritma AlphaGo ve AlphaZero'da kullanılmıştır.

  • 00:40:00 Bu bölümde konuşmacı, indirimli ödülü optimize etmek için kullanılan pekiştirmeli öğrenmede popüler bir algoritma olan Q-learning'i tartışıyor. İndirimli ödül, bir poliçenin farklı eyaletlerde belirli eylemleri seçmesi durumunda alacağı toplam ödüldür. Q-learning, ilkenin eylemlerine dayalı olarak her bir durum için indirimli ödülü hesaplamak için özyinelemeli bir işlev kullanır. İndirimli ödülü maksimize eden en uygun politika daha sonra bu hesaplamaya göre belirlenir. Konuşmacı, Q-learning'in nasıl çalıştığını göstermek için elektrikli süpürge dünyasının basit bir örneğini kullanır.

  • 00:45:00 Bu bölümde, konuşmacı pekiştirmeli öğrenmede optimal politika kavramını ve optimal değer fonksiyonunu açıklıyor. Optimal politika, belirli bir durum için maksimum değere götürürken, optimal değer fonksiyonu, bu politikanın değer fonksiyonudur. Ancak bu değerlerin hesaplanması genellikle zordur. Konuşmacı daha sonra, Q adlı bir işlev açısından en uygun politikayı ve en uygun değer işlevini yeniden tanımlayan Q-öğrenme algoritmasını tanıtır. Q, gerçekleştirilen bir eylemden kaynaklanan bir sonraki durum için Q'nun indirimli değeriyle çarpılan anlık ödül olarak tanımlanır. mevcut durumda. Q'nun dairesel tanımı, bir Q fonksiyonu oluşturmaya ve değerleri doldurarak optimal olup olmadığını sormaya olanak tanır.

  • 00:50:00 Bu bölümde, konuşmacı, Q-öğrenme için en uygun Q fonksiyonunu bulmanın bir yolu olarak tekrarlayan denklemleri yineleme yoluyla çözme yöntemini tartışıyor. Bir skaler fonksiyon kullanarak yineleme ilişkisini basitleştirir ve yinelemeli hesaplamanın kararlı durum/çözüm bulmak için kullanılabileceğini gösterir. Benzer şekilde, Q-öğrenme için, ilk Q fonksiyonu rastgele başlatılır ve ardından tekrarlama ilişkisi bir program olarak uygulanır ve Q fonksiyonu, tekrarlama ilişkisinin sağladığı değerlere göre güncellenir. Q işlevinin değerleri, bir durum, eylem, ödül veya ardıl durumla karşılaşılan ortamla her etkileşimden sonra güncellenir ve her bir ardıl durum üzerindeki maksimum değer, Q işlevini güncellemek için kullanılır.

  • 00:55:00 Bu bölümde, Q değerlerini temsil etmek için büyük bir sayı tablosunun öğrenilmesini içeren Q öğrenme algoritması açıklanmaktadır. Algoritma, her durumda anlık ödülü gözlemleyerek ve aynı yörüngenin tekrarı yoluyla onu başlangıç durumuna geri yayarak çalışır. Durum uzayı, bir durumu rastgele keşfetmenin bazı küçük olasılıklarıyla en iyi politikanın izlendiği bir süreç olan epsilon-açgözlü keşif yoluyla keşfedilir. Ardından, Q-değeri işlevini öğrenmek için bir sinir ağının uygulanmasını içeren derin Q öğrenimi başlatılır. Geri yayılım yoluyla ağ, gözlemlenen anlık ödüllerden ve ardıl durumlardan gelen bilgilerle güncellenir. Son olarak videonun kalan 30 dakikasında "AlphaGo" belgeselinden bir tavsiye üzerine AlphaGo'nun nasıl çalıştığına dair bir açıklama sözü veriliyor.

  • 01:00:00 Bu bölümde, konuşmacı Go oyununu açıklıyor ve AlphaGo hakkındaki bazı yaygın yanılgıları ortadan kaldırıyor. Go oyununun yüksek bir dallanma faktörüne sahip olduğu doğru olsa da, oyunu zorlaştıran sadece ağacın boyutu değildir. En iyi hareket stratejisini bulmak için ağacın derinliklerine bakmak da zorlu bir yöndür. Konuşmacı ayrıca mevcut durumdan tüm olası gelecekleri sıralamak için kullanılan minimax algoritması gibi Go oyununa yönelik eski yaklaşımları da tartışıyor.

  • 01:05:00 Bu bölümde konuşmacı, minimax algoritmasına yaklaşmak için bir oyun ağacını hızlı ve verimli bir şekilde keşfetme yöntemi olan Monte Carlo ağaç aramayı tartışıyor. Bu yöntem, rastgele hareketler seçen ve takviyeli öğrenme terimlerinde durumun değerini tahmin eden sunumlar yapmayı içerir. Konuşmacı, Monte Carlo ağaç aramanın, her şeyi keşfetmeden ağacın gelecek vaat eden bölgelerini oluşturmak için yerel ağacın hafızasını tutmakla sunumları nasıl birleştirdiğinden bahsediyor. Temel algoritma, yaprağa kadar takip edilen tüm düğümlerin olasılıklarını güncellemek için düğümleri genişletmeyi, sunumları gerçekleştirmeyi ve değerleri geri yaymayı içerir. Bu yöntem iyi çalışıyor ve herhangi bir makine öğrenimi veya sinir ağı içermiyor.

  • 01:10:00 Bu bölümde, konuşmacı AlphaGo ve AlphaZero'nun Go oyununa uygulanan pekiştirmeli öğrenme örnekleri olduğunu tartışıyor. AlphaGo, Go oynamak için iki sinir ağı, bir ilke ağı ve bir değer ağı kullanır. Politika ağı, tahtanın durumunu bir eylemle eşler ve değer ağı, durumu o durumdan kazanma olasılığıyla eşler. İnsan oyunlarından öğrenerek bu ağları eğitmek için taklit öğrenmeyi kullanıyorlar ve ardından politika gradyan takviyeli öğrenmeyi kullanarak kendi kendine oyun yoluyla gelişiyorlar. Gerçek oyun sırasında AlphaGo, hamlelerini yapmak için değer ve ilke ağıyla birlikte Monte Carlo ağaç aramasını kullanır. AlphaZero, herhangi bir insan bilgisi kullanmayan, bunun yerine oyun anlayışını tamamen kendi kendine oynama yoluyla geliştiren daha yeni bir sürümdür. AlphaZero, ilke ve değer ağlarını tek bir ağda birleştirir, ilke iyileştirme operatörü olarak Monte Carlo ağaç aramasını kullanır ve performansı artırmak için toplu normalleştirme ile kalan bağlantıları ekler.

  • 01:15:00 Bu bölümde, bir ağın hem ilke hem de değer çıktılarından eğimler alan paylaşılan bir dizi alt katmana sahip olduğu "iki başlı canavar" kavramı ele alınmaktadır. Eğitim sırasında, MCTS ilkesi, bir ilk ilkeyle başlayacakları, MCTS'yi kullanarak kendi aleyhine oynamasına izin verecekleri ve sonuçtaki ilkeyi MCTS olarak gözlemleyecekleri şekilde bir ilke iyileştirme operatörü olarak kullanılır. Bu gözlemlenen iyileştirme adımı daha sonra ağa bir eğitim hedefi olarak verilir. Ek olarak, artık bağlantıların ve daha iyi normalleştirmenin bir kombinasyonu, sinir ağı için bir hile olarak kullanılır ve özellikle toplu normalleştirme ile birlikte çok iyi çalışan daha derin ve daha derin bir sinir ağının öğrenilmesi için kademeli bir kolaylık sağlar.

  • 01:20:00 Bu bölümde, konuşmacı, derin pekiştirmeli öğrenme ağlarını uygun şekilde eğitmek için ağırlık başlatmanın ve verilerin standartlaştırılmasının önemini tartışıyor. Konuşmacı, girdinin sıfır ortalama ve varyans bir ile standardize edilmesi için ağırlıkların başlatılmasının, geri yayılım sırasında daha iyi davranışlı gradyanlarla sonuçlanmasını önerir. Toplu normalleştirme, toplu işteki tüm örneklere baktığı, ortalamayı ve standart sapmayı hesapladığı ve bunları standartlaştırdığı için bu standardizasyona yardımcı olan yararlı bir katmandır. Bu, eğitimi hızlandırmaya ve çok daha derin ağları eğitmeye yardımcı olabilir; konuşmacı, AlphaGo ve AlphaZero'nun toplu normalleştirmeyi kullanan eğitimdeki başarısından bahsediyor.

  • 01:25:00 Bu bölümde konuşmacı, DeepMind'ın gerçek zamanlı strateji oyunlarına uygulanan makine öğrenimindeki en son atılımı olan AlphaStar'ın gelişimini tartışıyor. DeepMind'ın AlphaGo'su tarafından "çözüldüğü" kabul edilen Go oyununun aksine StarCraft, çeşitli eylem alanı, kusurlu bilgileri ve bir oyun ağacının olmaması nedeniyle makine öğrenimi için benzersiz zorluklar ortaya çıkardı. AlphaStar, bir transformatör gövdesi, derin LSDM çekirdeği, işaretçi ağı ve çok aracılı öğrenme gibi tekniklerin bir kombinasyonunu kullanır. DeepMind, AlphaStar'ın nasıl çalıştığına dair ayrıntıları henüz yayınlamamış olsa da, yeteneklerinin dünya çapındaki Starcraft oyuncularına karşı sergilenmesi etkileyici ve bu alandaki en son teknolojiyi temsil ediyor.

  • 01:30:00 Bu bölümde konuşmacı, gömülü sistemler gibi çalışan ve sinir ağlarının birimler arasındaki ilişkileri öğrenmeye başlamasını sağlayan dönüştürücülerin kullanımını tartışıyor. Bu önemlidir, çünkü sinir ağının, örneğin bir oyunda gezinmek için, belirli birimler arasındaki ilişkiler hakkında akıl yürütmesine izin verir. Ardından konuşmacı, pekiştirmeli öğrenmenin sıralı örneklemede nasıl çalıştığını ve otomatik gerilemeli politika başkanının daha tutarlı ve verimli bir eylem dizisi oluşturmaya nasıl yardımcı olduğunu açıklar. Son olarak, konuşmacı çok aracılı öğrenme kavramını ve oyuncuların kolay stratejileri yenmeyi unutmasını önlemek için nasıl kullanıldığını açıklıyor.

  • 01:35:00 Bu bölümde konuşmacı, DeepMind tarafından StarCraft oyununu oynamak için geliştirilen bir yapay zeka sistemi olan AlphaStar ile ilgili tartışmayı tartışıyor. AlphaStar, StarCraft'ın profesyonel oyuncularını yenmede başarılı oldu ve AI sisteminin gerçekten insan benzeri performans sergileyip sergilemediği veya insanların sahip olmadığı yetenekleri istismar edip etmediği konusunda tartışmalara yol açtı. AlphaStar'ın ana avantajlarından biri, kamera görüntüsünü sürekli olarak ayarlamak zorunda olan insan oyuncuların aksine, tüm tahtayı aynı anda görebilmesiydi. Ek olarak, AlphaStar dakikada yaklaşık 600 eylemle sınırlandırılmış olsa da, bu eylemler, çok fazla gürültüyle dakikada 800 defaya kadar tıklayabilen insan oyuncuların eylemlerinden daha yüksek kalitedeydi. Bununla birlikte, AlphaStar'ın bir zayıflığı, biliş hakkında içgörü sağlayabilen sistemin temel sorunu olan oyun sırasında karşılaşılan yeni stratejilere iyi yanıt verememesiydi.
13 Reinforcement Learning: Policy Gradients, Q Learning, AlphaGo, AlphaStar (MLVU2019)
13 Reinforcement Learning: Policy Gradients, Q Learning, AlphaGo, AlphaStar (MLVU2019)
  • 2019.03.21
  • www.youtube.com
slides: https://mlvu.github.io/lectures/71.Reinforcement%20Learning.annotated.pdfcourse materials: https://mlvu.github.ioToday we discuss the most generic ab...
 

14 İnceleme: Tümevarımsal Önyargı, Algoritmik Önyargı, Makine öğreniminin sosyal etkisi (MLVU2019)



14 İnceleme: Tümevarımsal Önyargı, Algoritmik Önyargı, Makine öğreniminin sosyal etkisi (MLVU2019)

Videonun bu ilk bölümü, kayıp fonksiyonları, derin öğrenme sistemleri, tümevarımsal ve algoritmik önyargı ve makine öğrenimindeki açık problemler dahil olmak üzere makine öğrenimi konularının kapsamlı bir incelemesini sunar. Konuşmacı, veri bilimi sürecinde metodolojinin ve gerçek dünya kullanım durumlarının önemini vurgular ve ertelemeyi incelemek ve üstesinden gelmek için ipuçları sağlar. Konuşmacı ayrıca makine öğrenimi kavramlarının anlaşılmasını geliştirmeye yönelik stratejileri tartışır ve ileri öğrenim için kaynaklar sunar. Son olarak video, makine öğrenimi modellerinde genelleme sorununu ve model performansını iyileştirmede tümevarımsal önyargıların önemini vurgular.

Videonun ikinci bölümü, tümevarımsal önyargı, algoritmik önyargı ve makine öğreniminin sosyal etkisi dahil olmak üzere makine öğrenimiyle ilgili çeşitli konuları tartışıyor. Tümevarımsal önyargı, nedensellik, kompozisyon ve genelleme problemlerini çözmek için bir sinir ağına yerleştirilebilir. Bununla birlikte, bu yaklaşımın, modellenmemiş değişkenlere karşı azaltılmış sağlamlık dahil olmak üzere sınırlamaları da vardır. Makine öğrenimi modelleri verilerdeki önyargıları güçlendirirse, algoritmik önyargı devam ettirilebilir. Bu, yüz tanıma algoritmalarının renkli insanları tanıyamadığı veya ABD yargı sisteminde siyah insanlara karşı önyargılı kullanılan algoritmalar gibi durumlarda sorunlu olabilir. Bu sistemlerin sorumlu bir şekilde geliştirilmesi, önyargıların sürdürülmesinden kaçınmak ve karar verme süreçlerinde adaleti teşvik etmek için önemlidir.

  • 00:00:00 Videonun bu bölümünde, konuşmacı, sınıflandırma veya regresyon, örnekleri ve özellikleri seçme, seçme gibi standart görevleri içeren makine öğreniminin temel tarifi de dahil olmak üzere makine öğrenimi kursu boyunca işlenen konuların bir incelemesini sunar. bir model sınıfı ve örneklere ve özelliklere uyacak iyi bir model aramak. Konuşmacı metodolojinin önemini ve test setini aşırı kullanmaktan kaçınmak için verileri bir eğitim ve test setine ayırma fikrini vurgular. Gerçek dünyadaki kullanım durumunu akılda tutmanın ve veri bilimi sürecinde bu kullanım durumunu yansıtan kararlar almanın önemini vurguluyor. Konuşmacı ayrıca sınav stratejileri ve makine öğreniminin mevcut durumu ve gelecekteki etkisi hakkında bir bakış açısı sağlar.

  • 00:05:00 Bu bölümde konuşmacı, doğruluk ve sınırlamalarından başlayarak makine öğreniminde kullanılabilecek çeşitli kayıp fonksiyonlarını tartışıyor. Modelin çıktılarını sınıflar üzerindeki olasılıklar olarak yorumlamak için bir sigmoid işlevi kullanan ve ardından bu olasılıkları maksimum olasılık ilkesi ve çapraz entropi kaybını kullanarak optimize eden lojistik regresyon kayıp işlevi sunulur. Tartışılan diğer kayıp fonksiyonları arasında en küçük kareler, entropi ve yumuşak kenar boşluğu SVM yer alır. Son olarak, konuşmacı karmaşık modeller için gradyanı hesaplamak için onları bir modül bileşimine bölerek ve yerel türevlerin bir ürününü elde etmek için zincir kuralını kullanarak geri yayılım algoritmasını tanıtır.

  • 00:10:00 Videonun bu bölümünde, öğretim görevlisi derin öğrenme sistemlerinin temellerini ve tensörler kullanarak yumuşak türevlenebilir fonksiyonlar üzerinden gradyanların nasıl hesaplanacağını tartışıyor. Ayrıca gizli değişken modellerinden bahsediyor ve gizli değişkenler üzerindeki dağılımları bulmak için beklenti maksimizasyonu algoritmasını açıklıyor. Ders daha sonra sinir ağlarını içeren gizli değişken modeller olan üreteç sinir ağlarına geçer. Öğretim görevlisi, üretken rakip ağlar ve varyasyonel otomatik kodlayıcılar kullanarak verileri veriler aracılığıyla uydurmayı tartışır. Son olarak ders, karar ve regresyon ağacı modellerinin yanı sıra sıralı veri ve tekrarlayan sinir ağları ve Markov modelleri gibi modelleri kapsar.

  • 00:15:00 Bu bölümde, konuşmacı makine öğrenimindeki tümevarımsal ve algoritmik önyargıyı tartışarak eğitim verilerinin her zaman test verilerinden önce gelmesi gerektiğini ve çapraz doğrulamanın ileriye dönük çapraz doğrulama kullanılarak yapılması gerektiğini öne sürüyor. Ardından konuşmacı, kullanıcı ve film derecelendirmelerini tek veri kaynağı olarak kullanan tavsiye sistemlerine ve bu matris modelinin hem kullanıcılar hem de filmler için ne kadar bilgilendirici olduğuna değiniyor. Son olarak, konuşmacı, pekiştirmeli öğrenmenin keşif ve kullanım arasında bir ödünleşim gerektirdiğini ve bırakmalı evrişimli sinir ağlarının bir keşfetmeye karşı kullanım ikilemi oluşturmadığını, bunun yerine bir çevrimiçi hiperparametre optimizasyon tekniği olduğunu açıklar.

  • 00:20:00 Bu bölümde konuşmacı, karmaşık konulardan bahsederken kavramların kafamızda bir grafik gibi olduğunu, ancak bunları açıklarken bir diziye dönüştüğünü açıklıyor. Tartışılan kavramlar arasındaki üst düzey ilişkileri yeniden kurmaya yardımcı olmak için konuşmacı, arama ve modellerden oluşan bir zihin haritası oluşturur. Modeller, J by Ganz ve v AE gibi daha karmaşık modellerin yanı sıra doğrusal regresyon, doğrusal sınıflandırma ve lojistik regresyon gibi belirli sinir ağları örneklerine ayrılmıştır. Konuşmacı ayrıca, en genel ve stokastik gradyan iniş olan gradyan iniş ve belirli varyantlar olan mini toplu gradyan iniş olmak üzere farklı arama yöntemleri türlerini tartışır. Konuşmacı, mini toplu gradyan inişinin çoğu zaman yaygın olarak kullanılan şey olduğunu belirtiyor. Son olarak, konuşmacı, özelliklere, örneklere ve hedef değerlere bölmenin temel ayarı ve ayrı örneklerle belirli bir sırada ilgilenmenin sıra ayarı gibi, verilerle başa çıkmanın farklı ayarlarını ve yollarını tartışır.

  • 00:25:00 Bu bölümde konuşmacı, sıralı veriler, öneri sistemleri ve çevrimiçi öğrenme gibi makine öğrenimindeki farklı veri kümeleri ve görevlerini tartışır. Ayrıca, bilgi kaybını önlemek için herhangi bir manuel özellik çıkarma işlemi yapmadan uçtan uca bir ardışık düzen oluşturmayı içeren bir yöntem olarak derin öğrenmeden bahsediyorlar. Konuşmacı, bazı "ticaret hileleri" hakkında ipuçları ve derslerde tartışılan tüm soyut görevler ve modellerin bir incelemesini verir. Son olarak, konuşmacı, üç soru kategorisi içeren sınava çalışmak için ipuçları verir: hatırlama, birleştirme ve akıl yürütme.

  • 00:30:00 Bu bölümde öğretim görevlisi öğrencilerin gelecek sınavda bekleyebilecekleri üç soru türünü tartışır: kalıcılık, kombinasyon ve uygulama soruları. Ertelemenin mükemmeliyetçilikten kaynaklandığını fark etmek ve bir göreve başlamak için en küçük uygulanabilir taahhüdü bulmak gibi, öğrencilerin erteleme ile başa çıkmalarına yardımcı olacak bazı ipuçları sağlar. Öğretim görevlisi ayrıca, ilerlemeyi izlemek ve çalışmayı sonsuz bir görev olarak görmekten kaçınmak için bir ilerleme çubuğu oluşturmayı da önerir. Son olarak öğrencilere mükemmeliyetçi olmamaları gerektiğini hatırlatır.

  • 00:35:00 Videonun bu bölümünde, konuşmacı ertelemenin nasıl üstesinden gelineceğine ve verimliliğin nasıl artırılacağına dair ipuçları veriyor. Önerdiği tekniklerden biri, 25 dakikalık bir zamanlayıcı ayarlamayı ve bu süre boyunca aşırı odaklanma ile çalışmayı ve ardından beş dakikalık bir mola vermeyi içeren Pomodoro Tekniğidir. Ayrıca bir sınavın ders içeriğine odaklanmayı ve yaklaşan bir sınava hızla hazırlanmak için deneme sınavlarını kullanmayı öneriyor. Genel olarak, konuşmacı bir anda mükemmellik için çabalamak yerine bir hedefe doğru küçük, ulaşılabilir adımlar atmanın önemini vurgular.

  • 00:40:00 Bu bölümde konuşmacı, makine öğrenimi kavramlarının anlaşılmasını geliştirmeye yönelik stratejileri paylaşıyor. Her şeyi baştan sona okumak yerine, bilgi boşluklarını belirlemek için hızlı bir geçiş yapmayı ve ardından bu belirli alanlara odaklanmayı öneriyor. Bu sürece yardımcı olmak için, öğrenirken daha sonra açıklama için başvurmak üzere bir anahtar kelime listesi oluşturmanızı önerir. Ayrıca öğrencilere hangi konulara odaklanacaklarına öncelik vermeleri için kendi sınav sorularını bulmalarını tavsiye ediyor ve materyal hakkında farklı bakış açıları kazanmak için birden fazla kaynaktan okuma öneriyor. Son olarak, daha fazla öğrenim için kapsamlı bir kaynak olarak Google Makine Öğrenimi Hızlandırılmış Kursu'nu önerir.

  • 00:45:00 Bu bölümde sunum yapan kişi, makine öğrenimindeki açık sorunları, yani nedensellik, kompozisyon ve genellemeyi tartışır. Nedensellik, modern makine öğrenimi yöntemleri için zor bir sorundur çünkü korelasyon nedensellik anlamına gelmez. Nedenselliği belirlemek için, deneylerin yapılabileceği pekiştirici bir öğrenme ortamı aracılığıyla yapılabilecek bir müdahale gereklidir. Bununla birlikte, etik veya pratik nedenlerden dolayı deneyler mümkün değilse, modele enjekte etmek için arka plan bilgisi kullanılabilir. Sunucu ayrıca dünyadaki olası nedenleri modellemek için küçük grafikler çizmekten bahseder.

  • 00:50:00 Bu bölümde konuşmacı, insan muhakemesinin makine öğrenimi modellerine nasıl entegre edileceğini keşfederken tümevarımsal önyargılar ve algoritmik önyargı hakkında konuşuyor. Nedenselliğin nasıl çıkarsanabileceğini ve arka plan bilgisinin korelasyonlar hakkında akıl yürütmek için nasıl kullanılabileceğini tartışırlar. Ayrıca, özellikle tekrarlayan sinir ağlarında gözlemlenen, makine öğreniminde kompozisyon ve genelleme ile ilgili sorunları tartışıyorlar. Konuşmacı, makine öğrenimini daha da ilerletmek için birleştirme etkilerini anlama ihtiyacımızı belirterek bitiriyor.

  • 00:55:00 Bu bölümde konuşmacı, makine öğrenimi modellerindeki genelleme sorununu ve eğitim verilerinden biraz farklı olan veriler üzerinde test edildiğinde nasıl dağılma eğiliminde olduklarını tartışıyor. Bunun çözümü, model uzayındaki belirli çözümlere doğru yönlendirmek için bir modele yerleştirilen örtük veya açık kısıtlamalara atıfta bulunan tümevarımsal önyargı hakkında düşünmekte yatmaktadır. Konuşmacı, farklı model türlerine ve bunların tümevarımsal yanlılıklarına örnekler vererek, evrişimli sinir ağlarında bulunanlar gibi daha güçlü tümevarımsal yanlılıkların bir modelin genelleştirme yeteneğini nasıl geliştirebileceğini vurgular.

  • 01:00:00 Bu bölümde konuşmacı, nedensellik, kompozisyon ve genelleme problemlerini çözmeye yardımcı olmak için bir sinir ağına yerleştirilebilen tümevarımsal önyargı fikrini tartışıyor. Arka plan bilgisini enjekte ederek ve açık bir şekilde modele kompozisyon oluşturarak ağ, yalnızca yüze kadar basamak görmüş olsa bile yüzlerce veya binlerce basamağı temsil etmeyi öğrenebilir. Ancak, bir model ne kadar kısıtlanırsa, modellemediği şeylere karşı o kadar az dayanıklı hale gelir. Dahası, konuşmacı, makine öğreniminin daha uçtan uca öğrenim sistemlerine doğru ilerleyeceğini ve makine öğreniminin tüm sisteme yayılarak diferansiyel programlama veya "yazılım 2.0" denen bir şeye yol açacağını tasavvur ediyor.

  • 01:05:00 Bu bölümde konuşmacı, makine öğreniminin programlama dillerinde ilkel hale gelme potansiyelini ve bunun nasıl daha büyük ve daha öngörülebilir sistemlere yol açabileceğini tartışıyor. Konuşmacı ayrıca makine öğreniminin yazı tipi tasarlama gibi yaratıcı sanatlar üzerindeki etkisini araştırıyor ve makine öğreniminin, makinelerin yaratıcılık ve tasarım gibi mevcut insan süreçlerini geliştirdiği zeka artırma için kullanılabileceğini öne sürüyor. Akıllı altyapı kavramı, katil robotların geliştirilmesiyle ilgili endişelere olası bir çözüm olarak da tanıtıldı.

  • 01:10:00 Bu bölümde konuşmacı, tutarlı bir dil üretme ve büyük ölçekte sahte haberler üretme yeteneğine sahip GPT gibi dil oluşturucuların potansiyel tehlikelerini tartışıyor. Endişe, bu tür bir teknolojinin, bireylerin içeriği manipüle etmesine izin vererek potansiyel olarak ulusal tartışmaları ve seçimleri etkileme potansiyeli olan önemli bir sosyal etkiye sahip olabileceğidir. Ayrıca, makine öğrenimi modelleri eğitildikleri verilerdeki önyargıları güçlendirebileceğinden ve üretime geçirildiğinde olumsuz sonuçlara yol açabileceğinden, algoritmik önyargı konusu da tartışılmaktadır.

  • 01:15:00 Bu bölümde konuşmacı, makine öğrenimi algoritmalarının verilerde zaten var olan önyargıları ortadan kaldırmak yerine güçlendirebildiği algoritmik önyargı konusunu tartışıyor. Bu, yüz tanıma algoritmalarının beyaz olmayan insanları tanıyamaması ve arama motoru sonuçlarının ağırlıklı olarak erkek olduğu CEO görüntüleri gibi örneklerde görüldüğü gibi, belirli gruplar üzerinde istenmeyen sonuçlara ve zararlı etkilere neden olabilir. Konuşmacı ayrıca sistemleri izlemenin ve makine öğrenimi algoritmalarına özgü önyargıların farkında olmanın önemini vurguluyor.

  • 01:20:00 Bu bölümde konuşmacı, makine öğrenimi sistemlerindeki algoritmik önyargı konusunu ve bunun sahip olabileceği sosyal etkileri tartışıyor. ABD yargı sisteminde siyahlara karşı önyargıları olan, yanlış tahminlere yol açan ve toplumsal önyargıları sürdüren tekrar suç işlemeyi tahmin etmek için kullanılan bir makine öğrenimi sisteminin durumunu açıklıyor. Bu sistemlerde kullanılan veriler doğru olsa bile, ırka dayalı kararlar almak için makine öğrenimine güvenmenin ırksal profillemeye yol açabileceğini ve sistemik önyargıları sürdürebileceğini savunuyor. Hollanda'da ırksal profillemenin normalleştirildiği ve halk tarafından kabul edildiği bir vakadan bahsediyor. Konuşmacı, önyargıları sürdürmekten kaçınmak ve karar verme süreçlerinde adaleti desteklemek için makine öğreniminin etik kullanımını savunuyor.

  • 01:25:00 Bu bölümde, konuşmacı ırksal profilleme konusunu ve bunun olasılıkların kötüye kullanılmasıyla nasıl bağlantılı olduğunu tartışıyor. Savcının yanılgısı kavramını ve belirli bir koşul verildiğinde bir sonucun olasılığının, sonucun verildiği koşulun olasılığıyla aynı olduğunu nasıl yanlışlıkla varsayabileceğini açıklarlar. Konuşmacı, tahminler doğru olsa bile, bu tahminlere dayanan eylemlerin adil veya ahlaki olduğu anlamına gelmediğini savunuyor. Ek olarak, etnik köken gibi belirli özelliklerin hala çıkarım yapılabileceğine veya diğer özelliklerle ilişkilendirilebileceğine dikkat çekiyorlar, bu da makine öğrenimi sistemlerinden ırksal önyargıyı tamamen ortadan kaldırmayı zorlaştırıyor. Son olarak, konuşmacı, bireylerin kendi eylemlerinden sorumlu tutulmaları gerekirken, mikro saldırganlıklar veya bazı durumlarda haksız yere hedef alınma gibi olumsuz etkileri olabilecek, niteliklerini paylaşan başkalarının eylemleri nedeniyle cezalandırılmalarına izin vermenin temel olarak adil olmadığını belirtiyor. trafik durur gibi

  • 01:30:00 Bu bölümde konuşmacı, makine öğreniminin potansiyel sosyal etkisini ve bu sistemlerin sorumlu bir şekilde geliştirilmesi ihtiyacını tartışıyor. Makine öğreniminin birçok karara hükmetmesiyle birlikte, ölçekte kusurlu bir bileşene güvenme konusunda yeni bir sorun ortaya çıkıyor ve Çin'in sosyal kredi sistemi buna bir örnek. Politikacılar ve insanlar bu tür sistemlerin geliştirilmesinde sorun yok, bu nedenle bu sistemleri sorumlu bir şekilde oluşturmak ve geliştirmek için bu sorunlar hakkında bilgi sahibi olan bilgisayar bilimcilerine, bilgi bilimcilerine ve veri bilimcilerine ihtiyaç var. Bu sistemleri kurma sorumluluğu bu alanlarda okuyan öğrencilere düşüyor ve konuşmacı onlara sınavlarında ve bitirme projelerinde başarılar diliyor.
14 Review: Inductive Bias, Algorithmic Bias, Social impact of machine learning (MLVU2019)
14 Review: Inductive Bias, Algorithmic Bias, Social impact of machine learning (MLVU2019)
  • 2019.03.21
  • www.youtube.com
slides: https://mlvu.github.io/lectures/72.Review.annotated.pdfcourse materials: http://mlvu.github.ioThe final lecture. A review of everything we've learned...
 

Python'da Görüntüleri ve Videoları Segment Any Modelini (SAM) Kullanarak Segmente Ayırın | YOLOv5 | YOLOv8 ve SAM



Python'da Görüntüleri ve Videoları Segment Any Modelini (SAM) Kullanarak Segmente Ayırın | YOLOv5 | YOLOv8 ve SAM

Bu video, çeşitli görevler için resimlerden ve videolardan nesneleri tanımlayabilen ve çıkarabilen bir yapay zeka modeli olan Segment Everything Modelini (SAM) tanıtıyor. SAM, 11 milyar görüntü ve 1,1 milyar maskeden oluşan devasa bir veri kümesi üzerinde eğitilmiştir ve çeşitli segmentasyon görevlerinde güçlü performansa sahiptir. Video, gerekli paketlerin nasıl kurulacağı, önceden eğitilmiş model kontrol noktalarının nasıl indirileceği ve Python kullanılarak görüntüler ve videolar üzerinde segmentasyon yapılması da dahil olmak üzere yerel bir sistemde SAM kullanımına yönelik adım adım talimatlar sağlar. Video ayrıca, ilgilenilen nesnelerin etrafında sınırlayıcı kutular oluşturmak için SAM'in YOLOv5 veya YOLOv8 ile nasıl kullanılacağını gösterir. SAM'in animasyonda da potansiyel uygulamaları vardır.

  • 00:00:00 Bu bölümde video, çeşitli görevler için görüntülerden ve videolardan nesneleri tanımlayıp ayıklayabilen Meta'nın yakın zamanda piyasaya sürülen bir AI modeli olan Segment Everything Modelini (SAM) tanıtıyor. SAM, 11 milyar görüntü ve 1,1 milyar maske üzerinde eğitilmiştir ve çeşitli segmentasyon görevlerinde güçlü bir sıfır atış genelleştirmesine sahiptir. Video, kullanıcıların bir görüntü yüklemesine ve tam görüntü üzerinde segmentasyon gerçekleştirmesine veya her bir nesneyi ayrı ayrı kesmesine olanak tanıyan bir demo aracılığıyla SAM'in nasıl kullanılacağını gösterir. Kullanıcılar ayrıca sınırlayıcı kutular çizebilir, maskeler ekleyebilir ve çoklu maskeleme gerçekleştirebilir. SAM'in animasyonda da potansiyel uygulamaları vardır. Video ayrıca SAM'ın mimarisi, veri seti kullanılabilirliği ve sık sorulan sorular hakkında ek bilgiler sağlar.

  • 00:05:00 Videonun bu bölümünde sunum yapan kişi, bir görüntüdeki farklı nesneler için çoklu maskeler oluşturmak üzere Her Şeyi Segment Modeli'nin (SAM) nasıl kullanılacağını gösterir. SAM, 11 milyon görüntü ve 1,1 milyar maskeden oluşan bir veri kümesi üzerinde eğitilmiştir ve çeşitli segmentasyon görevlerinde güçlü bir performansa sahiptir. Sunum yapan kişi, bir görüntünün nasıl seçileceğini, tam görüntü üzerinde segmentasyonun nasıl çalıştırılacağını ve ardından ayrı nesnelerin nasıl kesileceğini gösterir. Sunum yapan kişi ayrıca nesnelerin etrafına sınırlayıcı kutuların nasıl çizileceğini ve elde edilen verilerin nasıl indirilip dağıtılacağını gösterir. Video, YOLOv5 ve YOLOv8 dahil olmak üzere SAM kurulumu ve Python'da kullanımı hakkında bilgilerle sona eriyor.

  • 00:10:00 Videonun bu bölümünde sunum yapan kişi, bir GPU'ya sahip olmak ve CUDA destekli Torch ve Dodge Vision gibi gerekli paketleri kurmak da dahil olmak üzere, segmentin herhangi bir modelini yerel bir sistemde çalıştırmak için gereklilikleri açıklıyor. Segment Any Model deposunun nasıl klonlanacağını ve gerekli tüm bağımlılıkların pip kullanılarak nasıl kurulacağını gösterirler. Video ayrıca bir segmentasyon modelinin ONNX formatına nasıl dönüştürüleceğini ve üç farklı omurga boyutu için önceden eğitilmiş model kontrol noktalarının nasıl indirileceğini de kapsar. Sunum yapan kişi daha sonra modeli kullanarak resimlerde ve videolarda segmentasyonun nasıl yapılacağını gösterir. Video ayrıca her görev için ayrıntılı adım adım talimatlar içerir ve bu da izleyicilerin takip etmesini kolaylaştırır.

  • 00:15:00 Videonun bu bölümünde sunum yapan kişi önce, Google uygulama not defterinde giriş ve çıkış resimlerini görüntülemek için Matplotlib dahil gerekli tüm kitaplıkları içe aktarır. Daha sonra sürücülerinden örnek görüntüler indirirler ve arka planda binalarla birlikte yürüyen birden fazla kişinin örnek görüntüsünü gösterirler. Daha sonra, Google uygulama not defterine tire kenarı olan önceden eğitilmiş bir model kontrol noktası yüklerler ve görüntüleri segmentlere ayırmak için herhangi bir model otomatik maske üreteci segmentini uygularlar. Sunum yapan kişi, SMAM tarafından görüntüyü taramak ve sağlanan noktalara göre bölümlere ayırmak için kullanılan görüntülerin her bir tarafında noktalar sağlar. Segmentasyonun doğruluğunu artırmak için 0,9'luk bir tahmin IOT eşiği ayarlanır.

  • 00:20:00 Videonun bu bölümünde sunum yapan kişi, Python kullanarak görüntüler ve videolar üzerinde nesne segmentasyonu gerçekleştirmek için Her Şeyi Segment Modeli'nin (SAM) nasıl kullanılacağını gösterir. Doğruluğu artırmak ve çıktıdaki çöp miktarını azaltmak için iç ünite zamanlamasının nasıl ayarlanacağını gösterirler. Segmentasyon modelini örnek bir görüntüye uygularlar ve bunun kişiyi, binayı ve ağacı nasıl doğru bir şekilde segmentlere ayırdığını gösterirler. Ardından, meta segmentasyon paketini yükleyerek ve Google Drive'dan örnek videoları indirerek örnek bir videoyu bölümlere ayırmak için aynı modeli kullanırlar. Sunum yapan kişi daha sonra bir GitHub deposundan kodu kopyalar ve bunu videoya uygulayarak SAM'ı videoda etkin bir şekilde uygular.

  • 00:25:00 Bu bölümde konuşmacı, farklı omurga boyutlarına sahip üç farklı modeli içeren ve kullanıcıların model adını tanımlamasını ve uygulamak istedikleri videoyu çağırmalarını sağlayan Segment Any Model (SAM) deposunu tartışıyor. Konuşmacı daha sonra mevcut paketleri ve örnek görüntüleri kullanarak SAM'ı YOLOv5 veya YOLOv8 ile entegre etmek için gereken kodu çalıştırır. Konuşmacı, SAM'in binalarda, ağaçlarda ve arabalarda segmentasyon yapmak için nasıl kullanıldığını, çıktının gürültüsünü gidermek için renk kodlarını kullanarak gösterir. Konuşmacı ayrıca, her modelin farklı bir omurga boyutuna sahip olduğunu belirterek, farklı segmentasyon modeli versiyonlarını tartışır. Gösteri, en küçük YOLOv8 Nano modelinin doğruluğunu ve hızını vurgular.

  • 00:30:00 Bu bölümde konuşmacı, segmentasyon gerçekleştirmek ve ilgilenilen nesnelerin etrafında sınırlayıcı kutular oluşturmak için YOLOv8 ile Her Şeyi Parçala Modelini (SAM) nasıl kullanabildiklerini gösteriyor. Bir kişiyi çevreleyen sınırlayıcı bir kutu sergileyerek ve aynı zamanda görüntülerini bölümlere ayırarak modelin kapasitesini gösterirler. Konuşmacı, YOLOv8'in SAM ile entegrasyonunu vurgulayarak ve izleyicilerle vedalaşarak video eğitimini sonlandırır.
Segment Images & Videos in Python using Segment Anything Model (SAM) | YOLOv5 | YOLOv8 and SAM
Segment Images & Videos in Python using Segment Anything Model (SAM) | YOLOv5 | YOLOv8 and SAM
  • 2023.04.13
  • www.youtube.com
#SAM #segmentation #computervision #yolo #yolov8 #python #pytorch Segment Images & Videos in Python using Segment Anything Model (SAM) | YOLOv5 | YOLOv8 and ...
 

YOLOv8 Kursu - YOLOv8 ve Flask Kullanan Gerçek Zamanlı Nesne Algılama Web Uygulaması - Web Kamerası/IP Kamera


YOLOv8 Kursu - YOLOv8 ve Flask Kullanan Gerçek Zamanlı Nesne Algılama Web Uygulaması - Web Kamerası/IP Kamera

YOLOv8 Kursu, izleyicilere YOLOv8 ve Flask kullanarak gerçek zamanlı bir nesne algılama web uygulaması oluşturma konusunda rehberlik eden bir dizi eğitimdir. Eğitimler, Python ve PyCharm gibi gerekli yazılımların yüklenmesini, sanal ortam oluşturulmasını, paketlerin yüklenmesini ve görüntülerde ve web kameralarında nesne algılamanın test edilmesini kapsar. Öğreticiler ayrıca çıktıyı tensörlerden tamsayılara dönüştürmeyi, algılanan nesneleri etiketlemeyi ve çıktı videosunu algılamalarla kaydetmeyi de kapsar. İzleyicilere YOLOv8'i Flask ile nasıl entegre edecekleri ve gerçek zamanlı nesne algılama web uygulamasını hem video hem de canlı web kamerası yayınlarında nasıl çalıştıracakları gösteriliyor.

Videonun ikinci bölümünde sunum yapan kişi, kişisel koruyucu ekipman tespiti için özel bir modelin eğitimini ve çıkarımını sergilemenin yanı sıra, canlı web kamerası beslemeleri ve videolarında nesne tespiti için Flask ve YOLOv8 kullanarak bir web uygulamasının nasıl oluşturulacağını gösterir. Web uygulamasının bir ana sayfası, bir video sayfası ve her sayfa için CSS stili olan canlı bir web kamerası besleme sayfası vardır ve sunum yapan kişi, proje için kullanılan HTML ve Flask dosyalarını gözden geçirir. Video, bir veri kümesini içe aktarma, YOLOv8 modeli eğitimi için hazırlama, modeli eğitme, sonuçları analiz etme ve modeli demo videolarda test etme sürecini gösterir. Genel olarak video, gerçek zamanlı bir nesne algılama web uygulaması geliştirmek ve test etmek için kapsamlı bir eğitim sağlar.

Sunum yapan kişi, kişisel koruyucu ekipman (PPE) veri kümesi üzerinde eğitilmiş YOLOv8 modelini kullanan bir web uygulamasında yapılan değişiklikleri de tartışır. Değişiklikler, sınıf adlarına göre sınırlayıcı kutulara ve etiket dikdörtgenlerine farklı renkler atamak için kodun değiştirilmesini ve sınırlayıcı kutuların ve dikdörtgenlerin görünmesi için 0,5'in üzerinde bir güven puanının ayarlanmasını içerir. Sunum yapan kişi, bir videoda ve canlı web kamerası yayınında KKD öğelerinin başarılı bir şekilde algılandığını göstererek kursun sonunu işaret eder.

  • 00:00:00 Sonraki adım, Python ve PyCharm Community Edition'ı indirip kurmaktır. Python'un en son sürümü, hatalar ve hata düzeltmeleri içerebileceği için önerilmez. Önerilen Python 3.8 sürümünün en son sürümünü indirebiliriz. PyCharm Professional sürümü 30 günlük ücretsiz deneme sunar, ancak Community Edition eğitim için yeterlidir. Gerekli yazılımı indirip yükledikten sonra, istediğimiz herhangi bir adla boş bir klasör oluşturabilir ve ardından projeyi başlatmak için PyCharm'de açabiliriz.

  • 00:05:00 YOLOv8 hızlandırılmış kursunun bu bölümünde, eğitmen Pycharm'da yeni bir sanal ortamın nasıl oluşturulacağını ve proje için gerekli paketlerin nasıl kurulacağını gösterir. Eğitmen, Paket Yöneticisi penceresi aracılığıyla yeni bir projenin nasıl oluşturulacağını, temel yorumlayıcının nasıl seçileceğini ve paketlerin nasıl kurulacağını gösterir. Ayrıca komut satırından kurmak istediğiniz tüm paketleri yazmak için bir gereklilikler.txt dosyasının nasıl oluşturulacağını da gösterirler. Video, YOLOv8 kullanarak nesne algılama için ultralytics paketini kurmanın önemini vurguluyor.

  • 00:10:00 Bu bölümde eğitmen, YOLO'nun kendi paketi olan tek sürümü olan YOLOv8'in nasıl kurulacağını gösterir. Pip install ultralytics kullanılarak YOLOv8 kurulabilir ve algılama veya eğitim komut dosyasında herhangi bir değişiklik yapılması gerekiyorsa depo klonlanabilir. Eğitmen daha sonra paketi ve YOLOv8 modelini içe aktararak, önceden eğitilmiş ağırlıklar dosyasını belirleyerek ve giriş görüntüsü yolundan geçerek bir görüntüdeki nesneleri algılamak için YOLOv8'i kullanır. Sonuçlar, görüntüde algılanan nesneleri gösterir.

  • 00:15:00 Bu bölümde video, YOLOv8 modelinin yeni görseller üzerinde görseller klasörüne eklenerek ve YOLO test komut dosyası çalıştırılarak nasıl test edileceğini göstermektedir. cv2 kütüphanesini içe aktardıktan ve bir gecikme ekledikten sonra model, motosikletleri ve arabaları doğru bir şekilde tespit ederek oldukça etkileyici sonuçlar veriyor. Video ayrıca farklı YOLO modelleri kullanılırken hıza karşı doğruluk konusuna da değiniyor ve daha da doğru sonuçlar için YOLOv8x modelinin kullanılmasını öneriyor. Video daha sonra YOLOv8 modelini yeni bir dizin kullanarak bir web kamerasında test etmeye geçer.

  • 00:20:00 Videonun bu bölümünde sunum yapan kişi "YOLOv8_webcam.py" adlı yeni bir dosya oluşturur. YOLOv8, CB2 ve matematiği içe aktarırlar ve "cap" değerini "CV2.videoCapture(0)" olarak ayarlarlar, bu da web kameralarında YOLOv8 çalıştırmalarına izin verir. Kare hızını ve yüksekliğini sırasıyla "cap.get(5)" ve "cap.get(4)" çağırarak hesaplarlar. Çıktı videosunu algılamalarla kaydetmek istediklerini açıklıyorlar, bu nedenle çıktı dosyası adını CB2.VideoWriter() kullanarak "output.avi" olarak ayarlıyorlar. Kare hızını ve yüksekliği işleve iletirler ve sonra "modern"i "YOLOv8"e eşit olarak ayarlarlar. Sunum yapan kişi daha sonra görüntülerinde "CV2.imshow('image', image)" ve "CV2.waitKey(1)" diyerek web kamerasının düzgün çalışıp çalışmadığını test eder.

  • 00:25:00 YOLOv8 Kursunun bu bölümünde sunum yapan kişi web kamerasını test eder ve çıkış videosunun düzgün kaydedilip kaydedilmediğini kontrol eder. Ardından, YOLOv8 modelini kullanarak canlı web beslemesinde tespitleri çalıştırmaya devam eder ve sonuçları 'results' adlı bir değişkene kaydeder. Kod, performansı görmek için her bir sınırlayıcı kutuya bakar. Her sınırlayıcı kutunun dört koordinatı vardır - X1, Y1, X2 ve Y2; bunlar, algılanan nesnenin etrafında sınırlayıcı kutuların daha fazla işlenmesi ve oluşturulması için tensörlerden tamsayı biçimine dönüştürülür.

  • 00:30:00 Videonun bu bölümünde sunum yapan kişi, çıktının tensörlerden tamsayılara nasıl dönüştürüldüğünü ve cv2.rectangle kullanılarak algılanan her nesnenin etrafında bir dikdörtgenin nasıl oluşturulduğunu anlatır. Sınırlayıcı kutunun rengi ve kalınlığı, algılanan her nesne için başlangıç ve bitiş noktasıyla birlikte tanımlanır. Uygulamanın çıktısı, sınırlayıcı kutuların algılanan nesnelerin etrafına mükemmel bir şekilde çizildiğini gösterir. Ancak sunum yapan kişi, algılanan her nesne için etiket ve güven puanının da görüntülenmesi gerektiğinden bahseder. Güven puanı şu anda tensörler biçiminde görüntüleniyor, ancak sunum yapan kişi bunu mat.c kullanarak bir tamsayıya dönüştürmeyi planlıyor.

  • 00:35:00 Eğitim videosunun bu bölümünde eğitmen, izleyicilere algılanan nesnelere nasıl güven puanları ekleneceğini, bunları tamsayılara nasıl dönüştüreceklerini ve sınıf kimliklerine göre nasıl etiketleyeceklerini gösterir. Sınıf kimliği, nesnenin türüne göre belirlenir; 0 kişi, 1 bisiklet ve 2 arabadır. Eğitmen ayrıca etiketin etrafında bir dikdörtgenin nasıl oluşturulacağını ve çıktı algılamalarının output.avi adlı bir dosyaya nasıl kaydedileceğini gösterir. İzleyiciler canlı tespitleri kare kare görebilir ve eğitmen onlara ekrana tıklayarak işlemi nasıl durduracaklarını gösterir. Eğitmen ayrıca çıktı video dosyasını görüntüler ve sonuçların beklendiği gibi olduğunu onaylar. Son olarak, eğitmen bir sonraki eğitimde YOLOv8'i Windows üzerinde çalıştıracaklarını ve sonuçları paylaşacaklarını duyurur.

  • 00:40:00 YOLOv8 Kursunun bu bölümünde içerik oluşturucu, YOLOv8 önceden eğitilmiş ağırlıkları kullanarak örnek bir video üzerinde nesne algılamanın nasıl gerçekleştirileceğini gösterir. Amaç, COCO veri setinin parçası olan hem bisikletleri hem de insanları tespit etmektir. İçerik oluşturucu, komut dosyasının nasıl çalıştırılacağını ve klasörün belirlenen video klasörüne nasıl yönlendirileceğini gösterir, ardından bisikletleri, insanları ve trafik ışığı gibi diğer nesneleri başarıyla algılar. Oluşturucu daha sonra, tespit edilen çıktı videosunun seçilen klasöre kaydedildiğini gösterir ve tespit edilen nesnelerin etrafındaki sınırlayıcı kutuları etiketler ve güven puanları ile gösterir. Video algılama işlevi, tüm kodu içerecek şekilde oluşturulur ve son uygulama nokta Pi adlı bir dosya oluşturulur.

  • 00:45:00 Videonun bu bölümünde konuşmacı, gerçek zamanlı bir nesne algılama web uygulaması oluşturmak için YOLOv8'i Flask ile entegre etmek için gereken adımları tartışıyor. İlk adım, pip kurulumu kullanılarak yapılan Flask'ı kurmaktır. Ardından, konuşmacı gerekli kitaplıkları içe aktarır ve Flask'ı başlatır. Ardından, giriş video dosyası yolunu alan ve algılanan nesnelerin etrafındaki sınırlayıcı kutularla çıktı oluşturan çerçeve oluştur adlı bir işlev oluştururlar. Son olarak, konuşmacı görüntüleri bayt olarak kodlamayı ve silme klavyesini kullanarak tek tek kareleri bir videoya dönüştürmeyi tartışır. Nihai sonuç, algılanan nesnenin etrafında sınırlayıcı kutular, etiketler ve güven puanları olan ayrı çerçevelerdir.

  • 00:50:00 Bu bölümde, video oluşturucu, gerçek zamanlı bir nesne algılama web uygulaması oluşturmak için YOLOv8'i Flask ile nasıl entegre edeceğini açıklıyor. Video, çerçevelerin kodlanmasını ve görüntünün baytlara dönüştürülmesini, ardından algılama ve müteakip çerçeve gösterimi için tek tek çerçeveler üzerinde döngü oluşturmayı gösterir. Video, araç türü kullanılarak görsel çerçevelerin değiştirilmesini gösterirken, içerik türü sonraki çerçeveleri görüntülemek için kullanılır. Video, video dosyasının algılama için girdi olarak iletildiği ve bunun sonucunda algılanan nesnelerin çevresinde sınır kutuları oluşturulduğu bir demo içerir; bu senaryoda insanlar, bisikletler ve trafik ışıkları. Video, bir sonraki öğreticinin canlı web kamerası yayınlarını algılamayı kapsayacağını ve böylece bir Fly Fast API oluşturacağını belirterek sona eriyor.

  • 00:55:00 Bu bölümde sunum yapan kişi, YOLOv8 gerçek zamanlı nesne algılama web uygulamasının canlı bir web kamerası akışında nasıl çalıştırılacağını gösterir. Komut dosyasında video yolunu 0 olarak değiştirerek, program canlı web kamerası yayınında çalıştırılabilir. Yeni bir URL oluşturulur ve Flask uygulamasına bağlanır, böylece canlı web kamerası akışının gerçek zamanlı nesne algılaması sağlanır. Sunucu, programın canlı yayından insan, bisiklet ve trafik ışığı gibi nesneleri doğru bir şekilde algılayabildiğini gösterir. Ek olarak, video yolu tekrar video URL'sine değiştirilir ve program, bir videodaki nesneleri de algılama yeteneğini gösterir.

  • 01:00:00 Bu bölümde, video eğitimi, ön uç tasarımı için HTML ve CSS ve arka uç için Flask kullanarak eksiksiz bir HTML web sayfası oluşturmaya odaklanır. Web uygulaması üç farklı sayfadan oluşur: ana sayfa, video sayfası ve canlı web kamerası besleme sayfası. Ana sayfa, farklı projelerden örnek sonuçları içeren bir başlık, içerik ve alt bilgi içerir. Video sayfası, kullanıcının bir video yüklemesine ve bu video üzerinde YOLOv8 tespitleri yapmasına olanak tanır. Canlı web kamerası yayın sayfası, kullanıcının canlı web kamerası yayınında tespitler yapmasını sağlar. Video ayrıca Flask uygulamasının nokta yığını dosyasını ve üç HTML sayfasını da gösterir.

  • 01:05:00 Bu bölümde video eğitimi, kullanıcıların Flask formunu kullanarak nesne algılama modeline bir video dosyası yüklemesine nasıl izin verileceğini açıklar. Eğitim, kullanıcının video dosyasını doğru biçimde (MP4 veya .avi) yüklediğinden emin olmak için doğrulayıcılar kullanır. Yüklenen video dosyasının dosya yolu, sınıf formu kullanılarak dosya değişkeninde saklanır. Öğretici ayrıca giriş video dosyasındaki nesneleri algılamak için kullanılan çerçeve oluşturma işlevini de tanıtır. Giriş video dosyası, statik dosyalar klasörüne kaydedilir ve kullanıcı, gönder düğmesine tıklayarak video dosyasını algılamalar için gönderebilir.

  • 01:10:00 YOLOv8 kursunun bu bölümünde, YOLO Dash video dosyasında sahip olduğumuz algılama işlevine odaklanılır. Video indirgeme işlevi bize bir yön sağlar ve nesne algılama ile, algılanan nesnelerin çevresinde etiketler ve güven puanları ile çıkış sınırlayıcı kutular bulunur. Geçerli çerçeveler daha sonra, Flask'ın giriş görüntüsü veya çerçevelerinin gerektirdiği şekilde baytlara dönüştürülür. Çerçeve web işlevi, uygulamadaki web kamerasına erişmek veya web kamerasına yönlendirmek istediğimizde çağrılır; giriş video dosyalarını oturum deposundan kaldırarak, algılamanın önceki değil yeni videolarda veya giriş dosyalarında gerçekleşmesini sağlayan bir oturum noktası netliği ile olanlar. Yükleme dosyası formu örneği, oturum depolama değişkeninde kaydedilen video dosyası yolu ile oluşturulur. Oturum depolaması daha sonra, algılamanın yeni videolarda gerçekleşmesini sağlamak için temizlenir ve uygulamanın önceki videoları veya girdi dosyalarını algılamasını engeller.

  • 01:15:00 Bu bölümde konuşmacı, Flask ve Web Kamerası/IP Kamera kullanan bir Web Uygulamasında Gerçek Zamanlı Nesne Tespiti için YOLOv8 Kursunda kullanılan kodu ve HTML dosyalarını açıklar. Konuşmacı, video bölümünü oturum belleğine nasıl kaydettiklerini ve videodaki algılamaları yapmak için video yolunu nasıl adlandırdıklarını gösterir. Ayrıca proje için Flask uygulaması dot Pi dosyasını da gösterirler. HTML dosyası, arka plan rengi, yazı tipi ailesi, metin rengi, yükseklik ve diğer öğeler gibi özellikleriyle birlikte dil, sayfa başlığı, gövde ve başlıklardan oluşur. Ek olarak, konuşmacı yuvarlatılmış bir dikdörtgen şekli oluştururken sınır yarıçapının amacını açıklar.

  • 01:20:00 Bu bölümde konuşmacı, geliştirdikleri web uygulamasının ana sayfalarını gösteriyor. Kullanıcıyı video yükleyebilecekleri ve nesne algılamalarının gerçekleşebileceği video besleme sayfasına yönlendiren Dash ön sayfa URL'sini göstererek başlarlar. Ardından, canlı web kamerası akışında algılamaların gerçekleştiği UI.html sayfasını gösterirler. Ayrıca, kaydettikleri ve HTML'ye aktardıkları üç resmi gösteren örnek sonuçlar sayfasını da gösterirler. Son olarak, tıklandığında kullanıcıyı YouTube kanalına yönlendiren altbilgiyi gösterirler. Gösteri boyunca, konuşmacı her sayfa için kullandıkları CSS stilini gösterir.

  • 01:25:00 Bu bölümde, konuşmacı YOLOv8 ve Flask kullanan gerçek zamanlı nesne algılama web uygulamasını canlı bir web kamerası yayını ve videosuyla gösteriyor. Web sayfasına CSS stili eklenir ve konuşmacı, canlı web kamerası akışının yanı sıra videodaki algılamaları yapmak için Python sınıfı cap dosyasını çalıştırır. Kullanıcı, tespitleri almak için bir video dosyası da girebilir. YOLOv8 modeli insanlar, bisikletler, trafik ışıkları vb. nesneleri algılayabildiğinden ve etiketler ve güven puanı ile sınırlayıcı kutular oluşturabildiğinden sonuçlar etkileyicidir. Konuşmacı, canlı web kamerası yayınındaki tespitlerin de doğru bir şekilde çalıştığını göstererek sözlerini bitirir.

  • 01:30:00 Videonun bu bölümünde sunum yapan kişi, YOLOv8 kullanarak hem video hem de canlı web kamerası akışlarındaki nesneleri algılayabilen bir Flask web uygulamasını sergiliyor. Uygulamanın bir ana sayfası, herhangi bir giriş videosunda algılama gerçekleştirebilen bir video sayfası ve canlı bir web kamerası besleme sayfası vardır. Sunum yapan kişi daha sonra, 7 farklı sınıfa sahip 3235 görüntüden oluşan Roboflow'ta bulunan bir veri setini kullanarak YOLOv8'in kişisel koruyucu ekipman (PPE) tespiti için nasıl kullanılabileceğini göstermeye geçer. Sunum yapan kişi, YOLOv8 tarafından algılanan gerçek nesneleri yansıtacak şekilde sınıfları buna göre yeniden adlandırır ve ardından sunum yapan kişi, dengesiz bir sınıf dağılımı içeren veri kümesi istatistiklerini gösterir. Veri kümesi için kullanılan bölme oranı 70-20-10'dur. Son olarak sunum yapan kişi, YOLOv8 modelinin bir Collab not defterine nasıl aktarılacağını gösterir.

  • 01:35:00 YOLOv8 kursunun bu bölümünde, eğitmen gerekli kitaplıkların nasıl içe aktarılacağını ve GPU'ya erişimin nasıl kontrol edileceğini açıklar. OS kitaplığı, farklı dosyalara gitmek için kullanılır ve görüntü kitaplığı, Google Colab not defterinde giriş/çıkış resimlerini görüntülemek için kullanılır. PPE veri algılama veri seti daha sonra Roboflow'tan içe aktarılır ve yeni oluşturulan 'veri setleri' klasörüne indirilir. YOLOv8 modeli, pip install ultralytics kullanılarak kurulur ve daha sonra import ultralytics kullanılarak kurulumu ve çalışması için işlevselliği kontrol edilir.

  • 01:40:00 Videonun bu bölümünde sunum yapan kişi, bir YOLOv8 modelinin eğitimi için KKD saptama veri setinin nasıl indirileceğini ve hazırlanacağını gösterir. Veri kümesi, test ve doğrulama kümelerinin yanı sıra her nesne için sınıf adlarını içeren bir data.yml dosyasından oluşur. Klasörü indirip yeniden adlandırdıktan sonra sunum yapan kişi, modelin eğitiminin yerel olarak uygulanması, doğrulanması ve test edilmesi için komut satırı arabirimini kullanır. Eğitimin tamamlanması yaklaşık üç saat sürer ve sunum yapan kişi, en iyi ağırlıklar dosyası ve son ağırlıkların 90. çalışması dahil olmak üzere eğitim sonuçlarını gösterir. Model, yedi farklı KKD nesnesi sınıfında eğitildi.

  • 01:45:00 Bu bölümde, her sınıf için ortalama ortalama kesinlik ve karışıklık matrisi dahil olmak üzere YOLOv8 modeli eğitiminin sonuçları analiz edilir. Eğitim süreci boyunca sürekli olarak azalan kayıp değerleri ile eğitim ve doğrulama kayıpları da incelenir. Doğrulama gruplarına ilişkin model tahminleri de gösterilerek modelin iyi çalıştığını gösterir. Model için en iyi ağırlıklar, özel bir siparişi doğrulamak için kullanılır ve ortalama kesinlik puanları güçlü kalır. Son olarak, özel modeli kullanarak etiketi algılamak için bir görüntü üzerinde çıkarım yapılır. Genel olarak, YOLOv8 modeli, gerçek zamanlı nesne algılamada çeşitli sınıfları algılamada iyi performans gösteriyor gibi görünmektedir.

  • 01:50:00 Bu bölümde, videoyu oluşturan kişi, YOLOv8 modelinin bir test veri kümesi ve bir demo video üzerinde nasıl çalıştırılacağını gösterir. Test veri seti sonuçları "tahmin" dosyasına kaydedilir ve yaratıcı, "ipython.display" paketini kullanarak ilk beş görüntünün çıktısını görüntüler. Sonuçlar, modelin koruyucu levhalar, ceketler, eldivenler, toz maskeleri, koruyucu hizmetçiler ve kasklar gibi nesneleri doğru bir şekilde algılayabildiğini göstermektedir. Oluşturucu daha sonra bir demo video indirir ve modelin içinden geçirir ve modelin koruyucu ceketleri ve hizmetçileri tespit edebildiğini gösteren çıktıyı görüntüler. Video oluşturucu, daha az zaman aldığı için eğitim ve tahmin için bir GPU kullanmanın avantajından da bahsediyor.

  • 01:55:00 Bu bölümde sunum yapan kişi, nasıl performans gösterdiğini görmek için YOLOv8 modelini demo videolar üzerinde test eder. Model, koruyucu kaskları ve ceketleri algılayabilir, ancak eldivenleri algılayamaz. Sunucu, çıktı demo videolarını indirir ve modelin her birinde nasıl performans gösterdiğini gösterir. Model, test edilen tüm demo videolarında koruyucu hizmetçileri ve ceketleri tespit edebilmektedir. Sunum yapan kişi daha sonra kişisel koruyucu ekipman konusunda eğitilmiş model için en iyi ağırlık dosyasını indirir ve bunun gerçek zamanlı bir nesne algılama web uygulaması için Flask ile nasıl entegre edileceğini tartışır.

  • 02:00:00 Bu bölümde sunum yapan kişi, kişisel koruyucu ekipman (PPE) veri seti üzerinde eğitilmiş Sarı V8 modelini kullanan web uygulamasındaki kodda yapılan değişiklikleri tartışır. PPE veri setinin yedi farklı sınıfı vardır ve bunların isimleri listelenmiştir. En iyi ağırlıklar dosyası, 80 farklı sınıftan oluşan Coco veri setinden ppe.pt olarak yeniden adlandırılmıştır. Sunum yapan kişi, sınıf adına göre sınırlayıcı kutuya ve etiket dikdörtgenine farklı renkler atamak için bir özellik ekledi. Sunucu, güven puanı için bir sınır belirledi ve sınırlayıcı kutunun ve dikdörtgenin yalnızca puan 0,5'in üzerindeyse görüneceğini belirtti. Flask app.py ve HTML dosyaları aynı kalır. Son olarak sunum yapan kişi, video algılamanın sonuçlarını KKD veri kümesinde ve bir web kamerasında gösterir. Uygulama, videodaki KKD öğelerini başarıyla algılayabilir.

  • 02:05:00 Bu bölümde sunum yapan kişi, canlı bir web kamerası yayını kullanarak YOLOv8 modelinin başarılı algılama yeteneklerini gerçek zamanlı olarak gösterir. Model, koruyucu kask ve toz maskesi takan bir kişiyi doğru bir şekilde tespit ederken, eldiven ve siperlik olmamasını göz ardı edebiliyor. Sonuçlar tatmin edici olarak kabul edilir ve kursun sonunu işaretler.
YOLOv8 Course - Real Time Object Detection Web Application using YOLOv8 and Flask - Webcam/IP Camera
YOLOv8 Course - Real Time Object Detection Web Application using YOLOv8 and Flask - Webcam/IP Camera
  • 2023.04.07
  • www.youtube.com
#objectdetection #yolov8 #yolo #computervision #opencv #flask #webapplicationdevelopment #computervision YOLOv8 Crash Course - Real Time Object Detection Web...
 

YOLOv8 ve DeepSORT Kullanarak Gerçek Zamanlı Nesne İzleme | Araç Sayımı (Giriş ve Çıkış Yapan Araçlar)



YOLOv8 ve DeepSORT Kullanarak Gerçek Zamanlı Nesne İzleme | Araç Sayımı (Giriş ve Çıkış Yapan Araçlar)

Video, bir otoyol yoluna giren ve çıkan araç sayısını saymak için YOLOv8 ve DeepSORT kullanılarak gerçek zamanlı nesne izlemenin uygulanmasını göstermektedir. Sunucu, GitHub deposunu klonlama, gerekli paketleri yükleme, dizini ayarlama ve izleme komut dosyasını inceleme ile başlayan adım adım bir kılavuz sağlar. Öğretici, benzersiz kimlikler oluşturmak ve sınıf adlarını belirlemek için çift uçlu kuyrukların, ön işlemenin, maksimum olmayan regresyonun ve Derin SORT işlevinin kullanımını kapsar. Sunucu ayrıca ekranda bir çizgi kullanarak araç sayma özelliğinin nasıl ekleneceğini açıklıyor ve bir aracın izi bu çizgiyle her kesiştiğinde sayı artıyor. Kullanıcı arabirimi, belirli bir işlev kullanılarak ayarlanır. Son olarak sunum yapan kişi, betiğin mevcut çıktısının hat ile kesişmeleri nasıl tespit edebildiğini ve alana giren ve çıkan araçları nasıl sayabildiğini gösterir.

  • Videonun 00:00:00 bölümü, YOLO V8'de derin sıralama kullanarak nesne izleme uygulamasının bir gösterimini gösterir. Eğitim, bir otoyol yoluna giren ve çıkan araç sayısını saymak için bir uygulamanın oluşturulmasını kapsayacaktır. Sunum yapan kişi, PyCharm IDE'yi kullanırken izlenecek adım adım bir kılavuz sağlar ve her adımı ayrıntılı olarak açıklar. İlk adım, GitHub deposunu klonlamak ve gerekli paketleri kurmaktır. Video ayrıca dizini ayarlama ve izleme komut dosyasını inceleme ile ilgili bir bölüm içerir.

  • 00:05:00 Videonun bu bölümünde konuşmacı, izleme nokta dosyasının nasıl kurulacağını ve DeepSORT dosyalarını Google Drive'dan indirip YOLOv8 klasörüne nasıl yerleştireceğini açıklıyor. DeepSORT dosyaları GitHub'a yüklenemeyecek kadar büyük olduğundan, sağlanan Google Drive bağlantısından indirilmeleri gerekir. Video, indirilen dosyaların nasıl çıkarılacağını ve uygun klasöre nasıl yerleştirileceğini gösterir. Konuşmacı ayrıca örnek bir videonun nasıl indirileceğini ve komut dosyasının nasıl çalıştırılacağını gösterir. Komut dosyasının çalışması CPU üzerinde test edildiğinden biraz zaman alabilir, ancak komut dosyası çalışırken konuşmacı kodu daha ayrıntılı açıklamaya devam eder.

  • 00:10:00 Bu bölümde konuşmacı, çift uçlu kuyruğun (DQ) kullanımını ve aynı anda ekleme veya çıkarma işlemi gerçekleştirirken neden bir liste yerine tercih edildiğini açıklar. Konuşmacı, sınırlayıcı kutunun alt merkez koordinatları biçimindeki değerleri eklemek için DQ'yu kullanır ve araba çerçeveden kaybolduğunda değerlerin nasıl kaldırıldığını açıklar. DQ'nun maksimum uzunluğu 64 olarak tanımlanır ve bu değere ulaştıktan sonra daha fazla değer kabul etmez. Hoparlör ayrıca algılanan nesnelerin etrafında şık bir kenarlık oluşturmak için renk paletini ve kullanıcı arayüzünü tanımlar.

  • 00:15:00 Bu bölümde video, yuvarlatılmış bir dikdörtgen ve metin etiketine sahip bir kullanıcı arabirimi (UI) oluşturma kodunun yanı sıra programın algılanan nesneleri oluşturmak için çift uçlu bir kuyruğa nasıl eklediğini açıklar. yollar. Kod ayrıca çerçeveleri yeniden boyutlandırmak ve algılamalar gerçekleştirmek için ön işleme ve maksimum olmayan regresyon içerir. Deep SORT işlevi, benzersiz kimlikler atamak ve sınıf adlarını belirlemek için çağrılırken set.modern.names, COCO veri kümesinden bilgi almaya ve sınırlayıcı kutular oluşturmaya yardımcı olur.

  • 00:20:00 Bu bölümde, konuşmacı YOLOv8 ve DeepSORT kullanarak nesne algılama kodunu açıklayarak komut dosyasına ve nasıl çalıştığına genel bir bakış sağlar. Komut dosyasının mevcut çıktısını gösterirler ve bir nano model kullandıklarını, bu nedenle nesne algılamanın henüz mükemmel olmadığını not ederler. Konuşmacı ayrıca Europa için bir dizi bilgisayarlı görü dersi oluşturacaklarından bahsediyor ve izleyicileri daha fazla içerik için abone olmaya teşvik ediyor. Son olarak, komut dosyalarının bir yolun bir çizgiyle kesiştiğini nasıl algılayabildiğini, bir nesnenin ne zaman geçtiğini gösterdiğini ve giriş ve çıkış için araç sayımının uygulanmasına izin verdiğini gösterirler.

  • 00:25:00 Bu bölümde sunum yapan kişi YOLOv8 ve DeepSORT kullanılarak gerçek zamanlı nesne takip sistemine araç sayma özelliğinin nasıl eklendiğini anlatıyor. Sistem ekranda bir çizgi kullanır ve bir aracın izi bu çizgi ile her kesiştiğinde sayı artar. Aracın hareket yönüne bağlı olarak, bir aracın alana girip çıkmadığına bağlı olarak sayı artabilir. Sunum yapan kişi, kullanıcı arabiriminin belirli bir işlev aracılığıyla nasıl ayarlandığını da gösterir.
Real-Time Object Tracking using YOLOv8 and DeepSORT | Vehicles Counting (Vehicles Entering& Leaving)
Real-Time Object Tracking using YOLOv8 and DeepSORT | Vehicles Counting (Vehicles Entering& Leaving)
  • 2023.01.11
  • www.youtube.com
#yolo #yolov8 #objectdetection #objectracking #opencvpython #opencv #computervision #machinelearning #artificialintelligence #deepsort #multiobjecttracking#...
 

YOLOv8 Kullanarak Gerçek Zamanlı Nesne Bölümleme ve İzleme | Araç Sayımı (Giriş ve Çıkış)



YOLOv8 Kullanarak Gerçek Zamanlı Nesne Bölümleme ve İzleme | Araç Sayımı (Giriş ve Çıkış)

Bu eğitim videosu, YOLOv8 ve derin sıralama algoritmasını kullanarak gerçek zamanlı nesne segmentasyonu ve izlemeyi uygulamaya odaklanır. Spesifik olarak, belirli bir alana giren ve çıkan farklı araç alt türlerinin nasıl sayılacağını ve ayırt edileceğini gösterir. Eğitim, hız tahmini, yön ölçümü ve doğru segmentasyon ve kimlikleri ve izleriyle her aracın izlenmesi dahil olmak üzere çeşitli hususları kapsar. Sunucu ayrıca bunu çeşitli IDE'lerde uygulamak için gerekli adımları sağlar ve Patreon destekçileri için son kodu sunar.

  • 00:00:00 Videonun bu bölümünde sunum yapan kişi, YOLOv8 ve derin sıralama algoritması kullanarak izleme ile nesne segmentasyonunun nasıl uygulanacağını açıklıyor. Video, giren ve çıkan araçların sayısının yanı sıra araç türlerinin sayılması da dahil olmak üzere araç segmentasyonunu ve takibini gösterir. Uygulama ayrıca araçların hız hesaplamasını, her araca benzersiz bir kimlik atamayı ve parkurları tanımlamayı da içerir. Sunucu, Anaconda Navigator, PyCharm, Spider ve Visual Studio dahil olmak üzere çeşitli IDE'lerde bunu uygulamak için gerekli adımları sağlar. tahmin.5 komut dosyasını çalıştırırken herhangi bir hata oluşmasını önlemek için kitaplıklar gibi gerekli bağımlılıkların yüklenmesi gerekir.

  • 00:05:00 Bu bölümde video eğitimi, YOLOv8 ve derin sıralama kullanarak segmentasyon ve izlemeyi uygulamaya odaklanır. Derin sıralama dosyaları Google Drive'dan indirilir ve test için örnek bir video kullanılır. Komut dosyası, araç sayısını alt türe göre depolamak için kullanılan bir sözlükle giriş ve çıkış için araç sayımı uygulamak üzere değiştirildi. Nesne sayacı bir, alt tipe göre ayrılan araç sayısını saklamak için kullanılırken, kontrol sayacı sözlüğü giren araç sayısını depolamak için kullanılır. Değiştirilen komut dosyası, alt türlerine ve çerçeveye girip girmediklerine göre araçları izler ve sayar.

  • 00:10:00 Bu bölümde video, belirli bir alana giren ve çıkan arabalar, büyük kamyonlar ve motosikletler gibi araç alt türlerini ayırt edebilen bir nesne sayacı ile YOLOv8 kullanarak bir araç sayma sisteminin nasıl oluşturulacağını tartışıyor. Video, bir hız tahmin işlevinin kullanımını ve bir aracın yanından geçtiğinde sayacı artıran bir çizginin nasıl oluşturulacağını açıklar. Ek olarak video, bir görüntüdeki piksel sayısını ölçmeye yardımcı olan sabit PPM'yi veya resim parametresini tanımlar.

  • 00:15:00 Bu bölümde konuşmacı, bir nesne ile kamera arasındaki mesafeye dayalı olarak dinamik mesafe ölçümü kavramını tartışıyor. Bunun, metre cinsinden mesafenin, mesafe pikseli bölü PPM'ye (metre başına piksel) çarpı 3,6 bölü saniyedeki kare hızına eşit olmasını içeren bir formül kullanılarak elde edilebileceğini açıklıyorlar. Konuşmacı daha sonra açıyı hesaplamak ve mesafe ile zamana dayalı olarak hızı döndürmek için bir işlev yazmaya devam eder. Ayrıca iki işlev daha oluştururlar - set_d ve CCW - ve bir nesnenin yönünü y eksenine göre hesaplamak için bir get_direction işlevi yazarlar.

  • 00:20:00 Videonun bu bölümünde sunum yapan kişi, YOLOv8 kullanarak gerçek zamanlı nesne segmentasyonu ve takibi için kodlarını gözden geçiriyor. Bir yön yapısı eklemek ve kalan kodu hesaplamak dahil olmak üzere komut dosyasında değişiklikler yaparlar. Sunum yapan kişi ayrıca nesne hızının nasıl hesaplanacağını ve bunu kimlik listesine nasıl ekleyeceğini tartışır. Daha sonra bir kavşak kodunu kopyalayıp yapıştırırlar ve koddaki hataları düzeltmek için ayarlamalar yapmaya devam ederler.

  • 00:25:00 Videonun bu bölümünde sunum yapan kişi giren ve çıkan araç sayısını saymak için bir sayaç kodu ekler. Sayaç kodu, toplam araç sayısını ve giren araba, kamyon ve motosiklet sayısını içeren alt sayıyı görüntüler. Sunum yapan kişi ayrıca çıkan araç sayısı için bir ekran eklenmesini önerir. Çizim kutuları işlevinde bir hata oluşur ve sunum yapan kişi, ileri ve geri sayım için genel bir değişken bildirerek sorunu düzeltir. Komut dosyası başarıyla çalışır ve çıktı demo videosu, her araç için hız tahminini ve giren her araç türü için alt sayımlarla birlikte toplam araç sayısını gösterir.

  • 00:30:00 Bu bölümde konuşmacı, araç sayımı için YOLOv8 kullanarak gerçek zamanlı nesne segmentasyonu ve takibinin sonuçlarını tartışıyor. Kesin sonuçlara ulaştılar ve hatta takip kimliği ve izleri ile birlikte her bir aracın hızını tahmin edebiliyorlar. Ayrıca her bir aracın tespiti ve segmentasyonu doğru bir şekilde yapılmış ve toplam araç sayısından da bahsedilmiştir. Bu kodu, paylaştıkları tüm kodlara ve projelere erişebilecek olan Patreon destekçilerine özel olarak sağladılar. Son olarak, izleyicileri demo videoları test etmeye, kodu sitelerinde uygulamaya veya Patreon üyeliğine katılmaya davet ediyorlar.
Real-Time Object Segmentation and Tracking using YOLOv8 | Vehicles Counting (Entering and Leaving)
Real-Time Object Segmentation and Tracking using YOLOv8 | Vehicles Counting (Entering and Leaving)
  • 2023.01.29
  • www.youtube.com
#yolo #yolov8 #objectdetection #objectsegmentation #objecttracking #computervision #machinelearning #artificialintelligence Real-Time Object Segmentation and...
Neden: