التعلم العميق / أسس الموترات والتعلم / الدرس 3
المخرجات والدرجات الخام والخسائر المستقرة
طابق نوع الهدف وتمثيل الخرج واختزال الخسارة مع الحفاظ على الاستقرار العددي.
في هذه الصفحة
أهداف الدرس
- تمييز الدرجات الخام والاحتمالات والقرارات.
- حساب خسائر تصنيف مستقرة عددياً.
- اختيار مقام الاختزال وفق المهمة.
يحدد الهدف عقد الخرج
هدف الانحدار كمية مقيسة بوحدات محددة، بينما يحدد هدف التصنيف فئة وفق سياسة وسم. ينتج المصنف متعدد الفئات المتنافية عادة درجة خام غير مقيدة لكل فئة. يحولها softmax إلى درجات مطبعة، لكن التطبيع لا يضمن المعايرة في الاستخدام الفعلي. تختلف الوسوم الثنائية المستقلة عن فئة واحدة حصرية. وثق شكل الهدف وترتيب الفئات وسياسة الوسوم المفقودة ومدخلات الخسارة معاً؛ فقد تدرب خسارة صحيحة عددياً مهمة خاطئة إذا عومل فهرس الفئة ككمية مستمرة.
افصل حساب الاحتمال عن العتبة
الدرجات الخام أعداد حقيقية تسبق تحويل الاحتمال. تقابل الدرجة الثنائية z القيمة sigmoid(z)، وقد تغير العتبة القرارات دون إعادة تعلم z. تقيم الإنتروبيا المتقاطعة احتمال النتيجة المرصودة، بينما تقيم الدقة القرارات بعد العتبة أو اختيار أكبر درجة. لذلك قد تتساوى دقة نموذجين وتختلف خسارتهما بسبب الثقة. تتوقع بعض الخسائر درجات خاماً وتدمج التحويل بصورة مستقرة، وتتوقع أخرى احتمالات. يغير تطبيق softmax قبل خسارة تتوقع درجات خاماً الهدف نفسه؛ اقرأ عقد المدخل بدقة.
تجنب تكوين أسس كبيرة مباشرة
لا يتغير softmax بطرح ثابت مشترك من الدرجات. يحول طرح أكبر درجة دون فيضان الأسس الموجبة الكبيرة مع حفظ التوزيع. يحسب المثال الأول لوغاريتم مجموع الأسس ثم سالب لوغاريتم احتمال الفئة صفر دون أخذ لوغاريتم احتمال مقرب. تكشف الدرجات الكبيرة سبب التحويل العددي. هذا تنفيذ تعليمي لمدخلات منتهية؛ أما المكتبة العددية المراجعة فعليها معالجة أنواع الأعداد والمدخلات غير المنتهية والتدرجات والأجهزة، وهي أمور لا ينفذها هذا البرنامج الصغير.
from math import exp, log
z = [1000.0, 999.0]
m = max(z)
log_partition = m + log(sum(exp(v - m) for v in z))
loss = log_partition - z[0]
probabilities = [exp(v - log_partition) for v in z]
print([round(p, 6) for p in probabilities])
print(f"loss={loss:.6f}")
[0.731059, 0.268941]
loss=0.313262
يحفظ طرح أكبر درجة الفروق النسبية ويتجنب حساب exp(1000).
استخدم هوية مستقرة للخسارة الثنائية
يمكن كتابة خسارة الإنتروبيا الثنائية من الدرجة الخام بالصورة max(z,0) - z*y + log1p(exp(-abs(z))). يفحص المثال تنبؤاً صحيحاً واثقاً وآخر خاطئاً واثقاً وثالثاً غير واثق. تعاقب الخسارة الخطأ الواثق بشدة، بينما تسجل الدقة خطأ واحداً فحسب. اختيار الاختزال مستقل: مجموع الرموز ومتوسط الأمثلة ومتوسط الرموز الصالحة تعطي أوزاناً مختلفة. في السلاسل المحشوة اقسم على عدد الأهداف الصالحة وفق الهدف المعلن، وعالج الدفعة التي تخلو منها بصورة صريحة.
from math import exp, log1p
def binary_loss(z, y):
assert y in (0, 1)
return max(z, 0) - z * y + log1p(exp(-abs(z)))
for z, y in [(1000.0, 1), (1000.0, 0), (0.0, 1)]:
print(f"{z:.1f}, {y}: {binary_loss(z, y):.6f}")
1000.0, 1: 0.000000
1000.0, 0: 1000.000000
0.0, 1: 0.693147
تبقى القيم منتهية لهذه الدرجات الكبيرة؛ والصفر المطبوع يعكس دقة العرض.
افحص ثوابت الهدف قبل مقارنة النماذج
جهز حالات متوقعة صغيرة: تعطي الدرجات المتساوية احتمالات متساوية، ولا تغير الإزاحة المشتركة softmax، ويخفض التنبؤ الصحيح الواثق الخسارة، ولا تؤثر الأهداف المقنّعة في البسط أو المقام. وثق أثر أوزان الفئات أو تنعيم الوسوم في الهدف؛ فقد تفيد مهمة معينة لكنها تغير تفسير الخسائر وأحياناً تقديرات الاحتمال. قارن المرشحين بتعريف تقييم واحد صريح. يثبت انخفاض خسارة التدريب تحسناً في ذلك الحساب، ولا يثبت معايرة أفضل أو قبول أداء الفئات الفرعية أو فائدة القرارات خارج المثال.
الأخطاء الشائعة وإصلاحها
ارتفعت الخسارة بعد إضافة طبقة احتمالات
- لماذا يحدث؟
- استقبلت خسارة الدرجات الخام احتمالات ثم حولتها مرة أخرى.
- كيف تصلحه؟
- مرر درجات خاماً أو اختر خسارة موثقة للاحتمالات.
- كيف تتجنب تكراره؟
- قارن درجة معلومة بحساب عددي مستقل.
أصبحت الخسارة لا نهائية لدرجات صحيحة كبيرة
- لماذا يحدث؟
- فاض الأس أو صار احتمال مقرب صفراً.
- كيف تصلحه؟
- استخدم الصيغة المستقرة التي تعمل على الدرجات الخام.
- كيف تتجنب تكراره؟
- اختبر درجات منتهية متطرفة وافحص القيم غير المنتهية.
هيمنت السلاسل الطويلة على المتوسط دون قصد
- لماذا يحدث؟
- اختلف المقام عن وحدة الترجيح المطلوبة.
- كيف تصلحه؟
- حدد هل تتساوى أوزان الأمثلة أم الرموز الصالحة.
- كيف تتجنب تكراره؟
- اعرض الأعداد واختبر أطوالاً متفاوتة.
اختبر فهمك
1. لماذا لا تتغير الاحتمالات عند إضافة 50 إلى جميع الدرجات؟
اعرض الحل المشروح
يتضاعف كل أس بالعامل نفسه exp(50)، فيختزل بين البسط والمقام. يستعمل طرح أكبر درجة هذا الثبات نفسه. لا يتغير ترتيب الفئات أو الإنتروبيا المتقاطعة، باستثناء آثار الدقة العددية الخاصة بالتنفيذ.
2. خسارتا هدفين صالحين هما 1 و3، وهناك موضعا حشو بقيم اعتباطية. ما المتوسط الصحيح للرموز الصالحة؟
اعرض الحل المشروح
احجب الحشو قبل الاختزال. البسط الصالح 1+3=4 والعدد الصالح اثنان، فيكون المتوسط اثنين. القسمة على أربعة تعطي واحداً وتجعل المقياس تابعاً لقرار الحشو بدلاً من الأهداف المرصودة.
أهم ما تعلمته
- طابق معنى الهدف مع عقد مدخل الخسارة.
- احسب خسائر التصنيف بصورة مستقرة من الدرجات الخام.
- يحدد القناع والاختزال وحدة الترجيح.