AI-For-Beginners/translations/ar/lessons/3-NeuralNetworks/04-OwnFramework
leestott c6463675e6 🌐 Update translations via Co-op Translator 2025-08-28 04:44:09 +00:00
..
lab 🌐 Update translations via Co-op Translator 2025-08-28 04:44:09 +00:00
OwnFramework.ipynb 🌐 Update translations via Co-op Translator 2025-08-28 04:44:09 +00:00
README.md 🌐 Update translations via Co-op Translator 2025-08-26 12:09:18 +00:00

README.md

مقدمة إلى الشبكات العصبية. الإدراك متعدد الطبقات

في القسم السابق، تعلمت عن أبسط نموذج للشبكات العصبية - الإدراك ذو الطبقة الواحدة، وهو نموذج تصنيف خطي ثنائي الفئات.

في هذا القسم، سنقوم بتوسيع هذا النموذج إلى إطار عمل أكثر مرونة، مما يتيح لنا:

  • تنفيذ تصنيف متعدد الفئات بالإضافة إلى التصنيف الثنائي
  • حل مشاكل الانحدار بالإضافة إلى التصنيف
  • فصل الفئات التي لا يمكن فصلها خطيًا

سنقوم أيضًا بتطوير إطار عمل معياري خاص بنا باستخدام Python، مما يتيح لنا بناء هياكل مختلفة للشبكات العصبية.

اختبار ما قبل المحاضرة

صياغة تعلم الآلة

لنبدأ بصياغة مشكلة تعلم الآلة. لنفترض أن لدينا مجموعة بيانات تدريبية X مع تسميات Y، ونحتاج إلى بناء نموذج f الذي يقدم تنبؤات دقيقة قدر الإمكان. يتم قياس جودة التنبؤات باستخدام دالة الخسارة . غالبًا ما تُستخدم دوال الخسارة التالية:

  • بالنسبة لمشكلة الانحدار، عندما نحتاج إلى توقع رقم، يمكننا استخدام الخطأ المطلقi|f(x(i))-y(i)|، أو الخطأ التربيعيi(f(x(i))-y(i))2
  • بالنسبة للتصنيف، نستخدم خسارة 0-1 (وهي في الأساس نفس دقة النموذج)، أو خسارة لوجستية.

بالنسبة للإدراك ذو المستوى الواحد، تم تعريف الدالة f كدالة خطية f(x)=wx+b (هنا w هي مصفوفة الأوزان، x هو متجه الميزات المدخلة، وb هو متجه التحيز). بالنسبة لهياكل الشبكات العصبية المختلفة، يمكن أن تأخذ هذه الدالة شكلًا أكثر تعقيدًا.

في حالة التصنيف، غالبًا ما يكون من المرغوب الحصول على احتمالات الفئات المقابلة كمخرجات للشبكة. لتحويل الأرقام العشوائية إلى احتمالات (على سبيل المثال لتطبيع المخرجات)، غالبًا ما نستخدم دالة softmax σ، وتصبح الدالة f f(x)=σ(wx+b)

في تعريف f أعلاه، يُطلق على w وb اسم المعلمات θ=⟨w,b⟩. بالنظر إلى مجموعة البيانات ⟨X,Y⟩، يمكننا حساب الخطأ الإجمالي على مجموعة البيانات بأكملها كدالة للمعلمات θ.

هدف تدريب الشبكة العصبية هو تقليل الخطأ عن طريق تغيير المعلمات θ

تحسين باستخدام النزول التدرجي

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

  • تهيئة المعلمات بقيم عشوائية w(0), b(0)
  • تكرار الخطوة التالية عدة مرات:
    • w(i+1) = w(i)-η∂ℒ/∂w
    • b(i+1) = b(i)-η∂ℒ/∂b

أثناء التدريب، من المفترض أن يتم حساب خطوات التحسين بناءً على مجموعة البيانات بأكملها (تذكر أن الخسارة تُحسب كمجموع عبر جميع عينات التدريب). ومع ذلك، في الواقع، نأخذ أجزاء صغيرة من مجموعة البيانات تُسمى الدفعات الصغيرة، ونحسب التدرجات بناءً على مجموعة فرعية من البيانات. نظرًا لأن المجموعة الفرعية تُؤخذ عشوائيًا في كل مرة، تُسمى هذه الطريقة النزول التدرجي العشوائي (SGD).

الإدراك متعدد الطبقات والانتشار العكسي

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

  • z1=w1x+b1
  • z2=w2α(z1)+b2
  • f = σ(z2)

هنا، α هي دالة تنشيط غير خطية، σ هي دالة softmax، والمعلمات θ=<w1,b1,w2,b2>.

ستظل خوارزمية النزول التدرجي كما هي، ولكن سيكون من الصعب حساب التدرجات. باستخدام قاعدة التفاضل السلسلي، يمكننا حساب المشتقات كما يلي:

  • ∂ℒ/∂w2 = (∂ℒ/∂σ)(∂σ/∂z2)(∂z2/∂w2)
  • ∂ℒ/∂w1 = (∂ℒ/∂σ)(∂σ/∂z2)(∂z2/∂α)(∂α/∂z1)(∂z1/∂w1)

تُستخدم قاعدة التفاضل السلسلي لحساب المشتقات لدالة الخسارة بالنسبة للمعلمات.

لاحظ أن الجزء الأيسر من جميع هذه التعبيرات هو نفسه، وبالتالي يمكننا حساب المشتقات بشكل فعال بدءًا من دالة الخسارة والانتقال "عكسيًا" عبر الرسم البياني الحسابي. لذلك تُسمى طريقة تدريب الإدراك متعدد الطبقات الانتشار العكسي أو "backprop".

compute graph

TODO: مصدر الصورة

سنغطي الانتشار العكسي بمزيد من التفصيل في مثالنا داخل الدفتر.

الخاتمة

في هذه الدرس، قمنا ببناء مكتبة الشبكات العصبية الخاصة بنا، واستخدمناها في مهمة تصنيف بسيطة ثنائية الأبعاد.

🚀 التحدي

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

انتقل إلى دفتر OwnFramework واعمل عليه.

اختبار ما بعد المحاضرة

المراجعة والدراسة الذاتية

الانتشار العكسي هو خوارزمية شائعة تُستخدم في الذكاء الاصطناعي وتعلم الآلة، ويستحق الدراسة بمزيد من التفصيل

التكليف

في هذا المختبر، يُطلب منك استخدام الإطار الذي أنشأته في هذا الدرس لحل مشكلة تصنيف الأرقام المكتوبة بخط اليد MNIST.

إخلاء المسؤولية:
تمت ترجمة هذا المستند باستخدام خدمة الترجمة الآلية Co-op Translator. بينما نسعى لتحقيق الدقة، يرجى العلم أن الترجمات الآلية قد تحتوي على أخطاء أو عدم دقة. يجب اعتبار المستند الأصلي بلغته الأصلية هو المصدر الموثوق. للحصول على معلومات حساسة أو هامة، يُوصى بالاستعانة بترجمة بشرية احترافية. نحن غير مسؤولين عن أي سوء فهم أو تفسيرات خاطئة تنشأ عن استخدام هذه الترجمة.