الرئيسية / LA 101 / الوحدة 8 / الدرس 1
وضع القصص

التدرجات ومصفوفات جاكوبي

يُعمّم التدرج المشتقة إلى أبعاد متعددة، وتمتده مصفوفة جاكوبي إلى الدوال ذات القيم المتجهية، ويلتقط الهيسيان انحناء الرتبة الثانية — معًا يُشكّلون الأساس الرياضي لكل التحسين الحديث.

~20 دقيقة قراءة و8 · د1 متوسط

ما هو التدرج؟

في حساب المتغير الواحد، تقيس المشتقة f′(x) مقدار تغير f لكل وحدة تغير في x. عندما تعتمد f على متغيرات متعددة — مثل f(x₁, x₂, …, xₙ) — نحتاج إلى كائن أكثر ثراءً يلتقط جميع الاتجاهات التي يمكن أن تتغير فيها f. هذا الكائن هو التدرج، ويُرمز له بـ ∇f (تُقرأ "نابلا f" أو "ديل f").

تدرج دالة قيمية حقيقية f : ℝⁿ → ℝ عند نقطة x هو متجه جميع مشتقاتها الجزئية:

التدرج
\nabla f(\mathbf{x}) = \begin{pmatrix} \frac{\partial f}{\partial x_1} \\ \frac{\partial f}{\partial x_2} \\ \vdots \\ \frac{\partial f}{\partial x_n} \end{pmatrix} \in \mathbb{R}^n
التدرج ∇f(x) ∈ ℝⁿ هو متجه عمودي من المشتقات الجزئية. يقيس كل مكوّن ∂f/∂xᵢ معدل التغير اللحظي لـ f عند تغير xᵢ فقط. يقع التدرج في نفس فضاء الإدخال x، لا في فضاء الخرج.

التدرج دائمًا متجه عمودي بنفس بُعد الإدخال x، حتى لو كانت f قيمةً حقيقيةً. هذه الاتفاقية البُعدية حاسمة: حين نكتب قاعدة السلسلة أو طريقة نيوتن في صيغة مصفوفية، يجب أن يكون التدرج متجهًا حتى تكون حواصل ضرب المصفوفة والمتجه مُعرَّفةً جيدًا.

تُحسب المشتقات الجزئية بالتفاضل بالنسبة إلى متغير واحد مع إبقاء جميع الأخرى ثابتة. مثلًا، إذا كانت f(x₁, x₂) = x₁² + 3x₁x₂ + x₂³، فإن ∂f/∂x₁ = 2x₁ + 3x₂ و∂f/∂x₂ = 3x₁ + 3x₂²، وبالتالي ∇f = [2x₁ + 3x₂, 3x₁ + 3x₂²]ᵀ.

التدرج باعتباره اتجاه الصعود الأشد

الفهم الهندسي الأعمق للتدرج يكمن في علاقته بـ المشتقة الاتجاهية. بالنسبة لمتجه وحدوي v ∈ ℝⁿ (‖v‖ = 1)، المشتقة الاتجاهية لـ f في اتجاه v عند النقطة x هي:

المشتقة الاتجاهية
D_{\mathbf{v}} f(\mathbf{x}) = \lim_{h \to 0} \frac{f(\mathbf{x} + h\mathbf{v}) - f(\mathbf{x})}{h} = \nabla f(\mathbf{x}) \cdot \mathbf{v} = \nabla f(\mathbf{x})^T \mathbf{v}
المشتقة الاتجاهية D_v f(x) هي حاصل الضرب النقطي للتدرج مع الاتجاه الوحدوي v. بمتراجحة كوشي-شوارتز، تُعظَّم |D_v f| ≤ ‖∇f‖ حين يكون v موازيًا لـ ∇f، أي أن ∇f يشير في اتجاه أكبر زيادة في f.

بمتراجحة كوشي-شوارتز، يُعظَّم ∇f(x) · v (على جميع المتجهات الوحدوية v) حين يكون v = ∇f(x) / ‖∇f(x)‖ — أي حين يشير v في نفس اتجاه التدرج. أكبر مشتقة اتجاهية تساوي ‖∇f(x)‖. في المقابل، تنخفض f بأشد انحدار في اتجاه −∇f(x).

هذا هو المبدأ الأساسي وراء الهبوط بالتدرج: لتصغير f، نتخذ خطوات متكررة في اتجاه −∇f. كل خطوة تسير في اتجاه أشد انحدار محلي نزولًا. يُخبرنا ‖∇f(x)‖ بمدى انحدار السطح عند x — تدرج كبير يعني وجودك على منحدر شديد، وتدرج صغير يعني أنك قرب أرض مستوية (ربما حد أدنى أو أقصى أو نقطة سرج).

عند حد أدنى أو أقصى محلي لدالة ملساء، يكون ∇f(x) = 0 (المتجه الصفري). هذا هو الشرط الضروري من الرتبة الأولى للمثالية — شرط "الاستواء".

مصفوفة جاكوبي

حين تُعيَّن الدالة f من ℝⁿ إلى ℝᵐ (لا إلى عدد حقيقي واحد فحسب)، فإن لكل مكوّن من مكوّنات الخرج fᵢ تدرجه الخاص. تكديس هذه التدرجات كصفوف ينتج مصفوفة جاكوبي J، وهي التقريب الخطي الأساسي لدالة متجهية القيمة قرب نقطة ما.

مصفوفة جاكوبي
J(\mathbf{x}) = \frac{\partial \mathbf{f}}{\partial \mathbf{x}} = \begin{pmatrix} \frac{\partial f_1}{\partial x_1} & \cdots & \frac{\partial f_1}{\partial x_n} \\ \vdots & \ddots & \vdots \\ \frac{\partial f_m}{\partial x_1} & \cdots & \frac{\partial f_m}{\partial x_n} \end{pmatrix} \in \mathbb{R}^{m \times n}
مصفوفة جاكوبي m × n للدالة f : ℝⁿ → ℝᵐ لها عنصر Jᵢⱼ = ∂fᵢ/∂xⱼ. الصف i من J هو تدرج مكوّن الخرج fᵢ. العمود j يُظهر كيف تستجيب جميع المخرجات لاضطرابات في الإدخال xⱼ. لـ m = 1، تختزل J إلى ∇f ᵀ (متجه صفي).

جاكوبي هو أفضل تقريب خطي لـ f قرب x: f(x + δ) ≈ f(x) + J(x)δ للاضطرابات الصغيرة δ. هذا التخطي الخطي يقبع تحت طريقة نيوتن وتحليل الحساسية ومبرهنة الدالة الضمنية. إذا فكّرت في f كآلة تحوّل المدخلات إلى مخرجات، فإن جاكوبي يخبرك بدقة كيف تنتقل تغييرات الإدخال الصغيرة عبر الآلة لإنتاج تغييرات الخرج.

يقيس محدد جاكوبي (حين m = n) مدى تمدد الدالة أو ضغطها للحجوم محليًا. محدد يساوي 2 يعني أن الدالة تُضاعف جميع الحجوم محليًا. في الاحتمالات، يظهر محدد جاكوبي في صيغة تغيير المتغيرات للتوزيعات متعددة الأبعاد.

مثال محلول: الإحداثيات القطبية

نظر في التحويل من الإحداثيات القطبية إلى الديكارتية: f(r, θ) = (r cos θ, r sin θ). جاكوبي هو:

جاكوبي الإحداثيات القطبية
J(r,\theta) = \begin{pmatrix} \cos\theta & -r\sin\theta \\ \sin\theta & r\cos\theta \end{pmatrix}, \quad \det(J) = r
جاكوبي التحويل من القطبي إلى الديكارتي له محدد det(J) = r cos²θ + r sin²θ = r. لهذا السبب عنصر المساحة في الإحداثيات القطبية هو r dr dθ — محدد جاكوبي r يُحوّل بين نظامَي الإحداثيات.

قاعدة السلسلة في صيغة مصفوفية

من أقوى استخدامات جاكوبي التعبير عن قاعدة السلسلة متعددة المتغيرات كحاصل ضرب مصفوفي بسيط. افترض g : ℝᵖ → ℝⁿ وf : ℝⁿ → ℝᵐ. التركيب h = f ∘ g يُعيَّن من ℝᵖ إلى ℝᵐ. تقول قاعدة السلسلة:

قاعدة السلسلة المصفوفية
J_h(\mathbf{t}) = J_f(\mathbf{g}(\mathbf{t})) \cdot J_g(\mathbf{t}), \quad \underbrace{(m \times p)}_{J_h} = \underbrace{(m \times n)}_{J_f} \cdot \underbrace{(n \times p)}_{J_g}
جاكوبي التركيب هو حاصل ضرب مصفوفتَي جاكوبي. J_h(t) هي m × p، وJ_f(g(t)) هي m × n، وJ_g(t) هي n × p. يجب أن تتوافق الأبعاد لحاصل الضرب المصفوفي. لـ f حقيقي وg متجهي، يختزل هذا إلى ∇h(t) = J_g(t)ᵀ ∇f(g(t)).

هذه القاعدة المصفوفية هي بالضبط ما يحدث في الانتشار الخلفي في الشبكات العصبية. الشبكة العميقة هي تركيب من دوال كثيرة: f = fₗ ∘ fₗ₋₁ ∘ ⋯ ∘ f₁. يُحسب تدرج الخسارة بالنسبة لمعاملات الطبقة k بضرب مصفوفات جاكوبي من طبقة الخرج إلى الطبقة k — أي بالتطبيق المتكرر للقاعدة المصفوفية. هذا هو الأساس الرياضي لمشكلتَي التدرجات المتلاشية والمتفجرة في الشبكات العميقة.

مصفوفة الهيسيان

تمامًا كما يُعمّم جاكوبي المشتقة الأولى، تُعمّم مصفوفة الهيسيان H(x) المشتقة الثانية لدوال متغيرات متعددة. لدالة قيمية حقيقية f : ℝⁿ → ℝ قابلة للتفاضل مرتين، الهيسيان هو مصفوفة n × n لجميع المشتقات الجزئية من الرتبة الثانية:

مصفوفة الهيسيان
H(\mathbf{x}) = \nabla^2 f(\mathbf{x}) = \begin{pmatrix} \frac{\partial^2 f}{\partial x_1^2} & \cdots & \frac{\partial^2 f}{\partial x_1 \partial x_n} \\ \vdots & \ddots & \vdots \\ \frac{\partial^2 f}{\partial x_n \partial x_1} & \cdots & \frac{\partial^2 f}{\partial x_n^2} \end{pmatrix} = H(\mathbf{x})^T
الهيسيان H(x) هو مصفوفة n × n بعنصر Hᵢⱼ = ∂²f/∂xᵢ∂xⱼ. بمبرهنة شوارتز (استمرارية المشتقات الجزئية الثانية)، H دائمًا متماثلة: Hᵢⱼ = Hⱼᵢ. الهيسيان هو جاكوبي التدرج: H = J(∇f).

الهيسيان دائمًا مصفوفة متماثلة (حين تكون المشتقات الجزئية مستمرة)، لذا تنطبق عليه مباشرةً جميع أدوات الوحدة 5 (التحليل الطيفي للمصفوفات المتماثلة، الإيجابية التعريفية). تُرمّز القيم الذاتية لـ H انحناء f في اتجاهات الانحناء الرئيسية:

توسيع تايلور من الرتبة الثانية لـ f حول نقطة x₀ هو:

توسيع تايلور من الرتبة الثانية
f(\mathbf{x}_0 + \boldsymbol{\delta}) \approx f(\mathbf{x}_0) + \nabla f(\mathbf{x}_0)^T \boldsymbol{\delta} + \tfrac{1}{2}\boldsymbol{\delta}^T H(\mathbf{x}_0) \boldsymbol{\delta}
يُقرّب توسيع تايلور من الرتبة الثانية الدالة f محليًا كتعبير تربيعي. الحد الخطي ∇f(x₀)ᵀδ يلتقط الانحدار؛ والحد التربيعي ½δᵀH(x₀)δ يلتقط الانحناء. هذا التقريب أساس طريقة نيوتن وخوارزميات التحسين شبه-نيوتنية.

الهيسيان هو العنصر الرئيسي في طريقة نيوتن للتحسين. عند كل تكرار x_k، تُصغّر طريقة نيوتن توسيع تايلور من الرتبة الثانية تمامًا: التحديث هو δ = −H(x_k)⁻¹ ∇f(x_k)، الذي يتطلب حل نظام خطي مع الهيسيان. إذا كان H موجب التعريف (مضمون قرب حد أدنى محلي)، يكون التحديث مُعرَّفًا جيدًا ويتقارب الأسلوب تربيعيًا. هذا يرتبط مباشرةً بتحليل تشولسكي (الوحدة 7): يتطلب حل نظام نيوتن H δ = −∇f تحليل تشولسكي للهيسيان.

التدرج وجاكوبي والهيسيان كتسلسل هرمي

يُساعد رؤية الكائنات الثلاثة كتسلسل هرمي من المشتقات لدوال قيمية حقيقية f : ℝⁿ → ℝ:

التطبيقات

تحليل الحساسية

في الهندسة، تحتاج أحيانًا إلى معرفة مدى حساسية خرج نظام ما لتغييرات صغيرة في المدخلات. إذا كانت f : ℝⁿ → ℝᵐ تُمثّل نظامًا فيزيائيًا، فإن جاكوبي J(x) عند نقطة التشغيل x يُكمّم هذه الحساسية: اضطراب δx في المدخلات يُنتج تغييرًا تقريبيًا في الخرج J(x)δx. القيم الشاذة لـ J تُشير إلى اتجاهات الإدخال الأكثر تأثيرًا في المخرجات.

معالجة الإشارات وتصميم الفلاتر

حين يُلاءَم معاملات الفلتر بتصغير دالة خسارة (مثل متوسط مربعات الخطأ بين الخرج المرغوب والفعلي)، يكون تدرج الخسارة بالنسبة لمعاملات الفلتر هو بالضبط الكمية التي يحتاجها الهبوط بالتدرج. في خوارزميات الفلترة التكيفية مثل LMS (أقل وسط مربع)، قاعدة التحديث هي: w_{k+1} = w_k − μ · ∇L(w_k).

التفاضل التلقائي

تُطبّق أطر التعلم العميق الحديثة (PyTorch وJAX وTensorFlow) التفاضل التلقائي (autograd)، الذي يحسب التدرجات بدقة (لا عدديًا) عبر تطبيق قاعدة السلسلة المصفوفية عبر رسم الحساب. الوضع الأمامي يحسب حاصل ضرب جاكوبي-متجه J(x)v؛ والوضع العكسي يحسب حاصل ضرب متجه-جاكوبي vᵀJ(x) (الذي يُعطي ∇f حين v = 1 للـ f الحقيقية). الوضع العكسي مُفضَّل حين m ≪ n، وهو بالضبط حالة دوال الخسارة القيمية الحقيقية في تدريب ML.


الأثر الهندسي

في NumPy وSciPy، تُحسب التدرجات عدديًا عبر الفروق المنتهية (numpy.gradient وscipy.optimize.approx_fprime). للتدرجات التحليلية للنماذج البارامترية، يُطبّق .backward() في PyTorch وjax.grad() في JAX التفاضل التلقائي العكسي بكفاءة. جاكوبي متاح عبر torch.autograd.functional.jacobian أو jax.jacobian. الهيسيان عبر torch.autograd.functional.hessian أو jax.hessian — لكن حساب الهيسيان الكامل يكلف O(n²) في الذاكرة ويُتجنب عادةً للـ n الكبير؛ بدلًا من ذلك تُحسب حواصل ضرب الهيسيان-متجه (Hv) في O(n) باستخدام تطبيق ثانٍ للتفاضل التلقائي.

أبرز النقاط

التدرج ∇f(x) ∈ ℝⁿ هو متجه المشتقات الجزئية الأولى لدالة قيمية حقيقية — يشير في اتجاه أشد صعود ويتلاشى عند النقاط الحرجة. جاكوبي J(x) ∈ ℝᵐˣⁿ يُكدّس تدرجات جميع مكوّنات m من الخرج — وهو أفضل تقريب خطي لدالة متجهية القيمة ويمنح قاعدة السلسلة صيغتها المصفوفية. الهيسيان H(x) ∈ ℝⁿˣⁿ هو مصفوفة المشتقات الجزئية الثانية المتماثلة — قيمه الذاتية تُرمّز الانحناء، وإيجابيته التعريفية تُحدد الحدود الدنيا المحلية، ويظهر في طريقة نيوتن وتوسيع تايلور من الرتبة الثانية. معًا تُشكّل هذه الكائنات الثلاثة الأساس الرياضي لكل التحسين الحديث في معالجة الإشارات والتعلم الآلي.