قبل أن تبني شبكة عصبية واحدة، تحتاج إلى فهم الرياضيات التي تحركها. لا تقلق —
سنبدأ من الصفر ونبني تدريجيًا. الرياضيات في التعلم العميق ليست معقدة بقدر
ما هي أنيقة.
الجبر الخطي — لغة الشبكات العصبية
الجبر الخطي هو العمود الفقري للتعلم العميق. كل شيء — من الصورة التي تدخل
الشبكة إلى الأوزان التي تتعلمها — هو مصفوفة أو
مُتَّجِه (vector).
المُتَّجِهات (Vectors)
المُتَّجِه هو مجرد قائمة أرقام. في الرياضيات، نكتبه كعمود:
v = [v₁, v₂, ..., vₙ]ᵗ
كل صورة ملونة بحجم ٢٥٦×٢٥٦ بكسل يمكن تمثيلها كمُتَّجِه طوله
١٩٦,٦٠٨ (= 256 × 256 × 3 قنوات لونية). هذا المُتَّجِه هو مدخل الشبكة.
المُتَّجِه كموقع على الخريطة
تخيل أنك في مدينة. موقعك يُحدد بإحداثيين: (x, y). هذا مُتَّجِه ثنائي الأبعاد.
إذا أضفنا سرعة الرياح ودرجة الحرارة، يصبح مُتَّجِهًا رباعي الأبعاد.
الشبكات العصبية تعمل مع مُتَّجِهات بمئات الآلاف من الأبعاد —
"مساحات" لا يمكننا تصورها لكن يمكننا حسابها.
عمليات المُتَّجِهات الأساسية
الجمع: نجمع كل عنصر مع نظيره.
v + w = [v₁ + w₁, v₂ + w₂, ..., vₙ + wₙ]
الضرب في قيمة قياسية (Scalar Multiplication):
α · v = [α·v₁, α·v₂, ..., α·vₙ]
الضرب القياسي (Dot Product): — أهم عملية في التعلم العميق!
v · w = Σᵢ vᵢ × wᵢ = v₁w₁ + v₂w₂ + ... + vₙwₙ
لماذا الضرب القياسي مهم جدًا؟
الضرب القياسي يقيس التشابه بين مُتَّجِهين. في الشبكات العصبية،
نضرب المدخلات في الأوزان ثم نجمعها — هذا هو بالضبط الضرب القياسي.
كل خلية عصبية تحسب z = w · x + b.
المصفوفات (Matrices)
المصفوفة هي ترتيب مستطيل من الأرقام. إذا كان المُتَّجِه هو قائمة، فالمصفوفة
هي جدول.
A = [[a₁₁, a₁₂, ..., a₁ₙ],
[a₂₁, a₂₂, ..., a₂ₙ],
...
[aₘ₁, aₘ₂, ..., aₘₙ]]
حجم المصفوفة هو m × n — m صف و n عمود.
ضرب المصفوفات — جوهر التعلم العميق
ضرب مصفوفة A (حجمها m×n) مع مصفوفة B (حجمها n×p) يعطي مصفوفة C (حجمها m×p):
Cᵢⱼ = Σₖ Aᵢₖ · Bₖⱼ
تخيل أنك تدير مصنعًا
لديك ٣ مصانع (صفوف) و ٥ منتجات (أعمدة). المصفوفة A تخبرك كم تنتج每个 مصنع من كل منتج.
المصفوفة B تخبرك سعر كل منتج في ٤ مدن مختلفة. ضرب A × B يعطيك: كم تربح
كل مصنع إذا باع في كل مدينة. ضرب المصفوفات هو اختصار لحساب مئات الآلاف
من العمليات مرة واحدة — وهذا ما تفعله GPU ببراعة.
ضرب المصفوفات في الشبكات العصبية
في طبقة متصلة بالكامل (Fully Connected Layer):
z = W · x + b
حيث W مصفوفة الأوزان (حجمها: عدد الخلايا في الطبقة الحالية × عدد الخلايا
في الطبقة السابقة)، x هو مُتَّجِه المدخلات، و
b هو مُتَّجِه التحيز (bias). الناتج z
يمر عبر دالة تنشيط لإنتاج مخرجات الطبقة.
مصفوفة الوحدة (Identity Matrix)
مصفوفة مربعة بقطر من الآحاد وباقي العناصر أصفار. I · v = v —
مثل الرقم ١ في الضرب العادي.
مقلوب المصفوفة (Matrix Inverse)
إذا كان A · A⁻¹ = I، فإن A⁻¹
هي مقلوب A. مفيد لحل أنظمة المعادلات، لكنه نادر الاستخدام في
التعلم العميق لأن حسابه مكلف للأبعاد العالية.
مصفوفة التحويل (Transpose)
قلب المصفوفة: الصفوف تصير أعمدة والأعمدة صفوفًا.
Aᵢⱼᵗ = Aⱼᵢ.
في NumPy: A.T.
القيم الذاتية والمتَّجِهات الذاتية (Eigenvalues & Eigenvectors)
بالنسبة لمصفوفة مربعة A، المُتَّجِه الذاتي v هو مُتَّجِه
غير صفري يحقق:
A · v = λ · v
حيث λ هي القيمة الذاتية (eigenvalue).
تفسير: تطبيق المصفوفة A على المُتَّجِه v يغير طوله فقط (بمقدار λ) دون تغيير اتجاهه.
القيم الذاتية كمرونة المطاط
تخيل أنك تمد قطعة مطاط في اتجاه معين. القيمة الذاتية هي مقدار التمدد
في ذلك الاتجاه. المُتَّجِه الذاتي هو اتجاه التمدد.
في التعلم العميق، القيم الذاتية لـ Hessian matrix (مصفوفة المشتقات الثانية) تخبرنا
عن مدى انحناء سطح الخطأ — مفيد جدًا لفهم سرعة التقارب.
تحليل القيمة المفردة (SVD — Singular Value Decomposition)
أي مصفوفة A (حتى غير المربعة) يمكن تحليلها إلى:
A = U · Σ · Vᵗ
حيث U و V مصفوفتان متعامدتان، و Σ مصفوفة قطرية تحتوي على القيم المفردة.
SVD هو أساس تقليل الأبعاد (PCA) وضغط النماذج.
ملخص الجبر الخطي
- المُتَّجِهات: قوائم أرقام — تمثل المدخلات، المخرجات، الأوزان
- الضرب القياسي: يقيس التشابه — أساس كل خلية عصبية: w·x + b
- المصفوفات: جداول أرقام — تمثل الأوزان بين الطبقات
- ضرب المصفوفات: يعالج كل الأمثلة دفعة واحدة بدلاً من مثال مثال
- القيم الذاتية و SVD: أدوات تحليل متقدمة لفهم بنية البيانات والنماذج
إذا كان لدينا مُتَّجِهين: v = [1, 2, 3] و w = [4, 5, 6]
احسب:
أ) v + w
ب) 3 · v
ج) v · w (الضرب القياسي)
د) إذا كانت المصفوفة W = [[1, 0, -1], [2, 1, 1]]، احسب W · v
التفاضل والتكامل — محرك التعلم
إذا كان الجبر الخطي هو هيكل الشبكة العصبية، فالتفاضل والتكامل
هو محرك التعلُّم. بدون المشتقات، لا يمكننا تحسين النموذج.
المشتقة (Derivative) — معدل التغير
المشتقة تخبرنا: كم تتغير قيمة y عندما نغير x بمقدار صغير؟
f'(x) = df/dx = lim_{h→0} [f(x + h) − f(x)] / h
المشتقة كمقياس السرعة
إذا كنت في سيارة، الموقع هو دالة في الزمن: x(t).
السرعة هي مشتقة الموقع: v(t) = dx/dt. إذا كانت السرعة
كبيرة، فأنت تغير موقعك بسرعة. في التعلم العميق: المشتقة تخبرنا
في أي اتجاه يجب تغيير الأوزان لتقليل الخطأ.
قواعد الاشتقاق الأساسية
| الدالة |
المشتقة |
مثال |
| c (ثابت) | ٠ | d/dx(5) = 0 |
| xⁿ | n·xⁿ⁻¹ | d/dx(x³) = 3x² |
| eˣ | eˣ | نفسها! |
| ln(x) | ١/x | d/dx(ln(x)) = 1/x |
| sin(x) | cos(x) | |
| cos(x) | −sin(x) | |
قاعدة السلسلة (Chain Rule) — أهم قاعدة في التعلم العميق
قاعدة السلسلة تخبرنا كيف نشتق دوالاً مركبة:
f(g(x)). هي قلب الانتشار العكسي (Backpropagation).
d/dx [f(g(x))] = f'(g(x)) · g'(x)
أو بشكل أبسط: مشتقة الدالة الخارجية × مشتقة الدالة الداخلية.
قاعدة السلسلة كخط تجميع
تخيل مصنعًا بمراحل: المواد الخام (x) → آلة ١ → منتج نصف مصنع → آلة ٢ → منتج نهائي.
إذا أردت تحسين الجودة، تحتاج أن تعرف: كيف يؤثر تغيير في المواد الخام على المنتج
النهائي؟ هذا هو ضرب المشتقات عبر المراحل — كل مشتقة تخبرك كم
تؤثر التغييرات في مرحلة على المرحلة التالية.
مثال: قاعدة السلسلة في الشبكة العصبية
افترض أن لدينا دالة بسيطة:
y = f(g(x)) حيث g(x) = wx + b و f(z) = z²
لحساب dy/dx:
dy/dx = f'(g(x)) · g'(x) = 2(wx + b) · w
هذا هو بالضبط ما تفعله backpropagation — لكن لسلسلة من مئات الدوال المركبة!
المشتقة الجزئية (Partial Derivative)
عندما يكون لدينا دالة بعدة متغيرات f(x, y, z)،
المشتقة الجزئية ∂f/∂x تخبرنا: كم تتغير
f عندما نغير x فقط ويثبت y و z.
التدرج (Gradient) — سهم التوجيه
التدرج هو مُتَّجِه يحتوي على جميع المشتقات الجزئية:
∇f = [∂f/∂x₁, ∂f/∂x₂, ..., ∂f/∂xₙ]
التدرج يشير إلى اتجاه أقصى زيادة للدالة. في التعلم العميق،
نتحرك في عكس اتجاه التدرج (نزول التدرج) لتقليل الخطأ.
التكامل — نظرة سريعة
التكامل هو عكس الاشتقاق — يقيس المساحة تحت المنحنى.
يستخدم في التعلم العميق لحساب الاحتمالات (تكامل دالة الكثافة)،
وفي بعض خوارزميات التحسين، لكنه أقل حضورًا من التفاضل.
احسب مشتقة الدالة: f(x) = (3x² + 2x)⁵
استخدم قاعدة السلسلة. تلميح: f(g(x)) حيث g(x) = 3x² + 2x و f(z) = z⁵
الاحتمالات والإحصاء — لغة عدم اليقين
التعلم العميق يتعامل مع عدم اليقين — لا يمكننا أبدًا التأكد ١٠٠٪
من توقعاتنا. الاحتمالات هي اللغة التي نستخدمها للتعبير عن هذا عدم اليقين.
المفاهيم الأساسية
الاحتمال P(A): رقم بين ٠ و ١ يعبر عن احتمال وقوع حدث A.
- P(A) = ٠: مستحيل
- P(A) = ١: مؤكد
- P(A) = ٠.٥: احتمال ٥٠٪
التوزيعات الاحتمالية
التوزيع الاحتمالي يصف كيف تتوزع احتمالات القيم المختلفة
لمتغير عشوائي.
| التوزيع |
النوع |
مثال في DL |
| Uniform (منتظم) | مستمر / متقطع | تهيئة عشوائية للأوزان |
| Normal (Gaussian) | مستمر | توزيع الأخطاء، تهيئة Xavier |
| Bernoulli | متقطع | Dropout — قرار إبقاء أو إسقاط خلية |
| Categorical | متقطع | تصنيف إلى فئات متعددة |
| Exponential | مستمر | فترات الانتظار بين الأحداث |
متوسط وقيمة متوقعة (Mean / Expectation)
المتوسط الحسابي:
μ = E[X] = Σᵢ xᵢ · P(xᵢ) (للمتقطع) أو ∫ x · p(x) dx (للمستمر)
التباين والانحراف المعياري (Variance & Standard Deviation)
التباين يقيس مدى انتشار القيم حول المتوسط:
Var(X) = E[(X − μ)²] = E[X²] − μ²
الانحراف المعياري: σ = √Var(X)
قاعدة بايز (Bayes' Rule) — قلب التعلم
قاعدة بايز تخبرنا كيف نُحِدِّث معتقداتنا عند رؤية دليل جديد:
P(A|B) = P(B|A) · P(A) / P(B)
- P(A): الاحتمال القبلي (prior) — ما نعتقده قبل رؤية الدليل
- P(B|A): الإمكان (likelihood) — احتمال رؤية الدليل إذا كان A صحيحًا
- P(A|B): الاحتمال البعدي (posterior) — ما نعتقده بعد رؤية الدليل
بايز في حياتك اليومية
تستيقظ وتسمع صوتًا خارج النافذة. تقول: "ربما مطر؟". هذا هو الاحتمال القبلي (في بلدك،
احتمال المطر ٢٠٪). تنظر من النافذة وترى السحب الداكنة — هذا دليل جديد. تحدث اعتقادك:
"على الأرجح مطر الآن". هذا هو الاحتمال البعدي.
التعلم العميق يفعل هذا — يبدأ بمعتقدات عشوائية ويُحدِّثها مع كل مثال تدريبي.
الإنتروبيا (Entropy) — قياس عدم اليقين
الإنتروبيا تقيس كم المعلومات أو عدم اليقين
في توزيع احتمالي:
H(p) = −Σᵢ pᵢ · log₂(pᵢ)
الإنتروبيا و"خمن الرقم"
في لعبة تخمين رقم بين ١ و ٨، كل تخمين يقلل uncertainty.
إذا لعبت مع شخص يختار دائمًا الرقم ٤ (احتمال ١٠٠٪ للرقم ٤)،
الإنتروبيا = ٠ — لا uncertainty. أما إذا كان يختار عشوائيًا بين ١-٨،
الإنتروبيا = log₂(8) = ٣ بت — أقصى عدم يقين.
الإنتروبيا المتقاطعة (Cross-Entropy) — دالة الخسارة الأكثر شيوعًا
تقيس الفرق بين توزيعين (الحقيقي والمتوقع):
H(p, q) = −Σᵢ pᵢ · log₂(qᵢ)
في التصنيف: p هو التوزيع الحقيقي (فئة واحدة)،
و q هو توقع النموذج. تقليل cross-entropy = تحسين دقة التصنيف.
ملخص الاحتمالات
- التوزيعات تحكم عالم البيانات — Normal للتجميع، Bernoulli لـ Dropout
- المتوسط أين تتوقع، والتباين مدى الثقة
- قاعدة بايز: تحديث المعتقدات بدليل جديد — جوهر التعلم
- الإنتروبيا تقيس عدم اليقين؛ cross-entropy هي دالة الخسارة القياسية