طارق بن جعبل طعيمان

مهندس ذكاء اصطناعي

0%

كيف تعمل الشبكات العصبية
العودة للمدونةأساسيات

كيف تعمل الشبكات العصبية؟ شرح مبسط بالأمثلة

فهم عميق لكيفية عمل Neural Networks من الصفر

5 ديسمبر 202512 دقيقة قراءة

مقدمة: الإلهام من الدماغ البشري

الشبكات العصبية الاصطناعية (Artificial Neural Networks) مستوحاة من طريقة عمل الدماغ البشري. دماغنا يحتوي على ~86 مليار خلية عصبية (neuron) مترابطة، وكل خلية تستقبل إشارات من آلاف الخلايا الأخرى، تعالجها، ثم ترسل إشارتها الخاصة.

الشبكات العصبية الاصطناعية تحاكي هذه الفكرة: neurons اصطناعية مترابطة تتعلم من البيانات لحل مشاكل معقدة مثل التعرف على الصور، فهم اللغة، أو التنبؤ بالمستقبل.

البنية الأساسية: من Neuron واحد

🧠 الـ Perceptron (أبسط neuron)

تخيل neuron واحد يريد أن يقرر: هل هذه صورة قطة أم كلب؟

مثال بسيط:

المدخلات: [حجم_الأذن، طول_الذيل، لون_العين]
الأوزان (Weights): [0.5، 0.3، 0.2]
Bias: -0.4
الحساب:
Output = (0.5 × أذن) + (0.3 × ذيل) + (0.2 × عين) - 0.4
ثم نطبق Activation Function لنحصل على قرار نهائي

⚡ Activation Functions

دور الـ Activation Function هو تحويل الناتج الخطي إلى قرار غير خطي:

  • Sigmoid: يحول الناتج إلى قيمة بين 0 و 1 (مثل احتمالية)σ(x) = 1 / (1 + e^(-x))
  • ReLU: الأكثر استخداماً، بسيط وسريعReLU(x) = max(0, x)
  • Softmax: للتصنيف متعدد الفئات (مثل 10 أرقام في MNIST)

من Neuron إلى شبكة: Layers

بنية الشبكة العصبية

الشبكة العصبية تتكون من طبقات (layers):

1. Input Layer (طبقة المدخلات)

تستقبل البيانات الخام (مثل pixels الصورة، أو كلمات النص)

2. Hidden Layers (الطبقات المخفية)

هنا يحدث السحر! كل طبقة تتعلم features أعقد من السابقة

  • • الطبقة الأولى: حواف بسيطة (edges)
  • • الطبقة الثانية: أشكال (shapes)
  • • الطبقة الثالثة: أجزاء من الشيء (أذن، عين، أنف)
  • • الطبقة الأخيرة: الشيء كاملاً (وجه قطة)

3. Output Layer (طبقة المخرجات)

تعطي القرار النهائي (مثل: قطة = 0.9، كلب = 0.1)

مثال عملي: التعرف على الأرقام المكتوبة

شبكة MNIST الكلاسيكية:

Input: صورة 28×28 = 784 pixel
Hidden 1: 128 neurons (يتعلم خطوط وحواف)
Hidden 2: 64 neurons (يتعلم أشكال الأرقام)
Output: 10 neurons (رقم من 0 إلى 9)
إجمالي Parameters: ~100,000 weight تتعلم من البيانات!

كيف تتعلم الشبكة؟ Backpropagation

عملية التدريب خطوة بخطوة

1. Forward Pass (المرور الأمامي)

نمرر البيانات من الـ input إلى output، ونحصل على تنبؤ

الشبكة تقول: "أظن هذه الصورة رقم 7" (لكنها في الحقيقة 8!)

2. حساب الخطأ (Loss)

نقارن التنبؤ مع الحقيقة، ونحسب مدى الخطأ

Loss = |الإجابة_الصحيحة - التنبؤ|

3. Backpropagation (المرور الخلفي)

هنا السحر! نرجع من النهاية للبداية ونحسب: أي weight تسبب في الخطأ؟

باستخدام Calculus (المشتقات)، نعرف اتجاه التصحيح لكل weight

4. تحديث الأوزان (Gradient Descent)

نعدل كل weight قليلاً في الاتجاه الصحيح

weight_جديد = weight_قديم - (learning_rate × gradient)

🔄 نكرر هذه العملية آلاف المرات: مع كل دورة (epoch)، الشبكة تتحسن أكثر وأكثر حتى تصل لدقة عالية!

لماذا الشبكات العصبية قوية جداً؟

  • Universal Approximators: نظرياً، يمكنها تعلم أي دالة (function) معقدة
  • Feature Learning: تتعلم Features تلقائياً، لا تحتاج feature engineering يدوي
  • Scalability: كلما أضفت بيانات وقوة حوسبة، تتحسن النتائج
  • Transfer Learning: يمكن استخدام شبكة مدربة على مهمة لتسريع مهمة أخرى

الخلاصة

الشبكات العصبية في الأساس عبارة عن:

  • ✅ Neurons بسيطة تجمع مدخلات، تضربها في أوزان، تطبق activation
  • ✅ Layers متعددة، كل طبقة تتعلم تمثيلات أعقد
  • ✅ عملية تدريب تكرارية: forward → loss → backprop → update
  • ✅ مع بيانات كافية ووقت، تصل لنتائج مذهلة

الخطوة التالية: جرب بنفسك! ابدأ بمثال MNIST بسيط على PyTorch أو TensorFlow، واكتب الكود خطوة بخطوة لترى السحر يحدث. 🚀