الهدف: بناء تصوّر ذهني لـ MLP وحساب عدد معاملاته.
MLP شبكة انتشار أمامي تتكوّن من طبقات كثيفة كاملة الاتصال.
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 معامل.
from torch import nn
model = nn.Sequential(
nn.Flatten(),
nn.Linear(28 * 28, 128),
nn.ReLU(),
nn.Linear(128, 10),
)«مخفية» تعني أن مخرجها ليس المدخل الخام ولا التنبؤ المسلَّم. إنها تبني تمثيلاً وسيطاً. لا ينبغي افتراض أن لكل عصبون معنى إنسانياً بسيطاً؛ فالتمثيل يكون في الغالب موزّعاً على عدة وحدات.
يعتمد المخرج على المهمة:
| المهمة | المخرج الخام |
|---|---|
| انحدار عددي | قيمة واحدة |
| تصنيف ثنائي | Logit واحد |
| تصنيف K صنف | K من Logits |
| علامات متعدّدة K | K من Logits مستقلّة |
Logit درجة غير مُطبَّعة. في التصنيف متعدّد الأصناف، ينتظر PyTorch عادةً الـ Logits
مباشرة؛ وتُطبّق CrossEntropyLoss بنفسها التحويل العددي المستقر المناسب.
softmax في النموذج قبل CrossEntropyLoss.كم معاملاً تحتوي Linear(20, 5)؟ ما بُعد المخرج لـ 7 أصناف متعارضة؟
20×5 + 5 = 105. يلزم 7 Logits.
احسب الأشكال والمعاملات لـ MLP بشكل 20 → 8 → 5 → 3، مع تضمين الانحيازات. اقترح لاحقاً
بديلاً أصغر بمقدار النصف مع تحديد ما تُبقيه ثابتاً للمقارنة. النجاح: كل مصفوفة موجَّهة
بشكل صحيح والبروتوكول لا يمسّ بمجموعة الاختبار.
القراءة: تُغيّر الطبقة الخطية البُعد الأخير فقط، ولا تمسّ حجم الدُّفعة. لتصنيف بـ K صنف،
تُنتج الطبقة الأخيرة بالضبط K من Logits. المزلق الرئيسي هو تطبيق دالة تنشيط للمخرج
تتعارض مع دالة الخسارة، مثلاً softmax قبل CrossEntropyLoss.