انتقل إلى المحتوى الرئيسي

الوحدة 2 — الجداء المصفوفي والمنقول والمعكوس

الجداء المصفوفي هو العملية المركزية في تعلّم الآلة. كلّ طبقة في شبكة عصبية، وكلّ تنبّؤ لنموذج خطّي، وكلّ إسقاط في تقليص الأبعاد جداءٌ مصفوفيّ. وفهمه ليس حفظ وصفة: بل رؤية المصفوفة تحويلاً يُطبَّق على البيانات.

الفكرة: مصفوفة تحوّل المتّجهات

ضرب مصفوفة WW في متّجه xx يعطي متّجهاً جديداً. عمليّاً، تأخذ WW خصائص xx وتعيد تركيبها:

y=Wxy = W x

لنموذج خطّي بثلاث خصائص ومخرج واحد، WW صفُّ أوزان وyy الدرجة المتنبَّأ بها: كلّ وزن يقول كم تزن الخاصّة المقابلة. ولطبقة شبكة، لـWW عدّة صفوف، وكلّ صفّ ينتج مخرجاً مختلفاً. والجداء المصفوفي يحسبها كلّها دفعةً واحدة.

قاعدة الأبعاد: الشيء الوحيد الذي لا يُنسى

(m×n)(n×p)=(m×p)(m \times n) \cdot (n \times p) = (m \times p)

البعدان الداخليان يجب أن يتطابقا (n = n)، والناتج يأخذ البعدين الخارجيين (m × p). هذا مصدر الخطأ الأول. والقراءة بصوت مسموع تساعد: «m في n، ضرب n في p، يعطي m في p».

import numpy as np

X = np.random.randn(100, 3) # 100 ملاحظة، 3 خصائص
W = np.random.randn(3, 1) # 3 أوزان، مخرج واحد
y = X @ W # (100, 3) @ (3, 1) = (100, 1)
y.shape # (100, 1) — تنبّؤ واحد لكلّ ملاحظة

المعامل @ في NumPy هو الجداء المصفوفي. والنقطة الحاسمة: الجداء غير تبديلي. X @ W وW @ X ليسا متساويين، بل قد لا يكونان معرَّفين أصلاً. والترتيب يرمّز معنى التحويل.

المنقول: تبديل الصفوف بالأعمدة

المنقول XTX^T يقلب المصفوفة حول قطرها: تصير الصفوف أعمدة. مصفوفة (n, d) تصير (d, n).

X.shape        # (100, 3)
X.T.shape # (3, 100)

يُستعمَل باستمرار لجعل شكلين متوافقين للجداء. والصيغة النجمة، الحاضرة في كلّ مكان في التعلّم، هي XTXX^T X: تحوّل مجموعة (n, d) إلى مصفوفة (d, d) تلخّص العلاقات بين الخصائص — قلب الانحدار الخطّي وتحليل المكوّنات الرئيسة في الوحدة 4.

المعكوس: «إبطال» تحويل

المعكوس A1A^{-1} هو المصفوفة التي تلغي AA: تطبيقُ إحداهما ثمّ الأخرى يعيد إلى نقطة البدء.

A1A=IA^{-1} A = I

حيث II مصفوفة الوحدة (آحاد على القطر، أصفار في ما عداه)، مكافئ العدد 1 مصفوفيّاً. والمعكوس يتيح حلّ الأنظمة: الحلّ الدقيق للانحدار الخطّي يُكتَب β=(XTX)1XTy\beta = (X^T X)^{-1} X^T y.

المعكوس عمليّاً: نادراً ما يُحسَب مباشرة

نظريّاً نحلّ بالمعكوس. عمليّاً لا نعكس صراحةً أبداً تقريباً: مكلفٌ وغير مستقرّ عدديّاً. تستعمل المكتبات np.linalg.solve(A, b) بدل np.linalg.inv(A) @ b، أسرع وأكثر استقراراً. وليست كلّ مصفوفة قابلةً للعكس: إن كانت خاصّتان مترابطتين تماماً (خطّية مشتركة)، فالمعكوس غير موجود — وهذا بالضبط ما يتيح النزول التدرّجي تجاوزَه، كما تبيّن الوحدة 6.

لماذا هو قلب التعلّم العميق

الشبكة العصبية تسلسل جداءات مصفوفية تفصلها دوالّ غير خطّية:

h1=f(W1x),h2=f(W2h1),h_1 = f(W_1 x), \quad h_2 = f(W_2 h_1), \quad \dots

كلّ WiW_i تحويلٌ متعلَّم، وكلّ جداء مصفوفي يعيد تركيب معلومات الطبقة السابقة. ولأجل تسريع هذه الجداءات — مليارات في الثانية — صارت بطاقات الرسوميات (GPU) لا غنى عنها للذكاء الاصطناعي، كما شرحت دورة المقدّمة.

الخلاصة

  • الجداء المصفوفي WxWx تحويل: يعيد تركيب خصائص متّجه؛ وهو العملية الأساس لكلّ طبقة وكلّ نموذج خطّي.
  • قاعدة الأبعاد: (m×n)·(n×p) = (m×p)؛ البعدان الداخليان يتطابقان. والجداء غير تبديلي.
  • المنقول يبدّل الصفوف بالأعمدة لجعل الأشكال متوافقة؛ وXTXX^T X يلخّص العلاقات بين الخصائص.
  • المعكوس يبطل تحويلاً ويحلّ الأنظمة، لكن نادراً ما يُحسَب صراحةً (solve بدل inv) وقد لا يوجد.

الوحدة التالية: المعايير والمسافات وتشابه جيب التمام — كيف تقيس حجم متّجه والقرب بين الملاحظات.