المستوى: مبتدئ
لو حاولت تفهم ازاي Midjourney أو Stable Diffusion بيرسم صورة من جملة "قطة فضائية بتلعب جيتار على المريخ"، الإجابة المختصرة: مش بيرسم. بيشيل نويز. المقال ده هيوضحلك Diffusion Models بمثال يخلّي الفكرة واضحة في 5 دقايق، وهتعرف ليه استبدلت GANs في 90% من تطبيقات توليد الصور بداية من 2022.
Diffusion Models: المفهوم اللي غيّر توليد الصور
المشكلة باختصار
قبل 2020، توليد الصور بالـ AI كان حكر على GANs (Generative Adversarial Networks) من Goodfellow 2014. المشكلة: الـ GAN صعب يتدرّب، بيقع في mode collapse (بيولّد نفس الصورة 1000 مرة)، وجودة الناتج بتتأرجح بين تدريب وتاني. في 2020، ورقة Ho et al. "Denoising Diffusion Probabilistic Models" غيّرت اللعبة. النهارده Stable Diffusion و DALL-E 3 و Midjourney كلهم Diffusion، مش GAN.
المثال اللي هيفهّمك الموضوع في 30 ثانية
تخيّل إنت نحات بتشتغل على بلوك رخام. النحات بيشيل من الرخام شوية شوية لحد ما يطلع التمثال. مش بيضيف رخام. بيشيل. السؤال اللي بيسأله نفسه كل ضربة شاكوش: "إيه الجزء اللي لو شيلته أبقى أقرب للتمثال اللي في دماغي؟"
الـ Diffusion Model بيشتغل بالظبط بنفس المنطق، لكن بدل الرخام عنده نويز (Noise). لو عايز يولّد قطة، بيبدأ بصورة مليانة نويز عشوائي، وبيشيل النويز خطوة خطوة لحد ما تظهر القطة. كل خطوة بيسأل نفسه: "إيه النويز اللي لو شيلته من الصورة دي، أبقى أقرب لقطة؟"
التعريف العلمي الدقيق
الـ Diffusion Model فيه عمليتين منفصلتين تمامًا:
- Forward Diffusion (وقت التدريب): بتاخد صورة قطة حقيقية وتضيف عليها نويز Gaussian على دفعات صغيرة. بعد 1000 خطوة بقتها نويز خالص (random noise). الموديل بيشوف كل خطوة وبيحفظ "الصورة كانت كده، بعد ما ضفت نويز كذا، بقت كده". ده الجزء اللي بيتدرّب عليه الـ U-Net.
- Reverse Diffusion (وقت التوليد): بتبدأ بنويز عشوائي خالص، والموديل بيحاول يعكس العملية. كل خطوة بيتنبّأ بالنويز اللي اتضاف ويشيله. بعد 25-50 خطوة، بيظهر الناتج النهائي.
الفكرة الرياضية اللي خلّت Diffusion ينجح: بدل ما الموديل يتعلّم توزيع P(x) المعقد للصور دفعة واحدة (اللي كان بيكسر GANs)، بيقسّم المسافة بين النويز والصورة على 1000 خطوة. كل خطوة تتعلّم تشيل شوية نويز فقط. مهمة أسهل بكتير وأكثر استقرار.
الفرق بين GAN و Diffusion في سطرين
- GAN: فيه شبكتين بتتقاتلوا. Generator بيولّد، Discriminator بيقول حقيقي ولا مزيف. التدريب صعب جدًا وبيتأرجح.
- Diffusion: شبكة واحدة (U-Net) بتتعلّم تتنبّأ بالنويز. تدريب مستقر، نتايج أحسن، لكن التوليد أبطأ.
أرقام حقيقية من ورقة Ho et al. 2020 على dataset CIFAR-10: الـ FID score (مقياس جودة، أقل = أحسن):