النماذج التوليدية2014متوسط9 دقيقة قراءة
الشبكات التوليدية التنافسية
Generative Adversarial Networks
Goodfellow, I. J. · Pouget-Abadie, J. · Mirza, M. · Xu, B. · Warde-Farley, D. · Ozair, S. · Courville, A. · Bengio, Y. — NeurIPS
المشكلة
قبل ظهور شبكات GAN، كانت النماذج التوليدية محاصَرة بين خيارين كلاهما محدود. النماذج التي تعتمد على كثافة احتمالية صريحة — مثل VAE — كانت تحتاج دوال أرجحية يمكن حسابها تحليلياً، وهذا يحدّ بشدّة من التوزيعات التي تستطيع تمثيلها. فوق ذلك، كان توليد العيّنات يتطلّب سلاسل ماركوف المُكلِفة حسابياً، وكانت الصور الناتجة ضبابية لأن النموذج يُراكم متوسّطاً بين أنماط متعددة. ببساطة، لم تكن هناك طريقة مباشرة لتدريب شبكة عصبية على إنتاج عيّنات حادّة وواقعية من توزيعات معقّدة وعالية الأبعاد دون تعريف دالة كثافة بشكل صريح.
الإسهام
شبكات GAN: إطار يتجاوز مسألة تقدير الكثافة الاحتمالية من أساسها. شبكتان عصبيتان تتنافسان في لعبة minimax — المُولِّد G يحوِّل ضجيجاً عشوائياً z إلى عيّنات مُصطنَعة، والمُميِّز D يحكم إن كانت العيّنة حقيقية أم مُزيّفة. يُدرَّب G على تعظيم أخطاء D، بينما يُدرَّب D على تقليلها. عند نقطة التوازن، يتعلّم G توليد التوزيع الحقيقي للبيانات ويُخرج D القيمة ½ لكل مُدخَل. لا سلاسل ماركوف، لا استدلال تقريبي، لا كثافة صريحة — فقط انتشار عكسي عبر شبكتين متنافستين.
الأثر
أشعلت شبكات GAN ثورة في الذكاء الاصطناعي التوليدي. منها تفرّعت DCGAN (تدريب التفافي مستقر)، وWGAN (مسافة واسرشتاين لاستقرار التدرُّجات)، وPix2Pix وCycleGAN (تحويل صورة إلى صورة)، وStyleGAN (توليد وجوه بجودة فوتوغرافية)، وألهمت في نهاية المطاف نماذج الانتشار. كما فتحت الباب لتطبيقات عملية مثل تحسين الدقة الفائقة، ، والتزييف العميق، واكتشاف الأدوية، وتوليد الفنّ. وصف يان لوكان التدريب التنافسي بأنه «أهمّ فكرة في العقد الأخير في تعلُّم الآلة».
تخيّل مزوِّر لوحات وأمينة متحف محبوسَين في منافسة لا تنتهي. المزوِّر يبدأ بلا أيّ مهارة — يرشّ ألواناً عشوائية على القماش — بينما الأمينة تكشف التزييف من اللوحات الأصلية بسهولة.
جولةً بعد جولة، يدرس المزوِّر أيَّ المُزيّفات خدعت الأمينة، وتدرس الأمينة كيف أفلتت تلك المُزيّفات. كلّ إخفاق يُعلِّم كلا الطرفين شيئاً جديداً. بعد آلاف الجولات، يُنتج المزوِّر لوحات لا تُميَّز عن أعمال رامبرانت — والأمينة لا تملك إلا التخمين.
هذا بالضبط ما تفعله الشبكة التوليدية التنافسية (GAN). هو المزوِّر، و هو الأمينة. المنافسة بينهما هي إشارة التدريب الوحيدة التي يحتاجها كلاهما.
المشكلة: توليد بيانات واقعية أمرٌ صعب
بحلول عام 2014، كانت النماذج التوليدية مُقسَّمة إلى معسكرين، وكلاهما يحمل قيداً جوهرياً:
-
نماذج الكثافة الصريحة (مثل المُرمِّز التبايني) تُعرِّف وتحاول تعظيم أرجحيتها. المشكلة أن الكثافات القابلة للحساب التحليلي أبسط من أن تلتقط تعقيد الصور الحقيقية، والتقريبات (الحدود التبايُنية) تُنتج مخرجات ضبابية لأن النموذج يُراكم متوسّطاً بين عدة احتمالات لإعادة البناء.
-
نماذج سلاسل ماركوف (مثل آلات بولتزمان) تستطيع تمثيل توزيعات معقّدة، لكنها تحتاج إلى عملية أخذ عيّنات تكرارية مُكلِفة — آلاف الخطوات لتوليد صورة واحدة.
لم ينجح أيٌّ من المعسكرين في إنتاج صور حادّة ومتنوعة من توزيعات معقّدة بكفاءة. فماذا لو أمكننا تدريب شبكة عصبية على إنتاج عيّنات مباشرةً — دون الحاجة إلى كتابة دالة كثافة أصلاً؟
الفكرة: اجعل شبكتين تتنافسان
البصيرة التي طرحها Goodfellow كانت تجاوز مسألة تقدير الكثافة بالكامل. بدلاً من أن تسأل «ما قيمة ؟»، اسأل «هل تستطيع التفريق بين عيّناتي المُصطنَعة والبيانات الحقيقية؟» — ثم درِّب شبكة عصبية وظيفتها الوحيدة الإجابة عن هذا السؤال.
يتألّف الإطار من لاعبين اثنين:
-
المُولِّد يأخذ ضجيجاً عشوائياً مسحوباً من توزيع بسيط (كالتوزيع الغاوسي) ويحوّله إلى عيّنة بيانات . فكِّر في كبطاقة وصفة: كل نقطة في تُنتج صورة مختلفة.
-
المُميِّز يستقبل إمّا عيّنة حقيقية من مجموعة البيانات أو عيّنة مُصطنَعة من المُولِّد، ويُخرج احتمال أن يكون المُدخَل حقيقياً.
يريد خداع ، و يريد كشف . هذا التنافس يُصاغ رياضياً كلعبة — والتنافس ذاته، لا دالة أرجحية، هو ما يقود عملية التعلُّم.
لعبة الأصغري-الأعظمي: جوهر تدريب GAN
قبل أن نرى الصيغة الرياضية، إليك الفكرة الجوهرية: المُميِّز يريد إعطاء درجات عالية للبيانات الحقيقية ودرجات منخفضة للمُزيّفات. المُولِّد يريد من المُميِّز أن يعطي درجات عالية لمُزيّفاته. كلاهما يُحسِّن نفس دالة الهدف لكن من جهتين متعاكستين — المُميِّز يُعظِّمها والمُولِّد يُصغِّرها.
خوارزمية التدريب: التحسين بالتناوب
يتناوب تدريب GAN بين خطوتين في كل تكرار:
الخطوة الأولى — تدريب المُميِّز. اسحب دفعة صغيرة من البيانات الحقيقية ودفعة من . ولِّد عيّنات مُصطنَعة . حدِّث أوزان D لتعظيم . بهذا يتحسّن المُميِّز في التفريق بين الحقيقي والمُزيّف.
الخطوة الثانية — تدريب المُولِّد. اسحب دفعة جديدة من الضجيج . ولِّد عيّنات مُصطنَعة ومرِّرها إلى المُميِّز. حدِّث أوزان G لتعظيم (الصيغة العملية). بهذا يتحسّن المُولِّد في خداع المُميِّز.
النقطة الجوهرية هنا: عند تحديث G تُجمَّد أوزان D، والعكس صحيح. كل لاعب يتحسّن فقط في مواجهة الاستراتيجية الحالية للاعب الآخر — تماماً كنقلات متناوبة في مباراة شطرنج.
مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.
for epoch in range(num_epochs):
for real_batch in dataloader:
# ── الخطوة 1: تدريب المُميِّز ──
z = torch.randn(batch_size, latent_dim)
fake = G(z).detach() # لا نحسب تدرُّجات G هنا
loss_D = -( log(D(real_batch)) + log(1 - D(fake)) ).mean()
loss_D.backward()
optimizer_D.step()
# ── الخطوة 2: تدريب المُولِّد ──
z = torch.randn(batch_size, latent_dim)
fake = G(z)
loss_G = -log(D(fake)).mean() # الصيغة العملية
loss_G.backward()
optimizer_G.step()الضمانات النظرية: الأمثليّة والتقارب
أثبت Goodfellow نتيجتين نظريتين أساسيتين تُرسِّخان لعبة الأصغري-الأعظمي:
النتيجة الأولى: المُميِّز الأمثل. لأيّ مُولِّد ثابت G، يكون المُميِّز الأمثل هو:
النتيجة الثانية: الأمثل الشامل. عندما يكون المُميِّز في حالته المثلى، يتحوّل هدف المُولِّد إلى تصغير بين توزيع البيانات الحقيقية والتوزيع المُولَّد. هذا التباعد يساوي صفراً فقط عندما يكون التوزيعان متطابقين تماماً. أي أن النقطة المثلى الشاملة تتحقّق عند — حين يتعلّم المُولِّد إنتاج التوزيع الحقيقي بالضبط.
بنية المُولِّد والمُميِّز
في الورقة الأصلية، كلٌّ من G وD عبارة عن (شبكة كاملة الاتصال). يستخدم المُولِّد تنشيط في طبقاته المخفيّة ودالة سيجمويد في المخرَج لإنتاج قيم بكسل في النطاق [0, 1]. أمّا المُميِّز فيستخدم تنشيطات maxout مع للتنظيم، ودالة سيجمويد نهائية تُخرج احتمالاً.
الفكرة المحورية هنا: المُولِّد يتلقّى ذا أبعاد ثابتة (عادةً 100 بُعد) ويتعلّم تحويله إلى فضاء البيانات الأعلى بُعداً بكثير. تخيّل أنك تمدّ ورقة مسطّحة وتطويها — هذه الورقة هي توزيع الضجيج البسيط — حتى تغطّي كلّ التلال والوديان في مشهد البيانات الحقيقية. كل نقطة على الورقة تتحوّل إلى صورة واقعية مختلفة.
التحدّيات العملية: حين تنحرف المنافسة
لعبة الأصغري-الأعظمي أنيقة نظرياً لكنها هشّة عملياً. يُعاني تدريب GAN من مشكلتين شائعتين بشكل خاص:
-
. يكتشف المُولِّد بضعة مخرجات تخدع المُميِّز باستمرار، فيُكرّر إنتاج تلك المخرجات فحسب. الأمر أشبه بمزوِّر أتقن لوحة واحدة ويُعيد نسخها — جودة عالية لكن بلا أيّ تنوّع. عملياً، النموذج انهار إلى عدد محدود من أنماط التوزيع وتجاهل البقية.
-
عدم استقرار التدريب. إذا تفوّق المُميِّز بسرعة كبيرة، يرفض جميع المُزيّفات بثقة تقارب 1، فتصل تدرُّجات المُولِّد إلى ما يقارب الصفر — وهي مشكلة في سياق GAN. وبالعكس، إذا خدع المُولِّد المُميِّز تماماً، تتلاشى تدرُّجات المُميِّز. يجب أن يظلّ اللاعبان في توازن تقريبي — وهي معادلة دقيقة تجعل ضبط تدريب GAN أمراً صعباً بالتجربة.
عالجت أعمال لاحقة هذه المشكلات: DCGAN قدّمت بنيات التفافية مستقرة، وWGAN استبدلت تباعد جنسن-شانون بمسافة واسرشتاين لتدرُّجات أكثر سلاسة، والتسوية الطيفية (spectral normalization) حدّت من قدرة المُميِّز لمنعه من التغلُّب على المُولِّد.
لماذا شبكات GAN مهمّة: المزايا مقارنةً بالطرق السابقة
أبرزت الورقة عدة مزايا للإطار التنافسي:
-
لا حاجة لسلاسل ماركوف — تُولَّد العيّنات بتمريرة أمامية واحدة عبر المُولِّد. قارن ذلك بآلات بولتزمان التي تحتاج آلاف الخطوات لسحب عيّنة واحدة.
-
لا حاجة للاستدلال أثناء التدريب — بخلاف VAE، لا يوجد مُرمِّز ولا شبكة تعرُّف. كل ما يُستخدَم هو .
-
عيّنات حادّة — لأن المُولِّد يُدرَّب على خداع المُميِّز (وهو مُصنِّف ثنائي)، فعليه إنتاج مخرجات حادّة وواقعية. النماذج المبنيّة على الأرجحية تُراكم متوسّطاً بين الأنماط فتُنتج صوراً ضبابية.
-
المرونة — أيّ دالة قابلة للتفاضل يمكن أن تعمل كمُولِّد أو مُميِّز. الإطار لا يفرض قيوداً على بنية المُولِّد، بعكس نماذج الكثافة الصريحة التي تشترط استخدام عائلات توزيعات قابلة للحساب التحليلي.
ما الذي أطلقته شبكات GAN
2014
GAN — الورقة الأصلية
قدّمت الإطار التنافسي باستخدام بيرسبترونين متعددي الطبقات. ولّدت عيّنات ضبابية لكن واعدة على MNIST وCIFAR. أثبتت أن التنافس وحده كافٍ لقيادة التعلُّم التوليدي.
2015
DCGAN — شبكات GAN التفافية مستقرة
استبدلت البيرسبترونات ببنيات التفافية عميقة. تسوية الدُّفعات والإرشادات البنيوية جعلت التدريب مستقراً لأول مرة، وأنتجت صور غرف نوم مُقنعة.
2016
Pix2Pix — تحويل صورة إلى صورة بأزواج
شبكات GAN شرطية تحوّل بين مجالات صور متزاوجة — حواف إلى صور، أقمار صناعية إلى خرائط، نهار إلى ليل. أثبتت أن دالة الخسارة التنافسية يمكن أن تعمل مشروطةً بمُدخَل مُهيكَل.
2017
WGAN — مسافة واسرشتاين بدلاً من JSD
استبدلت تباعد جنسن-شانون بمسافة واسرشتاين، ممّا وفّر تدرُّجات ذات معنى حتى عندما لا يتداخل التوزيعان. حسّنت استقرار تدريب GAN بشكل ملحوظ.
2017
CycleGAN — تحويل صور بلا أزواج
حوّلت بين مجالات الصور دون الحاجة إلى أمثلة متزاوجة — أحصنة إلى حمر وحشية، صيف إلى شتاء. قدّمت خسارة التناسق الدوري للحفاظ على المحتوى عند تغيير الأسلوب.
2019
StyleGAN — توليد وجوه بجودة فوتوغرافية
أنتجت أول وجوه مُولَّدة لا تُميَّز عن الصور الفوتوغرافية. مزج الأنماط والتحكُّم في الفضاء الكامن أتاحا تعديلاً دقيقاً لملامح الوجه.
2020
ELECTRA — التدريب المسبق التنافسي للّغة
طبّقت الفكرة التنافسية على اللغة: مُولِّد صغير يُنشئ رموزاً مُصطنَعة، ومُميِّز يكشفها. كل رمز يحصل على إشارة تدريب، ممّا جعل التدريب المسبق أكفأ بأربعة أضعاف مقارنةً بأسلوب التقنيع في BERT.
يمتدّ تأثير إطار GAN إلى ما هو أبعد بكثير من توليد الصور. فكرته الأساسية — التعلُّم عبر التنافس بدلاً من حساب الأرجحية الصريحة — زرعت بذور التدريب التنافسي في معالجة اللغة الطبيعية (ELECTRA)، وتكييف النماذج مع مجالات جديدة، وتعزيز البيانات، واختبار المتانة. وحتى بعد تفوُّق على GAN في جودة الصور واستقرار التدريب، يظلّ المبدأ التنافسي حاضراً في البنيات الهجينة ودوال الخسارة عبر مجال التعلُّم العميق.
المرجعGoodfellow, Pouget-Abadie, Mirza, Xu, Warde-Farley, Ozair, Courville, Bengio. Generative Adversarial Networks. NeurIPS, 2014.
مصطلحات هذه الورقة
- الشبكات التوليدية التنافسيةGenerative Adversarial Network (GAN)
- الموّلد التخليقيGenerator
- الـمُميِّز الحاكمDiscriminator
- الأصغري-الأعظميMinimax
- توازن ناشNash Equilibrium
- انهيار الأنماطMode Collapse
- الكثافة الضمنيةImplicit Density
- تباعد جنسن-شانونJensen-Shannon Divergence