نماذج الانتشار
اكتشف كيف تُحدث نماذج الانتشار ثورة في الذكاء الاصطناعي التوليدي من خلال إنشاء صور ومقاطع فيديو وبيانات واقعية بتفاصيل واستقرار لا مثيل لهما.
نماذج الانتشار هي فئة من
الخوارزميات التوليدية للذكاء الاصطناعي التي تتعلم إنشاء
عينات بيانات جديدة عن طريق عكس عملية إضافة الضوضاء التدريجية. مستوحاة من مبادئ من الديناميكا الحرارية غير المتوازنة
الديناميكا الحرارية، وقد برزت هذه النماذج كتقنية
أحدث تقنية لتوليد صور وصوت وفيديو عالية الدقة. على عكس الطرق السابقة التي
التي تحاول إنتاج مخرجات معقدة في خطوة واحدة، فإن نماذج الانتشار تعمل بشكل متكرر على تنقيح الثبات العشوائي إلى محتوى متماسك
مما يتيح تحكماً غير مسبوق في التفاصيل والبنية الدلالية في
في مهام الرؤية الحاسوبية.
آلية الانتشار
يمكن تقسيم عملية نماذج الانتشار إلى مرحلتين مختلفتين: العملية الأمامية والعملية العكسية
والعملية العكسية.
-
العملية الأمامية (النشر): تتضمن هذه المرحلة تدمير بنية البيانات بشكل منهجي.
بدءًا من صورة واضحة من بيانات التدريب,
يضيف النموذج كميات صغيرة من الضوضاء الغاوسية على مدى
سلسلة من الخطوات الزمنية. في النهاية، تتدهور البيانات في النهاية إلى ضوضاء عشوائية نقية غير منظمة. تكون هذه العملية عادةً
ثابتة وتتبع قاعدة سلسلة ماركوف.
-
العملية العكسية (تقليل الضوضاء): تكمن مهمة التعلّم الآلي الأساسية
مهمة التعلم الآلي في هذه المرحلة. A
شبكة عصبونية - غالباً ماتكون بنية U-Net - يتم تدريبها على
للتنبؤ وطرح الضوضاء المضافة في كل خطوة. من خلال تعلّم عكس الفساد، يمكن للنموذج أن
البدء بضوضاء نقية و"إزالة الضوضاء" تدريجياً لتكوين صورة جديدة ومتماسكة.
أبحاث مثل البحث التأسيسي
التأسيسية لنماذج الانتشار الاحتمالية للتشويش (DDPM) التي أنشأت ورقة بحثية
الإطار الرياضي الذي يجعل هذا التنقيح التكراري مستقرًا وفعالًا.
الانتشار مقابل شبكات GANs
قبل أن تبرز نماذج الانتشار,
شبكات الخصومة التوليدية (GANs)
هي النهج السائد في تركيب الصور. في حين أن كلاهما قوي، إلا أنهما يختلفان اختلافًا جوهريًا:
-
استقرار التدريب: نماذج الانتشار أسهل في التدريب بشكل عام. تعتمد شبكات GANs على لعبة خصومة
بين شبكتين (المولد والمميز)، مما يؤدي غالبًا إلى انهيار الوضع أو عدم الاستقرار.
يستخدم الانتشار دالة خسارة أكثر استقرارًا تتعلق بـ
بالتنبؤ بالضوضاء.
-
تنوع المخرجات: تتفوق نماذج الانتشار في توليد عينات متنوعة ومفصلة للغاية، في حين أن
قد تكافح شبكات GAN لتغطية التوزيع الكامل لمجموعة البيانات.
-
سرعة الاستدلال: توجد مفاضلة حيث تقوم شبكات GAN بتوليد الصور في مسار واحد، مما يجعلها
أسرع. بينما تتطلب نماذج الانتشار خطوات متعددة لتنقيح الصورة، مما يؤدي إلى زيادة
زمن استنتاج أعلى. ومع ذلك، فإن التقنيات الأحدث
مثل الانتشار الكامن (المستخدمة في
الانتشار المستقر) تقوم بالعملية في
مساحة كامنة مضغوطة لزيادة السرعة بشكل كبير على
وحدات معالجة الرسومات الاستهلاكية.
تطبيقات واقعية
يمتد تعدد استخدامات نماذج الانتشار عبر مختلف الصناعات، مما يدعم الأدوات التي تعزز الإبداع و
وسير العمل الهندسي.
-
توليد البيانات الاصطناعية: قد يكون الحصول على بيانات واقعية موسومة مكلفًا أو حساسًا للخصوصية.
يمكن لنماذج الانتشار توليد كميات هائلة من البيانات الواقعية
واقعية لتدريب نماذج
قوية للكشف عن الكائنات. على سبيل المثال، يمكن
يمكن للمهندس توليد الآلاف من الصور الاصطناعية للعيوب الصناعية النادرة لتدريب
YOLO11 لضمان الجودة.
-
إنشاء صور عالية الدقة: أدوات مثل DALL-E 3,
Midjourney، و
تستفيد Adobe Firefly من الانتشار لتحويل المطالبات النصية إلى
أعمال فنية وأصول احترافية.
-
التصوير الطبي: في مجال الرعاية الصحية، تساعد نماذج الانتشار في
الاستبانة الفائقة، وإعادة بناء أشعة
عالية الجودة في التصوير بالرنين المغناطيسي أو التصوير المقطعي المحوسب من مدخلات منخفضة الدقة، مما يساعد في
تحليل دقيق للصور الطبية.
-
توليف الفيديو والصوت: يمتد المفهوم إلى ما هو أبعد من الصور الثابتة ليشمل البيانات الزمنية. نماذج مثل
Sora من OpenAI وأدوات من
Runway ML تطبق مبادئ الانتشار لتوليد تسلسلات فيديو متماسكة و
ومقاطع صوتية واقعية.
تنفيذ العملية الأمامية
لفهم كيفية إعداد نماذج الانتشار للبيانات للتدريب، من المفيد تصور العملية الأمامية. فيما يلي
التالية PyTorch المقتطف البرمجي التالي يوضح كيفية إضافة
إلى tensor لمحاكاة خطوة واحدة من التدهور.
import torch
def add_gaussian_noise(image_tensor, noise_level=0.1):
"""Simulates one step of the forward diffusion process by adding noise.
Args:
image_tensor (torch.Tensor): Input image tensor.
noise_level (float): Standard deviation of the noise.
"""
noise = torch.randn_like(image_tensor) * noise_level
noisy_image = image_tensor + noise
return noisy_image
# Create a dummy tensor representing a 640x640 image
clean_img = torch.zeros(1, 3, 640, 640)
noisy_output = add_gaussian_noise(clean_img, noise_level=0.2)
print(f"Output shape: {noisy_output.shape} | Noise added successfully.")
ومن خلال عكس هذه العملية، يتعلم النموذج استعادة الإشارة من الضوضاء، مما يتيح توليد
المرئيات المعقدة التي يمكن استخدامها لزيادة مجموعات البيانات للمهام النهائية
مثل تجزئة الصور أو تصنيفها.