التعلم العميق2018متقدم9 دقيقة قراءة
المعادلات التفاضلية العادية العصبية
Neural Ordinary Differential Equations
Chen, T. Q. · Rubanova, Y. · Bettencourt, J. · Duvenaud, D. — NeurIPS
المشكلة
شبكات ResNet تُراكم عشرات أو مئات الطبقات، كل واحدة تُطبِّق تحويلاً صغيراً. المشكلة أن الذاكرة تتضخّم خطياً مع العمق، لأن الانتشار العكسي يفرض تخزين التنشيطات الوسيطة طبقةً طبقة. يُضاف إلى ذلك أن عدد الطبقات يُحدَّد مسبقاً وقت التصميم، فلا يملك النموذج مرونة لتبسيط حسابه مع المدخلات السهلة أو تعميقه مع الصعبة. وعلى صعيد آخر، تدفقات التسوية المنفصلة تشترط بنى معمارية مقيَّدة حتى يبقى حساب محدِّد جاكوبي ممكناً عملياً.
الإسهام
بدل تكديس طبقات منفصلة، نصف مشتقة بشبكة عصبية واحدة: dh/dt = f(h(t), t, θ). الناتج يُحسَب عبر حالّ معادلات تفاضلية يعمل كصندوق أسود. تُعطينا التدرجات الدقيقة بذاكرة ثابتة لا تنمو — دون الحاجة لتخزين أي تنشيطات وسيطة. النموذج يُعدِّل عمقه الفعلي لكل مدخل على حدة: الحالّ يتّخذ خطوات أكثر حين تكون المسألة معقّدة. كذلك تنبثق تدفقات التسوية المستمرة من هذا الإطار بصورة طبيعية، فتتيح بنى معمارية حرة وتدريباً بتعظيم الدقيقة من خلال صيغة تغيُّر المتغيّرات اللحظية.
الأثر
هذه الورقة (أفضل ورقة في NeurIPS 2018) فتحت جسراً بين عالم المعادلات التفاضلية . تفرّعت منها تدفقات التسوية المستمرة (FFJORD)، ونماذج المعادلات التفاضلية الكامنة للسلاسل الزمنية غير المنتظمة، والإطار النظري الذي مهّد لاحقاً للمطابقة الانسيابية والنماذج التوليدية القائمة على الدرجات. الرسالة المحورية: الشبكات العصبية ليست مجرد طبقات مُكدَّسة، بل يمكن فهمها كأنظمة ديناميكية — وهذه النظرة أعادت تشكيل تفكيرنا حول العمق والذاكرة والنمذجة التوليدية.
تخيّل أن ResNet سُلَّم عادي: عند كل درجة ترتفع مقداراً ثابتاً، والمهندس قرّر سلفاً كم درجة في السُّلَّم. لو أردت العودة فعليك تذكُّر كل درجة صعدتَها واحدةً واحدة.
تستبدل هذا السُّلَّم بـمنحدر ناعم: بدل أن تعدّ الدرجات، تصف ميل المنحدر عند كل نقطة، ثم تُدحرِج كرة من الأسفل فيتولّى توجيهها إلى القمة. الكرة تتسارع في الأجزاء المستوية وتتمهّل عند المنعطفات الحادة — تُكيّف جهدها من تلقاء نفسها. والعودة؟ يكفي دحرجة الكرة عكسياً من القمة دون حاجة لتذكّر كل نقطة مررت بها.
من ResNet إلى المعادلة التفاضلية: الحدّ المستمر
نقطة الانطلاق هي في شبكات ResNet. كل طبقة تحسب:
لاحِظ أن هذه الصيغة مطابقة تماماً لـ في حلّ المعادلات التفاضلية — وهي تقنية تعود إلى 1768 تُقرِّب المنحنى السلس بخطوات صغيرة منفصلة. بمعنى آخر: كل طبقة في ResNet هي خطوة أويلر واحدة. فلو كدّست عدداً كافياً من هذه الطبقات مع تصغير حجم الخطوة، ستقترب شيئاً فشيئاً من تحويل مستمر.
السؤال الذي طرحه تشين وزملاؤه كان بديهياً: لماذا لا نذهب إلى النهاية؟ بدل أن نحدّد عدداً ثابتاً من الطبقات، لنصِف الديناميكيات المستمرة مباشرةً:
هنا واحدة تصف سرعة تغيُّر الحالة المخفية واتجاهه في كل لحظة. لحساب الناتج، نسلّم هذه المعادلة إلى حالّ معادلات تفاضلية يتتبّع المسار من إلى ، ويختار أحجام خطواته بنفسه: خطوات أكثر حين يكون المسار مُلتوياً، وأقل حين يكون سلساً.
الصياغة الرياضية: الحالة المخفية كنهر جارٍ
تخيّل أن الحالة المخفية لكل نقطة بيانات جُسيمٌ أُسقط في نهر. الشبكة العصبية ترسم تيّار هذا النهر — أي — عند كل موقع وكل لحظة. الجسيم ينجرف مع التيار، والنقطة التي يستقرّ عندها هي مخرجات الشبكة.
المعادلة المحورية هي مسألة القيمة الابتدائية:
الحالّ التفاضلي يعمل كـصندوق أسود: أي حالّ عددي معياري يصلح — طريقة أويلر، أو رونغه-كوتا، أو دورماند-برينس. الحلّالات التكيُّفية الحديثة تراقب خطأها وتضبط حجم الخطوة تلقائياً. ما يعنيه ذلك عملياً أن العمق الفعّال للنموذج ليس تحدّده أنت مسبقاً — بل ينبثق من طبيعة المسألة ذاتها. المدخلات البسيطة يكفيها بضع خطوات، والمعقّدة تحصل على المزيد.
الطريقة المرافقة: انتشار عكسي بذاكرة ثابتة
في التقليدي عبر شبكة عميقة، نحتاج تخزين تنشيطات كل طبقة حتى نحسب — أي أن الذاكرة تنمو طردياً مع العمق. في نموذج مستمر قد يحتاج الحالّ إلى آلاف الخطوات، هذه التكلفة تصبح باهظة.
طريقة الحساسية المرافقة (من نظرية التحكم الأمثل، بونترياغين 1962) تُقدّم مخرجاً أنيقاً. الفكرة: عرِّف الحالة المرافقة بوصفها تدرّج بالنسبة لـالحالة المخفية عند اللحظة :
هذه الحالة المرافقة نفسها تخضع لمعادلة تفاضلية تسير عكسياً في الزمن:
تدرّج المعاملات يُحسب هو الآخر بتكامل يسير عكسياً:
من الناحية التطبيقية، الحالة الأمامية والحالة المرافقة وتدرّج المعاملات تُدمج كلها في جملة مُوسَّعة واحدة — حلّ تفاضلي عكسي واحد يقوم مقام الانتشار العكسي عبر جميع الطبقات.
تدفقات التسوية المستمرة: نمذجة توليدية حرة البنية
فكرة تدفقات التسوية ببساطة: نبدأ بتوزيع بسيط (كالتوزيع الغاوسي) ونحوّله إلى توزيع معقّد عبر سلسلة تحويلات قابلة للعكس. لكنّ التحدي أننا لحساب أرجحية أي نقطة بيانات تحت النموذج نحتاج محدِّد مصفوفة جاكوبي لكل تحويل — وهذا الشرط يُكبّل البنية المعمارية في التدفقات المنفصلة بقيود شديدة.
المعادلات التفاضلية العصبية تفتح الباب أمام نسخة مستمرة من هذه الفكرة. بينما ينساب التوزيع عبر ، تتغيّر كثافته اللوغاريتمية وفق صيغة اللحظية:
هنا يظهر الفارق الجوهري: كانت تستلزم طبقات قابلة للعكس مُصمَّمة بعناية (طبقات اقتران أو تحويلات انحدارية ذاتية). أما تدفقات التسوية المستمرة فتقبل أي بنية شبكة عصبية للدالة — لا قيود على قابلية العكس ولا بنية خاصة مطلوبة. السبب أن الديناميكيات التفاضلية السلسة تضمن قابلية العكس تلقائياً: مسارات المعادلة التفاضلية لا تتقاطع أبداً.
لاحقاً وسّع غراثوول وزملاؤه (2018) هذه الفكرة في FFJORD، مستخدمين مُقدِّر هاتشنسون للأثر لخفض التكلفة الحسابية أكثر.
ثلاث مزايا في لمحة
المعادلات التفاضلية العصبية تتمتّع بثلاث خصائص يصعب على الشبكات المنفصلة مجاراتها:
- ذاكرة ثابتة: الطريقة المرافقة تحسب التدرّجات الدقيقة دون تخزين تنشيطات وسيطة. الذاكرة لا تكبر بزيادة خطوات الحالّ.
- حساب تكيُّفي: الحالّ يُوزّع الحساب تلقائياً — حصة أكبر للمدخلات المعقّدة وأقل للبسيطة. لا يوجد «عمق» مُحدَّد سلفاً، بل النموذج يقرّر أثناء العمل.
- نماذج توليدية حرة البنية: تدفقات التسوية المستمرة لا تفرض قيوداً معمارية، ولا تحتاج سوى أثر مصفوفة جاكوبي بدل المحدِّد الكامل.
الفكرة في شيفرة برمجية
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
import torch
import torch.nn as nn
from torchdiffeq import odeint
class ODEFunc(nn.Module):
"""الشبكة العصبية f التي تُعرِّف dh/dt."""
def __init__(self, dim):
super().__init__()
self.net = nn.Sequential(
nn.Linear(dim, 64),
nn.Tanh(),
nn.Linear(64, dim),
)
def forward(self, t, h):
# t الزمن الحالي، h الحالة المخفية
return self.net(h)
class NeuralODE(nn.Module):
def __init__(self, func, t_span):
super().__init__()
self.func = func # حقل السرعة f
self.t_span = t_span # [t0, t1]
def forward(self, h0):
# الحالّ التفاضلي هو «التمرير الأمامي»
# يتتبّع h من t0 إلى t1 باستخدام f
solution = odeint(
self.func, h0, self.t_span,
method='dopri5' # دورماند-برينس (تكيُّفي)
)
return solution[-1] # h(t1)
# شبكة واحدة تقوم مقام ResNet بأكملها
func = ODEFunc(dim=64)
model = NeuralODE(func, t_span=torch.tensor([0.0, 1.0]))
h0 = torch.randn(32, 64) # دفعة من 32 عيّنة، بُعد 64
h1 = model(h0) # الناتج — الحالّ اختار عمقه بنفسهالمعادلات التفاضلية الكامنة: نمذجة السلاسل الزمنية غير المنتظمة
من أبرز تطبيقات هذا الإطار: دمج المعادلة التفاضلية العصبية مع لنمذجة سلاسل زمنية تصل على فترات غير منتظمة — كقراءات مؤشرات المريض الحيوية التي تُسجَّل في زيارات عشوائية للمستشفى، أو بيانات المستشعرات التي ترد بأوقات متفاوتة.
الآلية واضحة: يضغط المشاهدات إلى حالة في ، ثم تتولّى المعادلة التفاضلية تطوير أمامياً في زمن مستمر. ولأن المعادلة التفاضلية تتقبّل أي فاصل زمني بطبيعتها، لا حاجة لتقطيع الزمن إلى شرائح ثابتة أو لحشو القيم الناقصة. يستخرج التنبؤات عند أي لحظة نريدها.
أصبح نموذج المعادلة التفاضلية الكامنة أداةً أساسية في مجالات كالرعاية الصحية وعلوم المناخ وأي ميدان تصل فيه البيانات بصورة غير منتظمة.
لماذا غيَّرت كل شيء
2015
ResNet
هي وزملاؤها يُقدّمون الاتصالات المتبقية: h_{t+1} = h_t + f(h_t). عدّة باحثين يلتقطون الصلة بين هذه الصيغة وتقريب أويلر للمعادلات التفاضلية.
2018
المعادلة التفاضلية العصبية (هذه الورقة)
تشين وزملاؤه يمضون إلى النهاية: يستبدلون الطبقات المنفصلة بمعادلة تفاضلية مستمرة، ويستخدمون الطريقة المرافقة للتدريب، ويُقدّمون تدفقات التسوية المستمرة. حصدت جائزة أفضل ورقة في NeurIPS.
2019
FFJORD
غراثوول وزملاؤه يُوسّعون تدفقات التسوية المستمرة باستخدام مُقدِّر هاتشنسون للأثر، ممّا يجعلها عملية وقابلة للتوسّع في تقدير الكثافة.
2019
المعادلات التفاضلية الكامنة
روبانوفا وزملاؤها يدمجون المعادلات التفاضلية العصبية مع المُرمِّزات التلقائية التباينية لمعالجة سلاسل زمنية غير منتظمة، فيبتكرون إطاراً مناسباً لبيانات الرعاية الصحية والمستشعرات.
2020
النماذج التوليدية القائمة على الدرجات
سونغ وزملاؤه يوحّدون مطابقة الدرجات والانتشار عبر معادلات تفاضلية عشوائية — امتداد فكري مباشر لمنظور الديناميكيات المستمرة الذي أرسته المعادلة التفاضلية العصبية.
2022
المطابقة الانسيابية
ليبمان وزملاؤه يقترحون المطابقة الانسيابية — هدف تدريبي أبسط لتدفقات التسوية المستمرة يستغني عن المحاكاة أثناء التدريب تماماً.
الخط الذي يصل المعادلة التفاضلية العصبية بـالمطابقة الانسيابية خطّ مستقيم: تدفقات التسوية المستمرة ← النماذج التوليدية القائمة على الدرجات ← المطابقة الانسيابية. كل حلقة تستند إلى الرؤية الأساسية نفسها: التحويلات بين التوزيعات يمكن نمذجتها كتدفقات مستمرة تحكمها معادلات تفاضلية. توليد الصور والفيديو اليوم يقوم على هذا الأساس.
المرجعChen, Rubanova, Bettencourt, Duvenaud. Neural Ordinary Differential Equations. NeurIPS, 2018.
مصطلحات هذه الورقة
- المعادلة التفاضلية العصبيةNeural ODE
- معادلة تفاضلية عاديةOrdinary Differential Equation
- طريقة الحساسية المرافقةAdjoint Sensitivity Method
- تدفق التسوية المستمرContinuous Normalizing Flow
- الوصلة التجاوزيةResidual Connection
- حالّ المعادلات التفاضليةODE Solver
- شبكة مستمرة العمقContinuous-Depth Network
- طريقة أويلرEuler Method
- التحديث التراجعيBackpropagation
- المتغير الكامنLatent Variable