CrossEntropyLoss: هل تمرر الدرجات أم الاحتمالات؟
مدخل CrossEntropyLoss في PyTorch هو الدرجات غير المطبعّة، أي logits، لا احتمالات المخرج بعد Softmax. وفي هدف الفئة ذات الفهرس، تعادل العملية LogSoftmax ثم NLLLoss. [1]
قراءات عربية في العلوم والتقنية والطبيعة والثقافة، تبدأ بسؤال وتترك لك مساحة للاستكشاف.
2302 مقال
مدخل CrossEntropyLoss في PyTorch هو الدرجات غير المطبعّة، أي logits، لا احتمالات المخرج بعد Softmax. وفي هدف الفئة ذات الفهرس، تعادل العملية LogSoftmax ثم NLLLoss. [1]
Dropout في التدريب والتقييم يغير طريقة التعامل مع قيم التنشيط في الوحدة المحددة. أثناء التدريب تصفر nn.Dropout عناصر باحتمال p، وتحجّم المخرجات بعامل 1 ÷ (1 − p)؛ أثناء التقييم تكون الوحدة دالة هوية. [1]
إحصاءات BatchNorm ليست وصفًا للقيمة منفردة. في BatchNorm1d تحسب الوحدة متوسط القناة وتباينها في الدفعة أثناء التدريب؛ وعند تتبع الإحصاءات الجارية تستعمل المخزن الجاري في التقييم. [1]
أبعاد LayerNorm تتحدد من normalized_shape: تحسب الوحدة المتوسط والتباين على الأبعاد الأخيرة التي يحددها هذا الشكل. لا يكفي اسم LayerNorm للقول إن محورًا معينًا مستبعد من الحساب. [1]
جمع الوصلات المتبقية في الصيغة الأساسية يجمع F(x) والمدخل x عنصرًا بعنصر. ليس ضم القائمتين، ولا يعني إسقاط حساب الفرع F؛ تعرض ورقة ResNet الجمع قبل التنشيط اللاحق. [1]
عدد معاملات الشبكة يتحدد من أشكال طبقاتها وإعداداتها، لا من وصف «عميقة» أو «عريضة» وحده. في nn.Linear موثقة، شكل الأوزان out_features × in_features، ويضاف متجه إزاحة بطول out_features عند تفعيله. [1]
الحالة المخفية في RNN تتغير مع المدخل الحالي والحالة السابقة، بينما يعاد استعمال معاملات الطبقة في خطوات التسلسل. تعرض شفرة PyTorch هذه العلاقة مع تنشيط Tanh أو ReLU. [1]
قطع تاريخ التدرج يحد اعتماد المشتقة على خطوات سابقة في الحساب المتكرر. يصف المصدر الاقتطاع عبر الزمن تقريبًا للتدرج الكامل؛ لا يلزم أن نمحو قيمة الحالة التي تدخل الخطوة التالية. [1]
التوقف المبكر واستعادة الأوزان خياران مترابطان لكنهما مختلفان: الأول يقرر متى ينتهي التدريب، والثاني يحدد نسخة الأوزان النهائية. سنقرأ قاعدة قبول التحسن في تنفيذ Keras محدد، لا نستنتجها من اسم «الأفضل» وحده.
حفظ حالة استئناف التدريب يبدأ بتحديد ما سيحتاجه العمل التالي. تحميل قيم النموذج لإنتاج مخرج يختلف عن متابعة تدريب يعتمد أيضًا على حالة المحسن ومكان التوقف. سنفحص محتويات سجل توضيحي، دون إنشاء ملف نموذج أو تشغيله.
تحجيم الخسارة وفك تحجيم التدرج مرحلتان لا نستبدل إحداهما بالأخرى. توضح أمثلة PyTorch أن backward بعد تحجيم الخسارة ينتج تدرجات محجمة، وأن فحصها أو قصها يحتاج إلى فك التحجيم أولًا. [1]
requires_grad والتدرج المخزن ليسا حقلًا واحدًا. في PyTorch 2.8، يغير ضبط راية التدرج الراية، بينما يحتفظ وصف الحالة بحقل grad منفصل. ويختار SGD المعاملات ذات التدرج غير None للتحديث. [1][2]
مجموعات المعاملات ومعدل التعلم تحتاج إلى قائمة عضوية واضحة: ما المعامل الذي ينتمي إلى كل مجموعة، وأي إعداد تجاوز القيمة العامة؟ ليست تسمية «قاعدة» و«رأس» كافية لتحديد الأرقام التي يقرأها المحسن في خطوته.
DDP وتقسيم المدخلات ليسا وعدًا واحدًا. تصف PyTorch الحاوية بأنها تزامن تدرجات نسخ النموذج، وتنبه إلى أنها لا تجزئ المدخل عبر الأجهزة بنفسها؛ يحدد المستخدم توزيع البيانات، مثل اختيار موزع مناسب. [1]
توازي النموذج وتقسيم الطبقات يمكن أن يضعا أجزاء مختلفة من الحساب على أجهزة مختلفة. في تقسيم المراحل الموثق، تملك المرحلة جزءها ومعاملاته، وتتواصل المراحل لنقل القيم اللازمة. [1]
توازي خط الأنابيب والدفعات الصغيرة يرتب أجزاء مختلفة من النموذج لتعمل على دفعات مختلفة في وقت واحد، مع بقاء اعتماد كل دفعة على ناتج المرحلة السابقة. يصف بحث GPipe هذا التداخل. [1]
إعادة حساب التفعيلات تستبدل حفظ بعض القيم الوسيطة بإنتاجها مجددًا عند الحاجة أثناء الحساب الخلفي. توثق PyTorch هذا التبادل بين عمل حسابي إضافي وذاكرة التفعيلات. [1]
النسيان الكارثي في التعلم المستمر يشير إلى تراجع أداء مهمة سبق تعلمها بعد تدريب متتابع على مهمة أخرى. يربط البحث الأصلي المشكلة بتغير المعاملات التي كانت مهمة للأداء السابق. [1]