Diffusion Policies
تولّد سياسات الانتشار أفعال الروبوت عبر إزالة الضوضاء من ضوضاء عشوائية مشروطة بالملاحظات، مع الحفاظ على السلوك متعدد الأنماط الذي تمحوه نماذج الانحدار عند أخذ المتوسط.
سياسة الانتشار هي سياسة للتحكم بالروبوت تولّد الإجراءات بالطريقة التي يولّد بها نموذج الانتشار الصور: تبدأ بضوضاء عشوائية وتزيلها خطوةً بخطوة، مع تكييف العملية وفق ما يرصده الروبوت حاليًا، إلى أن يتبقى تسلسل من الأوامر الحركية. وهي مدرّبة على عروض بشرية، وتشكل نوعًا من الاستنساخ السلوكي يمكنه تمثيل طرق متميزة عدة لتنفيذ مهمة بدلًا من دمجها في متوسط واحد. قدّم تشنغ تشي وشران سونغ وزملاؤهما من جامعة كولومبيا ومعهد تويوتا للأبحاث وMIT هذه السياسة في مؤتمر RSS 2023 ضمن ورقة سياسة الانتشار: تعلم السياسات البصرية الحركية عبر انتشار الإجراءات، متفوقةً على أساليب التعلم بالمحاكاة السابقة بمتوسط 46.9% عبر 12 مهمة من 4 معايير للروبوتات في المناولة.
لماذا يفشل الانحدار مع العروض التوضيحية متعددة الأنماط#
غالبًا ما تتضمن العروض البشرية أكثر من إجراء صحيح واحد للملاحظة نفسها. فقد يقترب شخص يدفع كتلةً منها من اليسار في عرض، ومن اليمين في العرض التالي؛ وقد يتجاوز السائق عائقًا من أي من جانبيه. وتتنبأ سياسة مدرّبة بالانحدار باستخدام متوسط مربعات الخطأ لدالة الخسارة بمتوسط تلك الخيارات، وقد يكون الناتج إجراءً لم يتخذه أي مُعرِض، مثل القيادة مباشرةً نحو العائق. وقسّمت الحلول السابقة الإجراءات إلى فئات، أو لائمت مخاليط غاوسية، أو استخدمت نماذج قائمة على الطاقة مثل الاستنساخ السلوكي الضمني، الذي يحتاج إلى عينات سلبية أثناء التدريب وغالبًا ما كان غير مستقر. ويمكن لنموذج الانتشار تمثيل أي توزيع للإجراءات، كما يتسم التدريب بخسارة التنبؤ بالضوضاء باستقرار الانحدار المعتاد.
يدرّب هذا المثال باستخدام PyTorch سياسة انتشار صغيرة على عروض توضيحية تتضمن أعدادًا متساوية من حالات التوجيه يسارًا أو يمينًا حول عائق:
import torch
from torch import nn
torch.manual_seed(0)
# Demonstrations at one observation: facing an obstacle, experts steer left (-1) or right (+1) equally often
actions = torch.cat([torch.randn(500, 1) * 0.05 - 1, torch.randn(500, 1) * 0.05 + 1])
print(f"Regression policy (mean squared error) outputs: {actions.mean():.2f}")
# Diffusion policy: train a network to predict the noise mixed into an action at denoising step k
K, betas = 50, torch.linspace(1e-4, 0.2, 50)
alpha_bar = torch.cumprod(1 - betas, 0)
net = nn.Sequential(nn.Linear(2, 64), nn.SiLU(), nn.Linear(64, 64), nn.SiLU(), nn.Linear(64, 1))
optimizer = torch.optim.Adam(net.parameters(), lr=1e-3)
for _ in range(3000):
k, noise = torch.randint(0, K, (1000, 1)), torch.randn(1000, 1)
noisy = alpha_bar[k].sqrt() * actions + (1 - alpha_bar[k]).sqrt() * noise
loss = (net(torch.cat([noisy, k / K], 1)) - noise).pow(2).mean()
optimizer.zero_grad()
loss.backward()
optimizer.step()
# Sampling: start from pure noise and remove the predicted noise one step at a time
a = torch.randn(1000, 1)
with torch.no_grad():
for k in reversed(range(K)):
eps = net(torch.cat([a, torch.full_like(a, k / K)], 1))
a = (a - betas[k] / (1 - alpha_bar[k]).sqrt() * eps) / (1 - betas[k]).sqrt()
a += betas[k].sqrt() * torch.randn_like(a) if k > 0 else 0
print(
f"Diffusion policy samples: {(a < -0.5).float().mean():.0%} steer left, {(a > 0.5).float().mean():.0%} steer right"
)تُخرج سياسة الانحدار 0.00، أي التوجيه مباشرةً نحو العائق. أما عينات سياسة الانتشار فتتوزع إلى 44% للتوجيه يسارًا و55% للتوجيه يمينًا، ولا تتجاوز النسبة بين النمطين نحو 1%، لذا تختار كل عينة مناورة صحيحة واحدة.
آلية عمل سياسات الانتشار#
يأخذ التدريب تسلسل إجراءات من عرض توضيحي، ويمزج فيه ضوضاء غاوسية عند خطوة عشوائية من أصل 100، ثم يدرّب شبكة عصبية على توقع تلك الضوضاء اعتمادًا على الإجراءات المشوشة والملاحظة. وعند التشغيل، يأخذ الروبوت عينة من تسلسل ضوضاء خالصة ويزيل ضوضاءها مع تكييف العملية وفق أحدث ملاحظة. استخدمت الورقة الأصلية 10 خطوات لإزالة الضوضاء باستخدام DDIM على روبوتاتها الحقيقية، محققةً زمن استدلال قدره 0.1 ثانية على وحدة معالجة رسومية NVIDIA RTX 3080.
تخطط السياسة على دفعات وتعيد التخطيط ضمن حلقة أفق متراجع. وفي معظم مهام الورقة، ترصد آخر خطوتين زمنيتين، وتتنبأ بالإجراءات الـ16 التالية، وتنفذ أول 8 منها، ثم تزيل الضوضاء من تسلسل جديد اعتمادًا على ملاحظات حديثة، ما يحافظ على سلاسة الحركة مع الاستجابة للتغييرات:
أنشأ المؤلفون شبكتين للتنبؤ بالضوضاء: شبكة عصبية التفافية زمنية أحادية البعد تحقن ميزات الملاحظة عبر تكييف FiLM، ويوصون بها نقطةَ انطلاق؛ وTransformer للمهام التي تتغير فيها الإجراءات بسرعة. تمر صور الكاميرا عبر ResNet-18 مدرّبة من الصفر، مع تجميع softmax مكاني بدلًا من التجميع المتوسط الشامل، وتطبيع المجموعات بدلًا من تطبيع الدفعات. وقد تفوق التنبؤ بمواضع الهدف على التنبؤ بالسرعات باستمرار، وجعل السياسة أكثر متانة في مواجهة زمن الاستجابة.
يمكن للسياسات أيضًا رصد حالة منخفضة الأبعاد بدلًا من وحدات البكسل. ففي معيار Push-T، حيث يدفع الروبوت كتلة على شكل T إلى هدف، يرصد الإصدار القائم على الحالة 9 نقاط ارتكاز ثنائية الأبعاد للكتلة، إضافةً إلى موضع المؤثر النهائي. ويُخرج نموذج تقدير الوضعية من Ultralytics YOLO26، المدرّب على تخطيط مخصص لنقاط الارتكاز المحدد بواسطة kpt_shape في YAML لمجموعة البيانات، نقاط الارتكاز هذه من إطارات الكاميرا عبر result.keypoints.xy.
الخلفاء الأسرع والأكبر#
تتطلب إزالة الضوضاء تمريرات متعددة على الشبكة لكل دفعة من الإجراءات، لذا يستهدف كثير من الأعمال اللاحقة الاستدلال في الزمن الحقيقي. وقد قطّرت سياسة الاتساق، التي وضعها أديتيا براساد وزملاؤه عام 2024، سياسة انتشار إلى نموذج اتساق يحتاج إلى خطوة واحدة أو بضع خطوات، ما سرّع الاستدلال بمقدار عشرة أضعاف. أما سياسة الانتشار ثلاثية الأبعاد (DP3)، التي وضعها يانجيه زي وزملاؤه عام 2024، فتكيّف مخرجاتها وفق سحب نقاط مدمجة بدلًا من الصور، وتعاملت مع معظم المهام الـ72 المحاكاة باستخدام 10 عروض توضيحية فقط، وحققت نجاحًا بنسبة 85% في 4 مهام لروبوتات حقيقية باستخدام 40 عرضًا توضيحيًا لكل منها.
تُستخدم الوصفة نفسها الآن في النماذج الأساسية للروبوتات. يضم نموذج π0 (2024) من Physical Intelligence خبير إجراءات مدرّبًا باستخدام مطابقة التدفق، وهي طريقة وثيقة الصلة بالانتشار، إلى نموذج رؤية ولغة يحوي 3 مليارات معلمة، ويولّد دفعات من 50 إجراءً للتحكم بالروبوتات بسرعة تصل إلى 50 هرتز. وتنفذ مكتبة LeRobot مفتوحة المصدر من Hugging Face سياسة الانتشار إلى جانب سياسات تعلم بالمحاكاة أخرى لأبحاث الذكاء الاصطناعي المتجسد.
سياسات الانتشار والمصطلحات ذات الصلة#
- تجزئة الإجراءات: التنبؤ بتسلسل من الإجراءات المستقبلية بدلًا من إجراء واحد. تولّد سياسات الانتشار دفعاتها بإزالة الضوضاء، بينما تولّدها سياسة تجزئة الإجراءات باستخدام المحولات (ACT) عبر مشفّر تلقائي تبايني شرطي.
- فرض الانتشار: يخصص مستوى ضوضاء خاصًا لكل رمز في التسلسل، كي يتمكن نموذج سببي واحد من التنبؤ خطوةً بخطوة والتخطيط نحو الأهداف. وفي مهمة روبوتية تتطلب الذاكرة، نجح هذا الأسلوب في 80% من الحالات، بينما أخفقت سياسة الانتشار التي لا تستخدم الذاكرة.
- نماذج الانتشار: الفئة العامة من النماذج التوليدية التي تتعلم عكس عملية تدريجية لإضافة الضوضاء، وتُستخدم لتوليد الصور والفيديو والصوت. وسياسة الانتشار نموذج انتشار للإجراءات، مشروط بالملاحظات.










