انتقل إلى المحتوى الرئيسي

الشبكة مزدوجة الرأس وشبكة الباقي

من أهم ابتكارات AlphaGo Zero البنيوية هو استخدام الشبكة مزدوجة الرأس (Dual-Head Network) بدلاً من تصميم الشبكتين المنفصلتين في AlphaGo الأصلي. هذا التغيير الذي يبدو بسيطاً أدى إلى تحسين ملحوظ في الأداء وعملية تعلم أكثر أناقة.

هذه المقالة ستحلل بعمق مبادئ تصميم هذه البنية، أساسها الرياضي، ولماذا هي فعالة جداً.


تصميم الشبكة مزدوجة الرأس

البنية الكلية

الشبكة العصبية في AlphaGo Zero يمكن تقسيمها إلى ثلاثة أجزاء:

دعونا نحلل كل جزء بالتفصيل.

العمود المشترك (Shared Backbone)

العمود المشترك هو شبكة باقي عميقة (ResNet)، مسؤولة عن استخراج الميزات من حالة اللوحة.

تفاصيل البنية

المكونالمواصفات
طبقة الإدخالتلافيف 3×3، 256 قناة
كتل الباقي40 كتلة (أو 20 في النسخة المخففة)
كل كتلة باقيطبقتا تلافيف 3×3، 256 قناة
دالة التنشيطReLU
التطبيعBatch Normalization

التمثيل الرياضي

لنفرض أن الإدخال هو x (الأبعاد 17 × 19 × 19)، إخراج العمود المشترك هو:

f(x) = ResNet_40(Conv_3x3(x))

حيث f(x) (الأبعاد 256 × 19 × 19) هو تمثيل الميزات عالي الأبعاد.

Policy Head (رأس السياسة)

Policy Head مسؤول عن التنبؤ باحتمالية الحركة لكل موقع.

تفاصيل البنية

إخراج العمود المشترك (256 × 19 × 19)

تلافيف 1×1 (قناتان)

Batch Normalization

ReLU

تسطيح (2 × 19 × 19 = 722)

طبقة كاملة الاتصال (362)

Softmax

الإخراج: 362 احتمالية (361 موقع + Pass)

التمثيل الرياضي

π = Softmax(FC(Flatten(ReLU(BN(Conv_1x1(f(x)))))))

الإخراج π هو متجه بـ 362 بُعداً، جميع العناصر غير سالبة ومجموعها 1.

Value Head (رأس القيمة)

Value Head مسؤول عن التنبؤ بنسبة الفوز للوضع الحالي.

تفاصيل البنية

إخراج العمود المشترك (256 × 19 × 19)

تلافيف 1×1 (قناة واحدة)

Batch Normalization

ReLU

تسطيح (1 × 19 × 19 = 361)

طبقة كاملة الاتصال (256)

ReLU

طبقة كاملة الاتصال (1)

Tanh

الإخراج: نسبة الفوز [-1, 1]

التمثيل الرياضي

v = Tanh(FC_1(ReLU(FC_2(Flatten(ReLU(BN(Conv_1x1(f(x)))))))))

الإخراج v في النطاق [-1, 1]:

  • v = 1: اللاعب الحالي سيفوز حتماً
  • v = -1: اللاعب الحالي سيخسر حتماً
  • v = 0: القوى متعادلة

لماذا مشاركة العمود؟

الفهم الحدسي

"أين يجب أن ألعب الحركة التالية" (Policy) و"من سيفوز" (Value) هما سؤالان يحتاجان فهم نفس أنماط اللوحة:

  • شكل الأحجار: أي الأشكال جيدة، وأيها سيئة
  • النفوذ: أي جانب أكبر، وأين يوجد مساحة
  • الحياة والموت: أي الأحجار حية، وأيها في كو
  • القتال: أين يوجد هجوم وقتل، وما هي نتيجة القتال المحلي

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

منظور التعلم متعدد المهام

من منظور التعلم الآلي، هذا نوع من التعلم متعدد المهام (Multi-task Learning):

L = L_policy + L_value

المهمتان تتشاركان التمثيل الأساسي، وهذا يجلب عدة فوائد:

1. تأثير التنظيم

مشاركة المعاملات تعادل تنظيماً ضمنياً. إذا كانت ميزة مفيدة فقط لـ Policy وليس Value (أو العكس)، يصعب تضخيمها بشكل مفرط.

عدد المعاملات الفعلي أقل من عدد معاملات شبكتين مستقلتين.

2. كفاءة البيانات

كل مباراة تولّد في نفس الوقت تسميات Policy (احتمالية بحث MCTS) وتسميات Value (الفوز/الخسارة النهائي). العمود المشترك يجعل كلا التسميتين تُستخدمان لتدريب الميزات المشتركة، مما يحسن كفاءة استخدام البيانات.

3. إشارات التدرج الغنية

تدرجات المهمتين تتدفق إلى العمود المشترك:

∂L/∂θ_shared = ∂L_policy/∂θ_shared + ∂L_value/∂θ_shared

هذا يوفر إشارات إشراف أغنى، ويجعل الميزات المشتركة أكثر متانة.

الأدلة التجريبية

تجارب الاستئصال من DeepMind أظهرت أن الشبكة مزدوجة الرأس تتفوق بشكل ملحوظ على الشبكتين المنفصلتين:

التكوينتقييم ELOالفارق النسبي
شبكتا Policy + Value منفصلتانالأساس-
شبكة مزدوجة الرأس (عمود مشترك)+300 ELO~65% فارق في نسبة الفوز

فارق 300 ELO يعني أن الشبكة مزدوجة الرأس لها نسبة فوز حوالي 65% على الشبكتين المنفصلتين. هذا تحسين ملحوظ.


مبادئ شبكة الباقي

معضلة الشبكات العميقة

قبل اختراع ResNet، واجهت الشبكات العصبية العميقة مفارقة:

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

هذه هي مشكلة التدهور (Degradation Problem):

  • خطأ التدريب يزداد مع العمق (ليس فرط التكيف، بل صعوبة التحسين)
  • التدرج يتلاشى تدريجياً أثناء الانتشار العكسي (Vanishing Gradient)
  • معاملات الطبقات العميقة يكاد يكون من المستحيل تحديثها بفعالية

تصميم كتلة الباقي

في 2015، اقترح هي كايمينغ وآخرون حلاً بسيطاً وأنيقاً: اتصال الباقي (Skip Connection).

التمثيل الرياضي

الشبكة التقليدية: تتعلم التحويل المستهدف H(x)

y = H(x)

شبكة الباقي: تتعلم تحويل الباقي F(x) = H(x) - x

y = F(x) + x

لماذا اتصال الباقي فعال؟

1. طريق التدرج السريع

اعتبر تدرج الانتشار العكسي:

∂L/∂x = ∂L/∂y × ∂y/∂x = ∂L/∂y × (1 + ∂F(x)/∂x)

المفتاح هو ذلك +1. حتى لو كان ∂F(x)/∂x صغيراً جداً أو صفراً، التدرج لا يزال يمكنه المرور مباشرة عبر +1.

هذا مثل بناء "طريق تدرج سريع"، يسمح للتدرج بالانتقال دون عوائق من طبقة الإخراج إلى طبقة الإدخال.

2. تحويل الهوية أسهل للتعلم

إذا كان الحل الأمثل قريباً من تحويل الهوية (H(x) ≈ x)، فإن:

  • الشبكة التقليدية: تحتاج تعلم H(x) = x، قد يكون صعباً
  • شبكة الباقي: تحتاج فقط تعلم F(x) ≈ 0، أسهل نسبياً

تهيئة الأوزان بصفر أو قريباً من الصفر، كتلة الباقي تميل طبيعياً نحو تحويل الهوية.

3. تأثير التجميع

ResNet العميقة يمكن رؤيتها كـتجميع ضمني لكثير من الشبكات الضحلة. إذا كان هناك n كتلة باقي، المعلومات يمكن أن تتدفق عبر 2^n مسار مختلف.

هذا التأثير التجميعي يزيد متانة النموذج.

اختراق ResNet في ImageNet

ResNet حققت نتائج مذهلة في مسابقة ImageNet 2015:

العمقخطأ Top-5
VGG-19 (بدون باقي)7.3%
ResNet-345.7%
ResNet-1524.5%
مستوى البشر~5.1%

ResNet بـ152 طبقة ليس فقط قابلاً للتدريب، بل أفضل بكثير من VGG بـ 19 طبقة. هذا يثبت أن اتصال الباقي حل فعلاً مشكلة تدريب الشبكات العميقة.


ResNet بـ 40 طبقة في AlphaGo Zero

لماذا اختيار 40 طبقة؟

DeepMind اختبرت ResNet بأعماق مختلفة:

عدد كتل الباقيإجمالي الطبقاتتقييم ELO
511الأساس
1021+200
2041+400
4081+500

الشبكات الأعمق فعلاً أقوى، لكن العائد الحدي يتناقص. AlphaGo Zero يستخدم 20 أو 40 كتلة باقي:

  • AlphaGo Zero (نسخة الورقة): 40 كتلة باقي، 256 قناة
  • النسخة المخففة: 20 كتلة باقي، 256 قناة

تكوين 40 طبقة يحقق توازناً جيداً بين قوة اللعب وتكلفة التدريب.

التكوين المحدد

تكوين ResNet في AlphaGo Zero كالتالي:

تقدير عدد المعاملات

المكونعدد المعاملات (تقريباً)
تلافيف الإدخال17 × 3 × 3 × 256 ≈ 39K
كل كتلة باقي2 × 256 × 3 × 3 × 256 ≈ 1.2M
40 كتلة باقي40 × 1.2M ≈ 47M
Policy Head~1M
Value Head~0.2M
الإجمالي~48M

حوالي 48 مليون معامل، بالمعايير الحديثة هذه شبكة عصبية متوسطة الحجم.

دور Batch Normalization

بعد كل طبقة تلافيف هناك Batch Normalization (BN)، وهذا حاسم لاستقرار التدريب:

1. تطبيع قيم التنشيط

BN تطبّع قيم التنشيط في كل طبقة إلى متوسط 0 وتباين 1:

x_hat = (x - μ_B) / sqrt(σ_B² + ε)
y = γ × x_hat + β

حيث γ و β معاملات قابلة للتعلم.

2. تخفيف انزياح المتغيرات الداخلية

في الشبكات العميقة، توزيع الإدخال لكل طبقة يتغير مع تحديث معاملات الطبقات السابقة. BN تجعل توزيع الإدخال لكل طبقة مستقراً، وتسرع تقارب التدريب.

3. تأثير التنظيم

BN تستخدم إحصائيات mini-batch أثناء التدريب، مما يضيف عشوائية، ولها تأثير تنظيم خفيف.


المقارنة مع بنيات أخرى

مقابل CNN في AlphaGo الأصلي

الميزةAlphaGo الأصليAlphaGo Zero
نوع البنيةCNN قياسيResNet
العمق13 طبقة41-81 طبقة
اتصال الباقيلا يوجديوجد
عدد الشبكات2 (منفصلة)1 (مشتركة)
BNلا يوجديوجد

مقابل شبكات نمط VGG

VGG كانت الوصيفة في ImageNet 2014، تستخدم تكديس تلافيف 3×3:

الميزةVGGResNet
أقصى عمق قابل للتدريب~19 طبقة152+ طبقة
تدفق التدرجيتناقص طبقة بطبقةله طريق سريع
صعوبة التدريبصعب للطبقات العميقةقابل للتدريب للطبقات العميقة

مقابل Inception / GoogLeNet

Inception تستخدم تلافيف متعددة المقاييس بالتوازي:

الميزةInceptionResNet
الميزةميزات متعددة المقاييستكديس عميق
التعقيدأعلىبسيط
ملاءمة الغوعاديةممتازة

تصميم ResNet البسيط أنسب للغو الذي يحتاج استدلالاً عميقاً.

مقابل Transformer

بنية Transformer المقترحة في 2017 حققت نجاحاً كبيراً في NLP. البعض حاول تطبيق Transformer على الغو:

الميزةResNetTransformer
الانحياز الاستقرائيمحلية (تلافيف)انتباه شامل
ترميز الموقعضمني (تلافيف)صريح
أداء الغوممتازممكن لكن ليس أفضل من ResNet
كفاءة الحسابأعلىأقل (O(n²))

لمشاكل مثل الغو ذات البنية المكانية الواضحة، الانحياز الاستقرائي لـ CNN/ResNet أنسب.


تحليل عميق لخيارات التصميم

لماذا استخدام تلافيف 3×3؟

AlphaGo Zero يستخدم تلافيف 3×3 طوال الوقت، وليس نوى تلافيف أكبر:

  1. كفاءة المعاملات: تلافيفان 3×3 لهما نفس مجال الرؤية كتلافيف 5×5 واحد، لكن معاملات أقل (18 مقابل 25)
  2. شبكة أعمق: بنفس عدد المعاملات، يمكن تكديس طبقات أكثر
  3. غير خطية أكثر: بين كل طبقة يوجد ReLU، يزيد القدرة التعبيرية

لماذا استخدام 256 قناة؟

256 قناة خيار تجريبي:

  • قليل جداً (مثل 64): قدرة تعبيرية غير كافية، لا يستطيع التقاط الأنماط المعقدة
  • كثير جداً (مثل 512): عدد المعاملات يتضاعف، تكلفة التدريب تزيد كثيراً، لكن تحسين قوة اللعب محدود

تجارب KataGo اللاحقة أظهرت أن عدد القنوات يمكن ضبطه حسب موارد التدريب:

  • موارد منخفضة: 128 قناة، 20 كتلة
  • موارد عالية: 256 قناة، 40 كتلة
  • موارد أعلى: 384 قناة، 60 كتلة

لماذا Policy Head تستخدم Softmax و Value Head تستخدم Tanh؟

Policy Head: Softmax

الحركة هي مشكلة تصنيف — اختيار واحد من 361 موقع (زائد Pass). إخراج Softmax يحقق:

  • جميع الاحتماليات غير سالبة: π_i >= 0
  • مجموع الاحتماليات 1: Σπ_i = 1

هذا يتوافق مع تعريف التوزيع الاحتمالي.

Value Head: Tanh

نسبة الفوز هي مشكلة انحدار — التنبؤ بقيمة مستمرة. نطاق إخراج Tanh هو [-1, 1]:

  • محدود: لا ينتج قيماً متطرفة
  • متماثل: الفوز والخسارة تُعالجان بتماثل
  • قابل للاشتقاق: يسهل حساب التدرج

استخدام Tanh بدلاً من إخراج غير محدود (مثل طبقة خطية) يمنع عدم استقرار التدريب.


تفاصيل التدريب

دالة الخسارة

الخسارة الكلية في AlphaGo Zero هي مجموع ثلاثة عناصر:

L = L_policy + L_value + L_reg

Policy Loss

تستخدم خسارة الإنتروبيا المتقاطعة، تجعل إخراج الشبكة يقترب من احتمالية بحث MCTS:

L_policy = -Σ π_MCTS(a) × log(π_net(a))

حيث:

  • π_MCTS(a) هي احتمالية بحث MCTS للإجراء a
  • π_net(a) هي الاحتمالية التي تخرجها الشبكة

Value Loss

تستخدم الخطأ التربيعي المتوسط (MSE)، تجعل إخراج الشبكة يقترب من الفوز/الخسارة الفعلي:

L_value = (v_net - z)²

حيث:

  • v_net هي نسبة الفوز المتنبأ بها من الشبكة
  • z هي نتيجة المباراة الفعلية (+1 أو -1)

Regularization Loss

تستخدم تنظيم L2 لمنع فرط التكيف:

L_reg = c × ||θ||²

حيث c هو معامل التنظيم، وθ هي معاملات الشبكة.

تكوين المحسن

المعاملالقيمة
المحسنSGD + Momentum
الزخم0.9
معدل التعلم الأولي0.01
تناقص معدل التعلمتنصيف كل X خطوة
حجم الدفعة32 × 2048 = 64K (موزع)
معامل تنظيم L21e-4

تعزيز البيانات

لوحة الغو لها 8 تناظرات (4 دورات × 2 انعكاس). أثناء التدريب، كل وضع يمكن أن ينتج 8 عينات تدريب متكافئة.

هذا يجعل بيانات التدريب الفعالة تزيد 8 مرات، دون الحاجة للعب ذاتي إضافي.


اعتبارات التنفيذ

تحسين الذاكرة

تدريب ResNet بـ 40 طبقة يحتاج ذاكرة كبيرة:

  • الانتشار الأمامي: يحتاج تخزين قيم التنشيط لكل طبقة (للانتشار العكسي)
  • الانتشار العكسي: يحتاج تخزين التدرجات

استراتيجيات التحسين:

  1. نقاط فحص التدرج (Gradient Checkpointing): تخزين جزء فقط من قيم التنشيط، إعادة الحساب عند الحاجة
  2. التدريب بدقة مختلطة: استخدام FP16 لتقليل استهلاك الذاكرة
  3. التدريب الموزع: توزيع الدفعة على عدة GPU/TPU

تحسين الاستنتاج

أثناء الاستنتاج لا نحتاج إحصائيات mini-batch لـ BN، يمكن استخدام المتوسط المتحرك المتراكم أثناء التدريب:

x_hat = (x - μ_moving) / sqrt(σ_moving² + ε)

هذا يجعل الاستنتاج أسرع والنتائج حتمية.

التكميم والضغط

عند النشر يمكن ضغط الشبكة أكثر:

  • تكميم الأوزان: FP32 → INT8، الذاكرة تقل 4 مرات
  • التشذيب: إزالة الاتصالات ذات الأوزان الصغيرة
  • التقطير المعرفي: استخدام شبكة كبيرة لتدريب شبكة صغيرة

تطابق الرسوم المتحركة

المفاهيم الأساسية في هذه المقالة ورقم الرسوم المتحركة المقابل:

الرقمالمفهومالتطابق الفيزيائي/الرياضي
🎬 E3الشبكة مزدوجة الرأسالتعلم متعدد المهام
🎬 D12اتصال الباقيطريق التدرج السريع
🎬 D8الشبكة العصبية التلافيفيةمجال الرؤية المحلي
🎬 D10Batch Normalizationتطبيع التوزيع

قراءة موسعة


المراجع

  1. Silver, D., et al. (2017). "Mastering the game of Go without human knowledge." Nature, 550, 354-359.
  2. He, K., et al. (2016). "Deep Residual Learning for Image Recognition." CVPR 2016.
  3. Ioffe, S., & Szegedy, C. (2015). "Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift." ICML 2015.
  4. Caruana, R. (1997). "Multitask Learning." Machine Learning, 28(1), 41-75.
  5. Veit, A., et al. (2016). "Residual Networks Behave Like Ensembles of Relatively Shallow Networks." NeurIPS 2016.