Neural Ordinary Differential Equations (Neural ODEs)
تستبدل المعادلات التفاضلية العصبية (Neural ODEs) الطبقات المتراكبة بمشتقة متعلّمة وحلّال للمعادلات التفاضلية العادية. كيفية تدريبها بطريقة المرافق، ومجالات ملاءمتها، وشيفرة قابلة للتنفيذ.
المعادلات التفاضلية العادية العصبية (Neural ODEs) هي شبكات عصبية تحدد كيفية تغير حالة خفية باستمرار بمرور الوقت، بدلًا من استخدام مجموعة ثابتة من الطبقات. تتعلم شبكة صغيرة f المشتقة dh/dt = f(h, t)، ثم يدمج محلل عددي للمعادلات التفاضلية العادية تلك المشتقة انطلاقًا من حالة ابتدائية وصولًا إلى الزمن المطلوب للمخرجات. قدم ريكي تشين ويوليا روبانوفا وجيسي بيتنكورت وديفيد دوفينود الفكرة في ورقة عام 2018 نالت جائزة أفضل ورقة في NeurIPS.
من الكتل المتبقية إلى العمق المستمر#
تحدّث الشبكة المتبقية حالتها وفق h(t + 1) = h(t) + f(h(t))، وهذا يمثّل بالضبط خطوة واحدة من طريقة أويلر لحل معادلة تفاضلية عادية، بحجم خطوة يساوي 1. أما Neural ODE فتأخذ حد عدد لا نهائي من الخطوات متناهية الصغر، وتُسند التكامل إلى محلّل. وتحل البرمجيات العددية التقليدية، مثل solve_ivp من SciPy، النوع نفسه من مسائل القيم الابتدائية للمعادلات المكتوبة يدويًا.
يغيّر هذا معنى «العمق». فالمحلالات التكيفية من عائلة Runge-Kutta، مثل طريقة دورماند-برنس، تتخذ خطوات صغيرة عندما تتغير الديناميات بسرعة، وخطوات كبيرة عندما تكون سلسة. وتساوي تكلفة التمريرة الأمامية عدد تقييمات الدالة التي يحتاج إليها المحلل، وهو عدد يعتمد على المدخلات والديناميات المتعلّمة وسماحية الخطأ. ويؤدي توسيع السماحية وقت الاستدلال إلى المفاضلة بين الدقة وانخفاض زمن انتقال الاستدلال من دون إعادة التدريب.
التدريب باستخدام طريقة المرافق#
يخزّن الانتشار العكسي العادي عبر المحلّل كل حالة وسيطة، لذا تزداد الذاكرة بزيادة عدد خطوات المحلّل. وتتجنب طريقة حساسية المرافق ذلك بحل معادلة تفاضلية عادية ثانية إلى الوراء عبر الزمن تحمل التدرج، مع إعادة حساب الحالات أثناء ذلك بدلًا من تخزينها. وتظل تكلفة الذاكرة ثابتة بالنسبة إلى العمق، مقابل حسابات إضافية وفروق عددية طفيفة بين المسارين الأمامي والعكسي.
توفر حزمة torchdiffeq محلالات قابلة للاشتقاق لـPyTorch، مع odeint للانتشار العكسي المباشر وodeint_adjoint لطريقة المرافق:
import torch
from torch import nn
from torchdiffeq import odeint
torch.manual_seed(0)
# تتنبأ الشبكة بمشتقة dh/dt لحالة مخفية ثنائية الأبعاد
dynamics = nn.Sequential(nn.Linear(2, 32), nn.Tanh(), nn.Linear(32, 2))
# استعلم عن الحالة عند طوابع زمنية غير منتظمة، كما في قراءات المستشعر المتقطعة
initial_state = torch.tensor([[1.0, 0.0]])
times = torch.tensor([0.0, 0.3, 0.35, 1.1, 2.0])
trajectory = odeint(lambda t, h: dynamics(h), initial_state, times)
# تنتقل التدرجات عائدةً عبر المحلّل إلى أوزان الشبكة
loss = trajectory[-1].square().sum()
loss.backward()
print(trajectory.squeeze(1))
print(dynamics[0].weight.grad.norm())يحتفظ المسار بالحالة عند كل زمن مطلوب، من الزمنين المتقاربين 0.3 و0.35 إلى الفجوة الطويلة السابقة لـ1.1، بينما يختار المحلل خطواته الداخلية. وتُظهر قيمة معيار التدرج غير الصفرية أن دالة الخسارة التي تُقيّم عند الزمن النهائي تدرّب الشبكة عبر المحلل. ويؤدي استبدال odeint بـodeint_adjoint إلى التحويل نحو تدرجات ذات ذاكرة ثابتة، شريطة أن تكون دالة الديناميات nn.Module كي يتمكن المحلل من العثور على معلماتها.
موضع Neural ODEs بين الأساليب#
تُعد السلاسل الزمنية ذات العينات غير المنتظمة أوضح تطبيق مناسب. فنماذج ODE الكامنة، التي قدّمها روبانوفا وزملاؤها عام 2019، ترمّز سلسلة من المشاهدات في حالة مخفية وتطوّرها باستمرار؛ لذا يمكن نمذجة السجلات الطبية أو سجلات المستشعرات ذات الفواصل غير المتساوية من دون إجبارها على شبكة ثابتة. ولا تحدّث الشبكة العصبية المتكررة الحالة إلا عند خطوات منفصلة، وتحتاج إلى آليات إضافية للتعامل مع الطوابع الزمنية المفقودة أو غير المنتظمة، وهي مشكلة أساسية في تحليل السلاسل الزمنية.
تتخذ بيانات التتبع البنية نفسها. يُخرج وضع التتبع في Ultralytics YOLO26 موضعًا لكل معرّف مسار في كل إطار، مع وجود فجوات عند حجب جسم أو تفويته، ويُبقي المتعقب الافتراضي كل مسار مفقود قائمًا لمدة track_buffer إطارًا، أي 30 إطارًا افتراضيًا، باستخدام مرشح كالمان الذي يمثّل نموذج حركته ذي السرعة الثابتة معادلة تفاضلية عادية خطية ثابتة تُخطى مرة واحدة لكل إطار. ويتعلم نموذج Neural ODE الملائم للمواضع نفسها الحركة ذاتها بوصفها مسارًا مستمرًا يمكن الاستعلام عنه بين الإطارات أو عبر فجوة في تتبع الأجسام المتعددة.
النمذجة التوليدية هي الاستخدام الرئيسي الثاني. تحول التدفقات المُطبِّعة المستمرة، التي طُوّرت في ورقة Neural ODE الأصلية ووُسعت في FFJORD، توزيعًا بسيطًا إلى آخر معقد من خلال تكامل مجال متجه متعلّم. وجعلت مطابقة التدفق هذه النماذج لاحقًا أرخص بكثير في التدريب، عبر تعلم المجال المتجه مباشرةً من دون حل معادلة تفاضلية عادية أثناء التدريب. وتُنشئ مولدات الصور القائمة على التدفق المصحح، مثل الإصدار 3 من Stable Diffusion، عينات عبر تكامل معادلة تفاضلية عادية كهذه، كما يمكن إنشاء عينات نماذج الانتشار حتميًا بتكامل معادلة تدفق الاحتمال التفاضلية العادية.
القيود والنماذج الأخرى للزمن المستمر#
لا يمكن لمسارات المعادلات التفاضلية العادية أن تتقاطع، لذا لا يستطيع نموذج Neural ODE في بُعد المدخلات نفسه تمثيل بعض التحويلات البسيطة. وتعالج نماذج Neural ODE المعززة، التي اقترحها إيميليان دوبون وزملاؤه عام 2019، ذلك بإضافة أبعاد إلى الحالة. وقد تجعل الديناميات الصلبة والزيادة في عدد تقييمات الدالة أثناء التدريب نماذج Neural ODE أبطأ من شبكة ذات عمق ثابت.
تستند معماريات أخرى إلى ديناميات الزمن المستمر مع مفاضلات مختلفة. الشبكات العصبية السائلة هي خلايا متكررة تحددها معادلات تفاضلية عادية، وتعتمد ثوابتها الزمنية على المدخلات. وتبدأ نماذج فضاء الحالة مثل S4 وMamba من نظام خطي مستمر زمنيًا، x'(t) = Ax(t) + Bu(t)، ثم تحوله إلى علاقة تكرارية يمكن حسابها أيضًا في صورة التفاف طويل أو مسح متوازٍ، ما يجعلها سريعة على التسلسلات الطويلة التي يحتاج فيها نموذج Neural ODE عام إلى محلل تكيفي.










