Spiking Neural Network
تنقل الشبكة العصبية النبضية (SNN) المعلومات على هيئة نبضات مؤقتة، مثل العصبونات البيولوجية، لتوفير ذكاء اصطناعي عصبي الشكل منخفض الطاقة. يتناول الشرح العصبونات والتدريب.
الشبكة العصبية النبضية (SNN) هي شبكة عصبية تتواصل فيها العصبونات عبر أحداث متقطعة من نوع الكل أو لا شيء تُسمى نبضات، وهي أقرب إلى طريقة إرسال العصبونات البيولوجية للإشارات. يراكم كل عصبون النبضات الواردة في جهد غشائي داخلي يتلاشى ببطء، ولا يطلق نبضة من تلقاء نفسه إلا عندما يتجاوز ذلك الجهد عتبةً معينة. تكمن المعلومات في العصبونات التي تطلق النبضات وتوقيت إطلاقها، لذا تعالج شبكات SNN البيانات عند ورودها بمرور الوقت، ولا تنفّذ العمل إلا عند حدوث النبضات. وتجعلها هذه الندرة القائمة على الأحداث خيارًا جذابًا لـالذكاء الاصطناعي الطرفي منخفض الطاقة على الرقائق العصبية الشكل، كما تلائم كاميرات الأحداث طبيعيًا، إذ ترصد هي الأخرى التغيّرات على شكل أحداث غير متزامنة. وقد وصف فولفغانغ ماس شبكات SNN في عام 1997 بأنها الجيل الثالث من نماذج الشبكات العصبية، بعد وحدات العتبة والشبكات ذات التفعيلات المستمرة.
آلية عمل العصبونات النبضية#
النموذج الأكثر استخدامًا هو عصبون التكامل والتفريغ المتسرب (LIF). في كل خطوة زمنية، يتحلل جهده الغشائي بنسبة ثابتة، وتُضاف إليه نبضات الإدخال الموزونة، وإذا بلغ الجهد العتبة، يصدر العصبون نبضة ويُعاد ضبطه. ولا يبلغ العصبون ذو الإدخال الضعيف العتبة أبدًا، بينما يطلق العصبون ذو الإدخال القوي النبضات بوتيرة عالية، لذا يرمّز تردد الإطلاق قوة الإدخال. وتحفّز المحاكاة أدناه ثلاثة عصبونات LIF بتيارات إدخال ثابتة مختلفة:
import torch
# Three leaky integrate-and-fire neurons, each driven by a constant input current
current = torch.tensor([0.15, 0.3, 0.6])
decay, threshold = 0.8, 1.0 # fraction of potential kept per step, firing threshold
potential = torch.zeros(3)
spike_counts = torch.zeros(3)
for step in range(20):
potential = decay * potential + current # leak, then integrate the input
spikes = (potential >= threshold).float() # fire where the threshold is crossed
potential = potential * (1 - spikes) # reset neurons that fired
spike_counts += spikes
print(f"Spikes in 20 steps: {spike_counts.tolist()}")يطبع هذا Spikes in 20 steps: [0.0, 4.0, 10.0]. عند إدخال قيمته 0.15، يستقر الجهد عند 0.15 / (1 − 0.8) = 0.75، أي دون العتبة، ولذلك لا يطلق ذلك العصبون أي نبضة. وينتج عن إدخال قيمته 0.3 أربع نبضات، بينما يتجاوز إدخال قيمته 0.6 العتبة كل خطوتين، منتجًا 10 نبضات. وتوفر مكتبات مثل snnTorch طبقات LIF كهذه على شكل وحدات PyTorch تتدرب على وحدات GPU.
ترميز المعلومات في النبضات#
يجب تحويل البيانات إلى نبضات قبل أن تتمكن شبكة SNN من استخدامها، ويؤثر اختيار الترميز في كل من الدقة والسرعة:
- ترميز المعدّل: تتحول القيمة إلى تردد إطلاق، كما في المحاكاة أعلاه. وهو متين، لكنه يتطلب خطوات زمنية كثيرة لتمثيل القيمة بدقة.
- الترميز الزمني: تتحول القيمة إلى توقيت النبضة، كأن تسبق النبضاتُ المبكرةُ البكسلاتِ الأكثر سطوعًا، مما ينقل المعلومات بعدد قليل جدًا من النبضات.
- المستشعرات الحدثية: تُخرج كاميرات الرؤية العصبية الشكل حدثًا شبيهًا بالنبضة كلما تغيّر سطوع بكسل، بتوقيت يبلغ ميكروثانية ومن دون معدل إطارات ثابت، لذا يمكن تمرير بياناتها مباشرةً إلى شبكة SNN.
تدريب شبكات SNN#
النبضة دالة درجية مشتقتها صفر في كل مكان تقريبًا، ولذلك لا تستطيع الانتشار العكسي تمرير التدرّجات عبرها بالأسلوب القياسي. وتوجد ثلاثة أساليب لتجاوز ذلك. يدرّب تحويل ANN إلى SNN شبكة عادية بتفعيلات ReLU، ثم يطابق كل تفعيل مع معدل إطلاق. ويحافظ التدريب باستخدام التدرّج البديل على النبضة الحادة في المرور الأمامي، لكنه يستبدل مشتقتها في المرور الخلفي بمشتقة دالة سلسة، ثم يدرّب بالانتشار العكسي عبر الزمن كما في الشبكة العصبية المتكررة (RNN). أما اللدونة المعتمدة على توقيت النبضات (STDP)، فهي قاعدة محلية مستوحاة من البيولوجيا تقوّي المشبك عندما تسبق نبضة الإدخال نبضة الإخراج، كما أنها تتعلّم دون تسميات. ويُدرَّب معظم شبكات SNN الحديثة عالية الدقة مباشرةً باستخدام التدرّجات البديلة، التي تتطلب خطوات زمنية أقل بكثير من الشبكات المحوّلة، بينما يظل التحويل أبسط مسار انطلاقًا من نموذج موجود.
العتاد العصبي الشكل#
تحقق شبكات SNN أكبر توفير للطاقة على الرقائق المصممة لها. وتضع المعالجات العصبية الشكل الذاكرة بجوار عدد كبير من النوى الصغيرة، وتتواصل عبر رسائل النبضات، ولا تحسب إلا عند ورود النبضات. وبما أن النبضات ثنائية، يحتاج كل حدث مشبكي إلى عملية جمع بدلًا من عملية ضرب. وقد حشرت TrueNorth من IBM (2014) مليون عصبون في شريحة واحدة، وتستخدم SpiNNaker من جامعة مانشستر مصفوفات كبيرة من نوى ARM، بينما تشغّل Loihi 2 من Intel نظام Hala Point، وهو نظام بحثي من عام 2024 يضم 1,152 معالجًا من Loihi 2 و1.15 مليار عصبون. وعلى وحدات GPU القياسية المصممة لعمليات المصفوفات الكثيفة، تعمل شبكات SNN عادةً أبطأ من الشبكات التقليدية المكافئة.
شبكات SNN مقارنةً بالشبكات العصبية التقليدية#
- الإشارات: تمرر الشبكات التقليدية، بما فيها الشبكات العصبية الالتفافية (CNNs) والمحوّلات، قيمًا مستمرة عبر كل عصبون في مرور أمامي واحد. أما شبكات SNN فتمرر نبضات ثنائية عبر خطوات زمنية عديدة، وتظل معظم العصبونات خاملة في أي لحظة.
- الدقة: لا تزال الشبكات التقليدية تتصدر معايير الصور القياسية، وقد ضيّقت شبكات SNN الفجوة في الغالب بفضل التدريب باستخدام التدرّج البديل وبنى مقتبسة من النماذج التقليدية.
- الكفاءة: تستهلك شبكات SNN على العتاد العصبي الشكل طاقة أقل بكثير عند التعامل مع مدخلات متناثرة قائمة على الأحداث، مثل تدفقات كاميرات الأحداث والصوت دائم التشغيل.
التطبيقات#
- الرؤية الحدثية والروبوتات: في دراسة نُشرت عام 2024 في Science Robotics، طار باحثو TU Delft بطائرة مسيّرة تستخدم شبكة رؤية وتحكم نبضية بالكامل على Intel Loihi، محوّلين بيانات كاميرا الأحداث الخام إلى أوامر حركة بتردد 200 Hz.
- الاستشعار الدائم التشغيل: تستفيد مهام رصد الكلمات المفتاحية والتعرّف على الإيماءات واكتشاف الحالات الشاذة في المستشعرات من شبكات SNN التي تستهلك طاقة شبه معدومة عندما لا يتغير شيء.
- اكتشاف الأجسام: SpikeYOLO، وهو كاشف نبضي من ECCV 2024 طوّره Xinhao Luo وMan Yao وزملاؤهما، مبني على قاعدة شيفرة Ultralytics ويبسّط بنية Ultralytics YOLOv8 باستخدام كتل مدفوعة بالنبضات، محققًا 48.9% mAP50-95 على COCO بتدريب يعتمد على قيم صحيحة واستدلال مدفوع بالنبضات.










