ML 101
M08 · L02
الوحدة 8

الـ LSTM والـ GRU

شبكات الـ RNN البسيطة بتنسى الماضي البعيد. والـ LSTM (الذاكرة طويلة-قصيرة الأمد) والـ GRU بيحلّوا مشكلة الـ vanishing gradient بـ gates بتتحكم في إيه يتحفظ وإيه يتكتب وإيه يطلع — فبيدّوا memory بتمتد مئات الخطوات.

01 / 11
ML 101
M08 · L02
الـ cell state

طريق سريع للـ memory

الـ LSTM بتفصل بين الـ memory القصيرة المدى (الـ hidden state ht) والطويلة المدى (الـ cell state (حالة الخلية) ct). والـ cell state بتعدّي بأقل تعديل — طريق سريع للـ gradient بيتخطّى التلاشي.

قصيرة المدى
الـ hidden state ht
طويلة المدى
الـ cell state ct
02 / 11
ML 101
M08 · L02
التلات gates

التحكم في مرور المعلومات

  • الـ forget gate ft — إيه اللي يتشال من الـ cell state القديمة
  • الـ input gate it — قد إيه من الـ memory المرشّحة الجديدة يتكتب
  • الـ output gate ot — إيه اللي يطلع من الـ cell state كـ ht
  • كل الـ gates: output sigmoid في (0,1) — 0 = اقفل، 1 = عدّي كله
03 / 11
ML 101
M08 · L02
تحديث الـ LSTM

تحديث جمعي للخلية

تحديث الـ cell state جمعي: الـ memory القديمة متقاسة بالـ forget gate، وزائد الـ memory المرشّحة الجديدة متقاسة بالـ input gate. تحديث جمعي = طرق سريعة للـ gradient.

تحديث الخلية والـ hidden state
\begin{aligned}c_t &= f_t \odot c_{t-1} + i_t \odot g_t\\ h_t &= o_t \odot \tanh(c_t)\end{aligned}
04 / 11
ML 101
M08 · L02
ليه الحل بينجح

الـ constant error carousel

  • gradient الـ loss بالنسبة لـ ct−1 بيتضرب في الـ forget gate ft بس
  • الشبكة بتتعلّم ft ≈ 1 للمحتوى المحفوظ — والـ gradient بيعدّي من غير تغيير
  • مفيش سلسلة tanh على الزمن على مسار الخلية
  • بيسمح بالتعلّم على مئات الخطوات — مستحيل على الـ simple RNN
05 / 11
ML 101
M08 · L02
الـ gated recurrent unit

الـ GRU: gateين بس

الـ GRU (الوحدة التكرارية ذات البوابة) بتدمج الـ cell state والـ hidden state في vector واحد وبتبدّل التلات gates بتوع الـ LSTM بـ gateين: الـ reset gate rt والـ update gate zt.

تحديث الـ hidden state في الـ GRU
h_t = (1-z_t)\odot h_{t-1}+z_t\odot\tilde{h}_t
06 / 11
ML 101
M08 · L02
الـ LSTM قصاد الـ GRU

الاختيار بينهم

  • الـ GRU فيها parameters أقل — تدريب أسرع وبيانات أقل
  • الـ LSTM ممكن تكسب في مهام الـ memory البعيدة جدًا
  • أداء قريب تجريبيًا في أغلب معايير الـ NLP والـ time series
  • الاتنين بيغلبوا الـ simple RNN جامد — والاختيار hyperparameter
07 / 11
ML 101
M08 · L02
الـ bidirectional RNNs

سياق اللي فات واللي جاي

  • مسار أمامي (شمال ← يمين) + مسار عكسي (يمين ← شمال)
  • دمج الـ hidden stateين في كل مكان: ht = [&overrightarrow;ht ; &overleftarrow;ht]
  • كل مكان بيشوف السياق كله — أساسي للـ named entity recognition والترجمة
  • قيد: محتاجة الـ sequence كلها — مينفعش streaming فوري
08 / 11
ML 101
M08 · L02
الـ deep RNNs

رص الـ layers

  • output الـ layer رقم l بيدخل input للـ layer رقم l+1 في نفس الـ time step
  • 2–4 layers هو المعتاد — والتعميق أكتر نادرًا ما بيفيد
  • الـ dropout بين الـ layers (مش على الوصلات التكرارية) للـ regularization
  • الـ deep BiLSTM كانت أحسن أداء لحد ما الـ transformers ظهرت (2017)
09 / 11
ML 101
اختبار سريع

شوف إيه اللي ثبت

أربع أسئلة من الدرس ده. جاوب عشان تشوف السبب — الشرح بيظهر سواء جاوبت صح أو غلط. ونتيجتك مش بتتحفظ.

السؤال 1 من 0
النتيجة 0/0

10 / 11
ML 101
الخلاصة
مراجعة

اتعلّمت إيه

الـ LSTM بتحل مشكلة الـ vanishing gradient بـ cell state وتلات gates. والـ GRU بتبسّطها لـ gateين بأداء قريب. والشبكات اللي في الاتجاهين بتزوّد سياق اللي جاي. ارص 2–4 layers عشان representations أغنى. والـ transformers (الوحدة 9) خدت مكان الـ recurrence بالـ self-attention المتوازي.

11 / 11