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

 

YOLO 9000: Daha İyi, Daha Hızlı, Daha Güçlü


YOLO 9000: Daha İyi, Daha Hızlı, Daha Güçlü

Yolo 9000'den bahsettiğimde, nesne algılama sisteminin geliştirilmiş versiyonundan bahsediyorum. Geçen yıl CBPR'de, inanılmaz derecede hızlı olan gerçek zamanlı nesne algılama sistemimiz Yolo'yu tanıttık ve bu harikaydı. CBPR, bilgisayarla görme ve örüntü tanımaya odaklanan en önemli bilgisayarla görme konferanslarından biridir. Ancak hızına rağmen Yolo, isabetlilik açısından geride kaldı ve bu hayal kırıklığı yarattı.

Sunum sırasında, podyumda arkamdaki kapı eşiğini yanlışlıkla tuvalet sandığım utanç verici bir olay oldu. Bu olay, algılama sistemimizin önemli iyileştirmelere ihtiyacı olduğunu fark etmemizi sağladı ve performansından memnun kalmamamıza neden oldu. Tüm zamanların en büyük elektronik müzik sanatçılarından birinden ilham alarak Yolo'yu daha iyi, daha hızlı ve daha güçlü hale getirmek için daha çok çalışmamız gerektiğini biliyorduk. Bugün, çabalarımızın sonuçlarını paylaşmak için buradayım.

Her şeyden önce, Yolo'nun doğruluğunu geliştirmeye odaklandık. Birkaç artımlı iyileştirme yaptık ve burada hepsini ele almasam da tüm ayrıntıları araştırma makalemizde bulabilirsiniz. Diğer araştırmacılarla ilgili olabilecek birkaç tanesini vurgulayacağım.

Tipik olarak, nesne algılamada, 224x224 gibi boyutlara sahip küçük sınıflandırma ağları kullanarak ImageNet üzerinde ön eğitim yaparak başlarız. Ardından, belirli algılama görevinde ağı 448x448 olarak yeniden boyutlandırarak ince ayar yaparız. Ancak, küçük boyutlu görüntülerden öğrenilen özelliklerin daha büyük görüntüler üzerinde çalışırken iyi çevrilmeyebileceğini keşfettik. Bunu ele almak için fazladan bir adım ekledik. ImageNet'te ön eğitimden sonra ağımızı yeniden boyutlandırdık ve daha büyük boyutta ImageNet'te daha uzun süre eğittik. Son olarak, nesne algılama için daha büyük boyutta eğitilen bu ağa ince ayar yaptık. Bu yaklaşım, algılama topluluğunda önemli olan %3,5 civarında ortalama ortalama hassasiyette önemli bir artış sağladı. Bu basit değişiklik, benzer eğitim ardışık düzenlerine kolayca uygulanabilir.

Bağlantı kutularıyla ilgili olarak, orijinal Yolo'da, bir lojistik işlevi kullanarak sınırlayıcı kutuların XY koordinatlarını ve genişlik ve yüksekliğini doğrudan tahmin ettik. Ancak Faster R-CNN ve SSD gibi diğer sistemler, nesne kutularını tahmin etmek için bağlantı kutuları ve hesaplama ofsetlerini kullanır. Ağımız için öğrenme sürecini kolaylaştırmak için, aday kutularından ofsetleri tahmin etme fikrini benimsemeye karar verdik. Önceden tanımlanmış bağlantı kutularını kullanmak yerine, eğitim verilerine baktık ve bir dizi boyut kümesi elde etmek için sınırlayıcı kutularda k-ortalama kümeleme gerçekleştirdik. Bu kümeler, eğitim verilerindeki değişkenliği yakalayan daha gerçekçi bağlantı kutularını temsil eder. Önceden tanımlanmış bağlantı kutuları yerine bu boyut kümelerini kullanarak, ortalama ortalama hassasiyette yaklaşık %5'lik bir artış elde ettik. Şu anda bağlantı kutularını kullanan araştırmacılar, kümeler için başlangıç noktalarını iyileştirmek üzere verilerini incelemeyi ve k-aracı kümelemeyi kullanmayı düşünebilir.

Yaptığımız bir başka heyecan verici gelişme, çok ölçekli bir eğitim rejiminin getirilmesiydi. Önceden, tüm görüntüleri 448x448 gibi sabit bir boyuta yeniden boyutlandırarak dedektörleri tek bir en boy oranında eğitmiştik. Ancak artık eğitim sürecinde ağımızı çeşitli ölçeklere göre rastgele yeniden boyutlandırıyoruz. Tamamen evrişimli ağımız, girdi görüntüsünü 32 kat küçülterek, ağ yapısını etkilemeden yeniden boyutlandırmamıza izin verir. Ağımızı 320x320'den 608x608'e kadar farklı ölçeklerde eğitiyoruz, eğitim sırasında girdi görüntü boyutlarını rastgele seçiyoruz. Bu yaklaşım yalnızca performansı tek bir ölçekte iyileştirmekle kalmaz, aynı zamanda doğruluk ve hız arasında sorunsuz bir denge sağlar. Test sırasında, eğitilen ağırlıkları değiştirmeden ağı farklı boyutlara göre yeniden boyutlandırabiliriz, bu da çeşitli ölçeklere uyum sağlamamızı ve doğruluk ile hız arasında istenen dengeyi elde etmemizi sağlar.

Özünde, çok ölçekli eğitim rejimi, algılamada bir veri artırma biçimi olarak hizmet eder.

Çok ölçekli eğitim rejimine ek olarak, "kabadan inceye" eğitim adı verilen bir tekniği de tanıttık. Ağı en baştan tam boyutlu görüntüler üzerinde eğitmek yerine, başlangıçta daha küçük görüntüler üzerinde eğitiriz ve eğitim sürecinde boyutu kademeli olarak artırırız. Bu yaklaşım, ağın genel özellikleri öğrenmesine ve görüntü boyutu arttıkça daha ince ayrıntılara ilişkin anlayışını kademeli olarak iyileştirmesine yardımcı olur. Düşük çözünürlüklü görüntülerle başlayıp kademeli olarak daha yüksek çözünürlüklere geçerek, hem doğruluk hem de hız açısından performansın arttığını gözlemledik.

Odaklandığımız bir diğer önemli konu da küçük nesne algılama konusuydu. Yolo başlangıçta çeşitli ölçeklerdeki nesneleri algılamak için tasarlandı, ancak küçük nesneleri doğru bir şekilde algılamakta zorlandı. Bunu ele almak için "özellik piramit ağı" (FPN) adı verilen yeni bir teknik geliştirdik. FPN, her düzeyin görüntünün farklı bir ölçeğini temsil ettiği bir özellik piramidi oluşturmak için ağın farklı katmanlarından düşük düzeyli ve yüksek düzeyli özellikleri birleştirir. Ağımız, çok ölçekli özellikleri birleştirerek küçük nesneleri algılamada daha güçlü hale geldi ve özellikle daha küçük boyutlu nesneler için performansta önemli bir iyileşmeye yol açtı.

Son olarak, verimliliğini ve hızını artırmak için ağ mimarisinde optimizasyonlar yaptık. Doğruluktan ödün vermeden hesaplama karmaşıklığını azaltmak için evrişimli katmanların sayısını azalttık ve 1x1 evrişimler gibi verimli yapı taşlarını benimsedik. Bu optimizasyonlar, doğruluk ve gerçek zamanlı performans arasında bir denge kurmamızı sağlayarak Yolo 9000'i mevcut en hızlı ve en doğru nesne algılama sistemlerinden biri haline getirdi.

Genel olarak, bu iyileştirmelerle Yolo 9000, orijinal Yolo sistemine kıyasla ortalama ortalama hassasiyette önemli bir artış elde etti. Etkileyici gerçek zamanlı performansı korurken doğruluk açısından diğer son teknoloji nesne algılama sistemlerinden daha iyi performans gösterir. Yolo 9000'de yaptığımız ilerlemelerin, otonom araçlardan video gözetim sistemlerine kadar geniş bir uygulama yelpazesi üzerinde önemli bir etkisi olacağına inanıyoruz.

YOLO 9000: Better, Faster, Stronger
YOLO 9000: Better, Faster, Stronger
  • 2017.08.17
  • www.youtube.com
#hangoutsonair, Hangouts On Air, #hoa
 

Bayes Hiperparametre Optimizasyonu



Bayes Hiperparametre Optimizasyonu

Herkese merhaba, benim adım Aaron ve bugün Bayes hiperparametre optimizasyonunu tartışacağım. Paylaşacağım bilgiler Toronto Üniversitesi'nden Profesör Roger Gross'un çalışmasına dayanmaktadır. Bu konuda nispeten yeni olmama rağmen, hiperparametre ayarı için otomatik yöntemlerin önemini vurgulamanın gerekli olduğuna inanıyorum. Geçenlerde DeepMind'den, dikkatli hiperparametre ayarının önemini gösteren, dil modelleme üzerine bir makaleye rastladım. Sonuçları, hiperparametre optimizasyonuna daha fazla çaba harcadıkları için diğer son teknoloji modellerden daha iyi performans gösterdi. Araştırmacılar olarak, farklı modelleri doğru bir şekilde değerlendirmek ve karşılaştırmak için hiperparametre ayarlama konusunda yetkin olmak çok önemlidir.

Yetersiz Hiperparametre Ayarının Tuzakları: Hiperparametre ayarı insanlara özgü bir beceri değildir. Uygun ayarlama yapılmadan, temel sonuçlara göre gerçekten üstün olmayan modeller yanlışlıkla yayınlanabilir. Bundan kaçınmak için, hiperparametre optimizasyonuna zaman ve çaba harcamak gerekir. Üstelik en iyi performans ancak bu beceride ustalaşarak elde edilebilir. Başlamak için, hiperparametre ayarına açık fikirlilikle yaklaşmak çok önemlidir. Parametre değerleri hakkında önyargılı yargılarda bulunmak yerine, tüm olasılıkları keşfetmeniz önerilir. Parametre alanını zamanından önce sınırlamanın zaman kaybına ve etkisiz modellere yol açabileceğini deneyimlerimden öğrendim.

Izgara Arama Sorunu: Hiperparametre optimizasyonunda popüler bir yaklaşım olan ızgara araması önerilmez. Sürecin pratikliği düşünüldüğünde kusurları ortaya çıkıyor. Gerçek dünya modelleri genellikle bazıları diğerlerinden daha etkili olan çok sayıda hiperparametreye sahiptir. Izgara arama kullanılırsa, ilgili hiperparametrelerin alt uzayında aynı noktaların kopyaları üretilebilir. Bu kopyalar sadece alakasız parametreler açısından farklılık gösterir ve gereksiz çalışmaya neden olur. Bu nedenle, hangi parametrelerin ilgisiz olduğunu belirlerken ızgara araması oldukça verimsiz olabilir. Rastgele arama ise basit bir alternatif sunuyor. Araştırmacılar hiperparametre değerlerini rastgele seçerek bu fazlalığı azaltabilir ve optimizasyon sürecini iyileştirebilir. Gelişmiş yöntemler mevcuttur, ancak genellikle rastgele aramaya göre yalnızca marjinal iyileştirmeler sunarlar. Bu nedenle, rastgele aramaya daha fazla zaman ayırmak karşılaştırılabilir sonuçlar verebilir.

Etkili Hiperparametre Optimizasyonu İçin İpuçları: Rastgele arama kullanmaya ek olarak, hiperparametreleri etkili bir şekilde optimize etmek için birkaç strateji daha vardır. Yaklaşımlardan biri, ön bilgi veya diğer prosedürlere dayalı olarak belirlenebilen veya ayarlanabilen hiperparametreleri ortadan kaldırmaktır. Parametre sayısını azaltarak, optimizasyon süreci daha yönetilebilir hale gelir. Yayınlanan makalelerin çoğunun genellikle doğru şekilde ayarlanmadığını da belirtmekte fayda var. Doğru ayarlamaya ulaşmak, zaman alıcı olabilecek çok sayıda deney yapılmasını gerektirir. Bu nedenle, araştırmacılar mümkün olan en iyi sonuçları elde etmek için önemli ölçüde zaman ayırmaya hazırlıklı olmalıdır.

Bayes Hiperparametre Tahmini: Şimdi hiperparametre ayarı için Bayes parametre tahmini konusunu inceleyelim. Hiperparametreler, diğerlerinin yanı sıra model boyutu, düzenlileştirme, öğrenme hızı ve eğitim süresi dahil olmak üzere modelin bir parçası olarak öğrenilemeyen tüm değişkenleri kapsar. Tipik olarak, parametreleri seçmek için bir doğrulama seti kullanılır ve performansları buna göre değerlendirilir. Bununla birlikte, bu süreç gradyan içermediğinden, geri yayılım kullanılarak çözülen birincil öğrenme probleminden farklıdır. Ayrıca, her deneyi değerlendirmenin hesaplama maliyeti nedeniyle, hiperparametre kombinasyonlarını seçerken stratejik olmak önemlidir.

Bir Araç Olarak Bayes Regresyonu: Bayes regresyonu, hiperparametre uzayının farklı bölgeleriyle ilişkili beklenen performansı ve belirsizliği ölçmeye yardımcı olan yararlı bir araçtır. Olası işlevlere bir olasılık dağılımı uydurarak Bayes regresyonu, verilere tek bir satır sığdırmaya kıyasla daha incelikli bir yaklaşım sunar. Başlangıçta, gözlem olmadan, örnek fonksiyonlar dağınık görünür. Ancak, daha fazla gözlem yapıldıkça, işlevlerin dağılımı daralır ve artan kesinliği yansıtır.

Hiperparametre optimizasyonunun bir diğer önemli yönü, mümkün olduğu kadar çok hiperparametreyi ortadan kaldırma ihtiyacıdır. Bazı ön bilgilere dayanarak veya başka bir prosedür aracılığıyla bir hiperparametrenin değerini belirlemenin bir yolu varsa, onu buna göre ayarlamak iyi bir fikirdir. Ne kadar çok hiperparametreniz varsa, onları etkili bir şekilde optimize etmek o kadar zorlaşır. Hiperparametre sayısını azaltarak optimizasyon sürecini basitleştirir ve daha yönetilebilir hale getirirsiniz.

Alanda yayınlanan makalelerin çoğunun doğru ayarlanmadığını da belirtmekte fayda var. Doğru ayara ulaşmak, araştırmacıların genellikle yaptıklarından çok daha fazla sayıda deney yapılmasını gerektirir. Modelleri gerçekten gözlemlemek ve belirli parametre değerlerini desteklemek için kanıt toplamak istiyorsanız, ayarlama işlemine önemli miktarda zaman ayırmaya hazır olun.

Şimdi Roger Gross'un slaytlarına geri dönelim. Sunumun odak noktası, hiperparametreleri ayarlamak için Bayes hiperparametre tahminidir. Hiperparametreler, modelin bir parçası olarak öğrenilemeyen tüm değişkenleri ifade eder ve model boyutu, düzenlileştirme, öğrenme oranı ve eğitim süresi gibi seçilen modeli tanımlar. Uygun hiperparametrelerin seçilmesi, optimum model performansı elde etmek için çok önemlidir.

Hiperparametre ayarı için geleneksel yaklaşım olan ızgara arama, verimsizliği nedeniyle önerilmez. Izgara araması genellikle hiperparametre kombinasyonlarının gereksiz değerlendirmeleriyle sonuçlanır ve her bir hiperparametrenin alaka düzeyini hesaba katmaz. Bunun yerine, hiperparametre uzayını daha etkili bir şekilde keşfetmeniz önerilir. Rastgele arama, ızgara aramaya basit bir alternatif olabilir, ancak tartışılacak olan daha da gelişmiş yöntemler mevcuttur.

Konuşmacı, açık fikirlilikle başlamanın ve tüm olası hiperparametre değerlerini dikkate almanın önemini vurgular. Hiperparametre aralıkları hakkında ön yargılarda bulunmak yetersiz sonuçlara ve zaman kaybına neden olabilir. Çalışmayı tekrarladığı ve ilgili hiperparametreleri doğru bir şekilde tanımlayamadığı için bir hiperparametre arama yöntemi olarak grid aramasından kaçınmak önemlidir. İyi bir temel sağladığı için rastgele seçilen hiperparametreler makul bir alternatif olabilir.

Ancak Bayes regresyonu gibi daha gelişmiş yöntemler daha da iyi sonuçlar verebilir. Bayes regresyonu, hiperparametre uzayını modellemeye ve her bir hiperparametre ayarıyla ilişkili beklenen performansı ve belirsizliği tahmin etmeye izin verir. Regresyon modeli, bireysel noktalara odaklanmak yerine tüm olası hiperparametre değerlerini dikkate alır ve bu da daha bilinçli karar vermeye yol açar.

Keşfedilecek bir sonraki hiperparametre setini seçmek için sunum yapan kişi, bir edinim işlevi kavramını tanıtır. Edinme işlevi, performansta beklenen gelişmeyi ve hiperparametre uzayındaki belirsizliği nicelleştirir. İyi olması muhtemel ama aynı zamanda keşfedilmemiş hiperparametre ayarlarını bulmayı amaçlayarak keşif ve istismarı dengeler.

Konuşmacı, slaytlar tek boyutlu örnekleri gösterirken, hiperparametre uzayının tipik olarak çok daha yüksek boyutlu olduğunu ve görselleştirmeyi zorlaştırdığını vurgular. Bayes regresyonu, Gauss süreçleri gibi teknikler kullanılarak daha yüksek boyutlu uzaylara uygulanabilir. Farklı modelleme yaklaşımları mevcuttur ve seçimler, hesaplama maliyeti ve eldeki belirli problem gibi hususlara dayanmalıdır.

Çeşitli hiperparametre optimizasyon yöntemlerinin performansını değerlendirmek için deneyler yapılır ve en az deneyle en iyi performansı sağlayan yöntem en etkili olarak kabul edilir. Gelişmiş yöntemlerin sürekli olarak bu temel çizgilerden daha iyi performans gösterdiği yerlerde, insan uzman tahminlerine ve rastgele aramaya karşı karşılaştırmalar yapılır.

Sonuç olarak, Bayes hiperparametre optimizasyonu, hiperparametre uzayını etkili bir şekilde keşfederek model performansını iyileştirmek için güçlü bir yaklaşım sunar. Izgara aramanın tuzaklarından kaçınmaya yardımcı olur ve araştırmacıların beklenen performans ve belirsizlik tahminlerine dayalı olarak daha bilinçli kararlar vermelerine olanak tanır. Bununla birlikte, uygun hiperparametre optimizasyon yöntemini seçerken hesaplama maliyetini, hiperparametre alaka düzeyini ve araştırmanın genel hedeflerini dikkatlice göz önünde bulundurmak önemlidir.

Bu sunumun Roger Gross'un görüşlerine dayandığını ve hiperparametre optimizasyonunun önemi ve Bayes tekniklerinin faydaları hakkında değerli rehberlik sağladığını unutmayın. Yöntemlerin ve bunların uygulanmasının daha ayrıntılı bir şekilde anlaşılması için orijinal makaleye veya alanda daha fazla araştırmaya başvurmanız önerilir.

Bayesian Hyperparameter Optimization
Bayesian Hyperparameter Optimization
  • 2017.08.17
  • www.youtube.com
#hangoutsonair, Hangouts On Air, #hoa
 

GAN'lar



GAN'lar

Görüntü üretimi için üretken çekişmeli ağlar (GAN'lar) kullanılırken dikkate alınması gereken birkaç nokta vardır. GAN'ların bu bağlamda hem artıları hem de eksileri vardır. Önemli bir avantaj, GAN'ların, karmaşık kayıp işlevleri gerektirmeden, üretilen dağıtımın hedef dağıtıma benzer olmasını doğal olarak zorlamasıdır. Bu, üretici ve ayrımcı arasındaki mini-maks oyunuyla elde edilir. GAN'lar, temeldeki dağıtımı öğrenerek gerçekçi görüntüleri kodlamak için iyi bir yol sağlar. Bununla birlikte, pratikte, sistemi eğitirken genellikle ek kayıplara ihtiyaç duyulur.

Farklı amaçlar için kullanılan çeşitli GAN türleri vardır. Koşullu GAN'lar, koşullu olasılık dağılımlarına dayalı olarak veri üretilmesine izin verir. Bu, tek bir olasılık dağılımından üretmek yerine, üreticinin belirli bilgilere göre koşullanabileceği anlamına gelir. Pix2Pix ve CycleGAN gibi diğer GAN varyantları, görüntüden görüntüye çeviri görevlerine odaklanır. Bu modeller, görüntüleri bir alandan diğerine dönüştürerek stil aktarımı veya görüntü sentezi gibi görevleri mümkün kılar.

GAN'ları eğitmek zor olabilir ve eğitim sürecini iyileştirmeye yardımcı olabilecek bazı ipuçları vardır. Kolayca pes etmemek önemlidir çünkü GAN'lar genellikle yakınsamak için birden çok yineleme gerektirir. Görüntü girişlerini -1 ile 1 arasında normalleştirmek genellikle faydalıdır ve eğitim kararlılığını iyileştirmek için etiket yumuşatma uygulanabilir. Jeneratöre giriş olarak düzgün dağılmış gürültü yerine Gauss gürültüsünün kullanılması da yardımcı olabilir. GAN'ları eğitmek için başka pek çok ipucu vardır ve GitHub depoları gibi kaynaklar kapsamlı listeler sağlayabilir.

GAN'ların pratik kullanımını göstermek için, CycleGAN kullanan bir görüntüden görüntüye çeviri örneğine bakalım. Bu model, açıkça eşleştirilmiş eğitim örneklerine ihtiyaç duymadan görüntüleri bir alandan diğerine çevirmeyi amaçlar. Bunun yerine, her alandan bir görüntü havuzu kullanılır ve amaç iki dönüşümü öğrenmektir: biri X alanından Y alanına ve diğeri Y alanından X alanına. ve bir görüntüdeki geriye dönük dönüşümler, orijinal görüntüyü döndürür. Model, oluşturucuları ve ayrımcıları eğitmek için GAN kaybı ve döngü tutarlılık kaybı dahil olmak üzere çoklu kayıpları birleştirir.

Sonuçların değerlendirilmesi çeşitli yöntemlerle yapılabilir. İnsan değerlendiricilerden gerçek ve oluşturulmuş görüntüler arasında ayrım yapmasının istendiği mekanik Türk çalışmaları yürütülebilir. Ek olarak, orijinal haritalara kıyasla oluşturulan segmentasyon haritalarının doğruluğunu ölçmek için Birlik Üzerinden Kavşak (IoU) gibi özel değerlendirme ölçütleri kullanılabilir.

GAN'lar umut verici sonuçlar gösterse de, onları eğitirken hala zorluklar olabileceğini belirtmekte fayda var. Jeneratörün sınırlı varyasyonlar ürettiği mod çökmesi ve renk koruma sorunları, ortaya çıkabilecek zorluklar arasında yer alıyor. Araştırmacılar, daha iyi görüntü oluşturma sonuçları için GAN modellerini keşfetmeye ve geliştirmeye devam ediyor.

GAN'ların eğitimini iyileştirmek için keşfedilen başka bir yaklaşıma aşamalı büyüme denir. Geleneksel GAN eğitiminde, üreteç ve ayrımcı tüm eğitim süreci boyunca aynı çözünürlüklü görüntüler üzerinde eş zamanlı olarak eğitilir. Ancak, aşamalı büyüme farklı bir yaklaşım gerektirir.

Kademeli büyümede, eğitim düşük çözünürlüklü görüntülerle başlar ve zaman içinde çözünürlüğü kademeli olarak artırır. Bu yaklaşımın arkasındaki fikir, modellerin önce temel yapıyı öğrenmesine ve ardından çözünürlük arttıkça ayrıntıları kademeli olarak iyileştirmesine izin vermektir. Bu, eğitim sürecini stabilize etmeye yardımcı olur ve daha iyi sonuçlara yol açabilir.

Progresif GAN'ların eğitimi sırasında çoklu çözünürlükler kullanılır ve çözünürlük arttıkça hem üretici hem de ayrımcı ağlara yeni katmanlar eklenir. Modeller, önce düşük çözünürlüklü katmanların eğitildiği ve ardından daha yüksek çözünürlüklü katmanların eklenip eğitildiği hiyerarşik bir şekilde eğitilir.

Modeller, düşük çözünürlüklü görüntülerle başlayarak, genel yapıyı öğrenebilir ve kaba ayrıntılar üretebilir. Çözünürlük arttıkça modeller daha ince ayrıntıları yakalamaya ve daha gerçekçi görüntüler üretmeye odaklanabilir. Bu adım adım eğitim süreci, GAN eğitiminde sık karşılaşılan zorluklar olan eğitim dengesizliği ve mod çökmesini önlemeye yardımcı olur.

Kademeli büyümenin, yüzler, manzaralar ve nesneler gibi çeşitli alanlarda yüksek kaliteli görüntüler oluşturmada etkili olduğu gösterilmiştir. Daha gerçekçi dokulara, daha keskin ayrıntılara ve genel olarak daha iyi görsel kaliteye sahip görüntülerin oluşturulmasına olanak tanır.

Kademeli büyümeye ek olarak, GAN eğitimini geliştirmek için kullanılabilecek başka teknikler ve püf noktaları da vardır. Böyle bir teknik, antrenmanı stabilize etmeye ve modun çökmesini önlemeye yardımcı olan ağırlık normalleştirme, spektral normalleştirme ve gradyan cezası gibi düzenlileştirme yöntemlerinin kullanılmasıdır.

Bir diğer önemli husus, kayıp fonksiyonlarının seçimidir. Karşıt kayıp, GAN eğitiminde önemli bir bileşen olsa da, öğrenme sürecini yönlendirmek için genellikle ek kayıp fonksiyonlarıyla desteklenir. Bu ek kayıplar, belirli göreve ve istenen çıktıya bağlı olarak algısal kayıp, özellik eşleştirme kaybı veya yeniden oluşturma kaybını içerebilir.

Ayrıca, ağ mimarisi, aktivasyon fonksiyonları ve optimizasyon algoritmaları gibi mimari seçimler de GAN'ların eğitimini etkileyebilir. En iyi sonuçları elde etmek için bu seçimlerin denenmesi ve ince ayarlanması genellikle gereklidir.

Genel olarak, GAN'ları eğitmek, çeşitli faktörlerin dikkatlice değerlendirilmesini gerektiren karmaşık ve zorlu bir görevdir. GAN'lar gerçekçi görüntüler oluşturmada kayda değer bir başarı göstermiş olsa da, kararlı ve yüksek kaliteli sonuçlara ulaşmak hala aktif bir araştırma alanı olmaya devam ediyor. Eğitim teknikleri, düzenlileştirme yöntemleri ve kayıp işlevlerindeki gelişmeler, GAN'ların başarabileceklerinin sınırlarını zorlamaya devam ediyor.

 

Hızlı Evrişim Algoritmaları



Hızlı Evrişim Algoritmaları

Benim adım Tanner ve Dan benden derin öğrenme ve uygulama seminerinde konuşmamı istedi. Ancak, derin öğrenme hakkında fazla bilgim olmadığını hemen fark ettim. Yine de, konunun pratik yönüne odaklanmaya karar verdim. Bu yüzden konuşmamın başlığını "Endişelenmeyi Bırakmayı ve CDNN'yi Sevmeyi Nasıl Öğrendim" veya "Evrimlerim Nasıl Bu Kadar Hızlı Oluyor?" İşin pratik tarafını vurgulamak istedim.

Başlangıç olarak, katılımcıların bir sonraki derin öğrenme toplantısında paylaşabilecekleri eğlenceli bir gerçeği tanıttım. Comnet'lerin aslında evrişim gerçekleştirmediği ortaya çıktı; korelasyonlar gerçekleştirirler. Tartışmayı önemli ölçüde etkilemeyen ince bir fark.

Ardından, konuşma boyunca kullanacağım bazı notasyonları tanıttım. Tipik bir evrişimde, birlikte işlenmekte olan görüntülerin sayısını temsil eden bir parti boyutunuz (n) vardır. Basit olması için kare olduğunu varsayacağımız bir çekirdek boyutu da vardır. Ek olarak, giriş boyutlarına ve çekirdek boyutuna bağlı olan çıktı genişliği ve yüksekliği vardır. Ayrıca giriş kanalları (c) ve çıkış kanalları (d) vardır.

Daha sonra, en basit uygulama olan saf evrişim algoritmasını açıklamaya devam ettim. Bu algoritma iç içe geçmiş yedi for döngüsünden oluşur. İlk dört döngü paralelleştirilebilirken, geri kalan döngüler (beşten yediye kadar) aynı çıkış değerini değiştirdikleri için zorluk teşkil eder. Bir GPU kullanırken bile, ilişkili bellek erişimi nedeniyle bu döngüleri paralelleştirmek önemsiz değildir.

Konsepti açıklamak için, 2x2 çıktıyla sonuçlanan 3x3 evrişimli 4x4 girişin küçük bir örneğini verdim. Her çıktı öğesi dokuz çarpma gerektirir ve dört çıktı değerinin tümünün hesaplanması 36 çarpma gerektirir.

Daha sonra, matris formunda evrişim hesaplamasını temsil eden problemin Toeplitz matris formunu tanıttım. Bu form, ağırlık paylaşımı yoluyla elde edilen parametre tasarruflarını ve seçici ağırlık etkileşimleri nedeniyle birçok sıfırın varlığını gösterir. Bununla birlikte, bu matris gösterimi, daha büyük girdiler ve çıktılar için bellek zorlukları getirir.

Bunu ele almak için, Cafe tarafından kullanılan, çekirdek yerine girdinin çoğaltıldığı alternatif bir yaklaşımı tartıştım. Girdinin bir matris temsili yaratılarak, evrişim hesaplaması, matris çarpımı kullanılarak verimli bir şekilde gerçekleştirilebilir. Bu yaklaşımın avantajı, hesaplamaları paralel hale getirebilen ve optimize edilmiş donanımdan yararlanabilen CuBLAS gibi kitaplıklara dış kaynak olarak verilebilmesidir.

Ayrıca, hesaplamayı daha küçük parçalara bölerek hesaplama ve veri aktarımı arasında örtüşmeye izin veren bir akış tekniğini vurguladım. Bu yaklaşım, bellek sınırlamalarını azaltmaya yardımcı olur ve genel performansı artırır.

Devam ederek, 1980'lerdeki makaleleri yeniden gözden geçirerek bilgisayar görüşünde kaydedilen ilerlemeyi tartıştım. Sinyal işleme tekniklerinden, özellikle algoritmik güç azaltmadan ilham alan araştırmacılar, kıvrımların hızını artırmayı başardılar.

Filtre boyutuna (k) ve çıkış genişliğine (w) sahip bir 1D konvolüsyonun w + k - 1 kadar az çarpmayla elde edilebileceğini belirten minimal filtreleme teorisi kavramını açıkladım. Çarpmalardaki bu azalma, hesaplamayı yeniden düzenleyerek ve çarpma yerine daha fazla toplamaya izin veren ara değerler getirerek elde edilebilir.

Çarpmaları en aza indirmek için bir 1D evrişimin nasıl organize edilebileceğini gösteren Weiner-Grassmann algoritmasının bir örneğini verdim. Bu algoritmayı uygulayarak, belirli bir evrişim için gereken çarpma sayısını azaltabiliriz.

Bu kavramlar, minimal 1D konvolüsyonun minimal 2D konvolüsyonun içine yerleştirilebildiği 2D konvolüsyonlara da genişletilebilir. Bu iç içe yerleştirmeyi gösterdim ve farklı girdi ve çekirdek boyutları için belirli matrislerin nasıl gerekli olduğunu açıkladım.

Üçe üç evrişim ve dörde dört girdiye sahip olduğumuz bu özel senaryoda, algoritmik indirgeme yaklaşımı için matrisler şöyle görünür:

Bir matris:

[ 1 0 -1 0 1 0 -1 0 ]
[ 0 1 1 0 0 -1 -1 0 ]
[ 0 1 -1 0 0 -1 1 0 ]
[ 0 0 0 1 -1 -1 1 0 ]

G matrisi:

[1 0 0 -1]
[0 1 -1 0]
[-1 0 0 1]
[0 -1 1 0]

B matrisi:

[ 1 0 -1 0 ]
[ 0 1 1 0 ]
[ 0 1 -1 0 ]
[ 0 0 0 1 ]

Bu matrislerle, matris çarpımlarını ve toplamalarını kullanarak çıktıyı hesaplayabiliriz. Hesaplamaları bu şekilde yeniden düzenleyerek gerekli çarpma sayısını azaltırız.

Dolayısıyla, algoritmik gücü azaltma yaklaşımı, daha az çarpma kullanarak evrişimi gerçekleştirmemize izin verir, bu da önemli hız iyileştirmelerine yol açabilir. Evrişim işleminin özelliklerinden yararlanarak ve sinyal işleme tekniklerini uygulayarak, daha hızlı ve daha verimli hesaplamalar elde edebiliriz.

Bu tekniklerin, derin öğrenme ve evrişimli sinir ağlarının geniş alanına sadece bir bakış olduğunu belirtmekte fayda var. GPU'lar veya TPU'lar gibi özel donanımların kullanılması, paralelleştirme tekniklerinin uygulanması ve farklı algoritmik yaklaşımların keşfedilmesi gibi evrişimlerin hızını ve verimliliğini artırmak için yapılmış birçok başka optimizasyon ve gelişme vardır.

Sonuç olarak, derin öğrenme ve evrişimli sinir ağları, bilgisayarla görme alanında devrim yarattı ve çok çeşitli uygulamalar için temel araçlar haline geldi. Algoritmik gücü azaltma gibi temel ilke ve teknikleri anlamak, derin öğrenme modellerinin performansını optimize etmemize ve iyileştirmemize yardımcı olarak gelecekte daha da heyecan verici ilerlemeler sağlayabilir.

Fast Convolution Algorithms
Fast Convolution Algorithms
  • 2017.08.17
  • www.youtube.com
#hangoutsonair, Hangouts On Air, #hoa
 

Derin Takviyeli Öğrenme



Derin Takviyeli Öğrenme

Başlamadan önce, kimlerin derin öğrenmeyle bir yıldan daha kısa bir süredir aktif olarak çalıştığını görmek için hızlı bir anket yapalım. Bu kategoriye giriyorsanız elinizi kaldırın. Şimdi, altı aydan daha kısa bir süredir derin öğrenme ile çalışanlara ne demeli? Harika! Ve son olarak, aranızdan kim derin öğrenmeyi bir yıldan uzun süredir kullanıyor? Mükemmel, burada da deneyimli birkaç kişi var.

Şimdi kendi yolculuğumdan küçük bir hikaye paylaşarak başlamak istiyorum. Yaklaşık bir haftadır derin öğrenme üzerinde çalışıyorum, bu da Daniel'in bu grubu başlattığı sıralardaydı. Herkesi çalışmalarını sunmaya teşvik ettiğini hatırlıyorum ve o noktada gösterecek pek bir şeyim olmasa da yine de katılmaya karar verdim. Günümüze hızla ilerleyin ve sadece bir hafta içinde önemli ilerleme kaydettiğimi gururla söyleyebilirim. Bu süre zarfında yaşadıklarımı ve neler başardığımı paylaşmak istiyorum. Bu, derin öğrenmeye yeni başlayanlar ve ayrıca PyTorch'u merak edenler için ilginç olacaktır.

Peki, geçen hafta ne yaptım? Başlangıç olarak, basit bir CIFAR-10 örneği kullanarak derin öğrenmenin temellerini öğrenerek başladım. Bilmeyenler için CIFAR-10 on farklı görüntü sınıfından oluşan bir veri setidir. Derin öğrenmeye basit bir giriş görevi görür. Amaç, bir görüntünün sınıfını tahmin etmek için bir sinir ağı eğitmektir. Süreci açıklamak ve gerçekte ne yaptığımızı vurgulamak için size bazı kodlarda yol göstereceğim.

Koda bir göz atalım. Bahsetmek istediğim ilk şey, ne kadar özlü olduğu. Bu dosya, CIFAR-10 eğitimi için ihtiyacımız olan her şeyi kapsadığı düşünülürse oldukça etkileyici olan, yalnızca 140 satırlık Python kodu içermektedir. Daha önce düşük seviyeli C ve CUDA ile çalışıyordum, bu yüzden PyTorch ile karşılaşmak bir keşifti. Kodun yapısı basittir. Torç görüş modülü tarafından uygun bir şekilde sağlanan bazı temel veri dönüştürmelerimiz, bir tren setimiz ve bir tren yükleyicimiz var. Bu modül, CIFAR-10 veri setini zahmetsizce indirmemizi sağlar. Evrişimli ve tamamen bağlantılı katmanlardan oluşan ağımızı tanımlarız. PyTorch, geri yayılımla ilgilenir ve yerleşik optimize ediciler sağlar. Sadece birkaç satır kod ile modeli CIFAR-10 üzerinde eğitmeye başlayabiliriz.

Devam ederek, takviyeli öğrenmeyi ve bunun derin öğrenmeye uygulanmasını tartışmak istiyorum. Takviyeli öğrenme, geleneksel sınıflandırma veya regresyon görevlerinden farklıdır çünkü etkileşimli ortamları ve ödülleri en üst düzeye çıkarmak için harekete geçen aracıları içerir. Eğitim verilerini etiketlemek yerine, çevredeki eylemlerimize dayalı olarak ödül sinyalleri alıyoruz. Bu konsepti göstermek için, Cartpole ortamını kullanan DQN (Deep Q-Network) örneğine bakalım.

Cartpole ortamı, bir araba üzerinde dengelenmiş bir direği simüle eder ve amaç, direği mümkün olduğu kadar uzun süre dik tutmaktır. Direk dengede kaldığında bir ödül ve düştüğünde bir ceza alırız. Bu klasik bir pekiştirmeli öğrenme problemidir. Kodda, geçmiş deneyimleri depolamak ve eğitim sırasında onlardan örnekler almak için bir tekrarlama belleği kullanıyoruz. Bu, geri yayılma sürecini bozabilecek ilişkili gözlemler sorununun üstesinden gelmeye yardımcı olur. Ağ mimarimiz CIFAR-10 örneğine benzer şekilde tanımlanmıştır, ancak şimdi bir durum-eylem çifti verildiğinde gelecekteki ödülleri tahmin etmeye odaklanıyoruz. Tahmini ödüllere göre eylemler seçer ve modelimizi buna göre güncelleriz.

Son olarak, daha dün üzerinde çalıştığım kendi hızlı örneğimi paylaşmak istiyorum. Bir oyuncunun bir ödüle doğru ilerlediği basit bir ortam yarattım. Oyuncu, hedefe olan mesafesine göre bir ödül alır.

Bu örnekte, bir oyuncunun bir ödüle doğru ilerlediği ızgara tabanlı bir ortam oluşturdum. Oyuncunun amacı, engellerden ve cezalardan kaçınarak gol pozisyonuna ulaşmak ve yüksek bir ödül almaktır. Oyuncunun mevcut konumu ızgara üzerinde koordinatlarla (x, y) temsil edilir.

Bunu uygulamak için ortamı temsil eden bir 2B dizi kullandım. Dizideki her bir hücre, ızgara üzerinde bir konuma karşılık gelir ve o hücrenin türünü (örneğin, engel, ödül, ceza, boşluk) gösteren bir değer tutar. Başlangıçta, oyuncu ortama rastgele yerleştirilir ve hedef konumu belirli bir koordinata ayarlanır.

Daha sonra, oyuncunun mevcut konumunu girdi olarak alan ve hedefe ulaşmak için yapılacak en iyi eylemi (yani yukarı, aşağı, sola veya sağa hareket etme) tahmin eden bir sinir ağı tanımladım. Ağ, Q-öğrenme algoritmasının bir varyantı kullanılarak eğitilir; burada Q-değerleri, belirli bir durumda her eylem için beklenen ödülleri temsil eder.

Antrenman sırasında oyuncu, harekete geçerek ve konumuna göre anında ödüller alarak çevreyi keşfeder. Bu ödüller, Q değerlerini güncellemek ve ağın tahminlerini iyileştirmek için kullanılır. Antrenman süreci, oyuncu sürekli olarak hedef pozisyonuna ulaşana ve yüksek ödüller alana kadar devam eder.

Eğitim tamamlandıktan sonra, oyuncunun öğrenilen ilkeyi kullanarak ortamda gezinmesine izin vererek eğitilen ağı test edebiliriz. Oyuncu, her adımda en iyi eylemleri seçmek için ağın tahminlerini kullanır ve kademeli olarak hedefe yaklaşır.

Bu örnek, özel bir ortamda derin pekiştirmeli öğrenmenin uygulanmasını gösterir. Bir sinir ağının karmaşık bir alanda gezinmeyi, ödüllere ve cezalara dayalı kararlar almayı ve belirli bir hedefe ulaşmayı nasıl öğrenebileceğini gösterir.

 

Yorumlanabilir Temsilleri Öğrenmek



Yorumlanabilir Temsilleri Öğrenmek

Merhaba, benim adım Arun ve bu sunumda derin ağlarda yorumlanabilir temsilleri öğrenme konusunu tartışacağım. Derin sinir ağlarının bilgisayar görüşü, robotik ve doğal dil işleme gibi çeşitli alanlarda oldukça başarılı olduğu kanıtlanmıştır. Bununla birlikte, dezavantajlarından biri, yorumlanabilirlikten yoksun olmalarıdır. Daha basit modellerin aksine, derin ağlar sadece aktivasyonlarını inceleyerek kolayca anlaşılamaz. Bu, ağın gerçekte ne öğrendiğine dair içgörüler elde etmek istediğimizde bir zorluk teşkil eder.

Çoğu durumda, derin ağlardaki ara temsiller anlamlı veya yorumlanabilir değildir. Evrişimli katmanların ağırlıklarını görselleştirebilsek ve eğitimden sonra biraz anlayış kazanabilsek de, çoğu zaman bu ağlar kara kutu yaklaşımlayıcıları olarak ele alınır. Peki ya yorumlanabilirliği önemsiyorsak?

Bu sunumda, yorumlanabilir temsiller üretmek için derin ağları yapılandırma yaklaşımına odaklanacağım. Problem alanı hakkındaki önceki bilgileri ağ yapısına dahil ederek, daha iyi yorumlanabilirlik elde edebiliriz, bu da genellikle gelişmiş genelleme ve veri verimliliğine yol açar.

Yorumlanabilirliği artırmak için derin ağları yapılandırmanın farklı yolları vardır. Bu fikri araştıran beş veya altı makaleyi tartışacağım. İlk yaklaşım, belirli operasyonların açıkça ağ mimarisine dahil edilmesini içerir. Örneğin, evrişimli sinir ağları (CNN'ler), görüntü yamaları üzerinde yerel işlemler kullanarak görüntü analizinde başarılı olmuştur. Evrişimli katmanları dahil ederek, parametre uzayını azaltabilir ve anlamlı temsiller elde edebiliriz. Ancak, ağın açıkça eğitilmemiş özellikleri öğrenebileceğini unutmamak önemlidir.

Başka bir yaklaşım, verilerin dönüşümlerini ağ yapısına dahil etmektir. Örneğin, katı cisim dönüşümleri bir sahnedeki nesneleri düzeltmek ve hizalamak için kullanılabilir. Bu dönüşümleri açıkça modelleyerek, ağın verilerin altında yatan yapıyı anlama yeteneğini geliştirebiliriz. Ek olarak, dinamikleri ve fizik tabanlı modellemeyi derin ağlara entegre etmek de yorumlanabilirliği artırabilir. OpenGL ile oluşturma gibi teknikleri kullanarak gerçekçi etkileşimleri simüle edebilir ve ağın fiziksel dünya anlayışını geliştirebiliriz.

Ayrıca, daha yorumlanabilir temsilleri teşvik etmek için eğitim sürecinin yapılandırılmasına ilişkin çalışmaları tartışacağım. Bu, ara temsillere anlam atamayı ve ağın verilerin belirli niteliklerini veya özelliklerini tahmin etmesi için açıkça eğitilmesini içerir. Bu tür bir yapıyı eğitim sürecine dahil ederek, ağa daha anlamlı temsiller öğrenmesi için rehberlik edebiliriz.

Bu kavramları açıklamak için birkaç örnek sunacağım. Bir makale, bir sahnedeki nesneler hakkında daha üst düzey bilgileri kodlamayı amaçlayan kapsül ağlarına odaklanmaktadır. Nesneleri tanıyan ve nesne özelliklerini tahmin eden kapsüllerin çıktılarını birleştirerek daha doğru ve yorumlanabilir sonuçlar üretebiliriz.

Yakın tarihli başka bir makale, girdi verilerini kanonik bir temsile dönüştürmeyi öğrenen uzamsal trafo ağ mimarisini tanıtmaktadır. Ağ, dönüşüm parametrelerini tahmin ederek ve bunları girdiye uygulayarak varyasyonları düzeltir ve verileri daha kolay işleme ve sınıflandırma için hizalar.

Son olarak, modelleme sahne dinamikleri üzerine kendi çalışmamı tartışacağım. Açıkça fizik öncüllerini dahil ederek ve katı cisim hareketini döndürmeler ve ötelemeler kullanarak modelleyerek, ağın nesne etkileşimlerini doğru bir şekilde tahmin etme yeteneğini geliştirebiliriz.

Sonuç olarak, yorumlanabilir temsiller üretmek için derin ağlar yapılandırarak, bunların işleyişi hakkında değerli bilgiler edinebilir ve çeşitli görevlerdeki performanslarını geliştirebiliriz. Ön bilgilerin dahil edilmesi, belirli işlemlerin kullanılması ve dinamiklerin ve dönüşümlerin entegrasyonunun tümü, yorumlanabilirliği artırabilecek ve daha iyi genelleme ve veri verimliliğine yol açabilecek stratejilerdir.

Learning Interpretable Representations
Learning Interpretable Representations
  • 2017.08.17
  • www.youtube.com
#hangoutsonair, Hangouts On Air, #hoa
 

Tekrarlayan Sinir Ağları



Tekrarlayan Sinir Ağları

Yazar, tekrarlayan sinir ağları (RNN'ler) ve Uzun Kısa Süreli Bellek (LSTM) ağlarının karmaşık işleyişini derinlemesine inceleyerek bunların önemine ve işlevselliğine ışık tutuyor. RNN'ler, yönlendirilmiş asiklik grafikler olarak temsil edilebilen geleneksel sinir ağlarının aksine, grafik yapılarında döngülere sahiptir. Bu döngüsel yapı, verileri işlerken girdilerin zamansal sırasını dikkate almayı gerektirir. Yazarın birincil odak noktası, birden çok zaman adımında girdileri etkili bir şekilde işleyen zaman serisi RNN'lerinde yatmaktadır.

Bu kavramı göstermek için yazar, "Bilbo'yu Bul" adlı büyüleyici bir örnek problem sunuyor. Bu senaryoda, düzenli bir sinir ağı, bir ağaç tarafından kısmen kapatıldığı için üçüncü ve dördüncü görüntülerde Bilbo'nun yerini bulmakta güçlük çekiyor. Ancak insanlar, Bilbo'nun muhtemelen ağacın arkasında konumlandığını anlamak için zamansal bilgileri kullanabilir. Tekrarlayan sinir ağları, içsel bellek yetenekleri ile bu soruna bir çözüm sunar. Yazar, bilginin bir zaman adımından diğerine geçmesine izin vererek, tekrarlayan sinir ağının zaman içinde nasıl açılabileceğini açıklamaya devam ediyor. Bu özellik, ağın Bilbo'nun konum bilgilerini tutmasını sağlar.

Tekrarlayan bir sinir ağını eğitmek, zaman içinde gradyanların geri yayılmasını içerir. Bununla birlikte, bu süreç, özellikle ağ çok sayıda zaman adımında açıldığında, patlayan veya yok olan gradyanların zorluğuna yol açabilir. Yazar, bu sorunu çözmek için LSTM ağlarını tanıtıyor. LSTM ağları, patlayan veya kaybolan gradyan sorununu azaltmak için özel olarak tasarlanmıştır. Bilgi akışını etkin bir şekilde kontrol eden ve ağın belleğini güncelleyen kapılar olarak bilinen özel dahili yapılar kullanırlar. Yazar ayrıca bir LSTM'nin dört temel kapısını açıklıyor: unutma kapısı, giriş kapısı, blok girişi ve çıkış kapısı. Bu kapılar, ağın belleğindeki bilgileri seçerek unutmak ve hatırlamak için işbirliği yapar.

Ek olarak, yazar LSTM'lerin yaygın olarak kullanılan çeşitli varyasyonlarından bahseder. Bunlar, LSTM'nin önceki yinelenen durumu bir girdi olarak dikkate almasını sağlayan açık bir yinelenen durumu dahil etmeyi ve karar verirken kapıların mevcut hücre durumunu dikkate almasına izin veren gözetleme deliklerini kullanmayı içerir.

Vites değiştiren yazar, LSTM'lerin ayrıntılı bir açıklamasını başlatır ve özellikle su algılama ve izlemedeki faydalarını vurgular. Su kolayca ayırt edilebildiğinden, tekrarlayan bir ağ su tespiti için zorunlu olmayabilirken, izleme sorunu bir LSTM tarafından sunulan zamansal bilgilerden büyük ölçüde yararlanır. LSTM'lerin yinelenen doğası, bilgilerin zaman içinde toplanmasına ve tutulmasına izin verir; bu, dinamik yansımalar ve kırılmalar içeren su gibi nesneleri izlemek için çok değerlidir.

Yazar, algılama ve izleme görevleri bağlamında farklı ağların performansını karşılaştıran araştırma sonuçlarını sunmaya devam ediyor. Bulgular, yinelemesiz düzenli bir evrişimli sinir ağının (CNN), yinelemeli bir LSTM ağına kıyasla suyu algılama ve izlemede daha az kesinlik sergilediğini göstermektedir. Yazar ayrıca, birden fazla çerçeveyi aynı anda hesaba katan ancak yinelemeden yoksun başka bir ağdan da bahsediyor. Bu ağ, normal CNN'den daha iyi performans göstermesine rağmen, yine de LSTM tarafından elde edilen kesinliğin gerisinde kalıyor.

Konuyu genişleten yazar, bir LSTM'de hücre durumunun veya tekrarlayan durumun başlatılmasına ilişkin ek bilgiler sunar. Tipik olarak, bu durumlar sıfır olarak başlatılır. Bununla birlikte, alternatif seçenekler arasında eğitim verilerinden ortalama hücre durumuyla başlatma veya başlatma amaçları için alana özgü bilgiden yararlanma yer alır.

Metin daha sonra başka bir açıklayıcı örneğe geçerek Daniel'in çalışmasını ve yarattığı "re3"ü derinlemesine inceliyor. Bu çalışma, videolarda nesne takibi etrafında dönüyor. Yazar, kullanılan ağ mimarisini iki dahili LSTM katmanıyla açıklıyor. Önceki ve şimdiki zaman adımlarında nesneyi çevreleyen görüntü kırpmalarını birleştirerek ağ, nesnenin zaman içindeki hareketini etkili bir şekilde izler. Yazar, LSTM'nin, nesne takibi için güçlü bir araç haline gelen, görünüm değişikliklerini, tıkanıklıkları ve ışık değişikliklerini işleme konusundaki olağanüstü yeteneğini vurgulamaktadır.

Tartışmayı sonlandıran yazar, LSTM tabanlı ağların performansının verilen görevin özel gereksinimlerine bağlı olduğunu belirtiyor. Bu ağlar, farklı görünümlere sahip nesneleri içeren problemler için faydalı olsa da, diğer durumlar için daha basit ağ mimarileri yeterli olabilir.

Özet olarak, metin, tekrarlayan sinir ağlarının, özellikle LSTM ağlarının kapsamlı bir incelemesini sağlar. Su algılama ve izleme ile nesne izleme görevlerindeki uygulamalarına ışık tutarken amaçlarını, mekanizmalarını ve avantajlarını açıklamaktadır. Ek olarak, yazar, diğer çerçevelere kıyasla basitliğini vurgulayarak, PyTorch kullanarak LSTM'leri uygulamanın rahatlığını vurgulamaktadır.

Recurrent Neural Networks
Recurrent Neural Networks
  • 2017.08.17
  • www.youtube.com
#hangoutsonair, Hangouts On Air, #hoa
 

Dağıtılmış Derin Öğrenme



Dağıtılmış Derin Öğrenme

Bugün birlikte yolculuğumuzun son sunumunu işaret ediyor ve dağıtılmış derin öğrenmenin büyüleyici dünyasına dalmak istiyorum. Bu konu merakımı uyandırsa da, şimdiye kadar kapsamlı bir şekilde araştırmadığımı itiraf etmeliyim. Bununla birlikte, eğitim süreçlerini hızlandırmak için muazzam bir potansiyele sahip olduğu için, dağıtılmış derin öğrenmenin ödünleşimlerini ve pratik sonuçlarını tartışmaya değer olduğuna inanıyorum. Sistemler hakkında biraz bilgi sahibi olmama ve önemli miktarda kod yazmama rağmen, bu alanda uzman olmadığımı lütfen unutmayın. Bu nedenle, gerçek dünyadaki dağıtık sistemler söz konusu olduğunda tam olarak anlayamayabileceğim karmaşıklıklar olabilir. Bununla birlikte, bu dağıtılmış derin öğrenme keşfine başlayalım.

Dağıtılmış derin öğrenmeden bahsettiğimizde, birincil hedefimiz hızı ve verimliliği artırmaktır. Bununla birlikte, daha hızlı antrenman için optimize ederken göz önünde bulundurduğumuz birbiriyle ilişkili ancak farklı birkaç faktör vardır. Bu faktörler, eğitim süresini en aza indirmeyi, verimi en üst düzeye çıkarmayı, eşzamanlılığı en üst düzeye çıkarmayı, veri aktarımlarını en aza indirmeyi, parti boyutlarını en üst düzeye çıkarmayı ve gecikmeyi en aza indirmeyi içerir. Bu yönlerin her biri, daha hızlı ve daha verimli derin öğrenme modellerine ulaşılmasına katkıda bulunur.

Eğitim süresini en aza indirmek ve parti boyutlarını en üst düzeye çıkarmak iç içe geçmiş kavramlardır. Grup boyutunu artırmak, daha yüksek öğrenme oranlarına olanak tanır ve sonuçta eğitimi hızlandırır. Bu noktayı açıklamak için, tek bir GPU ve örneğin 100 görüntüden oluşan mütevazı bir toplu iş boyutuyla başladığımızı hayal edelim. Toplu işi örneğin 200 görüntüye ölçeklendirmeye çalıştığımızda, GPU belleği açısından sınırlamalarla karşılaşıyoruz. Çözüm, birden çok makineden veya GPU'dan yararlanmaktır. Ağ parametrelerini, her biri 100'lük bir yığın boyutunu işleyen birkaç GPU'ya dağıtarak, ileri ve geri geçişleri paralel hale getirebiliriz. Daha sonra gradyanları senkronize edip modelleri buna göre güncelliyoruz. Örneğin Facebook, 256 GPU barındırabilen özel bir donanım geliştirerek ImageNet'i bir ResNet-50 modelinde yalnızca bir saat içinde eğitmelerini sağladı. Çoğu uygulama için bu tür aşırı ölçeklenebilirlik gerekli olmayabilir, ancak ilgili ilkeleri ve takasları anlamak, bu alanda gelecekteki çabalar veya stajlar için faydalı olabilir.

Ardından, verimliliği optimize etme kavramını adım adım inceleyelim. Olası tuzakları tartışacağız ve doğruluk ve hıza ulaşmak için öneriler sunacağız.

  1. Kayıp İşlevini Normalleştirme: Toplam parti boyutuyla ilgili olarak kayıp işlevini normalleştirmek çok önemlidir. Bir ağı birden çok makinede veya GPU'da çoğaltırken, degradelerin toplamı veya ortalaması farklı sonuçlar üretir. Kayıp işlevinin doğru bir şekilde normalleştirilmesini sağlayarak, farklı parti boyutlarında tutarlılığı koruyarak doğru ve verimli eğitimi kolaylaştırıyoruz.

  2. Verileri Karıştırma: Verileri birden fazla çalışan veya makine arasında dağıtırken, karıştırma gerekli hale gelir. Karıştırma olmadan, mini gruplar uzun bir süre boyunca ilişkilendirilerek eğitimin etkinliğini azaltabilir. Verileri her çağın başlangıcında karıştırarak rastgeleliği garantiliyor ve benzer modellerin ardışık mini kümeleri etkilemesini engelliyoruz.

  3. Toplu Normalleştirme: Toplu normalleştirme, dağıtılmış bir ortamda benzersiz zorluklar ortaya çıkarır. Bu zorlukların üstesinden gelmek için, toplu normalleştirme istatistiklerinin genellikle bir GPU'nun toplu iş boyutuyla sınırlı olan mini toplu işlerde gerçekleştirilmesi önerilir. Bu yaklaşım, iş yükünün dağıtılmasından elde edilen faydalardan ödün vermeden paralelliğe izin verir. Araştırmacılar bu konuyu kapsamlı bir şekilde araştırdılar ve daha ayrıntılı bir anlayış için onların çalışmalarına başvurmanızı tavsiye ederim.

  4. Hataları Ele Alma ve İlerlemeyi İzleme: Dağıtılmış derin öğrenmeyi sürdürürken, sağlam hata işleme mekanizmalarına ve yerinde ilerleme izleme sistemlerine sahip olmak çok önemlidir. Dağıtılmış sistemlerin artan karmaşıklığı ve ölçeği ile birlikte hatalar ve darboğazlar meydana gelebilir. Güvenilir hata işleme ve izleme araçlarını uygulayarak olası sorunları azaltabilir ve sorunsuz çalışmayı sağlayabiliriz.

  5. Sisteme Özgü Hususlar: Her dağıtılmış sistemin kendine özgü bir sistemi vardır.

Dağıtılmış derin öğrenmede sisteme özgü hususları keşfetmeye devam edelim:

A. İletişim Ek Yükü: Farklı makineler veya GPU'lar arasındaki iletişim, dağıtılmış derin öğrenmede önemli bir faktördür. Veri aktarımları ve senkronizasyon için harcanan süre genel eğitim hızını etkileyebilir. İletişim kalıplarını optimize etmek ve gereksiz veri hareketini en aza indirmek çok önemlidir. Gradyan sıkıştırma, gradyan niceleme ve gradyan seyrekleştirme gibi teknikler, iletişim yükünü azaltmaya ve verimliliği artırmaya yardımcı olabilir.

B. Ağ Mimarisi: Ağ mimarisi seçimi, dağıtılmış derin öğrenme performansını da etkileyebilir. Bazı mimariler doğası gereği dağıtılmış eğitim için daha uygundur, diğerleri ise verimli paralelleştirme elde etmek için modifikasyonlar veya ek teknikler gerektirebilir. Seçilen mimarinin özelliklerini ve bunun dağıtılmış eğitimle uyumluluğunu anlamak, optimum sonuçlar için önemlidir.

C. Veri Bölümleme ve Yük Dengeleme: Verileri birden fazla çalışan arasında dağıtırken, iş yükünü eşit şekilde dengeleyecek şekilde verilerin bölümlenmesi önemlidir. Düzensiz veri dağılımı, yük dengesizliğine ve daha yavaş eğitime neden olabilir. Veri paralelliği, model paralelliği ve hibrit paralellik gibi teknikler, iş yükünü etkili bir şekilde dağıtmak ve yük dengelemeyi sağlamak için kullanılabilir.

D. Hata Toleransı: Dağıtılmış sistemler arızalara eğilimlidir ve sağlamlığı sağlamak için hata toleransı mekanizmalarını dahil etmek çok önemlidir. Kontrol noktası ve otomatik kurtarma gibi teknikler, arızaların zarif bir şekilde ele alınmasına ve önemli kesintiler olmadan eğitime devam edilmesine yardımcı olabilir.

e. Ölçeklenebilirlik: Dağıtılmış sistemin boyutu büyüdükçe ölçeklenebilirlik kritik bir faktör haline gelir. Sistem, önemli performans düşüşü olmadan artan sayıda makineyi veya GPU'yu verimli bir şekilde işleyebilmelidir. Ölçeklenebilirliği sağlamak, dikkatli sistem tasarımı, kaynak tahsisi ve iletişim optimizasyonları gerektirir.

F. Senkronizasyon ve Tutarlılık: Dağıtılmış derin öğrenmede, tutarlılığı korumak için modelleri ve gradyanları farklı çalışanlar arasında senkronize etmek esastır. Eşzamanlı eğitim, eşzamansız eğitim ve gecikmeli güncellemeler gibi teknikler, yakınsama hızı ile tutarlılık arasında denge sağlamak için kullanılabilir. Senkronizasyon yönteminin seçimi, eğitim görevinin ve sistem mimarisinin özel gereksinimlerine bağlıdır.

G. Kaynak Yönetimi: Verimli kaynak yönetimi, mevcut kaynakları etkili bir şekilde kullanmak için dağıtılmış derin öğrenmede çok önemlidir. Bu, GPU belleğini yönetmeyi, GPU kullanımını optimize etmeyi ve iş yüküne göre kaynakları dinamik olarak tahsis etmeyi içerir. Model paralelliği ve gradyan birikimi gibi teknikler, GPU bellek sınırlamalarının üstesinden gelmeye ve kaynak kullanımını en üst düzeye çıkarmaya yardımcı olabilir.

Sonuç olarak, dağıtılmış derin öğrenme, eğitimi hızlandırmak ve verimliliği artırmak için önemli fırsatlar sunar. Bununla birlikte, optimum sonuçlara ulaşmak için ele alınması gereken zorluklar da sunar. Toplu iş boyutu, normalleştirme, karıştırma, iletişim ek yükü, sisteme özgü hususlar, hata toleransı, ölçeklenebilirlik, senkronizasyon ve kaynak yönetimi gibi faktörleri göz önünde bulundurarak, dağıtılmış derin öğrenmenin karmaşıklıklarında gezinebilir ve tam potansiyelini ortaya çıkarabiliriz.

Distributed Deep Learning
Distributed Deep Learning
  • 2017.08.17
  • www.youtube.com
#hangoutsonair, Hangouts On Air, #hoa
 

Bilişsel Hesaplamaya ve Yapay Zekaya Giriş



Bilişsel Hesaplamaya ve Yapay Zekaya Giriş

Ben Dr. Soper, bilişsel bilgi işlem ve yapay zeka (AI) hakkındaki bu kapsamlı dizinin ilk videosuna hoş geldiniz. Bu seri, bu heyecan verici alanlar hakkında daha fazla bilgi edinmek isteyen kişilere bilgi ve içgörü sağlamayı amaçlamaktadır. Yapay zeka veya bilişsel bilgi işlem sistemleri hakkında herhangi bir ön bilgiye sahip olup olmamanızdan bağımsız olarak, bu seri temel konuları kapsayacak ve güçlü bir temel oluşturacaktır.

Birçoğumuz bilim kurgu kitaplarında ya da gişe rekorları kıran filmlerde yapay zeka ile karşılaşmış olsak da bu video serisi kurgudan çok gerçekliğe odaklanacak. Yolculuğumuz, bilişsel bilgi işlem ve yapay zekanın gerçek doğasını araştıracak. Tanımlarını, günümüzde mevcut olan farklı sistem türlerini, işlevlerini, gerçek dünyadaki uygulamalarını ve hayatımızın çeşitli yönleri üzerinde sahip olacakları dönüştürücü etkileri keşfedeceğiz.

Bu dizinin büyüleyici yönlerinden biri de, tartıştığımız yapay zeka ve bilişsel sistemleri oluşturmak için Python ve Jupyter Not Defterlerini nasıl kullanacağımızı öğrenecek olmamız. Bu uygulamalı deneyim, serinin en keyifli bölümlerinden biri olacak, çünkü pratik uygulama yapıyoruz.

Öyleyse eğitim maceramıza başlayalım!

Bu ilk ders, yapay zeka ve bilişsel hesaplamaya bir giriş niteliğinde olduğundan, bu terimleri tanımlamak çok önemlidir. Yapay zeka, basit bir ifadeyle, makinelerin sergilediği zekayı ifade eder. Amaçlarına ulaşmak için çevrelerini algılayan, harekete geçen veya kararlar veren yapay cihazları kapsar. Yapay zeka sistemlerini diğerlerinden ayıran şey, açık talimatlara ihtiyaç duymadan bağımsız olarak öğrenme yetenekleridir. Bunun yerine, sorunları çözmek veya görevleri yerine getirmek için en etkili yaklaşımı otonom olarak belirleyebilirler.

Öte yandan, bilişsel bilgi işlem, geleneksel olarak insan bilişine özel olan görevleri üstlenen veya hizmetler sağlayan yapay zeka sistemlerini ifade eder. Tüm bilişsel bilgi işlem sistemleri yapay zeka olarak kabul edilirken, tüm AI sistemleri bilişsel yeteneklere sahip değildir. Bilişsel bilgi işlem, anormallik algılama, duyarlılık analizi, dil çevirisi, doğal dil işleme, konuşma tanıma ve sentez, görüntü ve video tanıma ve daha fazlası gibi çok çeşitli uygulamaları içerir.

Bu dizi boyunca, çeşitli bilişsel bilgi işlem sistemlerinin temelini oluşturan dört farklı yapay zeka modelini keşfedip uygulayacağız.

İlk olarak, sistemlerin keşif-sömürü ikilemini ele almasına yardımcı olan nispeten basit bir yapay zeka modeli olan Thompson Sampling'i inceleyeceğiz. Bu sistemler, beklenen ödüllerini en üst düzeye çıkaran eylemleri seçmeyi otonom olarak öğrenebilir.

Ardından, pekiştirmeli öğrenme çatısı altına giren Q-learning'e gireceğiz. Q-learning, durumlar ve olası eylemlerle karakterize edilen bir ortamda çalışan bir aracıyı içerir. Bu sistemler, herhangi bir durumda karar vermeye rehberlik eden en uygun politikayı otomatik olarak belirleyebilir.

Ele alacağımız üçüncü model, yapay sinir ağları etrafında dönen derin öğrenmedir. İnsan beynine benzeyen bu ağlar, birbirine bağlı düğümlerden veya nöronlardan oluşur. Derin sinir ağları, konuşma tanıma, makine çevirisi, tıbbi teşhis ve daha fazlası dahil olmak üzere çok sayıda ilgi çekici yapay zeka ve bilişsel sistemin temelini oluşturur. Hatta video oyunları oynama, çizim yapma ve müzik besteleme gibi görevlerde yeteneklerini sergilediler.

Son olarak, derin evrişimli sinir ağlarını keşfedeceğiz. Bu ağlar, görüntü ve videolardan görsel bilgileri işlemede mükemmel olmalarını sağlayan evrişim olarak bilinen özel bir matematiksel işlem kullanır.

Şimdi, AI ve bilişsel bilgi işlem dünyada nasıl devrim yaratacak? Olasılıklar neredeyse sınırsız! 2030 yılına kadar bu teknolojilerin küresel ekonomiye yaklaşık 16 trilyon dolar katkıda bulunması bekleniyor. İşletmeler, hükümetler ve bireyler için potansiyel faydalar fazladır.

Enerji sektöründe yapay zeka ve bilişsel bilgi işlem, enerji tüketimini ve dağıtımını optimize ederek küresel enerji kullanımını etkili bir şekilde azaltacaktır. Sağlık hizmetlerinde bu teknolojiler, yeni ilaçlar ve aşılar tasarlamaya, hastalıkları teşhis etmeye ve kişiselleştirilmiş tıbbi bakım sunmaya yardımcı olacaktır. Ulaşım ve lojistikte, yapay zeka tarafından desteklenen sürücüsüz araçlar, e-ticaret teslimatlarında devrim yaratırken kazaları ve trafik sıkışıklığını büyük ölçüde azaltacaktır. Eğitim, yapay zeka ve bilişsel bilgi işlem tarafından kolaylaştırılan kişiselleştirilmiş ve optimize edilmiş eğitim deneyimlerinden faydalanacaktır. Yapay zekanın suçu azaltma, kamu güvenliğini artırma ve dolandırıcılık ve kimlik hırsızlığıyla mücadele etme yeteneği sayesinde emniyet ve güvenlik artırılacak. İstihdam sektörü, adaylar ve pozisyonlar arasındaki en iyi eşleşmeleri belirlemek ve iş memnuniyetini artırmak için yapay zekayı kullanacak. Akıllı evler ve ev robotları görevleri otomatikleştirecek, cihazları izleyecek ve canlı robot asistanları sağlayarak yaşlı yetişkinler ve engelli insanlar için bağımsız yaşamı teşvik edecek. Yapay zeka ve bilişsel bilgi işlem, deneyimler önererek ve insanların yeni arkadaşlar ve sosyal çevreler bulmasına yardımcı olarak eğlence ve sosyalleşmede de devrim yaratacak. Çevresel girişimler, AI tarafından sağlanan iyileştirilmiş atık işleme, geri dönüşüm ve kirlilik azaltmadan faydalanacaktır. İş dünyasında yapay zeka süreçleri otomatikleştirecek, karı optimize edecek, yeniliği teşvik edecek ve karar vermeyi geliştirecek.

Yapay zeka ve bilişsel bilgi işlem, sayısız daha dönüştürücü uygulamayı ortaya çıkarmaya devam edeceğinden, bu örnekler yalnızca yüzeyi çiziyor. Karar vermeyi geliştirme, insan zekasını artırma ve bilişsel kaynakları diğer görevler için serbest bırakma potansiyeline sahiptirler. Yakın gelecekte bilişsel makineler ve yapay zeka, akıllı telefonlar, internet veya elektrik kadar vazgeçilmez hale gelecek ve hayatımıza sorunsuz bir şekilde entegre olacak. Onlar olmadan nasıl başardığımızı merak edeceğiz.

Bir sonraki dersimizde, daha önce tartıştığımız yapay zeka modellerini oluşturmak ve uygulamak için bu dizi boyunca Python ile birlikte kullanılacak güçlü bir araç olan Jupyter Not Defterlerini keşfedeceğiz. Jupyter Notebooks veya Python'a aşina olmasanız bile, yolculuğumuz ilerledikçe bu araçlarla önemli deneyimler kazanacağınızdan emin olabilirsiniz.

Umarım bilişsel bilgi işlem ve yapay zeka hakkındaki bu giriş dersini bilgilendirici ve ilgi çekici bulmuşsunuzdur. Bir dahaki sefere kadar, harika bir gün geçirin!

Introduction to Cognitive Computing & Artificial Intelligence
Introduction to Cognitive Computing & Artificial Intelligence
  • 2020.03.24
  • www.youtube.com
In this first video in the series, Dr. Soper introduces the concepts of artificial intelligence (AI) and cognitive computing. Topics discussed include the re...
 

Yapay Zeka Araç Kitiniz - Jupyter Not Defterleriyle Çalışma



Yapay Zeka Araç Kitiniz - Jupyter Not Defterleriyle Çalışma

Ben Dr. Soper ve bugün size yapay zeka araç setinizi tanıtma zevkini yaşıyorum. Ana odak noktamız, Jupyter Notebooks adlı inanılmaz derecede kullanışlı ve kullanıcı dostu bir teknoloji olacak.

Ancak ayrıntılara girmeden önce, bu derste neler öğrenmeyi bekleyebileceğinizi gözden geçirelim.

Bu videonun sonunda, aşağıdakileri net bir şekilde anlayacaksınız:

  1. Bir yapay zeka araç setine sahip olmanın önemi.
  2. Jupyter Defterlerinin tanımı ve amacı.
  3. Yapay zeka ve bilişsel bilgi işlem projeleri için Jupyter Not Defterlerini kullanmanın avantajları.
  4. Google Cloud ve Microsoft Cloud'da ücretsiz olarak Jupyter Not Defterleri nasıl oluşturulur?
  5. AI ve kognitif bilgi işlem projelerini geliştirmek ve yürütmek için Jupyter Not Defterlerinden etkin bir şekilde nasıl yararlanılır.

Bu ders boyunca, yapay sinir ağı oluşturmak, eğitmek ve test etmek için uygulamalı bir yolculuğa çıkacağız. Sürecin ne kadar basit olduğuna hoş bir şekilde şaşıracaksınız!

İşleri başlatmak için, bir AI araç setine sahip olmanın neden gerekli olduğunu tartışalım.

Bilişsel bilgi işlem ve yapay zeka hakkındaki bu video serisi, teori ve kavramların ötesine geçiyor. Çeşitli AI modelleri oluşturmayı öğreneceksiniz!

Herhangi bir yapay zeka veya bilişsel bilgi işlem modeli oluşturmak için bir takım araçlara ihtiyacımız var. Bu araçlar, dosyalarımız için CPU'lar, bellek ve depolama gibi hesaplama kaynaklarını içerir. Yapay zeka projelerimiz üzerinde çalışabileceğimiz bir geliştirme ortamına da ihtiyacımız var. Son olarak, istediğimiz eylemleri bilgisayara iletmek için bir dizi talimata ihtiyacımız var.

Araçlar açısından, bir sonraki videodan başlayarak bu seri boyunca Python programlama dilini öğreniyor olacağız.

Hesaplama kaynakları ve geliştirme ortamı ile ilgili olarak, bulutta barındırılan Jupyter Not Defterleri hem yapay zeka hem de kognitif bilgi işlem projelerimiz için sağlayabilir.

Şimdi Jupyter Notebook'ların ne olduğunu keşfedelim.

Bir Jupyter Notebook, düzenli bir hücre koleksiyonundan oluşan etkileşimli, web tabanlı bir ortamdır. Bir Jupyter Not Defteri içindeki her hücre metin, programlama kodu, matematiksel formüller, resimler veya diğer medya öğelerini içerebilir.

Bu çok yönlülük, tüm notlarınızı, kodlarınızı, diyagramlarınızı, görselleştirmelerinizi ve yapay zeka ve bilişsel bilgi işlem modellerinizden gelen çıktıları tek bir yerde tutmanıza olanak tanır.

Jupyter Not Defterleri, programlama kodunu çalıştırmak ve projenizin mevcut durumunu korumak için çekirdekleri kullanır. Jupyter Notebook'ların en etkileyici özelliklerinden biri, her seferinde bir hücreyi çalıştırabilme yeteneğidir. Dizüstü bilgisayar sunucusu, projenin mevcut durumunu bellekte otomatik olarak takip eder.

Bu özellik, bir hücreye kod yazmanıza, yürütmenize ve sonuçları gözlemlemenize olanak tanır. Daha sonra, sonraki hücrelere ek kod yazmaya devam edebilir, önceki hücrelerdeki sonuçlara erişebilir ve sonuçları kullanabilirsiniz. Bu artımlı yaklaşım, her değişiklik yaptığınızda her şeyi yeniden çalıştırmanıza gerek kalmadan projenizi kademeli olarak oluşturmanıza ve iyileştirmenize olanak tanır.

Jupyter Notebook'ların dikkat çeken bir diğer yönü ise Julia, Python ve R gibi birden çok programlama diline destek vermesidir. "Jupyter" ismi aslında bu üç dilin birleşiminden gelmektedir.

Şimdi, Jupyter Notebook'ların diğer geliştirme platformlarına göre neden tercih edildiğini merak edebilirsiniz.

Alternatif yaklaşımlar mevcut olsa da, Jupyter Notebook'lar yapay zeka ve bilişsel bilgi işlem projeleri için çok sayıda avantaj sunar:

  1. Jupyter Not Defterleri doğrudan bir web tarayıcısında çalışarak özel yazılım yükleme veya yapılandırma ihtiyacını ortadan kaldırır. İnternet bağlantınız olduğu sürece, nerede olursanız olun, herhangi bir cihaz ve işletim sisteminden projeleriniz üzerinde çalışabilirsiniz.
  2. Jupyter Defterleri tamamen ücretsizdir! Google ve Microsoft gibi büyük teknoloji şirketleri, Jupyter Not Defterlerini bulut platformlarında hiçbir ücret ödemeden cömertçe sağlıyor. Bu, pahalı yazılımlara yatırım yapmadan son teknoloji yapay zeka ve makine öğrenimi modelleri üzerinde çalışmanıza olanak tanır.
  3. Jupyter Not Defterleri kullanıcı dostudur ve öğrenmesi kolaydır. Arayüz basit ve sezgiseldir, karmaşık geliştirme ortamlarını kurarken zamandan ve emekten tasarruf etmenizi sağlar. Hemen kod yazmaya ve yapay zeka modelleriyle deneme yapmaya odaklanabilirsiniz.
  4. Jupyter Not Defterleri işbirliğini ve bilgi paylaşımını destekler. Not defterlerinizi iş arkadaşlarınızla, ortak çalıştığınız kişilerle veya daha geniş yapay zeka topluluğuyla kolayca paylaşabilirsiniz. Bu, işbirlikçi geliştirmeyi kolaylaştırır ve fikir alışverişini ve en iyi uygulamaları teşvik eder.
  5. Jupyter Not Defterleri, zengin medya entegrasyonunu destekler. Kodunuzun yanına resimler, videolar, etkileşimli görselleştirmeler ve açıklayıcı metinler ekleyebilirsiniz. Bu, AI modellerinizi iletmeyi ve belgelemeyi kolaylaştırarak işinizin genel olarak anlaşılmasını ve tekrarlanabilirliğini geliştirir.
  6. Jupyter Not Defterleri etkileşimli veri keşfi ve görselleştirme sağlar. Matplotlib ve Seaborn gibi yerleşik kitaplıklarla, doğrudan not defterinizde içgörülü görselleştirmeler oluşturabilirsiniz. Bu, verilerinizi daha derinden anlamanıza ve model geliştirme sürecinde daha bilinçli kararlar almanıza olanak tanır.
  7. Jupyter Not Defterleri, yapay zeka ve makine öğrenimi için Python kitaplıklarından oluşan geniş bir ekosisteme erişim sağlar. Python, basitliği ve kapsamlı kütüphane desteği nedeniyle birçok AI uygulayıcısı için tercih edilen dil haline geldi. Jupyter Not Defterleri ile TensorFlow, PyTorch, scikit-learn ve daha fazlası gibi kitaplıkları kolayca içe aktarabilir ve kullanabilirsiniz.
  8. Jupyter Notebook'lar mükemmel dokümantasyon yetenekleri sunar. Defter hücrelerinizin içine ayrıntılı açıklamalar, talimatlar ve yorumlar ekleyebilirsiniz. Bu, düşünce sürecinizi takip etmenize, içgörülerinizi başkalarıyla paylaşmanıza ve çalışmanızı daha sonra tekrar ziyaret edip gözden geçirmenize yardımcı olur.

Artık Jupyter Not Defterlerini kullanmanın faydalarını anladığımıza göre, bunları Google Cloud ve Microsoft Cloud'da ücretsiz olarak nasıl oluşturacağımızı tartışalım.

Hem Google Cloud hem de Microsoft Cloud, bulut platformlarının bir parçası olarak Jupyter Notebook hizmetleri sunar. Bu hizmetler size Jupyter Not Defterleri oluşturmak ve çalıştırmak için önceden yapılandırılmış bir ortam sağlar.

Google Cloud'da, Google'ın altyapısı üzerinde çalışan ücretsiz bir Jupyter Notebook ortamı olan Google Colab'ı (Colaboratory'nin kısaltması) kullanabilirsiniz. Hızlandırılmış makine öğrenimi hesaplamaları için GPU'lara ve TPU'lara erişim sağlar.

Google Colab'da bir Jupyter Not Defteri oluşturmak için Google Colab web sitesine (colab.research.google.com) gidebilir, Google hesabınızla oturum açabilir ve yeni bir not defteri başlatabilirsiniz. Boş bir not defteri oluşturmayı veya Google Drive ya da GitHub'dan mevcut bir not defterini açmayı seçebilirsiniz.

Benzer şekilde Microsoft Cloud'da da Microsoft tarafından sağlanan ücretsiz bir Jupyter Notebook hizmeti olan Azure Notebooks'u kullanabilirsiniz. Azure Notebooks, veri bilimi ve makine öğrenimi projeleri için işbirliğine dayalı bir ortam sunar.

Azure Notebooks'ta bir Jupyter Notebook oluşturmak için Microsoft hesabınızla Azure Notebooks web sitesinde (notebooks.azure.com) oturum açabilirsiniz. Oradan, varsayılan olarak bir Jupyter Not Defteri içerecek yeni bir proje oluşturabilirsiniz.

Hem Google Colab hem de Azure Not Defterleri, yapay zeka modellerinizi çalıştırmak için gerekli bilgi işlem kaynaklarına sahip tanıdık bir Jupyter Not Defteri arabirimi sağlar. Ek kitaplıklar yükleyebilir, veri kümeleri yükleyebilir ve başkalarıyla sorunsuz bir şekilde işbirliği yapabilirsiniz.

Bu dersin bir sonraki bölümünde, pratik bir örneğe dalacağız ve yapay zeka ve bilişsel bilgi işlem projelerini geliştirmek ve yürütmek için Jupyter Not Defterlerini nasıl etkili bir şekilde kullanabileceğimizi göstereceğiz.

Bizi izlemeye devam edin ve AI ve Jupyter Notebooks dünyasına yolculuğumuza devam edelim!

Your AI Toolkit - Working with Jupyter Notebooks
Your AI Toolkit - Working with Jupyter Notebooks
  • 2020.03.27
  • www.youtube.com
Dr. Soper introduces Jupyter Notebooks, and discusses why they provide a useful foundation for creating and working on artificial intelligence and cognitive ...
Neden: