النماذج التوليدية2018متقدم12 دقيقة قراءة

Glow: التدفق التوليدي بالالتفافات القابلة للعكس 1×1

Glow: Generative Flow with Invertible 1×1 Convolutions

Kingma, D. P. · Dhariwal, P. — NeurIPS

المشكلة

في عام 2018 كانت النماذج التوليدية أمام معضلة ثلاثية الأطراف. شبكات GAN أنتجت صوراً حادة التفاصيل لكنها بلا مُرمِّز — أي لا تستطيع تحويل صورة حقيقية إلى تمثيل كامن — ولا توجد طريقة لحساب احتمالية أي صورة. نماذج VAE حسبت حدًّا أدنى تقريبيًّا للاحتمالية لكن عيّناتها جاءت ضبابية. النماذج الذاتية الانحدارية حسبت الاحتمالية بدقّة لكنها ولّدت بكسلاً واحداً في كل مرة — وهذا بطيء جداً مع الصور الكبيرة. لم يكن هناك واحد يجمع الثلاثة: احتمالية دقيقة، وتوليد متوازٍ سريع، وفضاء كامن قابل للاستخدام.

الإسهام

قدّم Glow ثلاث أفكار معمارية جديدة في مجال : أولاً، تسوية التنشيط (actnorm) التي تُغني عن تسوية الدُّفعات وتعمل بأي حجم دُفعة. ثانياً، التفافات 1×1 قابلة للعكس تُحوِّل تبديل القنوات من عملية ثابتة إلى خلط مُتعلَّم. ثالثاً، طبقة اقتران أفيني داخل بنية متعددة المقاييس تعتمد الضغط ثم التقسيم. هذه الابتكارات أنتجت معاً أول نموذج تدفقات يولّد صور وجوه واقعية عالية الدقة مع حساب الاحتمالية اللوغاريتمية بدقة — وأثبتت أن الصور الجيدة لا تحتاج تدريباً تنافسياً ولا استدلالاً تقريبياً.

الأثر

أثبت Glow أن التدفقات الطبيعية نموذج عملي وفعّال لتوليد صور عالية الدقة، إلى جانب شبكات GAN ونماذج VAE. أصبحت الالتفافة القابلة للعكس 1×1 مكوّناً أساسياً في كل بنى التدفقات التي جاءت بعدها. وأثّر إثبات أن تعظيم الاحتمالية وحده يكفي لإنتاج صور واقعية في مسار النمذجة التوليدية كاملاً، بما في ذلك تقنيات مطابقة التدفقات والتدفقات الطبيعية المستمرة التي تقف وراء الأساليب الحديثة القريبة من نماذج الانتشار.

تخيّل نافخة زجاج تُشكّل كتلة من الزجاج المنصهر. تبدأ بفقّاعة كروية تامّة الاستدارة (توزيع غاوسي)، ثم تُطبّق سلسلة من الحركات المدروسة — لفّ هنا، تمديد هناك، ضغط من جهة — وكل حركة منها يمكن التراجع عنها بالكامل — إلى أن يتّخذ الزجاج شكل مزهرية مُعقّدة.

السرّ أنه يمكنها أخذ أي مزهرية مكتملة وعكس الخطوات واحدة تلو الأخرى حتى تعود الفقّاعة الأصلية. هذه القابلية للعكس هي ما يُميّز التدفقات الطبيعية: على عكس النحّات الذي يُزيل قطعاً من الرخام ولا يستطيع إرجاعها، نافخة الزجاج تُحوِّل الشكل دون أن تفقد أي جزء من المادة.

Glow هو بمثابة وصفة لبناء نافخة زجاج كهذه. ابتكاره الجوهري أنه بدلاً من أن نُحدِّد مسبقاً كيف يُلوى الزجاج (تبديلات ثابتة)، نترك النموذج يتعلّم بنفسه اللَّفّة المُثلى في كل خطوة — وهذا تحديداً دور الالتفافة القابلة للعكس 1×1.

المعضلة الثلاثية التوليدية: لماذا احتجنا إلى التدفقات

بحلول عام 2018 كانت ثلاث عائلات من قد نضجت، لكن كلاً منها تفوّقت في جانب وعجزت في جانب آخر:

  • أنتجت أوضح الصور، لكنها خلت من — أي لا سبيل لتحويل صورة حقيقية إلى رمز في — كما أنها لا تُعطيك احتمالية أي صورة. فضلاً عن أن مشهور بعدم الاستقرار.
  • جمعت بين مُرمِّز و، لكنها حسّنت حدًّا أدنى للاحتمالية اللوغاريتمية () وليس الاحتمالية نفسها. هذه الفجوة التقريبية هي السبب المباشر في ضبابية العيّنات.
  • (مثل PixelCNN) حسبت الاحتمالية بدقّة، لكنها تُولّد بكسلاً واحداً في كل خطوة — من اليسار إلى اليمين ومن الأعلى إلى الأسفل — فيكون التوليد بطيئاً جداً ولا يقبل التوازي.

السؤال الطبيعي: هل يمكن لنموذج واحد أن يجمع الثلاثة — احتمالية دقيقة، وتوليد متوازٍ، وفضاء كامن ذو معنى؟ الجواب هو ما تُقدّمه التدفقات الطبيعية.

افتح في المختبر
قارن بين العائلات التوليدية الثلاث. التدفقات هي الوحيدة التي تجمع الخصائص الثلاث معاً.
تستيقظ التجربة عند وصولك…

المحرِّك الأساسي: قاعدة تغيير المتغيّرات

الأساس الرياضي لكل التدفقات الطبيعية هو قاعدة تغيير المتغيّرات. لنبنِ الحدس أولاً: تخيّل ورقة مطاطية عليها نقاط حبر موزّعة بانتظام. إذا مددتَ الورقة من جهة، تتباعد النقاط فتقلّ كثافتها في تلك المنطقة. وإذا ضغطتها من جهة أخرى تتقارب النقاط فتزداد الكثافة. هو بالضبط المقياس الرياضي لعامل التمدد أو الانضغاط هذا.

عملياً ننطلق من بسيط نعرف صيغته — عادةً توزيع غاوسي معياري pZ(z)=N(0,I)p_Z(\mathbf{z}) = \mathcal{N}(\mathbf{0}, \mathbf{I}). ثم نُمرِّره عبر تحويل قابل للعكس ff فنحصل على توزيع مُعقّد يُمثّل فضاء الصور x=f(z)\mathbf{x} = f(\mathbf{z}). قاعدة تغيير المتغيّرات تُعطينا كثافة التوزيع الناتج مباشرةً:

logp(x)=logpZ ⁣(f1(x))+log ⁣det ⁣(f1x)\log p(\mathbf{x}) = \log p_Z\!\bigl(f^{-1}(\mathbf{x})\bigr) + \log\!\left|\det\!\left(\frac{\partial f^{-1}}{\partial \mathbf{x}}\right)\right|
قاعدة تغيير المتغيّرات — المعادلة الأم للتدفقات الطبيعيةاللوغاريتم الاحتمالي لنقطة بيانات x يساوي اللوغاريتم الاحتمالي لرمزها الكامن z في التوزيع الغاوسي الأساسي، مع إضافة حدّ تصحيح (لوغاريتم محدِّد اليعقوبي) يُحاسب على مقدار التمدد أو الانضغاط الذي أحدثه التحويل.

الجميل أنه حين نُركِّب KK خطوة قابلة للعكس f=f1f2fKf = f_1 \circ f_2 \circ \dots \circ f_K، فإن لوغاريتم المحدِّد يتحوّل إلى مجموع بسيط: log ⁣det ⁣(f1x)=i=1Klog ⁣det ⁣(fi1hi1)\log\!\left|\det\!\left(\frac{\partial f^{-1}}{\partial \mathbf{x}}\right)\right| = \sum_{i=1}^{K} \log\!\left|\det\!\left(\frac{\partial f_i^{-1}}{\partial \mathbf{h}_{i-1}}\right)\right|

بهذا يتبلور التحدي التصميمي كلّه في سؤال واحد: كيف نبني دوالّ قابلة للعكس ويكون حساب محدِّد يعقوبيها رخيصاً حسابياً؟ هنا يأتي دور خطوة التدفق الثلاثية في Glow.

افتح في المختبر
اسحب المنزلق لترى كيف يُحوِّل التحويل القابل للعكس توزيعاً غاوسيًّا بسيطاً إلى توزيع معقّد. حدّ اليعقوبي يُعوِّض عن تغيّر الكثافة.
تستيقظ التجربة عند وصولك…

خطوة التدفق في Glow: تسوية التنشيط ← التفافة 1×1 ← طبقة الاقتران

كل خطوة تدفق في Glow مبنيّة من ثلاث قابلة للعكس تُنفَّذ واحدة تلو الأخرى. تخيّلها كخطّ إنتاج من ثلاث محطات: كل محطة تُعالج جانباً مختلفاً من التحويل، ولأن كل محطة قابلة للعكس وحدها يكون الخطّ بأكمله قابلاً للعكس.

افتح في المختبر
انقر على كل مرحلة لتعرف دورها. المراحل الثلاث تتركّب معاً في خطوة تدفق واحدة قابلة للعكس.
تستيقظ التجربة عند وصولك…
افتح في المختبر
شاهد كيف تخلط الالتفافة 1×1 القنوات. غيّر عناصر المصفوفة لترى كيف تتدفّق المعلومات بين القنوات.
تستيقظ التجربة عند وصولك…
ya=xa,yb=s(xa)xb+t(xa)\mathbf{y}_a = \mathbf{x}_a, \qquad \mathbf{y}_b = \mathbf{s}(\mathbf{x}_a) \odot \mathbf{x}_b + \mathbf{t}(\mathbf{x}_a)
الاقتران الأفيني — نصف يتحوّل ونصف يبقىنقسّم القنوات إلى نصفين. نصف يمرّ دون أي تعديل، والآخر يخضع لتحجيم وإزاحة بدوال مُتعلَّمة تعتمد على النصف الثابت. الحيلة أن اليعقوبي يبقى مثلثياً، فيكون محدِّده ببساطة حاصل ضرب معاملات التحجيم.

البنية متعددة المقاييس: اضغط، شغّل التدفق، قسِّم

خطوة تدفق واحدة لا تكفي لالتقاط كل تعقيد صورة طبيعية. لذلك يُكدِّس Glow KK خطوة تدفق في مستوى واحد، ثم يُكرّر البناء عبر LL مستوى في بنية متعددة المقاييس مأخوذة من RealNVP. في كل مستوى تحدث ثلاث عمليات:

  1. الضغط (Squeeze): نُعيد تشكيل كل مربع مكاني بأبعاد 2×2×c2 \times 2 \times c ليصبح 1×1×4c1 \times 1 \times 4c. فعلياً نستبدل الدقة المكانية بعمق القنوات، وهذا يتيح لالتفافات 1×1 اللاحقة أن تخلط معلومات من بكسلات متجاورة.
  2. KK خطوة تدفق: نُطبّق الخطوة الثلاثية (تسوية التنشيط ← التفافة 1×1 ← اقتران) KK مرة.
  3. التقسيم (Split): نقسّم القنوات إلى نصفين. النصف الأول يخرج مباشرة إلى الفضاء الكامن (بوصفه توزيعاً غاوسياً مُستقلاً). والنصف الثاني يستمر إلى المستوى التالي.

هذه البنية تُنتج فضاءً كامناً هرمياً: التقسيمات في المستويات المبكّرة تلتقط الملامح الكبيرة كالشكل العام والإضاءة، بينما التقسيمات المتأخرة تُرمِّز التفاصيل الدقيقة كالأنسجة والحواف. وإخراج نصف البيانات مبكّراً في كل مستوى يجعل التدريب أكفأ ويُقلّل استهلاك الذاكرة.

افتح في المختبر
استكشف البنية متعددة المقاييس. لاحظ كيف تتقلّص الدقة المكانية ويزداد عمق القنوات مع كل مستوى، بينما ينفصل نصف القنوات إلى الفضاء الكامن.
تستيقظ التجربة عند وصولك…

لماذا نتعلّم التبديل بدل تثبيته؟

في RealNVP كان تحديد أي قنوات تدخل xa\mathbf{x}_a وأيها تدخل xb\mathbf{x}_b أمراً ثابتاً — إمّا عكس الترتيب أو نمط رقعة الشطرنج. معنى ذلك أن طبقة الاقتران ترى التقسيم نفسه دائماً. الأمر أشبه بخلط رُزمة ورق بالطريقة ذاتها في كل مرة: لن تحصل أبداً على ترتيب مختلف فعلاً.

الالتفافة القابلة للعكس 1×1 في Glow هي تحويل خطّي مُتعلَّم كامل الرتبة يعمل على بُعد القنوات. وهي تُعمِّم ثلاثة خيارات بدرجات تصاعدية من القدرة التعبيرية:

  1. العكس الثابت (NICE) — صفر معاملات
  2. تبديل عشوائي ثابت (RealNVP) — صفر معاملات قابلة للتعلّم
  3. التفافة 1×1 مُتعلَّمة (Glow) — c2c^2 معاملاً قابلاً للتعلّم

نتائج الورقة أظهرت تحسّناً واضحاً ومتدرّجاً في الاحتمالية اللوغاريتمية عند الانتقال من الخيار الأول إلى الثاني فالثالث، وهذا يُؤكّد أن ترك النموذج يتعلّم كيف يُقسّم القنوات يُحسِّن القدرة التعبيرية للتدفق بشكل ملموس.

log ⁣det ⁣(conv2D(x;W)x)=hwlog ⁣det(W)\log\!\left|\det\!\left(\frac{\partial \text{conv2D}(\mathbf{x}; W)}{\partial \mathbf{x}}\right)\right| = h \cdot w \cdot \log\!\left|\det(W)\right|
لوغاريتم محدِّد الالتفافة 1×1بما أن المصفوفة W نفسها تُطبَّق على كل موضع مكاني بشكل مستقل، فإن لوغاريتم محدِّد الالتفافة الكاملة هو h×wh \times w نسخة من logdet(W)\log|\det(W)|. وبتحليل LU تصير تكلفة حساب det(W)\det(W) بتعقيد O(c3)O(c^3) مرة واحدة بدلاً من O((hwc)3)O((h \cdot w \cdot c)^3).

التدريب: عظِّم الاحتمالية اللوغاريتمية وكفى

من أجمل ما في Glow بساطة هدف التدريب. لا توجد لعبة تنافسية كما في الشبكات التوليدية التنافسية، ولا حدّ متغيّري كما في المُرمِّزات التلقائية المتغيّرة، ولا تفكيك ذاتي انحداري. هي ببساطة سالب الاحتمالية اللوغاريتمية مُعدَّلةً على مجموعة التدريب:

L=1Ni=1Nlogpθ(xi)\mathcal{L} = -\frac{1}{N} \sum_{i=1}^{N} \log p_\theta(\mathbf{x}_i)

وكل حدّ فيها يتفكّك عبر قاعدة تغيير المتغيّرات إلى احتمالية غاوسية لوغاريتمية مُضافاً إليها مجموع لوغاريتمات المحدِّدات — وهي كلّها كميّات نستطيع حسابها بدقّة تامة.

التوليد يسير بالاتجاه المعاكس: نسحب عيّنة من التوزيع الغاوسي zN(0,T2I)\mathbf{z} \sim \mathcal{N}(\mathbf{0}, T^2\mathbf{I}) ثم نُمرِّرها عبر f1f^{-1}. معامل TT يتحكّم في التوازن بين الجودة والتنوّع: قيمة منخفضة (مثلاً 0.7) تسحب العيّنات قرب المركز فتنتج صوراً أوضح لكن أقل تنوّعاً.

الاستكمال بالسهولة نفسها: نُرمِّز صورتين حقيقيتين إلى zA\mathbf{z}_A وzB\mathbf{z}_B في الفضاء الكامن، ثم نفكّ ترميز النقطة (1t)zA+tzB(1-t)\mathbf{z}_A + t\mathbf{z}_B حيث t[0,1]t \in [0, 1]. ولأن الفضاء الكامن توزيع غاوسي مُعايَر بإحكام، فإن السير بخطّ مستقيم فيه يُنتج انتقالات سلسة وذات معنى في فضاء الصور — ابتسامة تظهر تدريجياً، نظارات تبرز، لون شعر يتغيّر بسلاسة.

افتح في المختبر
استكشف الاستكمال في الفضاء الكامن. حرّك المنزلق للتنقل بين نقطتين مُرمَّزتين — لاحظ كيف يكون الانتقال سلساً ومحمَّلاً بالمعنى.
تستيقظ التجربة عند وصولك…

التعديل على السمات: حساب في الفضاء الكامن

بما أن مُرمِّز Glow يُحوِّل الصور إلى فضاء كامن غاوسي منتظم البنية، يصبح بإمكاننا إجراء عمليات حسابية لها معنى دلالي. لنأخذ سمة ثنائية مثل «الابتسام»:

  1. نُرمِّز جميع صور التدريب التي تحتوي ابتسامة ونحسب متوسط z+\mathbf{z}_{+}.
  2. نُرمِّز الصور التي لا تحتوي ابتسامة ونحسب z\mathbf{z}_{-}.
  3. اتجاه السمة هو الفرق بينهما: Δz=z+z\Delta\mathbf{z} = \mathbf{z}_{+} - \mathbf{z}_{-}.

لجعل أي وجه يبتسم: نُرمِّزه إلى z\mathbf{z}، نضيف αΔz\alpha \cdot \Delta\mathbf{z}، ثم نفكّ الترميز. التحكّم بقيمة α\alpha يُتيح ضبط مقدار الابتسامة بسلاسة. هذا ينجح لأن القابلية الدقيقة للعكس في التدفق تضمن أن المتجهات الكامنة القريبة من بعضها تُنتج صوراً قريبة من بعضها — وهي خاصية لا تستطيع الشبكات التوليدية التنافسية ضمانها.

افتح في المختبر
حرّك متجه السمة لترى كيف تتغيّر الصورة بسلاسة عند إضافة الاتجاه المُتعلَّم أو طرحه.
تستيقظ التجربة عند وصولك…

النتائج: حين تلتقي الاحتمالية الدقيقة بالتوليد الواقعي

حقّق Glow أفضل احتمالية لوغاريتمية بين نماذج التدفقات على مجموعة CIFAR-10 بمعدل 3.35 بت لكل بُعد، وكذلك على ImageNet بأبعاد 32×32 و64×64. لكن الأثر الأكبر كان في النتائج البصرية: صور وجوه بأبعاد 256×256 كانت في وقتها أكثر الصور واقعيةً من أي نموذج غير تنافسي مُدرَّب حصراً على تعظيم الاحتمالية.

البنية المستخدمة لتوليد وجوه CelebA-HQ كانت ضخمة: L=6L = 6 مستويات، وK=32K = 32 خطوة تدفق في كل مستوى، أي نحو 200 مليون معامل و600 طبقة التفافية تقريباً. استغرق التدريب على 8 وحدات معالجة رسومية نحو أسبوعين. هذه السعة الكبيرة كانت ضرورية لأن الصور عالية الدقة تتضمّن اعتماديات بعيدة المدى تحتاج نموذجاً بهذا الحجم لالتقاطها.

القيود والمقايضات

التدفقات الطبيعية تحمل قيوداً بنيوية لا مفرّ منها. كل تحويل يجب أن يكون قابلاً للعكس وأن يملك محدِّد يعقوبي قابلاً للحساب — وهذا يُضيِّق خيارات التصميم المعماري بشكل كبير. شرط القابلية للعكس يفرض أن يحمل الفضاء الكامن الأبعاد نفسها التي يحملها فضاء البيانات: صورة 256×256×3 تتحوّل إلى متجه كامن فيه 256×256×3 عنصر. هذا أضخم بكثير من الرمز الكامن المضغوط في المُرمِّز التلقائي المتغيّر أو الشبكة التوليدية التنافسية، ويطرح سؤالاً مشروعاً: هل مضغوط حقاً؟

من الناحية الحسابية، Glow مُكلف. توليد صورة واحدة 256×256 يتطلّب تشغيل نحو 600 طبقة التفافية بالعكس. واحتاج النموذج إلى قرابة 200 مليون معامل لتحقيق نتائج مقبولة، وهو رقم أكبر بكثير ممّا احتاجته الشبكات التوليدية التنافسية المعاصرة ذات الجودة المماثلة. ورغم أن شبكات GAN و اللاحقة تفوّقت على Glow في جودة الصور، يظلّ ضمان هو القوة الفريدة التي يتمتّع بها نموذج التدفقات.

الإرث: من Glow إلى التدفقات الحديثة

أثبت Glow أن التدفقات الطبيعية قادرة على التوسّع لتوليد صور عالية الدقة — وهي نتيجة أعادت الحيوية للمجال بأكمله. الالتفافة القابلة للعكس 1×1 أصبحت مكوّناً أساسياً في كل بنى التدفقات التي تلت، من Flow++ إلى WaveGlow (في توليد الصوت).

كما رسّخت الورقة نقطة جوهرية: نموذج يُحسَّن بهدف بسيط ومبدئي — تعظيم الاحتمالية — يستطيع إنتاج عيّنات مُقنعة بدون تدريب تنافسي. هذه الرؤية ألهمت لاحقاً تطوير التدفقات الطبيعية المستمرة (المعادلات التفاضلية العصبية) وأساليب مطابقة التدفقات، التي ترث ضمانات الاحتمالية الدقيقة والقابلية للعكس لكنها تعمل بديناميكيات زمن مستمر بدل الخطوات المنفصلة.

  1. 2014

    NICE (دينْه وآخرون)

    قدّمت طبقات الاقتران الإضافية وفكرة تركيب دوال بسيطة قابلة للعكس. كانت أول عرض عملي لقدرة التدفقات على نمذجة توزيعات الصور.

  2. 2016

    RealNVP (دينْه وآخرون)

    طوّرت طبقات الاقتران من إضافية إلى أفينية، وأضافت البنية متعددة المقاييس بأسلوب الضغط والتقسيم. جعلت التدفقات عملية وقابلة للتطبيق على الصور الطبيعية.

  3. 2018

    Glow (كينغما ودهاريوال)

    استبدل التبديلات الثابتة بالتفافات 1×1 قابلة للعكس ومُتعلَّمة، وقدّم تسوية التنشيط. أول نموذج تدفقات يولّد وجوهاً واقعية 256×256 مع احتمالية دقيقة.

  4. 2018

    المعادلات التفاضلية العصبية العادية (تشِن وآخرون)

    عمّمت خطوات التدفق المنفصلة إلى ديناميكيات زمن مستمر. التدفقات الطبيعية المستمرة تستعمل حلّال معادلات تفاضلية عادية بدل سلسلة محدودة من التحويلات.

  5. 2019

    Flow++ (هو وآخرون)

    حسّنت على Glow عبر التكميم العكسي المتغيّري والاقتران اللوجستي، ودفعت الاحتمالية اللوغاريتمية للتدفقات أقرب إلى مستوى النماذج الذاتية الانحدارية.

  6. 2022

    مطابقة التدفقات (ليبمان وآخرون)

    إطار تدريب أبسط للتدفقات الطبيعية المستمرة. يُقرِّب حقل السرعة مباشرةً دون الحاجة إلى حلّ معادلات تفاضلية مُكلفة أثناء التدريب. يقف وراء كثير من الأساليب الحديثة القريبة من نماذج الانتشار.

يقف Glow عند لحظة محورية في تاريخ النمذجة التوليدية: اللحظة التي أثبتت فيها التدفقات الطبيعية أنها قادرة على المنافسة في جودة الصور لا في الأناقة الرياضية فحسب. الحِيَل المعمارية المحددة — تسوية التنشيط، والالتفافات 1×1، والتقسيم متعدد المقاييس — صارت أدوات معيارية في المجال. وأمّا إثبات أن تعظيم الاحتمالية وحده يكفي لإنتاج صور واقعية فقد كان البذرة التي نمت وأثمرت ثورة مطابقة التدفقات.

المرجعKingma, D. P. & Dhariwal, P.. Glow: Generative Flow with Invertible 1×1 Convolutions. NeurIPS, 2018.

مصطلحات هذه الورقة