تقنية

تقليم قناة: هل القناع يحذف بُعدًا من الطبقة؟

تصفير وسط وسيط ذي ثلاثة مواضع ثم حذفه مع تعديل أوزان المرحلة التالية يبقي ناتج المثال 32، بخلاف 102 قبل القناع
رسم حسابي من إعداد بحر العلوم؛ لم نعد بناء شبكة.

قناع القناة وحذف البعد من الطبقة عمليتان ينبغي تمييزهما. يعرض دليل PyTorch تقليمًا بنيويًا يصفر اتصالات قنوات خرج كاملة. [1] سنقارن القناع بحذف موضع وسيط فعليًا في حساب خطي مؤلف.

الخلاصة السريعة

قناع المجموعة قد يبقي موضعها في الشكل؛ حذف هذا الموضع يحتاج أيضًا إلى تعديل ما يستقبله في الطبقة التالية، وفق شروط الحساب.

  • يصفر مثال ln_structured في PyTorch اتصالات قنوات خرج كاملة على المحور صفر، ويظل عرضه محتويًا مواضع القنوات المصفرة. [1]
  • في مثال خطي بلا ثوابت مضافة أو دوال تنشيط، ينتج تصفير الصف الأوسط وسيطًا قيمه 2 وصفر و 2؛ ما زالت ثلاثة مواضع رغم صفر أحدها.
  • حذف الموضع الأوسط مع وزنه المقابل 7 من الطبقة التالية يبقي الناتج 32 في المثال؛ حذف الموضع وحده يترك عقدي طول مختلفين.
  • التساوي هنا بين الحساب المقنع والحساب الأصغر المعدل، لا مع النموذج قبل القناع ولا مع كل بنية؛ لم نحذف قناة فعلية أو نقس زمنًا.

ما الذي يفعله القناع البنيوي المعروض؟

يستعمل دليل PyTorch ln_structured على المحور صفر لقنوات خرج طبقة التفاف، ويصفر جميع اتصالات القنوات المختارة. يعرض الوزن بعدها بمواضع القنوات نفسها، ومنها القنوات الصفرية. [1]

نأخذ من هذا المثال الفرق بين تصفير مجموعة وبقاء موضعها في جدول الوزن. لا نكرر معيار اختيار القنوات أو نستخرج ترتيب أهميتها؛ سنختار الصف الأوسط في مصفوفة صغيرة من عندنا.

نسمي موضع الخرج الوسيط «قناة» في تمريننا لتوضيح الاتصال بالمرحلة التالية. لا نقدم المصفوفة طبقة التفاف نفذناها، ولا نفترض أن كل حذف في شبكة كبيرة يماثل العملية الخطية البسيطة.

احسب الوسيط بعد تصفير المجموعة

نعلن حسابًا من مرحلتين خطيتين، دون ثوابت مضافة أو دوال تنشيط. للمصفوفة الأولى ثلاثة صفوف، كل منها قيمتان: الأول 1 و صفر؛ الأوسط 3 و 4؛ الأخير صفر و 2. نختار مدخلًا قيمتاه 2 و 1.

قبل القناع يعطي الصف الأوسط 3 × 2 + 4 × 1 = 10. نضع قناعًا يصفر الصف الأوسط كله، فتكون قيم الوسيط بعده 2 وصفر و 2. هناك ثلاثة مواضع باقية، لا وسيط بطول اثنين.

تقرأ المرحلة التالية الوسيط بثلاثة أوزان معلنة هي 5 و 7 و 11. بعد القناع يعطي الحساب 5 × 2 + 7 × صفر + 11 × 2 = 32. الصفر يلغي المساهمة الوسطى في هذا الحساب فقط.

ما التعديل اللازم عند الحذف الحقيقي؟

نؤلف تحويلًا ثانيًا يبدأ من الحساب المقنع: نحذف الصف الأوسط من المصفوفة الأولى فيبقى صفان وقيم الوسيط 2 و 2. ونحذف من قائمة أوزان المرحلة التالية وزن الموضع الأوسط 7، فتبقى 5 و 11.

الحساب الأصغر المعدل يعطي 5 × 2 + 11 × 2 = 32. تساوى الناتجان لأن المساهمة المحذوفة كانت صفرًا ولأننا حافظنا على ارتباط المواضع المتبقية بأوزانها، تحت الشروط الخطية المعلنة.

أما حذف الصف الأوسط وحده مع إبقاء قائمة المرحلة التالية بطول ثلاثة، فيترك وسيطًا بطول اثنين وعقد استقبال بطول ثلاثة. لا نقول إن أداة ستصلح ذلك تلقائيًا، ولا نملأ المدخل الناقص برقم اخترناه دون تعديل العقد.

إلى أي مقارنة ينتمي التساوي؟

قبل تصفير الصف كان الوسيط 2 و 10 و 2، والناتج الأصلي 5 × 2 + 7 × 10 + 11 × 2 = 102. إذن التساوي عند 32 بين القناع والحذف المعدل لا يثبت حفظ جواب النموذج قبل القناع.

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

يبين الرسم فصل قناع الثلاثة مواضع عن حذف الوسط وتعديل الطبقة التالية. لم ننفذ تقليمًا أو إعادة بناء نموذج أو قياس أداء. ما تحقق في الورقة هو توافق مواضع ومدخلات وحاصل جمع معلن.

المصادر ومتابعة القراءة

  1. PyTorch: Pruning Tutorial — structured example (يفتح في نافذة جديدة)docs.pytorch.org

أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.