Long Short-Term Memory

n web 25
الذكاء الاصطناعي

Long Short-Term Memory

إيه هو LSTM و إزاي بتشتغل؟

LSTM (هي اختصار لـ Long Short-Term Memory) هي نوع من أنواع الشبكات العصبية التكرارية (RNN) وبيستخدم في مجالات كتير زي NLP، التعرف على الصوت، وأي task بتحتاج للتعامل مع بيانات متسلسلة. الـ LSTM اتصمم علشان يحل مشكلة أساسية في الRNN واللي هي صعوبة الحفاظ على المعلومات على مدى فترات زمنية طويلة.

الفرق بين LSTM و RNN التقليدية :

الـ RNN التقليدي بيكون ليه هيكل بسيط مكون من المدخلات (Input)، (Hidden State)، والمخرجات (Output). لكن الـ LSTM ليه هيكل معقد أكتر، وده بيسمح له بحفظ البيانات لفترات أطول بفضل ال gates و الذاكرة اللي بيحتفظ بيها، اللي بتساعده في تحديد المعلومات اللي لازم يفتكرها ويحتفظ بيها، واللي لازم ينساه. وده بيخليه مثالي لمهام زي الترجمة الآلية وتحليل الكلام.

مكونات LSTM :

cell LSTM بتتكون من شوية مكونات رئيسية بتحكم في إزاي المعلومات تتخزن وتتحدث في كل خطوة زمنية:

Input Gate: ال gate دي بتتحكم في تدفق المعلومات من Input الحالي و ال Hidden State السابقة إلى ال Memory cell.

Forget Gate: ال gate دي بتقرر إيه يتم نسيانه من الذاكرة السابقة.

Memory Cell: دي الخلية اللي بتخزن المعلومات لفترات طويلة، وهي اللي بتخلي الـ LSTM قادر على تذكر البيانات من فترات زمنية طويلة.
Output Gate: الgate دي بتتحكم في تدفق المعلومات من الذاكرة إلى المخرجات النهائية.

إزاي الـ LSTM بيشتغل؟

في LSTM (Long Short-Term Memory)، كل خطوة زمنية بتتعامل مع البيانات كـ إدخال (Input) وتحدث الـ Hidden State و الـ Memory State في نفس الوقت. الـ LSTM بيستخدم مجموعة من ال Gates اللي بتساعد في التحكم في تدفق المعلومات داخل ال model.
كل بوابة في الـ LSTM لها وظيفة محددة، وتُستخدم دوال رياضية زي sigmoid و tanh للتحكم في تدفق المعلومات عبر ال network. الدوال دي بتساعد في تحديد كمية المعلومات اللي لازم يتم تمريرها أو نسيانها أو إخراجها في كل خطوة زمنية. خليني أوضح لك كل بوابة:

1.ال (Forget Gate) :

⦁ وظيفتها تحديد كمية المعلومات من الـ Memory State السابق (اللي هو الـ C_{t-1}) اللي لازم يتم نسيانها.
⦁ العملية: بتستخدم دالة sigmoid اللي بتعطي نتيجة بين 0 و 1، حيث 0 يعني “نسيان كل شيء” و 1 يعني “احتفاظ بكل شيء”.

⦁ المعادلة:
2.ال (Input Gate) :

⦁ وظيفتها تحديد كمية البيانات الجديدة التي يجب إضافتها إلى الـ Memory State .
⦁ بتجمع المعلومات من الإدخال الحالي والـ Hidden State السابق باستخدام دالة sigmoid وtanh لتحديد التحديثات الجديدة.
⦁ العملية: بناءً على قيمة الـ sigmoid، بيتم اختيار أي جزء من الإدخال الحالي يضاف إلى الـ Memory State.

⦁ المعادلة:
ال (Output Gate):

⦁ وظيفتها تحديد أي جزء من الـ Memory State يتم إخراجه في شكل Hidden State في الوقت الحالي.
⦁ العملية: باستخدام دالة sigmoid، بيتم تحديد كمية الـ Memory State التي ستُستخدم لإنشاء الـ Hidden State الجديد.

⦁ المعادلة:
4 . تحديث الـ Memory State:

⦁ بعد ما كل بوابة تقوم بوظيفتها، يتم تحديث الـ Memory State بناءً على البيانات المُعالجة من الـ Forget Gate و Input Gate:

⦁ المعادلة:
⦁ حيث:

⦁ f_t هو الناتج من بوابة النسيان.
⦁ i_t هو الناتج من بوابة الإدخال.
⦁ C’_t هو الـ candidate memory.

خلاصة:

الـ LSTM بيستخدم البوابات دي عشان يقرر في كل خطوة زمنية:

⦁ أي جزء من المعلومات السابقة يتم الاحتفاظ به.
⦁ أي جزء من المعلومات الجديدة يتم إضافته.
⦁ أي جزء من الذاكرة يتم إخراجه كـ Hidden State

بالشكل ده ، الـ LSTM قادر على التعامل مع البيانات المتسلسلة بمرونة، وحفظ المعلومات المهمة لفترات طويلة مع نسيان المعلومات غير المفيدة.

مزايا وعيوب استخدام LSTM
المزايا:

نموذج العلاقات طويلة المدى: الـ LSTM مناسب جدًا لمهام بتحتاج فيها نمذجة العلاقات طويلة المدى زي الترجمة أو التنبؤ بالكلام.
مرونة: ممكن تستخدمه في أكتر من مهمة زي التصنيف أو التنبؤ.
قوة في التعامل مع بيانات ناقصة أو مشوشة: الـ LSTM قوي في التعامل مع بيانات مشوشة أو فيها فقدان للبيانات.
تحسين دقة ال model : مع الـ LSTM، بتقدر تحسن دقة الmodel في المهام اللي بتحتاج تتبع العلاقات الزمنية بين البيانات.

العيوب:

⦁ التدريب بيكون مكلف حسابيًا: الـ LSTM بيحتاج وقت ومجهود كبير للتدريب، خصوصًا لما تكون البيانات كبيرة أو التسلسلات طويلة.
⦁ ممكن يعاني من overfitting: لو البيانات قليلة، ال model ممكن يبالغ في التعميم ويطلع نتائج مش دقيقة.
⦁ تحتاج إلى معايير متقنة: تظبيط الـ hyperparameters زي عدد ال hidden layers و learning rate بيكون تحدي.

إمتى تستخدم LSTM؟

الـ LSTM مفيد جدًا في حالات بتحتاج فيها تتعامل مع تسلسلات أو بيانات ليها علاقة ببعضها على فترات زمنية مختلفة. زي:

⦁ الترجمة الآلية: في الترجمة من لغة للغة تانية، خصوصًا لما بتتعامل مع جمل طويلة أو سياق معقد.
⦁ التعرف على الصوت: الـ LSTM بيقدر يتعرف على الأنماط الصوتية على مدى فترات طويلة ويفهم التتابع بين الكلمات والأصوات.
⦁ تحليل المشاعر: لما نحلل مشاعر النصوص، زي في تقييمات المنتجات أو التغريدات، الـ LSTM بيقدر يلتقط المعنى العاطفي عبر تسلسل الكلمات.

إمتى مفيش داعي تستخدم LSTM؟

⦁ بيانات ثابتة: لو البيانات بتبقى ثابتة في الزمن زي في التصنيف التقليدي أو تحليل الصور، ممكن يكون فيه طرق تانية أفضل زي ال Neural networks العادية.
⦁ البيانات قليلة: لو عندك بيانات قليلة جدًا، ممكن الـ LSTM يتعرض لمشكلة overfitting .

أنواع الـ LSTM

Vanilla LSTM: ده النوع التقليدي من الـ LSTM، بيستخدم في معالجة تسلسل واحد من البيانات.
Bidirectional LSTM: ده النوع اللي بيشتغل في اتجاهين، يعني بيقرأ البيانات من الأول للأخر والعكس.

Stacked LSTM: ده النوع اللي بيجمع أكتر من LSTM في طبقات فوق بعضها، وده بيتيح للmodel أنه يتعلم أنماط معقدة أكتر.

Encoder-Decoder LSTM: النوع ده بيستخدم في مهام زي الترجمة، بيكون فيه جزئين: الأول (Encoder) بيحول ال Input لتمثيل ثابت ، والتاني (Decoder) بيحول التمثيل ده ل Output جديد.

LSTM with Attention: النوع ده بيحسن النتائج في مهام زي تلخيص النصوص، بيوجه التركيز على أجزاء معينة في النصوص، مما بيخلي النموذج أكثر دقة.

Peephole LSTM: ده نوع بيحسن التحكم في الذاكرة عن طريق السماح لgates بقراءة محتوى الذاكرة بشكل مباشر.

Code :

تعريف نموذج LSTM

تجميع ال model

تدريب ال model على البيانات

إزاي تختار بين LSTM وأنواع تانية من ال neural networks؟

الـ LSTM هو اختيار مثالي لما تكون محتاج تتعامل مع بيانات فيها تتابع زمني أو فيها علاقات بعيدة المدى بين الأحداث. لكن لو البيانات بتكون غير متسلسلة زي الصور أو كانت التتابعات قصيرة، في الحالة دي ممكن تختار تقنيات تانية زي الـ NN التقليدية.
لو عندك مجموعة بيانات صغيرة أو بيانات ثابتة، ممكن تتجنب استخدام LSTM عشان التكاليف الحسابية الكبيرة. في الحالة دي، الـ RNN العادي أو حتى تقنيات تانية زي الـ GRU ممكن تكون أكثر فعالية.

الخلاصة :

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

اترك أفكارك هنا