شبکه عصبی اسپایکی

شبکه‌های عصبی اسپایکی ()، شبکه‌های عصبی مصنوعی هستند که به‌طور دقیق تری از شبکه‌های عصبی زیستی الهام می‌گیرند.Maass, Wolfgang (1997). "Networks of spiking neurons: The third generation of neural network models". Neural Networks. 10 (9): 1659–1671. در شبکه‌های عصبی اسپایکی علاوه بر متغیرهای حالت نورونی و سیناپسی، مفهوم زمان نیز در مدل در نظر گرفته می‌شود. در شبکه‌های عصبی معمولی (مانند شبکه‌های پرسپترونی چند لایه)، خروجی هر نورون در هر تکرار محاسبه و به روز رسانی می‌شود، اما در شبکه‌های عصبی اسپایکی، هر نورون تنها زمانی اسپایک تولید می‌کند که پتانسیل غشای آن از یک حد آستانه بیشتر شده باشد. اندازه پتانسیل غشا توسط غلظتهای یونی دو طرف غشای سلولی تعیین می‌شود. در شبکه‌های عصبی زیستی، نورون تحریک پذیر با تولید اسپایک، سیگنالی را تولید می‌کند که اطلاعات را به سایر نورونها منتقل می‌نماید. پتانسیل غشای نورونهای گیرنده با توجه به نوع این سیگنال، افزایش یا کاهش می‌یابد.

نورون‌ها در این شبکه‌های عصبی توسط معادلات دیفرانسیل جریانی یا ولتاژی مدل می‌شوند. در مدل جریانی، اندازهٔ جریان به عنوان متغیر حالت مدل نورون در نظر گرفته می‌شود. با دریافت هر اسپایک یا سطح این جریان افزایش می‌یابد و نورون دریافت کننده در نهایت یک اسپایک تولید می‌کند یا اینکه جریان دریافتی مکانیسم‌های کاهش جریان را درنورون دریافت کننده فعال نموده و سبب مهار آن می‌شود. اسپایک‌ها به صورت قطارهای اسپایکی (متغیر گسسته در زمان) تولید و منتشر می‌شوند و برای تبدیل آنها به متغیر پیوسته در زمان، روش‌های کدگذاری متنوعی وجود دارد. محاسبه فرکانس اسپایک‌ها یا فاصلهٔ زمانی بین دو اسپایک متوالی از روشهایی هستند که برای این منظور به کار گرفته می‌شوند.

 تاریخچه 
ساختار شبکه‌های عصبی مصنوعی معمولاً به گونه ای طراحی می‌شود که تمامی نورونها به یکدیگر متصل هستند و یک شبکه fully connected را ایجاد می‌کنند. این نورونها از تمامی نورونهای لایهٔ قبل ورودی گرفته و خروجی خود را به تمامی نورونهای لایهٔ بعد ارسال می‌کنند. اگرچه این شبکه‌ها کاربردهای یادگیری ماشین در زمینه‌های مختلف را به طرز چشمگیری دگرگون نموده و منجر به نتایج فوق‌العاده ای شده‌اند، مکانیسم یادگیری و انتشار اطلاعات در آنها دقیقاً منطبق با مکانیسم‌های شناخته شده در شبکه‌های عصبی زیستی نیستند.

اولین مدل محاسباتی نورونهای اسپایکی توسط هاجکین و هاکسلی در سال ۱۹۵۲ ارایه شد. این مدل با در نظر گرفتن کانالهای سدیمی و پتاسیمی روی غشای سلول، نشان می‌دهد که پتانسیل عمل چگونه ایجاد شده، در طول سلول منتشر می‌شود وهمچنین به سلولهای مجاور منتقل می‌گردد. در این مدل، نورونها اسپایک تولید نمی‌کنند و پیام خود را از طریق تغییر غلظت مواد شیمیایی موجود در فاصلهٔ بین دو نورون که نوروترنزمیتر نامیده می‌شوند به یکدیگر منتقل می‌کنند. پس از معرفی این مدل، مدل‌های پیچیده تری که متغیرهای حالت بیشتری را در نظر می‌گیرند معرفی شده‌اند که هر یک جنبه ای از تولید و انتشار اسپایک در نورون‌ها را بازنمایی می‌کنند. مدلهای integrate-and-fire, FitzHugh–Nagumo، و Hindmarsh–Rose مثالهایی از این مدل‌های زیستی هستند.

شبکه‌های عصبی اسپایکی علاوه بر شبیه‌سازی نرم‌افزاری، روی سخت‌افزارها نیز پیاده‌سازی می‌شوند و شاخه ای از تکنولوژی که به دنبال طراحی و پیاده‌سازی سخت‌افزاری شبکه‌های عصبی اسپایکی است با عنوان مهندسی نورومورفیک شناخته می‌شود. BrainChip اولین تراشه تجاری است که یه سیستم مبتنی بر شبکه‌های عصبی اسپایکی بر روی آن پیاده‌سازی شده‌است.

 کاربردها 
شبکه‌های عصبی اسپایکی معمولاً در کاربردهایی مورد استفاده قرار می‌گیرند که پیش از این شبکه‌های عصبی غیر اسپایکی به کار گرفته شده‌اند.Alnajjar, F. ; Murase, K. (2008). "A simple Aplysia-like spiking neural network to generate adaptive behavior in autonomous robots". Adaptive Behavior. 14 (5): 306–324. علاوه بر این کابردهای مربوط به یادگیری ماشین، شبکه‌های عصبی اسپایکی در مدلسازی سیستم عصبی مرکزی ارگانیسم‌های زیستی، مانند سیستم جستجوی غذا در حشرات بدون دانش اولیه نسبت به محیط،X Zhang; Z Xu; C Henriquez; S Ferrari (Dec 2013). Spike-based indirect training of a spiking neural network-controlled virtual insect. IEEE Decision and Control. pp. 6798–6805 نیز کاربرد دارند. به دلیل مشابهت نسبی آنها با شبکه‌های عصبی زیستی، از شبکه‌های عصبی اسپایکی برای مطالعهٔ مدارهای نورونی زیستی نیز استفاده می‌شود. در این کاربردها ابتدا فرضیه ای درمورد ارتباط توپولوژی مدارهای نورونی زیستی با عملکرد (function) این مدارها (شبکه‌ها) مطرح می‌گردد، سپس، این مدل محاسباتی شبیه‌سازی شده و فعالیت نورون‌ها (و یا سایر متغیرهای حالت) در مدت زمان اجرا ثبت می‌شوند. سیگنال‌های ثبت شده در نهایت با سیگنال‌های ثبت شده از سیستم زنده مقایسه می‌شوند و فرضیه ابتدایی تأیید یا رد می‌گردد.

شبکه‌های عصبی اسپایکی بیشتر از اینکه کاربردهای مهندسی داشته باشند در نوروساینس مورد استفاده قرار میگرند. در کاربردهای مهندسی معمولاً شبکه ای تصادفی با تعداد بسیار زیادی از نورون‌ها طراحی می‌شود و قطارهای اسپایکی ثبت شده از نورون‌های این شبکه، با میانگین‌گیری زمانی (-مکانی) به کمیت‌های عددی پیوسته تبدیل شده و برای تعلیم وزنهای یک لایهٔ خروجی خطی مورد استفاده قرار می‌گیرند. این ساختار و روش تعلیم شبکه‌های عصبی بازگشتی با عنوان | Reservoir Computing شناخته می‌شود. این شبکه ها که معمولا با عنوان مخازن حالت مایع (Liquid State Machine) شناخته می‌شوند متشکل از یک لایه‌ی ورودی، یک لایه‌ی بازگشتی و یک لایه‌ی خروجی هستند. لایه‌ی ورودی، اطلاعات دریافتی را به قطارهای اسپایکی تبدیل نموده و به لایه‌ی بازگشتی ارسال میکند. لایه‌ی بازگشتی در پاسخ به این ورودی متغیر با زمان، مانند یک سیستم دینامیک غیرخطی ثابت عمل کرده و دینامیک ورودی را در یک فضای با بعد بالاتر بازنمایی میکند. لایه‌ی خروجی که معمولا یک یادگیرنده‌ی خطی است، از این بازنمایی در بعد بالا برای حل مساله استفاده می‌کند. این مدل ها که فقط لایه‌ی خروج در آنها آموزش می‌بیند برای پردازش داده‌های زمانی ساده و یا برای بررسی تاثیر ساختار و ویژگی‌های نورونی و سیناپسی در لایه‌ی میانی بر توانایی شبکه در حل مساله مورد استفاده قرار می‌گیرند. علاوه بر این روش، روش‌های یادگیری مبتنی بر گرادیان در شبکه های اسپایکی، به‌ویژه با الهام از شبکه‌های عصبی عمیق، معرفی شده‌اند که امکان آموزش سرتاسری شبکه‌های اسپایکی را فراهم کرده است. در این روش‌ها همه‌ی وزن‌های داخلی نورون‌ها و سیناپس‌ها بهینه می‌شوند، در نتیجه، دقت شبکه‌های اسپایکی در مسائل بینایی و گفتار بهبود یافته‌است. 

 شبیه‌سازی نرم‌افزاری 
برای شبیه‌سازی شبکه‌های عصبی اسپایکی روی کامپیوترهای دیجیتال، نرم‌افزارهای و ابزارهای متنوعی توسعه داده شده‌اند. از میان کتابخانه‌ها و نرم‌افزارهای موجود می‌توان به برايان (Brian)، نست (NEST)، نورون (NEURON) و snnTorch اشاره کرد که برای شبیه‌سازی شبکه‌های عصبی اسپایکی و مدل‌سازی نورون‌های زیستی به‌کار می‌روند. این کتابخانه‌ها با اهداف متفاوتی طراحی شده‌اند؛ به‌طور کلی، برايان (Brian) برای شبیه‌سازی شبکه‌های عصبی اسپایکی در مقیاس کوچک و آموزش آسان مناسب است، نست (NEST) برای شبیه‌سازی شبکه‌های بزرگ با نورون‌های ساده بهینه‌سازی شده است، نورون (NEURON) بیشتر در مدل‌سازی دقیق نورون‌های زیستی و مدارهای عصبی واقعی کاربرد دارد و snnTorch برای پیاده‌سازی شبکه‌های عصبی اسپایکی در چارچوب یادگیری عمیق و آموزش مبتنی بر گرادیان طراحی شده است.

 پیاده‌سازی روی سخت‌افزار 
تلاش‌ها برای پیاده‌سازی سخت‌افزاری شبکه‌های عصبی اسپایکی (SNN) از دهه ۱۹۸۰ آغاز شد ، زمانی که دانشمندان به دنبال توسعه سامانه‌های نورومورفیک الهام‌گرفته از مغز بودند. در طول دهه‌های بعد، با پیشرفت فناوری‌های نیمه‌هادی، پروژه‌های متعددی شکل گرفتند. از جمله می‌توان به SpiNNaker (دانشگاه منچستر) اشاره کرد که میلیون‌ها هسته پردازشی را برای شبیه‌سازی گسترده نورون‌های اسپایکی به‌کار می‌گیرد. TrueNorth (IBM) نیز یکی از نخستین تراشه‌های نورومورفیک تجاری است که برای پردازش موازی و کم‌مصرف طراحی شده است. همچنین پروژه Loihi (اینتل) با تمرکز بر یادگیری آنلاین و انعطاف‌پذیری در مدل‌های نورومورفیک شناخته می‌شود. در سطح تحقیقاتی، سامانه‌هایی مانند BrainScaleS در اروپا از ترکیب مدارات آنالوگ و دیجیتال برای شتاب‌دهی شبیه‌سازی‌ها بهره می‌برند. Neurogrid (دانشگاه استنفورد) نیز با هدف شبیه‌سازی کارآمد نورون‌ها و سیناپس‌های زیستی توسعه یافته است. همچنین DYNAP-SE (iniLabs)  به‌عنوان یک تراشه نورومورفیک کم‌مصرف برای پردازش رویدادمحور به‌ویژه در کاربردهای رباتیک و اینترنت اشیا طراحی شده است. علاوه بر این، توسعه سخت‌افزارهای مبتنی بر ممریستور و فناوری‌های emerging memory، امیدبخش پیاده‌سازی شبکه‌های عصبی اسپایکی با مصرف انرژی بسیار پایین و سازگاری بیشتر با مدل‌های زیستی است.
رده:آمار محاسباتی
رده:شبکه‌های عصبی مصنوعی
رده:علوم محاسباتی اعصاب
رده:ویکی‌سازی رباتیک
رده:معماری شبکه‌های عصبی