يقارن فحص التدرج مشتقات محسوبة بالتفاضل مع تقريب عددي. توثق PyTorch استعمال الفروق المركزية لتقريب مشتقة الدالة الحقيقية عند نقطة. [1]
الخلاصة السريعة
الفروق المركزية تقسم فرق قيمتين حول النقطة على ضعف الإزاحة؛ التقارب في مثال لا يثبت صحة كل مشتقة أو وجودها عند كل نقطة.
- لإزاحة موجبة h، يكون التقريب [f(w+h) − f(w−h)] ÷ (2h)؛ نفحص هنا دالة حقيقية ذات مدخل ومخرج واحدين. [1]
- لدالتنا f(w)=w³ عند w يساوي 2، المشتقة 12 والتقريب الحسابي الدقيق 12+h²؛ مع h يساوي 0.1 نحصل على 12.01.
- مع h يساوي 0.01 يكون التقريب 12.0001؛ لكن تقريب قيمتي الدالة إلى ثلاث منازل عند h يساوي 0.000001 يجعلهما 8.000، فيخرج صفر.
- لدالة القيمة المطلقة عند الصفر يكون الفرق المركزي صفرًا، رغم اختلاف المشتقتين الجانبيتين؛ الحساب لا يثبت قابلية الاشتقاق هناك.
ما الذي نقارنه؟
يعرض شرح PyTorch حساب المشتقات بطريقتين: التفاضل التلقائي وتقريب بالفروق المحدودة، ثم مقارنة الناتجين. في الحالة الحقيقية ذات المتغير الواحد، الصيغة المركزية هي فرق قيمتي الدالة عند إزاحتين متعاكستين، مقسومًا على ضعف مقدار الإزاحة. [1]
سنسمي الإزاحة h ونختارها موجبة، كي لا نخلطها بمعدل تعلم أو تحديث معاملات. نحن نقيّم الدالة حول نقطة ثابتة لنراجع مشتقة، لا نحاول تحسين خسارة. المثال يدوي، ولم نشغّل gradcheck أو نحصل على تقرير نجاح من مكتبة.
احسب فرق الدالة المكعبة
نختار f(w)=w³، والنقطة w تساوي 2. المشتقة التحليلية هي 3w²، فتساوي 12. نوسع (2+h)³ و(2−h)³: الفرق بينهما 24h + 2h³. عند القسمة على 2h يصبح التقريب المركزي 12 + h².
مع h يساوي 0.1، نحصل على 12.01؛ الفارق عن المشتقة 0.01. ومع h يساوي 0.01، نحصل على 12.0001؛ الفارق 0.0001. هذه نتائج جبرية دقيقة للصيغة المختارة، لا قياسات لخطأ حاسوب أو نموذج.
إذا كتب تنفيذ افتراضي مشتقة مقدارها 10 عند هذه النقطة، فالمقارنة تثير سؤالًا يستحق مراجعة الصيغة والبرنامج. لكن اتفاقها عند النقطة 2 وحدها لا يختبر كل مدخل أو كل فرع لدالة أخرى.
ماذا لو ضاعت الفروق الصغيرة؟
نصنع مثال تقريب يدوي مستقل: نضع h مساويًا 0.000001، ثم نقرب كل قيمة للدالة إلى ثلاث منازل عشرية قبل طرحها. قيمة (2+h)³ قريبة من 8.000012، وقيمة (2−h)³ قريبة من 7.999988. تصبح كلتاهما 8.000 وفق التقريب المعلن.
بعد التقريب، فرق القيمتين صفر، والقسمة على 0.000002 تعطي صفرًا أيضًا، مع أن المشتقة الأصلية 12. هذا لا يمثل خرج آلة نفذنا عليها الحساب؛ يبين كيف يمكن أن تحذف قاعدة تمثيل عددية مفروضة المعلومة التي نحتاجها.
لهذا لا نستنتج من نجاح تخفيض h مرة أن تصغيرها بلا حد سيحسن كل مقارنة. اكتب نقطة الفحص والإزاحة وطريقة تمثيل القيم وحد المقارنة قبل تفسير فرق صغير أو كبير.
هل الصفر العددي يعني وجود مشتقة؟
لدالة f(w)=القيمة المطلقة لـw، عند الصفر تكون قيمتا f(h) وf(−h) متساويتين، فيعطي الفرق المركزي صفرًا. لكن الميل من اليمين 1 ومن اليسار سالب 1، فلا توجد مشتقة واحدة في هذه النقطة.
لا يجعل التقريب المركزي قابلية الاشتقاق حقيقة بمجرد إخراج عدد. المثال المكعب كان قابلًا للاشتقاق، وهذه الحالة مختلفة. افحص تعريف الدالة والنقطة، لا الرقم الناتج وحده.
يمكن للفحص العددي أن يساعد على مراجعة مشتقة محددة، لكنه لا يثبت جودة تدريب أو صحة قرار نموذج. احتفظ بالحساب التحليلي والافتراضات إلى جانب التقريب، وسم النتيجة مقارنة موضعية وفق القيم التي فحصتها، دون ادعاء تحقق شامل لم تنفذه.
المصادر ومتابعة القراءة
- PyTorch v2.9.0: Gradcheck mechanics (يفتح في نافذة جديدة)raw.githubusercontent.com
أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.
