FPGA Üzerinde HSYA ve HSYA'ya Özel Öğrenme Algoritmalarının Birlikte Gerçeklenmesi
Creators: name: Köse, Erdem
Publisher: name: figshare
Year: 2021
Subjects: subject: 170205 Neurocognitive Patterns and Neural Networks
subject: FOS: Psychology
subject: Artificial Intelligence and Image Processing
subject: FOS: Computer and information sciences

description: İnsanlık ilk dönemlerinden bu yana sürekli hayatta kalmak ve refahını sağlamak için çalışmalar yapmıştır. Bu çalışmaların neredeyse hepsi hesaplamalara dayanmaktadır. Medeniyetler geliştikçe, merak arttıkça ve ihtiyaçlar değiştikçe yapılması gereken hesaplamalar karmaşıklaşmıştır. Transistör ve bilgisayarın icadına kadar insanların işlem kapasiteleri oldukça sınırlı kalmıştır. Bilgisayar çağında ise insanlık önceki dönemlerine nazaran çok büyük ilerlemeler katetmiş ve karşısına daha karmaşık problemler çıkmıştır. Bu problemlerden biri de mevcut bilgisayarların yapmakta zorlandığı çeşitli paralel işlemlerdir. Bu amaçla ortaya atılan modellerden biri de yapay sinir ağı adlı modeldir. Yapay sinir ağları canlılarda bulunan sinir sisteminin temel parçası sinir hücresinin davranışını bir elektronik devre üzerinde gerçekleştirmeyi olanaklı hale getirmektedir. Canlılarda bulunan sinir sistemleri çok düşük frekanslarda çalışmalarına karşın çok yüksek paralel işlem kabiliyetine sahiptirler. Sinir sistemlerinin genel amaçlı işlemcilere göre en büyük avantajı kısa sürede hızlı biçimde bir çok girişi işleyip bir çok çıkış verebilmeleridir. Yapay sinir ağları ile hayvansal sinir sisteminin işleyişi çeşitli hesaplamalarda kullanılabilir hale gelmiştir, bu sayede çözülebilir problem sayısı artmıştır. Chua ve Yang tarafından özel bir sinir ağı modeli olan hücresel yapay sinir ağları ortaya konmuştur. Hücresel yapay sinir ağlarının temeli yapay sinir ağlarına ve hücresel otomatlara dayanmaktadır. Görüntü işleme ve işaret üretimi gibi alanlarda kullanılmaktadır. Hücresel yapay sinir ağlarının ilk gerçeklemeleri analog ve sayısal melez olarak yapılmıştır. Analog gerçeklemelerin esneklik ve prototipleme dezavantajları görülüp ayrık zamanlı hücresel yapay sinir ağı modeli ortaya atılmış ve sayısal ortama geçişin başlangıcı olmuştur. Daha sonraları sayısal devre tasarımları yapılmıştır. Bu tasarımların da eksiklikleri ve dezavantajları vardır, bu yüzden yeni çözümler araştırılmaktadır. Çok çekirdekli işlemciler ya da grafik işlemcileri paralel işlemleri yapmakta kullanılmaktadırlar; ancak taşınabilir değillerdir. Yine de IBM Cell, NVidia Cuda ve Intel Xeon gibi işlemciler ile hücresel yapay sinir ağı modellemeleri ve simülasyonları yapılabilmektedir. Güç tüketimi düşük ve sistem tasarımı için gerekli olan boyutları küçük yani taşınabilir olan sayısal işaret işlemcilerinin ya da mikroişlemcilerin ise işlem kabiliyetleri çok kısıtlı kalmaktadır. Bu yüzden alanda programlanabilir kapı dizileri -İngilizce kısaltması FPGA- ile birçok hücresel yapay sinir ağları emülasyon işlemcisi gerçeklemesi yapılmıştır; ancak şablon öğrenmesi ile beraber yapılan bir gerçekleme yoktur. Bu çalışmada şablon öğrenmesi yapabilen sayısal bir hücresel yapay sinir ağı emülasyon işlemcisi tasarlanmıştır. İşlemci; denetleme birimi ve hesaplama birimi olmak üzere iki parçadan oluşmaktadır ve 100 MHz frekansta 1 W güç tüketimiyle 41.5 santigrad derece sıcaklıkta çalışmaktadır. Spartan 6 içeren Digilent Atlys geliştirme kartı üzerinde VHDL kullanılarak tasarlanmıştır. Denetleme birimi; bilgisayar ya da ağ ile bağlantıyı kuracak kısımlar, Microblaze mikroişlemci, rastgele sayı üreteci ve yapılandırma birimi bulunmaktadır. Microblaze mikroişlemcisi rastgele erişimli bellek, ethernet, UART ve flash hafızayı denetlemektedir. Rastgele sayı üreteci, öğrenme metodlarının içinde kullanılmaktadır. Microblaze mikroişlemcisi hücresel yapay sinir ağı emülasyon işlemcisini yapılandırma birimini kullanarak denetlemektedir. Hesaplama birimi ise; aritmetik birim, önbellek ve sonlu durum makinesi yer almaktadır. Sonlu durum makinesi aritmetik birim, önbellek yazma-okuma ve iterasyon denetimini azami paralellikte yapmaktadır. Sonlu durum makinesi hücresel yapay sinir ağı emülasyon işlemcisinin denetim birimidir. Hesaplama birimi parametrik olarak tasarlandığından farklı FPGA'lerde farklı yapılandırma ayarlarıyla tekrar gerçeklenebilir. Yapılandırılabilen özellikler; şablon boyutu, önbellek boyutu ve veri yolu genişliğidir; kullanılan yapılandırma özellikleri ise 3x3 şablon, 128$\times$128 önbellek ve 16 bit veri yoludur, ki bu özellikler Digilent Atlys için azami özelliklerdir. Hücresel yapay sinir ağı emülasyon işlemcisi bir durum pikselini 3x3'lük bir şablonla önbellekten okuma, önbelleğe yazma dahil 5 saat darbesinde hesaplayabilmektedir. Toplam hesaplama süresi görüntü boyutuna, algoritmaya, DDR2 belleğe, Microblaze mikroişlemciye ve ağ bağlantısına bağlı olarak değişmektedir. Seviye 1 önbellek FIFO olarak tasarlanmıştır, böylece seviye 2 önbellekten veri okuma hızlanmıştır. Seviye 2 önbelleğin amacı da DDR2 rastgele erişimli belleğin oluşturduğu hız dezavantajını azaltmaktır. Ethernet bağlantısı ise görüntü alma hızını arttırmaktadır. UART bağlantısı ile de hata ayıklama yapılmaktadır. İşlemci Digilent Atlys geliştirme kartı üzerinde başarıyla çalıştırılmıştır. Digilent Atlys üzerindeki; Xilinx Spartan 6 XC6SLX45-3CSG324C FPGA, 128 MB 600 MHz DDR2 rastgele erişimli bellek, 16 MByte QSPI flash hafıza, 100 Mbits ethernet ve 1 Mbit UART bağlantıları kullanılmıştır. Tüm bu fonksiyonları sayesinde hücresel yapay sinir ağı emülasyon işlemcisi üzerinde çeşitli hücresel yapay sinir ağı ve şablon öğrenme algoritmaları gerçeklenebilmektedir. Geri yayılımlı şablon öğrenme ve çok şablonlu seri hücresel yapay sinir ağı işlemleri başarıyla gerçeklenmiştir. Intel i7 4790 ile MATLAB üzerinde yapılan hücresel yapay sinir ağı simülasyonuyla FPGA üzerindeki gerçeklemenin sonuçları birbirine çok yakın çıkmaktadır, hız konusunda da yeterli seviyededir.