الشبكات العصبية المتكررة (RNN)
تتبّعوا المدخلات والحالة المخفية خلال خلية شبكة عصبية متكررة.
90 دقيقة
وش بتتعلّم
- تتبّعوا المدخلات والحالة المخفية خلال خلية شبكة عصبية متكررة.
- اشرحوا تلاشي التدرجات وقارنوا RNN البسيطة وLSTM وثنائية الاتجاه ومتعددة الطبقات.
وش تحتاج قبل تبدأ
- نمذجة اللغة
الوقت المتوقع
90 دقيقةتشخيص اختياري
وش تعرف من قبل؟
ما له درجة نجاح، ولا يوقف الدرس. اختر «ماني متأكد» إذا هذا جوابك الصادق.
الشبكات العصبية المتكررة (RNN)
في الأقسام اللي راحت استخدمنا تمثيلات دلالية غنية للنص، وحطّينا فوق التضمينات مصنّفًا خطيًا بسيطًا. هالبنية تلتقط المعنى المجمّع لكلمات الجملة، لكنها ما تراعي ترتيب الكلمات؛ لأن عملية تجميع التضمينات تشيل معلومات الترتيب من النص الأصلي. وبما إن هالنماذج ما تقدر تمثّل ترتيب الكلمات، فهي ما تحل المهام الأكثر تعقيدًا أو غموضًا، مثل توليد النص والإجابة عن الأسئلة.
عشان نلتقط معنى تسلسل نصي، نحتاج بنية ثانية اسمها الشبكة العصبية المتكررة (Recurrent Neural Network أو RNN). في RNN نمرر الجملة عبر الشبكة رمزًا رمزًا، وتنتج الشبكة حالة نرجع نمررها لها مع الرمز اللي بعده.
إذا كان تسلسل رموز الإدخال هو X0,...,Xn، تنشئ RNN تسلسلًا من كتل الشبكة العصبية وتدرّبه كاملًا باستخدام الانتشار العكسي. كل كتلة تستقبل الزوج (Xi,Si) وتنتج Si+1. بعدها تدخل الحالة الأخيرة Sn، أو المخرج Yn، في مصنّف خطي يعطي النتيجة. كل كتل الشبكة تشترك في الأوزان نفسها، ونتدرّب عليها من طرف إلى طرف بتمرير واحد للانتشار العكسي.
لأن متجهات الحالة S0,...,Sn تنتقل عبر الشبكة، تقدر الشبكة تتعلّم العلاقات المتتابعة بين الكلمات. مثلًا، إذا ظهرت كلمة not في أي موضع من التسلسل، تقدر تتعلّم إنها تنفي عناصر معيّنة داخل متجه الحالة، وبكذا تمثّل معنى النفي.
✅ بما إن أوزان كتل RNN كلها مشتركة في الصورة، نقدر نمثّل الرسم نفسه بكتلة وحدة، مثل اللي على اليمين، ومعها حلقة تغذية راجعة ترجع حالة المخرج إلى مدخل الشبكة.
تشريح خلية RNN
خلونا نشوف وش داخل خلية RNN بسيطة. تستقبل الخلية الحالة السابقة Si-1 والرمز الحالي Xi، ولازم تنتج حالة المخرج Si. وأحيانًا نهتم بمخرج إضافي Yi، مثل ما يصير في الشبكات التوليدية.
داخل خلية RNN البسيطة مصفوفتان للأوزان: وحدة تحوّل رمز الإدخال، وبنسمّيها W، والثانية تحوّل حالة الإدخال، وهي H. نحسب مخرج الشبكة بهالصيغة: σ(W×Xi+H×Si-1+b)، بحيث إن σ هي دالة التنشيط وb هو انحياز إضافي.
وصف الشكل: تشريح خلية RNN
في حالات كثيرة، تمر رموز الإدخال عبر طبقة تضمين قبل تدخل RNN عشان نقلّل عدد الأبعاد. إذا كان بُعد متجه الإدخال emb_size وحجم متجه الحالة hid_size، يكون حجم W هو emb_size×hid_size، وحجم H هو hid_size×hid_size.
الذاكرة طويلة قصيرة المدى (LSTM)
من أبرز مشاكل RNN التقليدية مشكلة تلاشي التدرجات. ولأننا ندرّب RNN من طرف إلى طرف بتمرير واحد للانتشار العكسي، يصعب عليها توصيل الخطأ إلى الطبقات الأولى؛ وبهالسبب ما تتعلّم العلاقات بين الرموز المتباعدة زين. من طرق معالجة المشكلة إضافة إدارة صريحة للحالة باستخدام بوابات. ومن أشهر البنى اللي تستخدم هالفكرة: الذاكرة طويلة قصيرة المدى (Long Short-Term Memory أو LSTM) ووحدة التكرار ذات البوابات (Gated Recurrent Unit أو GRU).
وصف الشكل: صورة توضّح مثالًا لخلية ذاكرة طويلة قصيرة المدى
تنظيم شبكة LSTM قريب من RNN، لكن فيها حالتان تنتقلان من طبقة للي بعدها: الحالة C والمتجه المخفي H. في كل وحدة، ندمج المتجه المخفي Hi مع الإدخال Xi، ومن خلال البوابات يتحكمان باللي يصير للحالة C. كل بوابة شبكة عصبية تستخدم تنشيط sigmoid، ومخرجها يقع ضمن [0,1]. وإذا ضربنا هالمخرج في متجه الحالة، نقدر نتعامل معه كأنه قناع يحدد وش يمر ووش يتوقف. البوابات، من اليسار لليمين في الصورة، هي:
- بوابة النسيان: تأخذ المتجه المخفي وتحدد وش من مكوّنات المتجه C ننساه، ووش نخليه يمر.
- بوابة الإدخال: تأخذ معلومات من متجهي الإدخال والحالة المخفية، وتضيفها إلى الحالة.
- بوابة الإخراج: تطبّق tanh على حالة الخلية المحدّثة Ci+1، ثم تستخدم قناع البوابة الناتج من sigmoid عشان تختار بعض مكوّناتها وتنتج المتجه المخفي الجديد Hi+1.
نقدر نتخيّل مكوّنات الحالة C مثل أعلام تنفتح وتنقفل. مثلًا، إذا مر علينا الاسم Alice في التسلسل، نفترض إنه يدل على شخصية مؤنثة ونفعّل في الحالة علمًا يقول إن الجملة فيها اسم مؤنث. وإذا مرّت بعده العبارة and Tom، نفعّل علمًا يدل على الجمع. بهالتحكم في الحالة، تقدر الشبكة نظريًا تتابع الخصائص النحوية لأجزاء الجملة.
✅ إذا تبغون تفهمون تفاصيل LSTM من الداخل، فمقال Christopher Olah Understanding LSTM Networks مورد ممتاز.
شبكات RNN ثنائية الاتجاه ومتعددة الطبقات
تكلمنا عن شبكات متكررة تمشي باتجاه واحد، من بداية التسلسل إلى نهايته. هالشي يبدو طبيعيًا لأنه يشبه طريقتنا في القراءة وسماع الكلام. لكن في تطبيقات كثيرة يكون عندنا وصول عشوائي إلى تسلسل الإدخال، وساعتها قد يفيدنا نشغّل الحساب المتكرر بالاتجاهين. هذي نسميها شبكات RNN ثنائية الاتجاه، ونحتاج معها متجهي حالة مخفية: واحد لكل اتجاه.
الشبكة المتكررة، سواء كانت أحادية الاتجاه أو ثنائية، تلتقط أنماطًا داخل التسلسل وتخزّنها في متجه الحالة أو تمررها للمخرج. ومثل الشبكات العصبية الالتفافية، نقدر نبني طبقة متكررة ثانية فوق الأولى عشان تلتقط أنماطًا أعلى مستوى انطلاقًا من الأنماط البسيطة اللي استخرجتها الطبقة الأولى. من هنا تجينا فكرة RNN متعددة الطبقات: شبكتان متكررتان أو أكثر، يكون مخرج كل طبقة منها مدخلًا للطبقة اللي بعدها.
وصف الشكل: صورة توضّح شبكة RNN متعددة الطبقات من نوع LSTM
الصورة مأخوذة من هالتدوينة للكاتب Fernando López.
✍️ تمارين: التضمينات
كملوا التعلّم بهالدفترين:
الخلاصة
شفنا في هالوحدة إننا نقدر نستخدم RNN في التصنيف على مستوى التسلسلات. لكنها تتعامل بعد مع مهام أكثر، مثل توليد النص والترجمة الآلية وغيرها. بناخذ هالمهام في الوحدة الجاية.
🚀 التحدي
اقروا هالأبحاث عن LSTM وفكّروا في تطبيقاتها:
- Grid Long Short-Term Memory
- Show, Attend and Tell: Neural Image Caption Generation with Visual Attention
المراجعة والتعلّم الذاتي
- مقال Christopher Olah Understanding LSTM Networks.
التكليف: دفاتر Jupyter
طبّق
المختبرات والواجب
RNNPy Torch
افتح المختبرالتكليف: دفاتر Jupyter
التكليف: دفاتر Jupyter شغّلوا دفتر PyTorch أو TensorFlow على متن صغير وموثق الترخيص. سجّلوا المصدر والترخيص والمعالجة المسبقة وسياسة المفردات وطول التسلسل والبذرة العشوائية. لا تعرضون أسماء حسابات أو نصوصًا تكشف هوية أصحابها. قارنوا سلوك التدريب والتحقق، وبعدها اشرحوا كيف يغيّر ط
اختياري وتسويه بوقتك؛ ما يأثر على إكمال الدورة.
الواجب: التكليف: دفاتر Jupyter
التكليف: دفاتر Jupyter
شغّلوا دفتر PyTorch أو TensorFlow على متن صغير وموثق الترخيص. سجّلوا المصدر والترخيص والمعالجة المسبقة وسياسة المفردات وطول التسلسل والبذرة العشوائية. لا تعرضون أسماء حسابات أو نصوصًا تكشف هوية أصحابها. قارنوا سلوك التدريب والتحقق، وبعدها اشرحوا كيف يغيّر طول التسلسل الجودة وتكلفة الحوسبة.
الزبدة
- تتبّعوا المدخلات والحالة المخفية خلال خلية شبكة عصبية متكررة.
- اشرحوا تلاشي التدرجات وقارنوا RNN البسيطة وLSTM وثنائية الاتجاه ومتعددة الطبقات.
اختبار بعد الدرس
تأكد من فهمك
أرسله مرة وحدة عشان يفتح لك إكمال الدرس، وتقدر تعيده قد ما تبي.
اختم هالدرس
أرسل اختبار ما بعد الدرس، وبعدها أكّد إنك جاهز تكمّل الدرس.