Type Here to Get Search Results !

Spiking Neural Networks

 

Spiking Neural Networks






Günümüzde kullanılan sinir aÄŸlarının 3 nesli bulunuyor. Bu nesillerden ilki (Perceptron), eÄŸitilebilecek tek bir yapay sinir hücresinden oluÅŸan Perceptron adı verilen yapılardır. Perceptron sistemde bulunan nöronların 0 veya 1 gibi sonucu belirli bir eÅŸik deÄŸerini (threshold) geçmesiyle elde edilen sonuçlardır. Ä°kinci nesil (ANN) sinir aÄŸları ise günümüzde aktif bir ÅŸekilde kullanılmaya devam eden, Artificial Neural Networks (ANN) olarak bilinen yapılardır. Üçüncü nesil (SNN) yapay sinir aÄŸları ise insan beynini çalışma prensiplerini tam olarak taklit etmeye çalışan ve spike’lar ile iletiÅŸim kuran Spiking Neural Networks yapısıdır.

YSA (Yapay Sinir Ağları)

Beyin, insan vücudunun en temel parçalarından biridir. Beyin bir nörondan aldığı sinyal girdisini iÅŸler ve bu sinyalin deÄŸerlendirilmesi ile biyolojik bir süreç sonrasında çıktı sinyali üretir. YSA’lar da insanların biyolojik nöral ağını taklit etmeyi amaçlar. YSA, nöronları taklit eden yapay nöronlardan ve bu nöronların baÄŸlantısındaki ara baÄŸlantıların katsayılarından (ağırlıklardan) oluÅŸur. Bir YSA’nın bilgisi, sinaptik ağırlıklar olarak bilinen nöronlar arası baÄŸlantının güçleri içinde depolanır.

Temel anlamda yapay sinir ağları 3 kısımdan oluşur bu kısımlar:

Girdi Kısmı ( Input Layer ) : Bilgiler alınıp gizli katmana iletilir.

Gizli Kısmı ( Hidden Layer ) : Girdi kısmından alınan bilgi iÅŸlenir. Gizli katmanın sayısı istenilen problemin çözümüne göre deÄŸiÅŸiklik gösterebilir.

Çıktı Kısmı ( Output Layer ) : Gizli katmandan gelen bilgileri iÅŸleyerek sonuç üretir.[1]

Yapay Sinir Ağları [2]

Yapay Sinir Ağları lineer bir katmanlı yapısı bulunan, bir katmandan alınan sonucun diğer bir katman için girdi olarak kullanıldığı ve sonuçların hesaplanması aşamasında büyük vektör çarpımlarının gerçekleştiği bir alandır. Günümüzde Yapay Zeka problemlerinin çözümünde ağırlıklı bir şekilde kullanılmaktadır.

Bu kısma kadar 1. ve 2. nesil sinir aÄŸlarından bahsetmiÅŸtik. Åžimdi ise 3. nesil sinir aÄŸları olarak da bilinen Spiking Neural Network’lerden (SNN) bahsedeceÄŸiz.

SNN (Spiking Neural Networks)

Spiking sinir aÄŸları (SNN) ilk olarak hesaplamalı nörobilimde biyolojik nöronların davranışını modelleme giriÅŸimi olarak ortaya çıkmıştır. Bu durum, sinirsel aktiviteyi alınan ani voltajların ve çevreye zayıf dağılımın (sızıntının) entegrasyonu olarak tanımlayan Leaky-Integrate-and-Fire (LIF) modelinin oluÅŸturulması ile sonuçlanmıştır.

SNN’lerin genel bir lineer yapısı bulunmamaktadır. Bu anlamda bir girdi katmanı ve çıktı katmanı dışında belirli bir baÅŸka katmanı yoktur. Düzgün katmanlar yerine, döngüler veya çok yönlü baÄŸlantılar gibi nöronlar arasında veri iletmek için daha karmaşık yapılara sahiptirler. Daha karmaşık oldukları için farklı türde eÄŸitim ve öğrenme algoritmaları gerektirirler. Spike davranışına uyum saÄŸlamak için geri yayılım (backpropagation) benzeri yaklaşımlarda deÄŸiÅŸiklik yapmak gerekmektedir.[3]

Toplanan veriler aynı zamanda gelmiyor ise yani belirli bir zaman aralığı içerisinde aÅŸama aÅŸama gelen bir veri söz konusu olduÄŸunda YSA’nın yetersiz kaldığı durumlar ortaya çıkmaktadır. Bir örnek verecek olursak gün içerisinde bir güvenlik ağına gelen eriÅŸimlerden alınan veriden, bu aÄŸa yapılan herhangi bir saldırının veya bir anormalliÄŸin tespiti durumunda zaman içinde akan bir veri geleceÄŸinden, bize herhangi bir zamandaki veriyi alıp o zamana göre bir çıktı üretebilecek yapılar gerekmektedir. SNN’ler bu aÅŸamada devreye girer.

SNN’ler ilk dönemlerde sinir bilim alanında, nöronlarımızın iÅŸleyiÅŸini taklit etme amacıyla ortaya atılmıştır. Bu yapılar belirli zamanlarda ayrık bir olay ÅŸeklinde oluÅŸan spike’lar kullanarak haberleÅŸirler. Spike oluÅŸumu diferansiyel fonksiyonlar ile belirlenir. SNN içinde bulunan her nöron her döngüde ateÅŸlenmez, her girdi için bir ağırlık deÄŸeri hesaplanır. Bu ağırlıklandırılmış girdi deÄŸerlerinin toplamı membrane potential olarak bilinir. Membrane potential kullanıcı tarafından belirlenmiÅŸ olan bir eÅŸik deÄŸerine (threshold) ulaÅŸamadığında ateÅŸlenme iÅŸlemi gerçekleÅŸtirilmez. EÅŸik deÄŸerinden büyük ya da eÅŸit ise ateÅŸlenme iÅŸlemi gerçekleÅŸtirilir ve çıktı deÄŸeri üretilir. SNN, özellikle canlı veri akışlarından (time- related) zamanla ilgili verilerle uÄŸraÅŸtığınız zamanlar için özel olarak tasarlanmıştır.

LIF modelinde membrane potansiyeli için diferansiyel denklem.

Eğitim Aşaması

SNN eğitim aşamasında ateşlenen nöronların alanın daha çok genişlemesi, ateşlenmeyen nöronların ise baskılanması üzerine bir mantık kuruludur.

Bu sistemlerdeki nöronlar belirli bir sınıra gelene kadar ateÅŸlenmez, bu sınır Spike-Time Dependent Plasticity(STDP) algoritması kullanılarak hesaplanır ve ateÅŸlenir.

STDP beynin sinapsları modifiye ederken kullandığı biyolojik süreçtir. Bu süreçte temel 2 kural bulunur.

Ateşlenmeye katkı veren sinapsların güçlendirilmesi (ağırlığının arttırılması)

Ateşlenmeye katkı vermeyen sinapsların zayıflaması (ağırlığının azaltılması)

işlemine dayanır.

Peki bu STDP algoritması kullanılacak donanıma nasıl uyarlanıyor ?

Memristör

Kayıp devre elemanı olarak da bilinen memristörler akıma göre dirençleri değişen bir çeşit dirençtirler diyebiliriz. Çalışma mantıkları şöyledir: Memristörün manteyik akı ile yük arasında kurulan ilişki, içinden geçen yük miktarına bağlı olarak değeri değişen bir direnç gibi davranacağını söyler. Ancak memristörün daha önemli özelliği, akım geçip gittikten ve bittikten sonra dahi bu değeri aklında tutabilmesidir. Sonuç olarak, akımın geldiği yönden direncin azaldığı, akımın geçtiği yönün tersine ise direncin arttığı bir yapıdır.

Memristör fikrini ilk kez 1971′de California Ãœniversitesi’nden Elektrik Mühendisi Leon Chua ortaya atmıştı. Ancak dönemin koÅŸullarında memristör fikri hayalden öteye gidememiÅŸti. 2008 de ise Hp çalışanları tarafından memristörün geliÅŸtirilmesi onu gündeme taşımıştır.

STDP ile Memristörün Kullanımı

Ä°letkenliÄŸin (ağırlık) deÄŸiÅŸimi, memristörlere uygulanan sadece bir voltaj darbesi ile ilgilidir. Sinapsların bir baÅŸka plastisitesi ise spike‐timing‐dependent plasticity (STDP). STDP, sinaps öncesi ve sonrası nöronların aktivitelerine dayalı olarak sinaps ağırlığını modüle eder. Hem prenöron hem de postnörondan gelen sivri uçlar bazen ters yönde sinapsa ulaşır.

STDP’de, sinaptik ağırlığın deÄŸiÅŸimi, göreceli nöron spike zamanlamasının iÅŸlevidir.

Δt (Δt = tpre − tpost) [4]

Burada tpre, presinaptik nöron artışının geldiği zamandır ve tpost, postsinaptik nöron artışının geldiği zamandır. Tipik bir STDP davranışında, eğer postsinaptik nöron artışı, presinaptik nöron artışından sonra gelirse (Δt < 0) Sinaptik ağırlık artar. Postsinaptik nöron artışı, presinaptik nöron çıkışından (Δt > 0) önce gelirse, sinaptik ağırlık azalır.[4]

Memristöre dayalı elektronik sinapsta, iki elektrot aracılığıyla memristöre voltaj yükselmeleri veya darbeler uygulanır, bu, memristörün iletkenliğini modüle eder ve iletkenlik değişikliği, voltaj yükselmelerinin veya darbelerinin göreceli zamanlaması ile ilgilidir.

Memristörler, biyolojik sinaptik sistemlere benzer STDP işlevini gerçekleştirebilir.

SNN Avantajları

Enerji VerimliliÄŸi : SNN’ler belirli zamanlarda spike ÅŸeklinde haberleÅŸtiÄŸinden ve devamlı bir haberleÅŸme yapısı olmadığından enerji konusunda daha verimlidir.

Alan VerimliliÄŸi : SNN’ler ANN için kullanılan büyük vektör çarpımlarını içermediÄŸinden alan bakımından daha verimlidir.

Hata Toleransı : OluÅŸan hataların öğrenilmesi ile her nöronun ağırlığı deÄŸiÅŸtiÄŸinden daha dinamik bir hata yakalama mekanizması bulunur.

Åžimdi ise SNN’in farklı bir türü olan ve gözetimli (supervised) ve gözetimsiz (unsupervised) algoritmalar kullanarak çalışan, enerji ve alan bakımından SNN’e kıyasla daha verimli olan OeSNN yapısından bahsedeceÄŸiz.

Online Evolving Spiking Neural Network

Online Evolving Spiking Neural Networks akan bir veride günümüz problemlerinin çözümlerinde kullanılır.

OeSNN’lerin temel farkı girdi ve çıktı katmanları içerseler de OeSNN’lerde bu katmanlarda bulunan nöronların sayısı sınırlıdır. OeSNN mimarisinin girdi katmanı GRF (Gaussian Receptive Fields) ve girdi nöronlarından oluÅŸur. GRF’in amacı girdi deÄŸerlerinin ateÅŸleme zamanını ve ateÅŸleme sırasını kodlamaktır. Girdi nöronlarının ateÅŸleme sırası daha sonrasında sinapsların ağırlıklarını ilklendirmede kullanılır. Bu deÄŸerler girdi verisinin sınıflandırılması için kullanılacaktır.

Sisteme her gelen bir girdi için aday çıktı nöronu üretilir. Bu aday nöron eğer sistemde bulunan başka bir çıktı nöronuna benziyorsa bu nöron ile birleştirilir. Aday çıktı nöronu var olan çıktı nöronlara benzemiyorsa bu durumda sisteme yeni bir çıktı nöronu olarak eklenebilir.

Sisteme çıktı nöronu ekleme işlemi ancak sistemin maksimum çıktı nöronu sayısına ulaşılmamışsa gerçekleştirilir. Sistemde daha çok ateşleme gerçekleştirilen nöronların alanı artar. Bu işlem üretilen aday çıktı nöronlarının sistemde bulunan benzer nöronlar ile birleştirilmesi olarak da değerlendirilebilir. Bir çıktı nöronu daha önce alınan girdiler ile ne kadar fazla birleştirme işlemi gerçekleştirmiş ise o nöronun önemi daha çok artacaktır.[5]

OeSNN’deki nöron sayısı üzerindeki sınırlamaya, genellikle çok sayıda girdi verisinin iÅŸlendiÄŸi ve katı bellek gereksinimlerinin mevcut olduÄŸu veri akışı deÄŸerlerinin sınıflandırılması gereksinimleri sebep olmuÅŸtur.

OeSNN mimarisi [5]
Excitation function (AteÅŸleme Fonksiyonu) [5]

Excitation function (AteÅŸleme Fonksiyonu) sistemde x olarak belirtilen bir zaman akışlı veride gelen en son verinin daha önceki verilerle olan iliÅŸkinin ortalama ve standart sapma kullanılarak hesaplanması iÅŸlemi olarak bilinir. Bu iÅŸlemin sonucunda girdilerin ateÅŸleme zamanlaması ve ateÅŸleme sırası belirlenir.

j-th GRF’s mean (j’inci GRF’in ortalaması) [5]

Ortalama değerinin hesaplanması için I^Wmax ve I^Wmin değerleri yani girdi olarak alınabilecek maksimum ve minimum değerler ve NIsize: Maksimum girdi nöronu sayısı değerleri kullanarak hesaplanır.

Ağırlıkların tekrar hesaplanması [5]

Ateşlemeler sonrasında daha çok kullanılan nöronların ağırlıklarının güncellenmesi işleminde Wnjni parametresi sinapslar arası ağırlığı temsil eder. Mni değeri ise oluşan her bir aday çıktı nöronun sistemde bulunan başka bir çıktı nöronuna benzediği için birleştirilme işlemi sonrasında arttırılan bir counter (sayıcı) parametresidir.

Sonuç olarak her bir çıktı nöronu benzer bir aday nöron ile birleştirildiğinde Mni değeri arttırılır ve bu durum nöronlar arası sinapsların ağırlıklarının Mni değeri ile orantılı olarak artmasına yol açar.

Uygulama Alanları

SNN’lerin potansiyel uygulamaları çok fazladır, çünkü zamanla iliÅŸkili olan her ÅŸey için kullanılabilirler. Örneklendirmek gerekirse:

Otonom Robot Navigasyonu: Robot, çevresiyle ilgili (engellerin ne kadar uzakta olduÄŸunu söyleyen) canlı LIDAR girdilerini alır ve amacı, engellerden kaçınarak ve nerede olduÄŸunu hatırlayarak çevreyi olabildiÄŸince keÅŸfetmektir.

Bir ağdaki noktalar arasındaki en kısa yolları hesaplama: Bu uygulamada, grafik ağları (geleneksel olarak yönlendirme algoritmaları için kullanılır), uzaydaki noktalar nöronlara, mesafeler ise belirli bir sinaps ile ilişkili gecikmelere dönüştürülür. [3]

Salgının yayılmasını modellemek: Burada nöronlar bir popülasyondaki bireylerdir, sinapslar paylaşılan sosyal bağlantılardır, sivri uçlar enfeksiyonun bulaşmasıdır ve parametreler farklı koşulların modellenmesine izin verir. Günümüz koşullarından dolayı, bu şu anda özellikle umut verici bir araştırma alanıdır. [3]

Zorluklar

  • Ä°mplemente etme iÅŸlemleri ANN’lere göre daha zordur.
  • Spike/activation algoritmaları ile yaygın olarak bilinen eÄŸitim aÅŸamaları yapılıyor olsa bile bu durum bilinen ANN’lerden ne kadar farklı olduklarının sorgulanmasına yol açmıştır.
  • Alınan sonuçlar ANN’e kıyasla yeterli performansı gösteremiyor.
  • Programlamada kullanılan yapılar daha çok yeni ve baÅŸlangıç dönemlerindeler.
  • Åžifreleme ve öğrenme teknikleri üzerine daha fazla çalışma yapılması gerekiyor.
  • Zaman deÄŸiÅŸkeninin eklenmesi SNN nöron modellerini YSA modellerinden daha karmaşık hale getirir. Ayrıca, YSA’nın hesaplanması zamanın örneklenmesiyle oluÅŸturulduÄŸundan, her örnekleme zamanında, algoritmik hesaplama, verilerin getirilmesi ve ara deÄŸiÅŸkenlerin depolanmasıyla zamanla çoÄŸullanabilen mevcut donanım kaynakları kullanılarak gerçekleÅŸtirilir. Bununla birlikte, SNN’de ani artışlar, çoÄŸullanamayan paralel donanım kaynakları gerektiren gerçek zamanlı olarak oluÅŸturuldukları gibi iÅŸlenmelidir. Bu iÅŸlem, sistemin ölçeÄŸinin büyütülmesi, donanım kaynaklarının modüler olarak geniÅŸletilmesiyle yapılabilir. [6]

ANN ve SNN’in KarşılaÅŸtırılması

AÅŸağıda bulunan tablo ANN’ler ve SNN’ler arasındaki Veri Ä°ÅŸleme, Gecikme, Nöral Model Karmaşıklığı ve Güç Tüketimi gibi temel ayırt edici özelliklerin bir karşılaÅŸtırmasını içerir.

ANN’lerin ve SNN’lerin farklı özelliklerini karşılaÅŸtıran tablo [6]

Referans

[1]https://ift.tt/3je9JCz

[2]

[3]https://ift.tt/3gzm4zB

[4]https://ift.tt/2WnOt4Q

[5]Piotr S. MaciÄ…g, Marzena Kryszkiewicz, Robert Bembenik, Jesus L. Lobo, Javier Del Ser, Unsupervised Anomaly Detection in Stream Data with Online Evolving Spiking Neural Networks, Neural Networks,Volume 139, 2021, Pages 118–139, ISSN 0893–6080.

[6]https://ift.tt/3kl6PLT

[7]https://ift.tt/3DdXCgW

[8]https://ift.tt/2UTIuSa

[9]https://ift.tt/38d3Tes

Co-author : 



    from CRYPTTECH BLOG https://ift.tt/3DdXFJE
    via IFTTT

    Post a Comment

    0 Comments
    * Please Don't Spam Here. All the Comments are Reviewed by Admin.