التعلم العميق مبتدئ · Beginner 12 دقيقة

الانتشار الأمامي

Forward Propagation

كيف تتدفق البيانات عبر طبقات الشبكة لحساب التنبؤ والخسارة، مع مثال عددي.

تقدّمك في المسار0%

الخطوات

لشبكة بطبقة مخفية واحدة:

$$\mathbf{z}^{[1]} = W^{[1]}\mathbf{x} + \mathbf{b}^{[1]}, \quad \mathbf{a}^{[1]} = \text{ReLU}(\mathbf{z}^{[1]})$$

$$z^{[2]} = W^{[2]}\mathbf{a}^{[1]} + b^{[2]}, \quad \hat{y} = \sigma(z^{[2]})$$

$$L = -\big[y\log\hat{y} + (1-y)\log(1-\hat{y})\big]$$

مثال عددي صغير

import numpy as np
x  = np.array([1.0, 2.0])
W1 = np.array([[0.5, -0.2], [0.3, 0.8]]); b1 = np.array([0.0, 0.1])
W2 = np.array([[1.0, -1.5]]);             b2 = np.array([0.2])

z1 = W1 @ x + b1              # [0.1, 2.0]
a1 = np.maximum(0, z1)        # [0.1, 2.0]
z2 = W2 @ a1 + b2             # [0.1 - 3.0 + 0.2] = [-2.7]
y_hat = 1 / (1 + np.exp(-z2)) # ≈ [0.063]
loss = -np.log(1 - y_hat)     # إذا كانت y = 0  →  ≈ 0.065
print(z1, z2, y_hat, loss)

الحساب بالدفعات

بدلاً من مثال واحد نعالج مصفوفة \(X\) شكلها (batch, features):

X = np.random.default_rng(0).normal(size=(32, 2))
H = np.maximum(0, X @ W1.T + b1)   # (32, 2)
out = H @ W2.T + b2                # (32, 1)

هذا ما تفعله أطر التعلم العميق داخلياً، مع تنفيذ الضرب على GPU.

الرسم الحسابي

تمثل الأطر الحديثة الحساب كرسم بياني موجه: العقد عمليات، والحواف قيم. أثناء الانتشار الأمامي تُسجل العمليات والقيم الوسيطة، ثم يُستخدم الرسم نفسه لحساب المشتقات تلقائياً في الانتشار الخلفي.

مصطلحات الدرس

الانتشار الأمامي Forward Propagation
حساب مخرجات الشبكة والخسارة بتمرير المدخلات عبر الطبقات بالترتيب.
الدفعة Mini-batch
مجموعة صغيرة من أمثلة التدريب تُعالج معاً في خطوة حساب واحدة.

الملخص

الانتشار الأمامي هو حساب مخرجات الشبكة بتمرير المدخلات طبقة بعد طبقة: ضرب مصفوفة الأوزان في التنشيطات السابقة وإضافة الانحياز ثم تطبيق دالة التنشيط، وصولاً إلى طبقة المخرجات ثم حساب الخسارة. تُحسب عادة دفعة (batch) من الأمثلة معاً بضرب مصفوفات، وتُحفظ القيم الوسيطة لاستخدامها في الانتشار الخلفي.

أسئلة مراجعة

  1. لماذا تُحفظ القيم الوسيطة أثناء الانتشار الأمامي في التدريب؟

    لأن الانتشار الخلفي يحتاجها لحساب التدرجات.

  2. ما أبعاد مخرج طبقة تستقبل دفعة شكلها (32, 10) وتحتوي 5 خلايا؟

    (32, 5).

المصادر والمراجع

  1. Dive into Deep Learning — Forward Propagation, Backward Propagation, and Computational Graphs
  2. Nielsen — Neural Networks and Deep Learning, Ch. 1

إكمال الدرس