Makine öğreniminde kullanılacak Arduino Uno gibi bir mikroişlemciye basit bir sinir ağı kurabilir misiniz?
Makine öğreniminde kullanılacak Arduino Uno gibi bir mikroişlemciye basit bir sinir ağı kurabilir misiniz?
Yanıtlar:
Bir mikrodenetleyicide bir sinir ağı eğitebilir misin ? Belki, ama lütfen deneme. Bir mikrodenetleyicide sınıflandırma için NN kullanabilir misiniz? Elbette, düğüm ve kenar değerlerini yaymanın sonucunu hesaplayabildiğiniz ve çarpımları işleyebildiğiniz sürece.
Bunu bir Arduino'da uygulamak kesinlikle mümkün. İşte sinir ağlarını uygulayan 3 Arduino kütüphanesi:
Arduino'nun üstesinden gelebilecek olan ağın karmaşıklığı, özellikle eğitim söz konusu olduğunda - eğitim verileriyle ilgili onbinlerce yineleme söz konusu olduğunda ayrı bir sorudur. Hızlı bir makinede eğitim ve ardından nöron ağırlıklarını Arduino'ya kopyalamak, uygulamanızı geliştirmenin daha akıllıca bir yolu olacaktır.
Evet. Yalnızca ileri besleme modunda çalıştırıyorsanız ve eğitiminizi çevrimdışı başka bir yerde yapıyorsanız:
Bir Arduino UNO'da 3 katmanlı (5-5-2) feedforward ANN programladım. Bir mobil robot üzerinde koştu. Robot ne zaman bir şeye çarpsa, ağı yeniden eğitirdi. Ağın feedforward kısmı gerçek zamanlı olarak çalıştı; geri yayılma eğitimi ise ~ 5 ila 20 saniye arasında gerçekleştirildi. Sanırım biraz daha hızlı çalışmasını sağlamak için ağın boyutunu ve parametrelerle oynayabileceğinizi azaltabilirsiniz, ancak Arduino'da geri yayılım yapmayı planlıyorsanız, bunun çok yavaş olacağını düşünüyorum.
İşleri hızlandırmak için bazı düşünceler şunlardır:
İşte ağ ile ilgili yaptığım kısa bir yazı .
Evet, aslında sinir ağını mikrodenetleyicilere yerleştirmek mümkün. Bilimsel literatürde bunun gibi pek çok örnek var ama yeterince zekiysen çok basit bir MCU ile neler yapılabileceğine dair çarpıcı bir örnek vereceğim. In Evrimsel Bits'n'Spikes , yazarlar sinir ağı VE diferansiyel tekerlek robotu kontrol etmek için, onu eğitmek için genetik algoritma yükseliyor gerçek zamanlı uygulanmasını açıklar. Kodun tamamı, 1 inçlik Alice robotuna yerleştirilmiş küçük bir PIC16F628 4MHz MCU'da çalışıyor.