الجبر الخطي للذكاء الاصطناعي
الشبكات العصبية والصور ونماذج اللغة تعمل جميعها على نفس المحرك: المتجهات والمصفوفات. يشرح هذا الدرس كل لبنة — من رقم واحد إلى القيم الذاتية — بلغة بسيطة، مع معادلات يمكنك قراءتها ورسوم يمكنك رؤيتها.
لماذا الجبر الخطي هو لغة الذكاء الاصطناعي؟
عندما تسمع أن شبكة عصبية لديها "ملايين المعاملات"، فهذه المعاملات مخزّنة كـمصفوفات. عندما تُدخل صورة إلى نموذج، تتحول إلى متجه (أو مجموعة متجهات). وعندما تتواصل طبقة مع أخرى، تكون العملية في الغالب ضرب مصفوفات. الجبر الخطي ليس موضوعًا جانبيًا اختياريًا — بل هو القواعد النحوية التي يتحدث بها كل نظام ذكاء اصطناعي.
إذا أكملت الدرس الأول، فأنت تعرف الأعداد والدوال والمعادلات. يضيف هذا الدرس الأدوات الهندسية والهيكلية التي تجعل الحوسبة الضخمة للذكاء الاصطناعي ممكنة على معالجات الرسوميات.
العدديات (Scalars)
العددية (Scalar) هي ببساطة رقم واحد — قيمة واحدة بلا اتجاه. درجة الحرارة (23°م)، معدّل التعلّم (0.001)، أو سطوع بكسل (0.87) كلها عدديات.
تُكتب العدديات عادة بحروف صغيرة مائلة: \(a\), \(b\), \(\lambda\), \(\eta\)
العمليات: جمع، طرح، ضرب، قسمة — حساب عادي.
\(c = a + b\), \(d = 3 \times a\), \(e = \dfrac{a}{b}\)
العدديات مقابل المتجهات مقابل المصفوفات
| الكائن | الأبعاد | مثال | دوره في الذكاء الاصطناعي |
|---|---|---|---|
| عددية | 0 أبعاد | \(5\), \(-0.3\) | معدّل التعلّم، قيمة الخسارة، وزن واحد |
| متجه | بُعد واحد (قائمة) | \([1, 2, 3]\) | عينة بيانات واحدة، تنشيطات طبقة |
| مصفوفة | بُعدين (جدول) | شبكة \(3\times3\) | كل أوزان طبقة |
الخسارة في نهاية التدريب هي عددية — رقم واحد يخبرك بمدى خطأ النموذج. معدّل التعلّم \(\eta\) عددية تتحكم بحجم الخطوة. وحتى عندما يكون كل شيء آخر مصفوفات ضخمة، تهتم غالبًا بعدديات مفتاحية: الدقة، الخسارة، معدّل التعلّم.
المتجهات (Vectors)
المتجه هو قائمة مرتبة من الأرقام. تخيّله سهمًا في الفضاء (له اتجاه وطول) أو ببساطة صفًا/عمودًا من البيانات.
متجه عمودي (الأشهر في الذكاء الاصطناعي): \(\mathbf{v} = \begin{bmatrix} v_1 \\ v_2 \\ \vdots \\ v_n \end{bmatrix}\)
متجه صف: \(\mathbf{v} = [v_1,\ v_2,\ \ldots,\ v_n]\)
البُعد (الطول): \(n\) — عدد العناصر
المقدار (الطول)
\(\|\mathbf{v}\| = \sqrt{v_1^2 + v_2^2 + \cdots + v_n^2}\)
مثال: \(\mathbf{v} = [3, 4]\) → \(\|\mathbf{v}\| = \sqrt{9+16} = 5\)
متجه الوحدة
متجه طوله 1. لتطبيع أي متجه، اقسمه على مقداره: \(\hat{\mathbf{v}} = \dfrac{\mathbf{v}}{\|\mathbf{v}\|}\)
منزل بسمات: المساحة = 120 م²، غرف النوم = 3، العمر = 10 سنوات. كمتجه: \(\mathbf{x} = [120,\ 3,\ 10]\). النموذج يقرأ هذا المتجه ويُخرج سعرًا متوقعًا.
كل مثال تدريبي هو متجه سمات. صورة رمادية 28×28 مُسطّحة تصبح متجهًا من 784 رقمًا. تضمينات الكلمات (Word2Vec، BERT) تربط كل كلمة بمتجه كثيف حيث تكون الكلمات المتشابهة قريبة من بعضها.
المصفوفات (Matrices)
المصفوفة شبكة مستطيلة من الأرقام مرتبة في صفوف وأعمدة. إذا كانت المصفوفة لها \(m\) صفًا و\(n\) عمودًا، نسميها مصفوفة \(m \times n\).
\[A = \begin{bmatrix} a_{11} & a_{12} & a_{13} \\ a_{21} & a_{22} & a_{23} \end{bmatrix} \quad \text{(مصفوفة } 2 \times 3\text{)}\]
العنصر \(a_{ij}\) = الصف \(i\)، العمود \(j\)
أشكال خاصة
- مصفوفة مربعة — نفس عدد الصفوف والأعمدة (\(n \times n\))
- متجه عمودي — مصفوفة \(n \times 1\)
- متجه صف — مصفوفة \(1 \times n\)
- المنقول \(A^T\) — تبديل الصفوف والأعمدة
إذا \(A = \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix}\)، فإن \(A^T = \begin{bmatrix} 1 & 3 \\ 2 & 4 \end{bmatrix}\)
طبقة متصلة بالكامل بـ 784 مدخل و128 خلية عصبية تخزّن أوزانها في مصفوفة \(128 \times 784\). دفعة من 32 صورة تُخزَّن كمصفوفة \(32 \times 784\) — 32 صفًا، صف لكل صورة. معالجات الرسوميات سريعة لأنها تضرب مصفوفات ضخمة بالتوازي.
عمليات المصفوفات
قبل ضرب المصفوفات، تحتاج الحساب الأساسي: الجمع والطرح والتحجيم — عنصرًا بعنصر، عندما تتطابق الأبعاد.
الجمع والطرح
نفس الأبعاد مطلوبة: \((m \times n) + (m \times n) = (m \times n)\)
\[\begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} + \begin{bmatrix} 5 & 6 \\ 7 & 8 \end{bmatrix} = \begin{bmatrix} 6 & 8 \\ 10 & 12 \end{bmatrix}\]
ضرب عددية
اضرب كل عنصر في العددية: \(3 \cdot \begin{bmatrix} 1 & 2 \\ 3 & 4 \end{bmatrix} = \begin{bmatrix} 3 & 6 \\ 9 & 12 \end{bmatrix}\)
الضرب العنصري (هادامارد)
\(A \odot B\) — ضرب العناصر المقابلة: \([1,2] \odot [3,4] = [3,8]\)
يُستخدم في بوابات شبكات LSTM/GRU وأقنعة الانتباه
مستشعران يقرآن درجات حرارة [20, 22] و[18, 21]. متجه الجمع = [38, 43]. إذا ضربت الثاني بـ 0.5 (تحويل وحدات): \(0.5 \times [18,21] = [9, 10.5]\).
الاتصالات المتبقية في ResNet تضيف مدخل الطبقة إلى مخرجها: \(\mathbf{y} = F(\mathbf{x}) + \mathbf{x}\). الإسقاط (Dropout) يُحجّم التنشيطات الباقية بـ \(\frac{1}{1-p}\) بعد تصفير بعض العناصر عشوائيًا. تطبيع الدفعة يطرح متجه المتوسط ويقسم على متجه الانحراف المعياري — كلها عمليات عنصرية على دفعات مخزّنة كمصفوفات.
ضرب المصفوفات
ضرب المصفوفات هو أهم عملية في التعلّم العميق. ليس عنصريًا — كل عنصر في الناتج يجمع صفًا كاملًا من المصفوفة الأولى مع عمود كامل من الثانية.
\(A_{m \times n} \cdot B_{n \times p} = C_{m \times p}\)
الأبعاد الداخلية يجب أن تتطابق: أعمدة \(A\) = صفوف \(B\)
\[c_{ij} = \sum_{k=1}^{n} a_{ik} \cdot b_{kj}\]
خصائص مهمة
- غير تبديلي: \(AB \neq BA\) عمومًا
- تجميعي: \((AB)C = A(BC)\)
- توزيعي: \(A(B+C) = AB + AC\)
المدخل \(\mathbf{x}\) بحجم \(784 \times 1\). الأوزان \(W\) بحجم \(128 \times 784\). الإزاحة \(\mathbf{b}\) بحجم \(128 \times 1\).
\[\mathbf{z} = W\mathbf{x} + \mathbf{b} \quad \text{(الناتج: } 128 \times 1 \text{)}\]
كل خلية من الـ 128 تحسب مجموعًا مرجّحًا لكل الـ 784 مدخل — ضرب المصفوفات ينفّذ الكل دفعة واحدة.
تقريبًا كل طبقة في المحوّل أو CNN (بعد im2col) أو MLP تُنفَّذ كـ GEMM — ضرب مصفوفات عام. مكتبات مثل cuBLAS وtorch.matmul في PyTorch موجودة فقط لتسريع هذه العملية. فهم الأبعاد يمنع الخطأ الأول للمبتدئين: عدم تطابق الأبعاد.
مصفوفة الوحدة (Identity Matrix)
مصفوفة الوحدة \(I_n\) هي "الرقم 1" في عالم المصفوفات. فيها 1 على القطر و0 في كل مكان آخر. ضرب أي مصفوفة في \(I\) يتركها كما هي.
\[I_3 = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}\]
\[AI = IA = A\]
في آليات الانتباه، قناع بأسلوب الوحدة (القطر مسموح، الباقي محجوب) يمنع الرمز من "رؤية" الرموز المستقبلية. التهيئة الأولية للأوزان تبدأ أحيانًا قرب الوحدة للحفاظ على قوة الإشارة. الاتصالات المتخطية تضيف مسارًا هويًا فعليًا: المخرج = الطبقة(x) + x.
المصفوفة العكسية (Inverse Matrix)
العكس \(A^{-1}\) لمصفوفة مربعة \(A\) يلغي الضرب — كما أن \(\frac{1}{5}\) يلغي الضرب في 5.
\[A \cdot A^{-1} = A^{-1} \cdot A = I\]
فقط المصفوفات القابلة للعكس (غير المنفردة) لها عكس — عندما \(\det(A) \neq 0\)
صيغة 2×2: إذا \(A = \begin{bmatrix} a & b \\ c & d \end{bmatrix}\)، فإن \(A^{-1} = \dfrac{1}{ad-bc}\begin{bmatrix} d & -b \\ -c & a \end{bmatrix}\)
\(A = \begin{bmatrix} 2 & 1 \\ 5 & 3 \end{bmatrix}\)، \(\det = 2\cdot3 - 1\cdot5 = 1\)
\(A^{-1} = \begin{bmatrix} 3 & -1 \\ -5 & 2 \end{bmatrix}\). تحقق: \(AA^{-1} = I\) ✓
حساب \(A^{-1}\) صراحةً نادر في التعلّم العميق (مكلف جدًا للمصفوفات الضخمة). لكن فكرة العكس تظهر في حل الأنظمة الخطية، والمعادلات الطبيعية في الانحدار الخطي \(\mathbf{w} = (X^TX)^{-1}X^T\mathbf{y}\)، وتحويلات التبييض في المعالجة المسبقة. التحسين يفضّل الطرق التكرارية على العكس المباشر.
المحدد (Determinant)
المحدد \(\det(A)\) عددية واحدة تلتقط كيف تُحجّم المصفوفة المربعة المساحة (2D) أو الحجم (3D) عند تحويل الفضاء. إذا \(\det(A) = 0\)، المصفوفة تسحق الفضاء — ليس لها عكس.
2×2: \(\det\begin{bmatrix} a & b \\ c & d \end{bmatrix} = ad - bc\)
3×3: التوسع بالمكملات (مجموع منتجات القاصر الموقّعة)
\(\det(AB) = \det(A)\cdot\det(B)\)
محدد صفري يعني سمات مكررة — المصفوفة منفردة. في PCA، القيم الذاتية ترتبط بمحددات المصفوفات الفرعية. محددات يعقوبيان تظهر في التدفقات الطبيعية (نماذج توليدية) لتتبع تغيّر الكثافة تحت التحويل.
الرتبة (Rank)
رتبة المصفوفة هي أقصى عدد من الصفوف (أو الأعمدة) المستقلة خطيًا. تخبرك بمقدار المعلومات الحقيقية التي تحملها المصفوفة — كم بُعدًا يبقى بعد التحويل.
\(\text{rank}(A) \leq \min(m, n)\) لمصفوفة \(m \times n\)
رتبة كاملة: \(\text{rank} = \min(m,n)\) — بلا تكرار
رتبة منخفضة: الصفوف/الأعمدة تُبنى من متجهات مستقلة أقل
\(\begin{bmatrix} 1 & 2 & 3 \\ 2 & 4 & 6 \end{bmatrix}\) رتبتها 1 — الصف الثاني = 2× الصف الأول. اتجاه مستقل واحد فقط.
\(\begin{bmatrix} 1 & 0 \\ 0 & 1 \end{bmatrix}\) رتبتها 2 — كلا الاتجاهين مستقلان.
التقريب منخفض الرتبة يضغط مصفوفات أوزان ضخمة (ضبط LoRA يضيف تحديثات منخفضة الرتبة \(W + BA\)). انهيار الرتبة في المحوّلات قد يُفسد خرائط الانتباه. فهم الرتبة يساعدك على معرفة متى تكون التضمينات أو التنشيطات عالية الأبعاد حقًا مقابل وجودها في فضاء فرعي أصغر.
القيم الذاتية (Eigenvalues)
القيمة الذاتية \(\lambda\) تخبرك بمقدار تمدد المصفوفة لمتجهاتها الذاتية — اتجاهات خاصة تُحجّم فقط دون دوران عند تطبيق المصفوفة.
\[A\mathbf{v} = \lambda \mathbf{v}\]
\(\lambda\) قيمة ذاتية، \(\mathbf{v}\) المتجه الذاتي المقابل (\(\mathbf{v} \neq \mathbf{0}\))
أوجد القيم الذاتية بحل: \(\det(A - \lambda I) = 0\) (المعادلة المميّزة)
\(A = \begin{bmatrix} 4 & 1 \\ 2 & 3 \end{bmatrix}\). المعادلة المميّزة:
\((4-\lambda)(3-\lambda) - 2 = \lambda^2 - 7\lambda + 10 = 0\)
القيم الذاتية: \(\lambda_1 = 5\), \(\lambda_2 = 2\)
PCA يجد القيم الذاتية لمصفوفة التباين — أكبر القيم الذاتية = اتجاهات أقصى تباين في البيانات. التحليل الطيفي لـ Laplacian الرسوم يُشغّل الشبكات العصبية الرسومية. استقرار الشبكات المتكررة يُدرس عبر قيم مصفوفة الأوزان الذاتية (قيم > 1 قد تسبب انفجار التدرجات).
المتجهات الذاتية (Eigenvectors)
لكل قيمة ذاتية \(\lambda\)، المتجه الذاتي \(\mathbf{v}\) هو الاتجاه الذي تمدّده المصفوفة \(A\) بمعامل \(\lambda\) دون أن تُديره.
حل \((A - \lambda I)\mathbf{v} = \mathbf{0}\) لكل \(\lambda\)
مثال: لـ \(\lambda = 5\)، \(A = \begin{bmatrix} 4 & 1 \\ 2 & 3 \end{bmatrix}\):
\(\begin{bmatrix} -1 & 1 \\ 2 & -2 \end{bmatrix}\mathbf{v} = \mathbf{0}\) → \(\mathbf{v} = \begin{bmatrix} 1 \\ 1 \end{bmatrix}\) (أو أي مضاعف عددي)
القطرنة (Diagonalization)
إذا كان لـ \(A\) متجهات ذاتية مستقلة كافية، \(A = PDP^{-1}\) حيث \(D\) قطرية (القيم الذاتية على القطر) وأعمدة \(P\) هي المتجهات الذاتية. هذا يفكّك عمل المصفوفة المعقد إلى تحجيم بسيط على كل محور.
المكوّنات الرئيسية في PCA هي المتجهات الذاتية لمصفوفة التباين. في PageRank وGNNs، المتجه الذاتي السائد يكشف أهم درجات العقد. التحليل الذاتي يحوّل بنية التباين إلى محاور قابلة للتفسير للتصوير (t-SNE يبني على أفكار مشابهة).
الضرب النقطي (Dot Product)
الضرب النقطي (المنتج الداخلي) يضرب العناصر المقابلة ويجمعها. يقيس مدى توجّه متجهين في نفس الاتجاه.
\[\mathbf{a} \cdot \mathbf{b} = \sum_{i=1}^{n} a_i b_i = a_1b_1 + a_2b_2 + \cdots + a_nb_n\]
\[\mathbf{a} \cdot \mathbf{b} = \|\mathbf{a}\| \|\mathbf{b}\| \cos\theta\]
الناتج عددية
\(\mathbf{a}=[1,2,3]\), \(\mathbf{b}=[4,5,6]\): الضرب النقطي \(= 1\cdot4 + 2\cdot5 + 3\cdot6 = 32\)
فحص التعامد: \([1,0] \cdot [0,1] = 0\) — متجهان متعامدان
كل خلية عصبية تحسب ضربًا نقطيًا بين متجه أوزانها ومتجه المدخل (مع إزاحة). درجات الانتباه في المحوّلات ضرب نقطي مُحجّم \(\frac{QK^T}{\sqrt{d_k}}\). تشابه جيب التمام بين التضمينات هو الضرب النقطي للمتجهات المُطبّعة — يُستخدم في البحث وRAG وأنظمة التوصية.
الضرب الاتجاهي (Cross Product)
الضرب الاتجاهي ينطبق فقط على متجهات في 3D (أو النسخة العددية في 2D). ينتج متجهًا عموديًا على كليهما، بمقدار يساوي مساحة متوازي الأضلاع الذي يشكّلانه.
\[\mathbf{a} \times \mathbf{b} = \begin{bmatrix} a_2b_3 - a_3b_2 \\ a_3b_1 - a_1b_3 \\ a_1b_2 - a_2b_1 \end{bmatrix}\]
\(\|\mathbf{a} \times \mathbf{b}\| = \|\mathbf{a}\| \|\mathbf{b}\| \sin\theta\)
\(\mathbf{a} \times \mathbf{b} = -\mathbf{b} \times \mathbf{a}\) (غير تبديلي)
الضرب الاتجاهي أقل أهمية من النقطي في التعلّم العميق القياسي، لكنه يظهر في الرؤية ثلاثية الأبعاد (الأنصاف العمودية للسطح، هندسة الكاميرا)، الروبوتات، والشبكات العصبية المستنيرة بالفيزياء. الضرب الاتجاهي العددي في 2D (محدد متجهين 2D) يُستخدم في الهندسة الحاسوبية لاختبارات الاتجاه.
تحويلات المصفوفات (Matrix Transformations)
كل ضرب مصفوفات يمكن قراءته كـتحويل للفضاء: دوران، تحجيم، قص، أو إسقاط للمتجهات. المصفوفة آلة تنقل كل نقطة في الفضاء وفق قواعد ثابتة.
تحويلات شائعة
| التحويل | مصفوفة 2×2 | التأثير |
|---|---|---|
| تكبير x بـ 2، y بـ 3 | \(\begin{bmatrix} 2 & 0 \\ 0 & 3 \end{bmatrix}\) | تمديد المحاور |
| دوران بزاوية θ | \(\begin{bmatrix} \cos\theta & -\sin\theta \\ \sin\theta & \cos\theta \end{bmatrix}\) | تدوير الفضاء |
| قص (Shear) | \(\begin{bmatrix} 1 & k \\ 0 & 1 \end{bmatrix}\) | انحراف جانبي |
| إسقاط | مصفوفة رتبة 1 | طيّ على خط |
ركّب التحويلات بضرب المصفوفات: \(T_{\text{كلي}} = T_2 T_1\) (طبّق \(T_1\) أولًا، ثم \(T_2\))
التحويل الأفيني (في تكبير البيانات): \(\mathbf{y} = A\mathbf{x} + \mathbf{b}\)
مرشحات CNN تطبّق تحويلات خطية صغيرة محليًا على الصورة. تكبير البيانات يستخدم مصفوفات دوران/تحجيم على الصور. في المحوّلات، الترميز الموضعي يضيف متجهات منظمة ليعرف النموذج ترتيب الرموز. فهم التحويلات يساعدك على تشخيص لماذا تبدو البيانات المُكبّرة "خاطئة" أو لماذا تنهار السمات.
تطبيقات في الشبكات العصبية
كل مفهوم في هذا الدرس يلتقي داخل شبكة عصبية عاملة. إليك الخريطة الكاملة.
1 · المرور الأمامي لطبقة واحدة
\[\mathbf{z}^{(l)} = W^{(l)} \mathbf{a}^{(l-1)} + \mathbf{b}^{(l)}\]
\[\mathbf{a}^{(l)} = f(\mathbf{z}^{(l)})\]
ضرب مصفوفات + إزاحة (جمع متجه) + دالة تنشيط عنصرية
2 · معالجة الدفعات
\[Z = XW^T + B\]
\(X\): دفعة من \(N\) عينة (\(N \times d_{in}\))، \(W\): الأوزان (\(d_{out} \times d_{in}\))
ضرب مصفوفات واحد يعالج الدفعة المصغّرة كاملة — لماذا تفوز معالجات الرسوميات
3 · الانتباه (قلب المحوّل)
\[\text{Attention}(Q,K,V) = \text{softmax}\!\left(\frac{QK^T}{\sqrt{d_k}}\right) V\]
\(QK^T\): مصفوفة الضربات النقطية بين الاستعلامات والمفاتيح
\(V\): القيم الممزوجة بوزن الانتباه
4 · تقليل الأبعاد (PCA)
1. بناء مصفوفة التباين \(C\) من البيانات
2. إيجاد المتجهات الذاتية لـ \(C\) (المكوّنات الرئيسية)
3. إسقاط البيانات: \(\mathbf{z} = W_{PCA}^T \mathbf{x}\) (احتفظ بأكبر القيم الذاتية)
لا تحتاج اشتقاق كل نظرية يدويًا. لكنك تحتاج أن تتعرّف عندما يقول بحث \(W \in \mathbb{R}^{d \times k}\) ما شكل ذلك الكائن، ولماذا \(AB \neq BA\) مهم لترتيب التركيب، ولماذا الانتباه هو softmax على الضربات النقطية. هذه الطلاقة — قراءة الجبر الخطي كدليل تشغيل للذكاء الاصطناعي — هي ما يبنيه هذا الدرس.