Diffusion Models
استكشف كيف تستخدم نماذج الانتشار الذكاء الاصطناعي التوليدي لإنشاء بيانات عالية الدقة. تعلّم تعزيز تدريب Ultralytics YOLO26 ببيانات اصطناعية واقعية اليوم.
نماذج الانتشار هي فئة من خوارزميات الذكاء الاصطناعي التوليدي التي تتعلم إنشاء عينات بيانات جديدة من خلال عكس عملية إضافة الضوضاء تدريجيًا. وعلى خلاف النماذج التمييزية التقليدية المستخدمة في مهام مثل اكتشاف الأجسام أو التصنيف، التي تتنبأ بالتسميات من البيانات، تركز نماذج الانتشار على توليد محتوى عالي الدقة—ولا سيما الصور والصوت والفيديو—يحاكي بدرجة كبيرة الخصائص الإحصائية لبيانات العالم الحقيقي. وقد أصبحت سريعًا الحل المتطور الرائد لتوليد الصور عالية الدقة، متجاوزةً نماذج سابقة رائدة مثل الشبكات التوليدية الخصمية (GANs)، بفضل استقرار تدريبها وقدرتها على توليد مخرجات متنوعة.
كيفية عمل نماذج الانتشار#
تستند الآلية الأساسية لنموذج الانتشار إلى الديناميكا الحرارية اللاتوازنية. وتتضمن عملية التدريب مرحلتين متميزتين: العملية الأمامية (الانتشار) والعملية العكسية (إزالة الضوضاء).
- العملية الأمامية: تدمر هذه المرحلة بنية صورة التدريب منهجيًا عبر إضافة كميات صغيرة من الضوضاء الغاوسية على سلسلة من الخطوات الزمنية. ومع استمرار العملية، تتحول البيانات المعقدة (مثل صورة قطة) تدريجيًا إلى ضوضاء عشوائية نقية وغير منظمة.
- العملية العكسية: يتمثل هدف الشبكة العصبية في تعلم كيفية عكس هذا الإفساد. وبدءًا من ضوضاء عشوائية، يتنبأ النموذج بالضوضاء التي أُضيفت في كل خطوة ويطرحها. ومن خلال إزالة الضوضاء تكراريًا، يزيل النموذج «الضوضاء» من الإشارة العشوائية حتى تظهر صورة متماسكة وعالية الجودة.
يتيح هذا التحسين التكراري تحكمًا استثنائيًا في التفاصيل الدقيقة والأنسجة، وهو ما يمثل ميزة مهمة على أساليب التوليد أحادية الخطوة.
التطبيقات الواقعية#
انتقلت نماذج الانتشار من نطاق البحث الأكاديمي إلى أدوات عملية جاهزة للإنتاج في مختلف القطاعات.
- توليد البيانات الاصطناعية: من أكثر التطبيقات قيمة لمهندسي الرؤية الحاسوبية إنشاء بيانات اصطناعية لتعزيز مجموعات بيانات التدريب. فإذا افتقرت مجموعة بيانات إلى التنوع—مثل عدم احتوائها على صور لسيارات في ظروف ثلجية—فيمكن لنموذج انتشار توليد تنويعات واقعية. ويساعد ذلك على تحسين متانة نماذج الرؤية مثل YOLO26 عند نشرها في بيئات غير متوقعة.
- ترميم الصور وتحريرها: تدعم نماذج الانتشار أدوات تحرير متقدمة تتيح للمستخدمين تعديل مناطق محددة من الصورة. ويمكن لهذه التقنية، المعروفة باسم الترميم، إزالة العناصر غير المرغوب فيها أو ملء الأجزاء المفقودة من صورة استنادًا إلى السياق المحيط. ويستخدمها المعماريون والمصممون لإنشاء نماذج أولية سريعة وتصور التغييرات على المنتجات أو البيئات دون الحاجة إلى التصيير اليدوي ثلاثي الأبعاد.
تمييز المصطلحات الأساسية#
من المفيد التمييز بين نماذج الانتشار والبنى التوليدية الأخرى:
- نماذج الانتشار مقابل GANs: بينما تستخدم GANs شبكتين متنافستين (مولّدًا ومميّزًا) وتشتهر بسرعة أخذ العينات، فإنها غالبًا ما تعاني من «انهيار الأنماط»، حيث ينتج النموذج تنويعات محدودة من المخرجات. وتكون نماذج الانتشار عمومًا أكثر استقرارًا أثناء التدريب، كما تغطي توزيع البيانات بصورة أشمل، رغم أنها قد تكون أبطأ أثناء الاستدلال.
- نماذج الانتشار مقابل VAEs: تضغط المشفرات التلقائية التغايرية (VAEs) البيانات في فضاء كامن ثم تعيد بناءها. وعلى الرغم من سرعة VAEs، فقد تبدو الصور التي تولدها ضبابية أحيانًا مقارنةً بالتفاصيل الواضحة التي تنتجها عمليات الانتشار.
التنفيذ العملي#
رغم أن تدريب نموذج انتشار من الصفر يتطلب قدرًا كبيرًا من القدرة الحاسوبية، يمكن للمهندسين الاستفادة من النماذج المدرّبة مسبقًا أو دمجها في سير العمل إلى جانب الكاشفات الفعالة. فعلى سبيل المثال، قد تستخدم نموذج انتشار لتوليد تنويعات للخلفيات ضمن مجموعة بيانات، ثم تستخدم منصة Ultralytics لإضافة التعليقات التوضيحية وتدريب نموذج كشف على تلك البيانات المحسّنة.
فيما يلي مثال مفاهيمي يستخدم torch لمحاكاة خطوة انتشار أمامية بسيطة (إضافة الضوضاء)، وهي الأساس الذي يستند إليه تدريب هذه الأنظمة.
import torch
def add_noise(image_tensor, noise_level=0.1):
"""Simulates a single step of the forward diffusion process by adding Gaussian noise."""
# Generate Gaussian noise with the same shape as the input image
noise = torch.randn_like(image_tensor) * noise_level
# Add noise to the original image
noisy_image = image_tensor + noise
# Clamp values to ensure they remain valid image data (e.g., 0.0 to 1.0)
return torch.clamp(noisy_image, 0.0, 1.0)
# Create a dummy image tensor (3 channels, 64x64 pixels)
dummy_image = torch.rand(1, 3, 64, 64)
noisy_result = add_noise(dummy_image)
print(f"Original shape: {dummy_image.shape}, Noisy shape: {noisy_result.shape}")التوجهات المستقبلية#
يتطور هذا المجال سريعًا نحو نماذج الانتشار الكامن (LDMs)، التي تعمل في فضاء كامن مضغوط بدلًا من فضاء البكسلات لتقليل التكاليف الحاسوبية. وتجعل هذه الكفاءة تشغيل نماذج توليدية قوية على الأجهزة الاستهلاكية أمرًا ممكنًا. ومع استمرار البحث، نتوقع تكاملًا أوثق بين المدخلات التوليدية والمهام التمييزية، مثل استخدام السيناريوهات التي يولدها الانتشار للتحقق من سلامة المركبات ذاتية القيادة أو تحسين تحليل الصور الطبية من خلال محاكاة الحالات المرضية النادرة.









