الذاكرة طويلة المدى
الذاكرة طويلة المدى والذاكرة قصيرة المدىالذاكرة الطويلة قصيرة المدى (LSTM) هي شبكة عصبية متكررة زمنياً (RNN) نُشرت لأول مرة في عام 1997. ونظرًا لبنيتها التصميمية الفريدة، فإن LSTM مناسبة لمعالجة وتوقع الأحداث المهمة في السلاسل الزمنية ذات الفواصل الزمنية الطويلة جدًا والتأخيرات.
غالبًا ما يكون أداء LSTM أفضل من الشبكات العصبية المتكررة زمنيًا ونماذج ماركوف المخفية (HMMs)، على سبيل المثال في التعرف على الكتابة اليدوية المستمرة غير المجزأة. في عام 2009، فاز نموذج الشبكة العصبية الاصطناعية الذي تم بناؤه باستخدام LSTM بمسابقة التعرف على خط اليد ICDAR. كما يتم استخدام LSTM على نطاق واسع في التعرف على الكلام المستقل، وفي عام 2013، حقق رقمًا قياسيًا في معدل الخطأ 17.7% باستخدام قاعدة بيانات الكلام الطبيعي TIMIT. باعتباره نموذجًا غير خطي، يمكن استخدام LSTM كوحدة غير خطية معقدة لبناء شبكات عصبية عميقة أكبر.
الذاكرة طويلة المدى والذاكرة قصيرة المدىالذاكرة الطويلة قصيرة المدى (LSTM) هي شبكة عصبية متكررة زمنياً (RNN) نُشرت لأول مرة في عام 1997. ونظرًا لبنيتها التصميمية الفريدة، فإن LSTM مناسبة لمعالجة وتوقع الأحداث المهمة في السلاسل الزمنية ذات الفواصل الزمنية الطويلة جدًا والتأخيرات.
غالبًا ما يكون أداء LSTM أفضل من الشبكات العصبية المتكررة زمنيًا ونماذج ماركوف المخفية (HMMs)، على سبيل المثال في التعرف على الكتابة اليدوية المستمرة غير المجزأة. في عام 2009، فاز نموذج الشبكة العصبية الاصطناعية الذي تم بناؤه باستخدام LSTM بمسابقة التعرف على خط اليد ICDAR. كما يتم استخدام LSTM على نطاق واسع في التعرف على الكلام المستقل، وفي عام 2013، حقق رقمًا قياسيًا في معدل الخطأ 17.7% باستخدام قاعدة بيانات الكلام الطبيعي TIMIT. باعتباره نموذجًا غير خطي، يمكن استخدام LSTM كوحدة غير خطية معقدة لبناء شبكات عصبية عميقة أكبر.
فهم شبكات LSTM
الشبكات العصبية المتكررة
لا يفكر البشر من الصفر طوال الوقت. إذا كنت تقرأ هذا المقال، فأنت تفهم كل كلمة بناءً على الكلمات السابقة، فلا داعي للتخلص من كل شيء والبدء في التفكير من الصفر. أفكارك لها استمرارية.
لا تستطيع الشبكات العصبية التقليدية القيام بذلك، وهذا يصبح عيبًا كبيرًا. على سبيل المثال، تخيل أنك بحاجة إلى إصدار حكم حول الأحداث التي تجري في فيلم. ليس من الواضح كيف يمكن للشبكات العصبية التقليدية استنتاج الأحداث المستقبلية بناءً على الأحداث السابقة.
تم تصميم الشبكات العصبية المتكررة لحل هذه المشكلة. توجد حلقات داخل الشبكة العصبية المتكررة للحفاظ على استمرارية المعلومات.

في الشكل أعلاه، توجد شبكة عصبية محلية - ????A، وقيمة الإدخال ????????xt، وقيمة الإخراج ℎ?????ht. تضمن الحلقة أن يتم تمرير المعلومات خطوة بخطوة عبر الشبكة.
تجعل هذه الحلقات الشبكات العصبية المتكررة صعبة الفهم. ولكن إذا فكرت في الأمر، فهي لا تختلف عن الشبكات العصبية العادية. يمكن اعتبار الشبكة العصبية المتكررة بمثابة مجموعة من الشبكات المتطابقة، حيث تقوم كل منها بنقل المعلومات إلى الشبكة التالية. إذا قمنا بفك الحلقة نرى:

يكشف هذا الهيكل المتسلسل بشكل طبيعي أن الشبكات العصبية المتكررة ترتبط ارتباطًا وثيقًا بالتسلسلات والقوائم. هذا هو الهندسة الطبيعية للشبكات العصبية لمعالجة البيانات التسلسلية.
وبطبيعة الحال، فهو متاح أيضًا. في السنوات الأخيرة، حققت الشبكات العصبية المتكررة نجاحًا مذهلاً في التعرف على الكلام، ونمذجة اللغة، والترجمة، ووصف الصور، والعديد من المجالات الأخرى. سأترك مناقشة الإنجازات التي تحققت باستخدام شبكات RNN لمدونة أندريه كارباثي. RNNs مذهلة!
إن مفتاح هذه النجاحات يكمن في "LSTM" - وهو نوع خاص من الشبكات العصبية المتكررة التي تعمل بشكل أفضل بكثير من الإصدار القياسي من RNN في العديد من المشاكل. تنبع جميع النتائج البارزة تقريبًا التي تم تحقيقها باستخدام الشبكات العصبية المتكررة من استخدام LSTM. هذه المقالة تتحدث عن LSTM.
قضايا الاعتماد على المدى الطويل
أحد مزايا شبكات RNN هو قدرتها على ربط المعلومات السابقة بالمشكلة الحالية، على سبيل المثال استخدام إطارات الفيديو السابقة لإلهام فهم الإطار الحالي. إذا استطاعت الشبكات العصبية المتكررة القيام بذلك، فإنها ستكون مفيدة للغاية. ولكن هل يمكن ذلك؟ حسنًا، إنه مشروط.
في بعض الأحيان نحتاج فقط إلى إلقاء نظرة على المعلومات الحديثة للتعامل مع مشكلة حالية. على سبيل المثال، يحاول نموذج اللغة التنبؤ بالكلمة التالية استنادًا إلى الكلمات السابقة. إذا حاولنا التنبؤ بأن "السحب موجودة في سماء"نحن لسنا بحاجة إلى أي سياق إضافي، ومن الواضح أن الكلمة التالية ستكون سماء . في هذه الحالة، تكون المسافة بين المعلومات ذات الصلة ومكان وجودها صغيرة، ويمكن لـ RNN أن تتعلم كيفية استخدام المعلومات السابقة.

ولكن هناك أيضًا حالات نحتاج فيها إلى مزيد من السياق. فكر في محاولة التنبؤ "لقد نشأت في فرنسا... أتحدث بطلاقة فرنسي"." تشير المعلومات الأقرب إلى أن الكلمة التالية هي على الأرجح اسم لغة، ولكن إذا أردنا تحديد أي لغة بدقة، فسنحتاج إلى سياق من مكان أبعد - فرنسا. لذلك، من المحتمل جدًا أن تكون المسافة بين المعلومة ذات الصلة وموقعها كبيرة جدًا.
لسوء الحظ، مع زيادة المسافة، تبدأ الشبكة العصبية المتكررة في الفشل في توصيل المعلومات.

من الناحية النظرية، فإن RNN قادرة بالتأكيد على التعامل مع هذا النوع من "الاعتماد طويل الأمد". يمكن للبشر حل هذا الشكل من "مشكلة اللعبة" عن طريق اختيار المعلمات بعناية. لسوء الحظ، في الممارسة العملية، يبدو أن الشبكات العصبية المتكررة غير قادرة على تعلمها. وقد تم استكشاف هذه القضية بعمق من قبل هوخريتر وبينجيو وآخرين. لقد اكتشف السبب الجذري لصعوبة المشكلة.
ولحسن الحظ، لا تعاني أجهزة LSTM من هذه المشكلة!
شبكة LSTM
شبكات الذاكرة طويلة المدى قصيرة المدى - والتي يشار إليها عادةً باسم LSTMs - هي نوع خاص من شبكات RNN القادرة على تعلم التبعيات طويلة المدى. تم اقتراحه من قبل Hochreiter وSchmidhuber (1997)، وتم تحسينه وتوسيعه من قبل العديد من الآخرين في الأعمال اللاحقة. يؤدي LSTM أداءً جيدًا للغاية في مجموعة واسعة من المشكلات ويُستخدم الآن على نطاق واسع.
تم تصميم LSTMs بشكل صريح لتجنب مشكلة الاعتماد على المدى الطويل. إن تذكر المعلومات لفترات طويلة من الزمن هو في الواقع السلوك الافتراضي لأجهزة الذاكرة طويلة المدى، وليس شيئًا يحتاج إلى تعلمه بجد!
تحتوي جميع الشبكات العصبية المتكررة على وحدة متكررة تشبه السلسلة من الشبكات العصبية. في RNN القياسية، تحتوي هذه الوحدة المتكررة على بنية بسيطة للغاية، مثل طبقة tanh واحدة فقط.

تتمتع LSTM أيضًا ببنية سلسلة مماثلة، ولكن الوحدات النمطية المتكررة لها بنية مختلفة. لا توجد طبقة واحدة للشبكة العصبية، بل أربع طبقات، وتتفاعل بطريقة خاصة للغاية.

لا تقلق بشأن التفاصيل. سنقوم بشرح مخطط LSTM لاحقًا. الآن، دعونا نحاول التعرف على التدوين الذي سنستخدمه.

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

يمكن لـ LSTMs إضافة أو إزالة المعلومات إلى حالة الخلية من خلال بنية معقدة من ما يسمى "البوابات".
يمكن للبوابات أن تسمح بمرور المعلومات بشكل انتقائي. وهي تتكون من طبقات الشبكة العصبية السينيّة وعمليات الضرب النقطية.

إن مخرجات الشبكة على شكل حرف S عبارة عن قيمة تتراوح بين 0 و1، مما يشير إلى نسبة المعلومات التي تمر. القيمة 0 تعني "عدم مرور أي معلومات"، والقيمة 1 تعني "مرور جميع المعلومات".
تحتوي وحدة LSTM على ثلاث بوابات من هذا القبيل تستخدم للحفاظ على حالة الخلية والتحكم فيها.
تحليل خطوة بخطوة لعملية LSTM
الخطوة الأولى في LSTM هي تحديد المعلومات التي سيتم التخلص منها من حالة الخلية. يتم اتخاذ هذا القرار من خلال طبقة شبكة على شكل حرف S تسمى "طبقة بوابة النسيان". يأخذ ℎ??????−1ht−1 و?????????xt ويخرج قيمة بين 0 و1 لكل رقم في حالة الخلية ?????????−1Ct−1. 1 يعني "قبول هذا تمامًا" و 0 يعني "تجاهل هذا تمامًا".
دعونا نعود إلى مثالنا لنموذج اللغة الذي يحاول التنبؤ بالكلمة التالية بالنظر إلى الكلمات السابقة. في هذا السؤال، قد تتضمن حالة الخلية جزءًا من الكلام للموضوع الحالي، لذا يمكن استخدام الضمير الصحيح. عندما نرى موضوعًا جديدًا، نحتاج إلى نسيان جزء الكلام من الموضوع السابق.

الخطوة التالية هي تحديد المعلومات الجديدة التي يجب حفظها في حالة الخلية. هناك قسمين هنا. في الجزء الأول، تحدد طبقة الشبكة على شكل حرف S والتي تسمى "طبقة بوابة الإدخال" المعلومات التي تحتاج إلى التحديث. في الجزء الثاني، تقوم طبقة tanh بإنشاء متجه جديد للقيم المرشحة — ????̃ ????C~t، والتي يمكن إضافتها إلى حالة الخلية. في الخطوة التالية، نقوم بدمج الجزأين أعلاه لإنتاج تحديث للحالة.
في نموذج لغتنا، نحتاج إلى إضافة جزء الكلام للموضوع الجديد إلى الحالة، واستبدال الموضوع القديم الذي يجب نسيانه.

قم الآن بتحديث حالة الخلية القديمة ????????−1Ct−1 إلى ????????Ct . الخطوات السابقة حددت بالفعل ما يجب فعله، ما علينا سوى القيام به.
نضرب الحالة القديمة بـ ?????????ft لننسى ما قررنا نسيانه. نضيف بعد ذلك ?????????∗??????̃ ???it∗C~t، وهي القيم المرشحة الجديدة، المقاسة بقيم التحديث التي قررناها لكل حالة.
في حالة نموذج اللغة، هذا هو المكان الذي نتخلص فيه من جزء الكلام للموضوع القديم ونضيف جزء الكلام للموضوع الجديد بناءً على الخطوات السابقة.

وأخيرًا، نحتاج إلى تحديد قيمة الإخراج. يعتمد الإخراج على حالة الخلية لدينا، ولكن سيكون عبارة عن نسخة "مفلترة". أولاً نقوم بتشغيل طبقة سيجما، والتي تحدد الأجزاء التي يمكن إخراجها من حالة الخلية. نقوم بعد ذلك بإدخال حالة الخلية في tanhtanh (نضبط القيمة بين -1−1 و11) ونضربها في مخرجات طبقة السيني حتى نتمكن من إخراج المخرجات المطلوبة.
إذا أخذنا نموذج اللغة كمثال، فبمجرد ظهور موضوع ما، فإن معلومات الموضوع سوف تؤثر على الفعل الذي يظهر لاحقًا. على سبيل المثال، معرفة ما إذا كان الموضوع مفردًا أم جمعًا سيخبرك بشكل الفعل الذي يليه.

اختلافات الذاكرة طويلة المدى وقصيرة المدى
ما وصفته حتى الآن هو مجرد شبكة LSTM عامة إلى حد ما. ولكن ليست كل شبكات LSTM متساوية كما هو موضح أعلاه. في الواقع، تعمل جميع الأوراق تقريبًا على تحسين شبكات LSTM للحصول على إصدار محدد. الاختلافات طفيفة، ولكن من الضروري أن نكون على دراية بالمتغيرات.
يضيف أحد المتغيرات الشائعة لـ LSTM التي أنشأها Gers وSchmidhuber "اتصال ثقب الباب" إلى LSTM، مما يعني أنه يمكننا السماح لطبقة شبكة البوابة بإدخال حالة الخلية.

في الصورة أعلاه أضفنا فتحات للرؤية لجميع الأبواب، ولكن العديد من الصحف تضيف فتحات للرؤية لبعض الأبواب فقط.
هناك متغير آخر يجمع بين النسيان وبوابة الإدخال. يتم تحديد المعلومات التي سيتم نسيانها والمعلومات الجديدة التي سيتم إضافتها في وقت واحد وليس بشكل منفصل. عندما تقوم بإدخال شيء ما، فإنك تنساه؛ عندما تنسى المعلومات القديمة، تقوم بإدخال بيانات جديدة.

هناك نوع أكثر إثارة للاهتمام من LSTM يسمى Gated Recurrent Unit (GRU)، والذي اقترحه Cho et al. يقوم GRU بدمج بوابة النسيان وبوابة الإدخال في "بوابة تحديث" واحدة، ويجمع حالة الخلية مع الحالة المخفية، ولديه تغييرات أخرى. وهذا يجعل GRU أبسط من نموذج LSTM القياسي، وبالتالي أصبح شائعًا.

هذه مجرد أمثلة قليلة من المتغيرات LSTM المعروفة. هناك متغيرات أخرى، مثل شبكة RNN ذات البوابة العميقة التي اقترحها ياو وآخرون. هناك أيضًا بعض الطرق المختلفة تمامًا للتعامل مع التبعيات طويلة المدى، مثل Clockwork RNN التي اقترحها Koutnik et al.
أي من هذه المتغيرات هو الأفضل؟ هل الفرق بينهما مهم؟ جريف وآخرون أجرى دراسة قارنت بعناية بين المتغيرات الشائعة ووجد أنها متطابقة تقريبًا. جوزيفوفيتش وآخرون تم اختبار أكثر من 10000 بنية RNN ووجدنا أن بعض البنيات كان أداؤها أفضل من LSTM في مشاكل محددة.
ختاماً
لقد لاحظت في وقت مبكر أن بعض الأشخاص حققوا نتائج ملحوظة باستخدام شبكات RNN، وكانوا يستخدمون شبكات LSTM دائمًا تقريبًا. بالنسبة لمعظم المشاكل، فإن LSTM هو ببساطة أفضل!
بعد إدراج مجموعة من الصيغ، يبدو LSTM أمرًا شاقًا. ولحسن الحظ، فإن التحليل خطوة بخطوة في المقالة يجعل من السهل قبولها.
يعتبر LSTM تقدمًا كبيرًا مقارنة بـ RNN. ومن الطبيعي أن نسأل: هل هناك أي مجال آخر للتحسين؟ الجواب العام من الباحثين هو: نعم! لا يزال هناك مجال للتحسين، وهذا هو الاهتمام! فكرة الاهتمام هي السماح لكل خطوة في RNN باستخراج المعلومات من حيث تكون المعلومات أكثر ثراءً. على سبيل المثال، إذا كنت تريد استخدام RNN لإنشاء وصف لصورة، فإنه يحتاج أيضًا إلى استخراج جزء من الصورة لإنشاء النص الناتج. في الواقع، هذا هو ما قاله Xu et al. لقد فعلت ذلك، وهو ما يعد نقطة بداية جيدة جدًا إذا كنت تريد استكشاف الاهتمام. هناك العديد من الإنجازات الأخرى المتميزة التي تستخدم الانتباه، والانتباه سوف يصبح أقوى في المستقبل...
الاهتمام ليس هو الفكرة المثيرة الوحيدة في أبحاث RNN. الشبكة LSTM المقترحة من قبل Kalchbrenner et al. يبدو واعدًا جدًا. إن فكرة استخدام RNNs في النماذج التوليدية بواسطة Gregor et al.، وChung et al.، أو Bayer and Osendorfer هي أيضًا مثيرة للاهتمام للغاية. لقد كانت السنوات القليلة الماضية بمثابة فترة رائعة بالنسبة للشبكات العصبية المتكررة، وستكون النتائج الجديدة أكثر واعدة.
أعيد طبعه من https://www.cnblogs.com/xuruilong100/p/8506949.html