Atılım: Nöral ağların tamamına hafıza verebilir mi?

5 yıl önce

Nedir?

Bu, çok basit ve basit bir örnekle en iyi şekilde açıklanabilir.

AI'nin bir kitaptan (veri kümesinden) geçip bir öğrenci olup olmadığını hayal edin ve bir test için hazırlanır. Burada yaptığım tek şey, önemli olduğunu düşündüğü her şeyi yazmak için bir defter vermeyi denedim.

AI hakkında öğrenirken beni rahatsız eden bir soru, biri nöral netliğe hafıza veriyorsa ne olurdu? Olduğu gibi oldukça açık, doğru geliyor. Sadece bunu yaptım ve seninle, detaylı, nasıl yaptığımı, nasıl yaptığımı, nasıl çalıştığını ve hepsinin en önemli sorusu, işe yaramadım mı?

Çalışıyor mu?

Kısa cevap: Â Evet

Standal Resnet50'yi Stanford Dogs Veri setindeki tabanım olarak eğitmeye karar verdim ve daha sonra aynı mimariye bir miktar hafıza ekledim ve tam olarak Resnet50 ile aynı şekilde eğitti.

Bu, Standart Resnet50'nin gerçekleştirdiği, en yüksek olan modeli test verilerinde% 15.14 idi. Eğitim, validasyon doğruluğu 7. dönemde artış olmadığından 40. EPOCH'ta durduruldu.

Ve bu aynı amaç Resnet50'nin gerçekleştirdiği budur (amaç yapay zeka için hafızadan gelir). Sadece 50. dönene kadar koşmasına izin verdim. Fasttieth Epoch'ta, test verilerinde% 20.06 doğruluk kazandı ve hala ileri gitme potansiyeli vardı.

Bu sadece bir tahmindir, ancak RESNET50'nin doğrulama doğruluğunun nasıl geçtiğini arıyorum, bu kadar çok ya da sadece istikrarlı bir şekilde yükselme, sadece daha fazlasını öğrenemez gibi görünmüyor, aynı zamanda daha fazla hata yapmaz gibi görünüyor. DataSet'ten gelen şeyleri öğrenirken.

Resnet50'nin yaklaşık 23,8 milyon parametreye sahiptir.

Bir amaç-resnet50, yaklaşık 50.000 yüzeyin (yukarıdaki denemede kullanıldığı) hafıza büyüklüğüne sahip olan, yaklaşık 24,1 milyon parametreye sahiptir.

Nasıl çalışır?

Amaç yaparken hedefim?

Bunu uyguladığım gibi, bir katmana sahip olmaya karar verdim ve bu katmanı, önceki katmanın çıktısı ile birlikte, modeldeki her katman için bir sonraki katmana geçerdim. Ayrıca, "Memory KatmanıÂ € için güncelleme blokları yaptım, böylece ikinci durumun karşılanmasıdır. Bu katmanın ağırlıkları ve önyargıları bana geçmenin bir yolu verdi.

Nasıl yaptım?

CNNS için, hafızam için CONV2D katmanı kullandım. 1S'nin bir dizisini bu katmana doğrusal bir aktivasyonla girerek geçerek, ileriye doğru geçen değerler sadece ağırlıklar ve önyargılar olacaktır. Bu nedenle, bir hafıza tabakası olarak işlev görebilir.

Bu bellek katmanı, mimarideki en küçük konvizyon katmanıyla aynı sayıda satır ve sütun bulunursa, giriş katmanı için yeniden şekillendirilebilir ve birleştirilebilir ve ayrıca problemsiz diğer katmanlardan çıkabilir.

N_Rows * N_Columns diğer konvigasyonel katmanların toplam hafızasını aştığında (n_rows * n_columns * kanalların sayısı) Bellek, bir kanala sıfırla yeniden şekillenebilir ve dolgulu olabilir ve daha sonra, katmanın olduğu girişe birleştirilebilir. zaten alıyor.

Ve tıpkı böyle bir şekilde yeniden şekillendirerek ve dolgu yaparak, bu bellek katmanı neredeyse tümü girişlerine birleştirilebilir.

Bu bellek katmanını, diğer bazı veriler / özelliklerle birlikte konvomitasyon bloğu boyunca geçişi, bellek tabakasını güncelleyebilir.

Tamamen bağlı sinir ağları için bunun için daha da kolaydır, çünkü sadece bir bellek katmanı için yoğun bir katman kullanırız. Yine, onu geçerek, giriş olarak 1S dizisi ve doğrusal aktivasyon kullanarak, ağırlık + önyargıyı bir bellek birimi olarak kullanabiliriz. Bu bellek katmanı daha sonra her katmanın girdisiyle bir sinir ağını elde etmek için birleştirilebilir.

Ne kadar çok yönlü?

Sadece bir araya getirildiği yönteme bir bakış, bunun sonucuna varması kolaydır, bunun sonucuna varması kolay, çoğu CNNS'ye ve tamamen bağlı sinir ağ mimarilerine minimum değişikliklerle eklenebilir. Resnet50 ve VGG16'ya hafıza eklemeyi test ettim ve performanslarını arttırırsa, bunun neredeyse her derin nöral ağ mimarisini orada gerçekleştirebilecekleri iyi bir şans var.

Sonuç

Bu görünüşte basit ama etkili bir fikir için umutlarım var. Bu deney kaba ve çok fazla gelişme için oda var, bu yazı ile, bu yazı ile dikkatinizi bu Kavramı kanıtına getirmek için istedim.

Derin öğrenme topluluğunun nasıl bu kadar destekleyici ve yardımsever olduğunu seviyorum. Çok fazla makale ve kod ve yararlı blog mesajları ve defterler burada ücretsiz, geri vermenin en iyi yolunu düşündüm, bunu halka açık olacak.

İşimdeki görüşlerinizi duymayı çok isterim ve derin öğrenme topluluğunun bu fikri nasıl geliştirdiğini görmek için sabırsızlanıyorum.

Benim hakkımda ve iletişim için daha fazla bilgi edinmek için

Atılım: Nöral ağların tamamına hafıza verebilir mi? Orijinal olarak, insanların bu hikayeye vurgulayarak ve yanıtlayarak konuşmaya devam ettiği ortamda AI'ye yayıldı.

AI'ye doğru yayınlandı

Kaynak: TowardsAI

More Posts