Neural Ordinary Differential Equations (Neural ODEs)
تعرف على كيفية نمذجة المعادلات التفاضلية العصبية العادية لديناميكيات الحالة الخفية المستمرة، ودعم تحليل السلاسل الزمنية غير المنتظمة، وتمكين التنبؤ بالحركة باستخدام أمثلة عملية.
الهندسة التفاضلية العادية العصبية، أو Neural ODEs، هي شبكات عصبية نمذجت كيف تتغير الحالة المخفية بشكل مستمر بدلاً من تمريرها عبر تسلسل ثابت من الطبقات. وهي تحدد معدل تغير قابل للتعلم، مكتوباً كالتالي: dh/dt = f(h, t, parameters)، وتستخدم محلل معادلات تفاضلية عددي لتطوير الحالة من قيمة أولية إلى وقت مطلوب. بديهياً، تتعلم شبكة عصبية تقليدية مجموعة من التحويلات، بينما تتعلم Neural ODE المسار المستمر الذي يربط بين مدخلاتها ومخرجاتها.
كيف تعمل Neural ODEs#
الدالة f هي عادة شبكة عصبية صغيرة تسمى مجال الاتجاهات أو دالة الديناميكيات. بالنظر إلى الحالة الحالية h والوقت الاختياري t، فإنها تتوقع الاتجاه والسرعة التي يجب أن تتحرك بها تلك الحالة. يقوم محلل ODE بتقييم هذه الدالة مراراً وتكراراً ودمج تلك التغييرات لتقدير الحالة لاحقاً.
تحدد ثلاثة مكونات سير العمل:
- الحالة الأولية: المدخلات، أو الملاحظة المشفرة، أو حالة النظام المعروفة في وقت البداية.
- الديناميكيات المتعلمة: دالة معلمية تُرجع مشتق الحالة بدلاً من الحالة التالية مباشرة.
- التكامل العددي: خوارزمية مثل Runge-Kutta تقارب المسار. يوضح
solve_ivpواجهة ODE كيف يتم التعامل مع مشاكل القيمة الأولية بواسطة البرمجيات العددية التقليدية.
يمكن للمحللات التكيفية اتخاذ خطوات صغيرة حيث تتغير الديناميكيات بسرعة وخطوات أكبر في المناطق الأكثر سلاسة. ونتيجة لذلك، تعتمد التكلفة الحسابية على الديناميكيات المتعلمة، وطريقة المحلل، وطول الفترات الزمنية، وتفاوتات الأخطاء - وليس فقط على عدد الطبقات المحدد مسبقاً. يوضح مثال DiffEqFlux Neural ODE هذه الصياغة ذات الزمن المستمر مباشرة.
الخلافات عن النماذج ذات الصلة#
-
الشبكات المتبقية: تقوم الكتلة المتبقية بتحديث منفصل مثل "الحالة الحالية مضافاً إليها تغيير متعلم". يمكن اعتبار Neural ODE امتداداً للعمق المستمر يحدد فيه محلل ODE التحديثات الوسيطة.
-
الشبكات العصبية المتكررة: تقوم RNNs بتحديث حالتها المخفية عند خطوات تسلسل منفصلة. تتطور Neural ODEs بشكل مستمر ويمكنها الاستعلام عن الحالات بشكل طبيعي في طوابع زمنية تعسفية، على الرغم من أنها قد تتطلب حسابات أكثر.
-
نماذج مساحة الحالة: يمثل كلاهما حالات مخفية متطورة. غالباً ما تستخدم نماذج مساحة الحالة ديناميكيات منفصلة أو مستمرة منظمة معالجة تسلسلية فعالة، بينما تضع Neural ODE على وجه تحديد شبكة عصبية داخل حل ODE عددي.
-
المشغلون العصبيون: تتعلم المشغلات العصبية تعيينات بين الدوال أو الحالات بأكملها، غالباً عبر دقة مكانية متغيرة. تتعلم Neural ODEs عادة مسار حالة محدودة الأبعاد من حالة أولية.
تختلف Neural ODEs أيضاً عن الشبكات العصبية المستنيرة فيزيائياً. تقارب الشبكة المستنيرة فيزيائياً عادةً حل ODE أثناء تقييدها بمعادلة معروفة؛ بينما تتعلم Neural ODE عادةً كل أو جزء من دالة المشتق نفسها.
التطبيقات الواقعية#
-
تحليل السلاسل الزمنية غير المنتظمة: قد تصل قياسات المستشفيات، وقياس الآلات عن بُعد، وأجهزة الاستشعار البيئية على فترات غير متساوية. يمكن لـ Neural ODE تطوير حالة مريض كامنة أو آلة كامنة بين الطوابع الزمنية الفعلية، مما يدعم الاستيفاء، والتنبؤ، ومعالجة الملاحظات المفقودة دون إجبار كل عينة على شبكة ثابتة.
-
تتبع الكائنات والتنبؤ بالحركة: يمكن لنظام الرؤية استخدام Ultralytics YOLO26 لمراقبة الكائنات أو النقاط الرئيسية في الفيديو، ثم تمرير المواضع والسرعات إلى Neural ODE منفصل ينمذج الحركة المستمرة. يمكن أن يساعد ذلك في تقدير المسارات بين الإطارات أو أثناء الحجب لفترات وجيزة. YOLO نفسها ليست Neural ODE؛ بل تعمل ODE كنظام زمني لاحق.
بالنسبة لجزء الإدراك في مثل هذه الأنظمة، يدعم Ultralytics Platform تعليق بيانات السحاب، وتدريب النماذج، والنشر، والمراقبة، بينما تظل Neural ODE المخصصة مكون ديناميكيات منفصل.
مثال تفاضلي أدنى#
توفر حزمة torchdiffeq محللات ODE قابلة للتفاضل لـ PyTorch. بعد تشغيل pip install torch torchdiffeq، ينشئ هذا المثال مجال اتجاهات عصبي، ويدمج حالة ثنائية الأبعاد، ويحسب تدرج التدريب:
import torch
from torch import nn
from torchdiffeq import odeint
torch.manual_seed(0)
dynamics = nn.Sequential(
nn.Linear(2, 32),
nn.Tanh(),
nn.Linear(32, 2),
)
initial_state = torch.tensor([[1.0, 0.0]])
times = torch.linspace(0.0, 2.0, 21)
trajectory = odeint(lambda _time, state: dynamics(state), initial_state, times)
loss = trajectory[-1].square().mean()
loss.backward()
print(dynamics[0].weight.grad.norm())يحتوي مسار المخرجات على الحالة المقدرة في كل وقت مطلوب. يُظهر التدرج غير الصفر ي أن المحلل يظل جزءاً من الحساب القابل للتدريب. يعتمد هذا على المفاهيم التي تغطيها التمييز التلقائي لـ PyTorch؛ وتتوفر أنظمة تدرج قابلة للمقارنة في TensorFlow وJAX.
اعتبارات عملية#
تكون Neural ODEs مفيدة للغاية عندما يكون التطوير المستمر، أو الطوابع الزمنية غير المنتظمة، أو بنية الديناميكيات المعروفة مهمة. فهي ليست أسرع أو أكثر دقة تلقائياً من الطبقات العادية.
يجب التحقق من تفاوتات المحلل لأن التفاوتات الفضفاضة يمكن أن تقلل الدقة، بينما يمكن أن تؤدي التفاوتات الصارمة إلى العديد من تقييمات الدوال. قد تجعل الديناميكيات الصلبة أو غير المتصلة التدريب بطيئاً أو غير مستقر أيضاً. يجب على الفرق مقارنة التمييز المباشر مع طرق حساسية المساعد، ومراقبة تقييمات المحلل وسلوك التدرج، والمقارنة بالأمثلة الأساسية المتكررة أو مساحة الحالة الأبسط. تعرض أدوات الإنتاج مثل طبقة Neural ODE الموثقة من MATLAB أيضاً إعدادات المحلل والتدرج، مما يؤكد أن التكوين العددي جزء أساسي من النموذج.






