البِرسِبترون متعدد الطبقات والتمثيلات المخفية

2 دقيقة

الهدف: بناء تصوّر ذهني لـ MLP وحساب عدد معاملاته.

MLP شبكة انتشار أمامي تتكوّن من طبقات كثيفة كاملة الاتصال.

text
a⁽⁰⁾ = x
z⁽ˡ⁾ = W⁽ˡ⁾a⁽ˡ⁻¹⁾ + b⁽ˡ⁾
a⁽ˡ⁾ = φ(z⁽ˡ⁾)

تحتوي الطبقة Linear(p, q) على p × q وزن وq انحياز، أي (p + 1)q معامل. لذا فإن نموذج 784 → 128 → 10 يحتوي على 784×128+128 + 128×10+10 = 101770 معامل.

python
from torch import nn

model = nn.Sequential(
    nn.Flatten(),
    nn.Linear(28 * 28, 128),
    nn.ReLU(),
    nn.Linear(128, 10),
)

الطبقات المخفية

«مخفية» تعني أن مخرجها ليس المدخل الخام ولا التنبؤ المسلَّم. إنها تبني تمثيلاً وسيطاً. لا ينبغي افتراض أن لكل عصبون معنى إنسانياً بسيطاً؛ فالتمثيل يكون في الغالب موزّعاً على عدة وحدات.

طبقة المخرج

يعتمد المخرج على المهمة:

المهمةالمخرج الخام
انحدار عدديقيمة واحدة
تصنيف ثنائيLogit واحد
تصنيف K صنفK من Logits
علامات متعدّدة KK من Logits مستقلّة

Logit درجة غير مُطبَّعة. في التصنيف متعدّد الأصناف، ينتظر PyTorch عادةً الـ Logits مباشرة؛ وتُطبّق CrossEntropyLoss بنفسها التحويل العددي المستقر المناسب.

المزالق

  • إضافة softmax في النموذج قبل CrossEntropyLoss.
  • عدّ طبقة المدخل طبقة ذات معاملات.
  • اختيار مئات الملايين من المعاملات دون بيانات ولا مبرّر.

تحقّق سريع

كم معاملاً تحتوي Linear(20, 5)؟ ما بُعد المخرج لـ 7 أصناف متعارضة؟

الأجوبة

20×5 + 5 = 105. يلزم 7 Logits.

نشاط الإتقان — ميزانية المعاملات

احسب الأشكال والمعاملات لـ MLP بشكل 20 → 8 → 5 → 3، مع تضمين الانحيازات. اقترح لاحقاً بديلاً أصغر بمقدار النصف مع تحديد ما تُبقيه ثابتاً للمقارنة. النجاح: كل مصفوفة موجَّهة بشكل صحيح والبروتوكول لا يمسّ بمجموعة الاختبار.

انتشار الأبعاد داخل MLP

القراءة: تُغيّر الطبقة الخطية البُعد الأخير فقط، ولا تمسّ حجم الدُّفعة. لتصنيف بـ K صنف، تُنتج الطبقة الأخيرة بالضبط K من Logits. المزلق الرئيسي هو تطبيق دالة تنشيط للمخرج تتعارض مع دالة الخسارة، مثلاً softmax قبل CrossEntropyLoss.