التعلم العميق2014متوسط20 دقيقة قراءة

آلات تورنغ العصبية: شبكة تتعلّم أن تكتب في ذاكرة خارجية وتقرأ منها

Neural Turing Machines

Graves, A. · Wayne, G. · Danihelka, I. — arXiv

المشكلة

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

الإسهام

تربط الورقة متحكّماً عصبياً (شبكة LSTM أو شبكة أمامية التغذية) بمصفوفة ذاكرة خارجية عبر رؤوس للقراءة والكتابة. كل رأس يُنتج توزيعاً ليّناً من الأوزان على جميع مواقع الذاكرة بدل أن يختار موقعاً واحداً. فتصبح القراءة مجموعاً موزوناً، وتصبح الكتابة مسحاً موزوناً تتبعه إضافة موزونة. وتُحسَب هذه الأوزان على أربع مراحل. المرحلة الأولى عنونة بالمحتوى: يقارن الرأس مفتاحاً بكل صف ، وتضبط قوة المفتاح β حدّة هذه المقارنة. والمراحل الثلاث التالية عنونة بالموقع: بوابة استيفاء، ثم إزاحة دائرية، ثم أسّ شحذ γ. وكل خطوة في هذا النظام قابلة للاشتقاق، من المُدخل إلى الناتج. ومن أمثلة المدخلات والمخرجات وحدها يتعلّم خمس مهام: النسخ، والنسخ المتكرّر، والاستدعاء الترابطي، ونماذج N-gram الديناميكية، والفرز بالأولوية. وفي المهام الخمس يتعلّم أسرع من LSTM ويبلغ كلفة أدنى، وفي النسخ والاستدعاء الترابطي يعمل على تسلسلات أطول بكثير من أي تسلسل رآه في التدريب.

الأثر

افتتحت هذه الورقة خط الشبكات العصبية المعزّزة بالذاكرة. وريثها المباشر، الحاسوب العصبي القابل للاشتقاق (2016)، أبقى على المتحكّم والرؤوس والوصول الليّن إلى الذاكرة، وأضاف تخصيصاً ديناميكياً للذاكرة وسجلاً لترتيب الكتابة في المواقع. أما فكرتها المركزية فهي القراءة من مخزن كبير بدالة softmax على التشابه مع مفتاح. وهذه هي العملية نفسها التي يقوم عليها الانتباه في نماذج التسلسل. وبها سبقت الورقة الانتباه بالمفاتيح والقيم، الذي جعلته نماذج Transformer معياراً فيما بعد.

تخيّل طالباً يحلّ تمريناً طويلاً معتمداً على ذاكرته وحدها، ثم تخيّله وفي يده قلم ودفتر. مع الدفتر لم يعد مضطراً إلى حمل كل رقم في رأسه: يكتب قيمة في سطر، ينزل سطراً، يكتب التالية، ثم يعود فيقرأ الأسطر.

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

شبكة مضطرة إلى حفظ كل شيء في رأسها

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

يصف المؤلفون هذه الفجوة بمفاهيم مستعارة من علم النفس واللسانيات. الإنسان يحلّ المهام القصيرة مستعيناً بـ، وهي مخزن صغير تُعالَج محتوياته بقواعد. وقد احتجّ منتقدو الشبكات العصبية طويلاً بأنها عاجزة عن ، أي أن تضع قيمة في خانة ثم تستعيدها باسمها لاحقاً. ومعروف أن الشبكات التكرارية من حيث المبدأ. لكن هذا حكم على ما تستطيع أن تمثّله، لا على ما يستطيع الانحدار التدرّجي أن يعلّمها إياه.

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

افصل التفكير عن التخزين

تتكوّن آلة تورنغ العصبية من جزأين. الأول هو المتحكّم: شبكة عادية، من نوع LSTM أو أمامية التغذية، تستقبل المُدخل وتُخرج الناتج في كل خطوة زمنية. وإلى جانبه مصفوفة ذاكرة من N صفاً، كل صف متجه من M عدداً. وفي كل تجارب الورقة كانت N تساوي 128 وM تساوي 20.

المتحكّم لا يلمس الذاكرة مباشرة. إنه يتعامل معها عبر رؤوس القراءة والكتابة. والرؤوس طبقات إخراج صغيرة، تقرّر أين تقرأ أو تكتب، وماذا تكتب.

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

لذلك يسمّي المؤلفون العمليات الناتجة «ضبابية». كل قراءة وكل كتابة تمسّ كل موقع في الذاكرة: بعضها بقدر كبير، وأغلبها بقدر لا يكاد يُذكر. وهذه الضبابية ليست عيباً ينبغي التخلّص منه. إنها ما يجعل التصميم يعمل، والقسمان التاليان يبيّنان السبب.

القراءة مجموع موزون، والكتابة مسح ثم إضافة

لنبدأ بالنصف الأسهل، وهو القراءة. إذا كانت أوزان الرأس على المواقع هي w، فإن متجه القراءة هو لصفوف الذاكرة: r=∑iw(i) M(i)r = \sum_i w(i)\, M(i). فإذا تركّزت الأوزان على صف واحد، أعادت القراءة ذلك الصف تقريباً كما هو. وإذا توزّعت على ثلاثة صفوف، أعادت خليطاً منها.

أما الكتابة فتجري على خطوتين، ويذكر المؤلفون أنهم استلهموها من بوابتَي الإدخال والنسيان في LSTM. في الخطوة الأولى نمسح جزءاً من كل صف. يحدّد متجه المسح e أيّ المكوّنات تُمحى، وقيمه بين 0 و1. وتحدّد الأوزان مدى تأثّر كل صف بهذا المسح. وفي الخطوة الثانية نكتب متجه الإضافة a، مضروباً في الأوزان نفسها.

ماذا يعني ذلك عملياً؟ الصف الذي وزنه 1، مع متجه مسح كل قيمه آحاد، يُستبدَل بالكامل. والصف الذي وزنه صفر يبقى كما هو. وكل ما بين الحالتين خليط جزئي من القديم والجديد.

والمسح والإضافة ليسا إلا ضرباً وجمعاً. لذلك فالنتيجة قابلة للاشتقاق بالنسبة إلى الأوزان، ومتجهَي المسح والإضافة، والذاكرة القديمة. أي أن التدرّج يصل إلى كل واحد منها ويعرف كيف يعدّله. وإذا عملت عدة رؤوس كتابة معاً، فلا يهمّ الترتيب الذي تُطبَّق به إضافاتها.

M~t(i)=Mt−1(i) [1−wt(i) et]Mt(i)=M~t(i)+wt(i) at\begin{aligned} \tilde{M}_t(i) &= M_{t-1}(i)\,\bigl[\mathbf{1} - w_t(i)\, e_t\bigr] \\ M_t(i) &= \tilde{M}_t(i) + w_t(i)\, a_t \end{aligned}
عملية الكتابة: مسح ثم إضافة — الغرض من هذين السطرين أن تتغيّر الذاكرة بمقدار يتبع بسلاسة شدّة انتباه الرأس إلى كل صف. في السطر الأول يحتفظ كل صف بما لم يُمسَح من محتواه القديم. هنا wt(i)w_t(i) هو مقدار الانتباه الذي يناله الصف i، وete_t يحدّد المكوّنات التي تُمحى. في السطر الثاني يُضاف المحتوى الجديد ata_t إلى كل صف بنسبة الانتباه نفسها. والنتيجة أن الصفوف التي يتجاهلها الرأس تخرج كما دخلت تماماً.
افتح في المختبر
أمامك منزلقان، ولكل منهما أثر مختلف. أبقِ التركيز على خانة واحدة وخفّض شدّة المسح: تصير الخانة المستهدفة خليطاً من القديم والجديد. ثم ارفع انتشار التركيز: تتسرّب الكتابة إلى الخانتين المجاورتين، ولا تنال الخانة المستهدفة نفسها كتابة كاملة. وآخر رقم تحت الشبكتين هو ما ستقرؤه لو قرأت بالأوزان نفسها.
تستيقظ التجربة عند وصولك…

لماذا لا يجوز للرأس أن يختار خانة واحدة

كان الأبسط أن يختار كل رأس صفاً واحداً، كما يقرأ الحاسوب عنواناً واحداً. هذا هو ، وهو يُفسد التدريب. لماذا؟ إذا كان الرأس يقرأ دائماً الصف الأشبه بالمفتاح، فتحريك المفتاح قليلاً لا يغيّر شيئاً في أغلب الأحيان. لذلك يساوي التدرّج بالنسبة إلى المفتاح صفراً بالضبط. ثم حين ينقلب الاختيار أخيراً إلى صف آخر، يقفز الناتج قفزة واحدة. والنتيجة أن الانحدار التدرّجي لا يتلقّى أي إشارة على المقاطع المستوية، ويتلقّى إشارة غير معرّفة عند القفزات.

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

لكن لهذا ثمناً. كل قراءة وكل كتابة تمسّ المواقع الـN كلها، فتزداد كلفة كل خطوة مع حجم الذاكرة. والورقة تقبل هذا الثمن مقابل ذاكرة يمكن تعلّمها.

افتح في المختبر
ابدأ بالوضع الصلب واسحب المفتاح ببطء. ستبقى القيمة المقروءة ثابتة، ويبقى التدرّج صفراً بالضبط، حتى يقفز الناتج فجأة. ثم انتقل إلى الوضع الليّن وكرّر التجربة: المنحنى سلس، والتدرّج لا يصير صفراً أبداً، وكل خانة تنال نصيباً منه.
تستيقظ التجربة عند وصولك…

العنونة على أربع مراحل: ابحث بالمحتوى، ثم تحرّك بالموقع

حتى الآن افترضنا أن الأوزان معطاة. لكن حسابها هو المساهمة التقنية الأهم في الورقة، ويبدأ بـ. يُصدر الرأس متجه مفتاح k، ويقارنه بكل صف في الذاكرة عبر تشابه جيب التمام. ثم تحوّل دالة هذه التشابهات إلى أوزان، فينال الصف الأشبه بالمفتاح وزناً أكبر. وهذه هي فكرة ، والفكرة التي تقوم عليها شبكة هوبفيلد: تجد الذكرى بأن تصف ما فيها.

وهناك عدد ثانٍ هو قوة المفتاح β، يتحكّم في مدى انتقائية البحث. إذا اقتربت β من الصفر، صارت الأوزان شبه متساوية، وصار كل صف مرشحاً. وإذا كبرت، تركّزت الأوزان على الصف الأكثر تطابقاً وحده.

لكن المحتوى وحده لا يكفي، والمؤلفون يشرحون السبب. بعض المهام تحتاج إلى موقع محتواه اعتباطي ومكانه معروف: الخانة التي تلي الخانة المكتوبة للتو، أو بداية قائمة. خذ متغيرَي عملية حسابية مثل x × y. قيمتاهما يمكن أن تكونا أي شيء، وما يعرفه البرنامج هو المكان الذي وضعهما فيه. وهذا دور النصف الثاني من خط العنونة.

wtc(i)=exp⁡(βt K[kt,Mt(i)])∑jexp⁡(βt K[kt,Mt(j)]),K[u,v]=u⋅v∥u∥ ∥v∥w^c_t(i) = \frac{\exp\bigl(\beta_t\, K[k_t, M_t(i)]\bigr)}{\sum_j \exp\bigl(\beta_t\, K[k_t, M_t(j)]\bigr)}, \qquad K[u, v] = \frac{u \cdot v}{\lVert u \rVert\, \lVert v \rVert}
العنونة بالمحتوى — هذا التعبير يحوّل سؤال «ما مدى شبه كل صف بالمفتاح؟» إلى أوزان مجموعها واحد. الرمز K هو تشابه جيب التمام، فهو يقيس الزاوية بين المفتاح ktk_t والصف Mt(i)M_t(i) ويتجاهل طولهما. أما βt\beta_t فتُضرب في كل تشابه قبل دالة softmax. القيم الصغيرة تسطّح الأوزان. والقيم الكبيرة تجعل الصف الأشبه بالمفتاح يستأثر بالوزن كله تقريباً.

تأخذ أوزان المحتوى وتحرّكها، على ثلاث خطوات. الخطوة الأولى g، وهي عدد بين 0 و1 يمزج أوزان المحتوى بالأوزان التي استعملها الرأس في الخطوة السابقة. حين تكون g = 1 يقرّر المفتاح وحده. وحين تكون g = 0 يُهمَل المفتاح، ويبدأ الرأس من حيث كان.

في الخطوة الثانية تُدار النتيجة بـأوزان الإزاحة s. في تجارب الورقة كانت s توزيعاً على ثلاث إزاحات فقط: −1 و0 و+1. وتجري هذه الإدارة بالتفاف دائري، فما يتجاوز الصف الأخير يعود إلى الصف الأول.

وللإزاحة الليّنة أثر جانبي ينبّه إليه المؤلفون. الأوزان 0.1 و0.8 و0.1 تحوّل تركيزاً على صف واحد إلى تركيز ضبابي على ثلاثة صفوف. ولو تكرّر ذلك في كل خطوة لانتشر التركيز حتى يغطي الذاكرة كلها. وهنا تأتي الخطوة الثالثة، الشحذ: يُرفع كل وزن إلى أسّ γ لا يقل عن 1، ثم يُعاد تطبيع الأوزان. الرفع إلى أسّ يكبّر الفرق بين الأوزان الكبيرة والصغيرة، فيعود الوزن ليتجمّع حول القمة.

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

wtg=gt wtc+(1−gt) wt−1w~t(i)=∑j=0N−1wtg(j) st(i−j)wt(i)=w~t(i)γt∑jw~t(j)γt\begin{aligned} w^g_t &= g_t\, w^c_t + (1 - g_t)\, w_{t-1} \\ \tilde{w}_t(i) &= \sum_{j=0}^{N-1} w^g_t(j)\, s_t(i - j) \\ w_t(i) &= \frac{\tilde{w}_t(i)^{\gamma_t}}{\sum_j \tilde{w}_t(j)^{\gamma_t}} \end{aligned}
العنونة بالموقع: بوابة، ثم إزاحة، ثم شحذ — هذه الأسطر الثلاثة تأخذ أوزاناً وتحدّد أين ينتهي الرأس فعلاً. السطر الأول يختار نقطة البداية: gtg_t يمزج أوزان المحتوى الجديدة wtcw^c_t بالأوزان النهائية للخطوة السابقة wt−1w_{t-1}. السطر الثاني يدير نقطة البداية هذه: كل وزن جديد يجمع أوزان الصفوف التي تنزاح إلى الموقع i. والدليل i−ji - j يُحسَب بباقي القسمة على N، فيلتفّ من آخر الذاكرة إلى أولها. السطر الثالث يزيل الضبابية التي أدخلتها الإدارة. رفع كل وزن إلى γt\gamma_t يكبّر الأوزان الكبيرة نسبياً ويصغّر الصغيرة، والقسمة على المجموع تعيد النتيجة أوزاناً مجموعها واحد.
افتح في المختبر
تبدأ البوابة مغلقة، وتبدأ الإزاحة بمثال الورقة نفسه (0.1 و0.8 و0.1). اضغط «خطوة» عدة مرات وراقب التركيز وهو ينتشر على الذاكرة. ثم ارفع γ إلى 2 أو 3 وتقدّم من جديد: يتوقّف الانتشار. اختر إزاحة إلى الأمام فيسير الرأس في الذاكرة كأنه على شريط. وأخيراً افتح البوابة وخفّض β، وانظر كيف تبدأ الخانة 14، شبه المطابقة، في منافسة المطابقة الحقيقية في الخانة 6.
تستيقظ التجربة عند وصولك…

متحكّمان، ولماذا يحتاج المتحكّم الأمامي إلى رؤوس أكثر

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

لكن للمتحكّم الأمامي ثمناً، وهو اعتماده على عدد الرؤوس. برأس قراءة واحد لا يستطيع أن يعالج في الخطوة الواحدة إلا متجهاً واحداً من الذاكرة. وبرأسين يستطيع أن يعالج متجهين معاً، وهكذا. فحين تصعب المهمة، يعوّض غيابَ الحالة الداخلية برؤوس أكثر. وجداول المعاملات تُظهر ذلك مباشرة. في النسخ والنسخ المتكرّر ونماذج N-gram يكتفي المتحكّمان برأس واحد. في الاستدعاء الترابطي يستخدم المتحكّم الأمامي أربعة رؤوس و256 وحدة، مقابل رأس واحد و100 وحدة في نسخة LSTM. وفي الفرز بالأولوية ثمانية رؤوس و512 وحدة، مقابل خمسة رؤوس وطبقتين من 100 وحدة. ويلاحظ المؤلفون أن المتحكّم الأمامي احتاج إلى ثمانية رؤوس متوازية ليبلغ أفضل أدائه في الفرز. وقد يعكس ذلك صعوبة الفرز حين لا تتاح إلا عمليات على متجه واحد في كل مرة.

الاختبار: درّب على تسلسلات قصيرة، ثم اطلب تسلسلات طويلة

خمس مهام تختبر استعمالات مختلفة للذاكرة. النسخ: احفظ تسلسلاً ثم أعِده. النسخ المتكرّر: أعِده عدداً معيّناً من المرات. الاستدعاء الترابطي: أعِد العنصر الذي جاء بعد عنصر الاستعلام. نماذج N-gram الديناميكية: تنبّأ بالبت التالي في تسلسل تتغيّر إحصاءاته. والفرز بالأولوية: أعِد المتجهات مرتّبة بحسب أولويتها. وتُقارَن كل آلة بشبكة LSTM من ثلاث طبقات. الذاكرة 128 × 20 في كل الآلات، والإزاحات مقصورة على −1 و0 و+1.

يجري التدريب بخوارزمية مع زخم 0.9. ويستعمل المؤلفون : كل مكوّن من مكوّنات التدرّج يُحصَر في المدى من −10 إلى 10. والآلات أصغر بكثير من الشبكات المرجعية. في مهمة النسخ مثلاً، للآلة ذات المتحكّم الأمامي 17,162 معاملاً، مقابل 1,352,969 لشبكة LSTM. ولا يتجاوز عدد معاملات أي آلة في أي مهمة 508,305.

المقياس الحاسم هو . تُدرَّب النماذج على تسلسلات قصيرة، ثم تُختبَر على تسلسلات أطول. النموذج الذي حفظ أنماطاً ينبغي أن يفشل حين يخرج عن مدى التدريب. أما النموذج الذي تعلّم إجراءً فينبغي أن يواصل العمل.

افتح في المختبر
تنقّل بين المهام الخمس وقارن الفجوة بين الآلتين وLSTM. الفجوة واسعة في النسخ والاستدعاء الترابطي، وضيقة في نماذج N-gram، حيث لا يبلغ أيّ نموذج خط المقدِّر الأمثل. الأشكال أُعيد رسمها من أشكال الورقة، والقيم الدقيقة لا تُعرض.
تستيقظ التجربة عند وصولك…

النسخ والنسخ المتكرّر: خوارزمية لا نمط محفوظ

في مهمة النسخ ترى الشبكة تسلسلاً من متجهات عشوائية من 8 بتات، يليه فاصل، ثم عليها أن تُخرج التسلسل نفسه. أثناء التدريب يتراوح الطول بين 1 و20. وعند الاختبار يرفعه المؤلفون إلى 30 و50 و120.

تنسخ LSTM جيداً داخل مدى التدريب، ثم تنهار بعده بقليل. وتتراكم أخطاؤها نحو آخر التسلسل، كأن المكان نفد منها. أما الآلة فتواصل النسخ. عند الطول 120، أي ستة أضعاف أطول تسلسل في التدريب، تقع في بضعة أخطاء موضعية وخطأ واحد شامل. الخطأ الشامل أن متجهاً واحداً يتكرّر، فيخرج كل ما بعده متأخراً خطوة. ويرى المؤلفون أن حجم الذاكرة، أي 128 موقعاً، هو العامل المحدِّد عند هذا الطول.

ولماذا تعمّم الآلة؟ الجواب في أوزان رؤوسها. في مرحلة الإدخال يتقدّم رأس الكتابة موقعاً واحداً في كل خطوة. وفي مرحلة الإخراج يعيد رأس القراءة المرور على المواقع نفسها بالترتيب نفسه. وقد كتب المؤلفون هذا السلوك في صورة برنامج قصير، تجده أدناه.

افتح في المختبر
اسحب طول التسلسل إلى ما بعد 20، وهو أطول طول رأته النماذج في التدريب. تمتلئ مخرجات LSTM بالأحمر فوراً تقريباً، بينما تبقى مخرجات الآلة نظيفة. وعند 120 ابحث عن الأخطاء القليلة المتفرّقة وعن المتجه المكرّر قرب النهاية. المخرجات هنا محاكاة تطابق السلوك الذي تصفه الورقة، وليست مخرجات نموذج مدرَّب.
تستيقظ التجربة عند وصولك…
خوارزمية النسخ التي يبدو أن الآلة تعلّمتها (نقلاً عن الورقة)text

مبسَّط لإظهار الفكرة — ليس التنفيذ الحقيقي.

# مرحلة الإدخال: خزّن كل متجه في موقع جديد
initialise: move head to start location
while input delimiter not seen:
    receive input vector
    write input to head location
    increment head location by 1

# مرحلة الإخراج: اقرأ المواقع نفسها بالترتيب نفسه
return head to start location
while true:
    read output vector from head location
    emit output
    increment head location by 1

يضيف النسخ المتكرّر عدّاداً. تستقبل الشبكة تسلسلاً وعدداً، وعليها أن تُخرج التسلسل ذلك العدد من المرات، ثم تُصدر علامة نهاية. في التدريب اختير الطول وعدد التكرارات كلاهما بين 1 و10. وتتعلّم الآلة المهمة أسرع بكثير من LSTM، وإن كانت الاثنتان تحلّانها في النهاية.

واختبار التعميم يكشف ما تعلّمته الآلة بالضبط. مع تسلسلات أطول وأكثر من عشرة تكرارات، تواصل الآلة إعادة التسلسل بدقة معقولة، أي أن حلقة النسخ عمّمت. لكنها لا تحتفظ بالعدد. فهي تُصدر علامة النهاية بعد كل تكرار يتجاوز الحادي عشر. ويرجّح المؤلفون أن السبب في طريقة تمثيلها لعدد التكرارات: فهي تحمله قيمةً عددية. وتمثيل من هذا النوع لا يمتدّ بسهولة خارج مدى ثابت. باختصار: النسخ عمّم، والعدّ لم يعمّم.

الاستدعاء والإحصاء والفرز: ثلاثة استعمالات أصعب للذاكرة

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

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

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

افتح في المختبر
اختر استعلاماً وجرّب كل آلية وحدها. البحث بالمحتوى يعيد الاستعلام نفسه، والإزاحة وحدها تقع على خانة فارغة. ولا يعيد العنصر الذي جاء بعد الاستعلام إلا اجتماعهما. ولاحظ أنك إن عطّلت الآليتين، فإن الاستعلام E يعطي الجواب الصحيح بمحض المصادفة.
تستيقظ التجربة عند وصولك…

أما نماذج الديناميكية فتختبر هل تستطيع الذاكرة أن تحمل إحصاءات لا عناصر. كل تسلسل تدريب طوله 200 بت، يولّده نموذج 6-gram. بعبارة أخرى، احتمال أن يكون البت التالي 1 يتوقّف على البتات الخمسة التي قبله. ولكل تسلسل جديد تُسحَب الاحتمالات الـ32 كلها من جديد من بالمعاملين ½ و½. لذلك لا تستطيع الشبكة أن تحفظ الاحتمالات. عليها أن تقدّرها وهي تقرأ، من البتات التي رأتها حتى الآن.

لهذا الإعداد صيغة مغلقة للمتنبّئ البيزي الأمثل، تجدها أدناه. وهي تعطي معياراً لا يستطيع أي نموذج تجاوزه. تتفوّق الآلة على LSTM بفارق صغير لكنه معتبر، ولا تبلغ الحدّ الأمثل تماماً. الوصف الدقيق إذن: قريبة من الأمثل، لا عنده. وبالنظر إلى الرؤوس، يلاحظ المؤلفون أن المتحكّم يستعمل الذاكرة ليعدّ الآحاد والأصفار التي رآها بعد كل سياق. وهذا بالضبط ما تحتاج إليه الصيغة المثلى.

P(B=1∣N1,N0,c)=N1+12N1+N0+1P(B = 1 \mid N_1, N_0, \mathbf{c}) = \frac{N_1 + \tfrac{1}{2}}{N_1 + N_0 + 1}
المقدِّر البيزي الأمثل لنماذج N-gram — هذا أفضل تخمين ممكن للبت التالي، بناءً على كل ما ظهر حتى الآن في التسلسل الحالي. الرمز c\mathbf{c} هو سياق البتات الخمسة الذي ظهر للتو. وN1N_1 عدد المرات التي جاء فيها البت 1 بعد هذا السياق نفسه، وN0N_0 عدد المرات التي جاء فيها البت 0. أما ½ و1 في الصيغة فمصدرهما التوزيع المسبق بيتا(½، ½). قبل أي دليل يكون التخمين نصفاً بالضبط، ومع تراكم العدّ يقترب من التكرار المشاهَد.

يختبر الفرز بالأولوية هل يمكن استعمال الذاكرة بنيةً للبيانات. المُدخل 20 متجهاً ثنائياً عشوائياً، ولكل متجه أولوية عددية مسحوبة بانتظام بين −1 و1. والهدف أن تُخرج الشبكة المتجهات الـ16 ذات الأولوية الأعلى، مرتّبة. واختيار 16 كان مقصوداً: أراد المؤلفون أن يروا هل تكتشف الآلة الفرز بالكومة الثنائية بعمق 4.

لكنها وجدت طريقاً آخر. بالنظر إلى أوزان الكتابة، يفترض المؤلفون أن الشبكة تستعمل الأولوية لتحديد الموقع النسبي لكل كتابة. أي أنها تضع المتجهات في الذاكرة بترتيب الأولوية تقريباً، ثم تقرأ المواقع بالتتابع. وتتفوّق الآلتان بوضوح على LSTM في هذه المهمة. لكن هذه الآلية قراءةُ المؤلفين لأوزان الرؤوس، لا أمرٌ تبرهنه الورقة.

ما لا تحلّه الورقة

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

ثم إن الذاكرة ثابتة، ولا شيء يدير شؤونها. عدد المواقع 128 دائماً. ولا توجد طريقة لتعليم موقع بأنه فارغ، أو لإعادة استعماله بأمان. ولا طريقة لتذكّر ترتيب الكتابة في المواقع، سوى أن يتقدّم الرأس إلى الأمام. ومهمة النسخ عند الطول 120 تُظهر أثر هذا القيد: المؤلفون أنفسهم يسمّون حجم الذاكرة العامل المحدِّد. وفوق ذلك إن كل قراءة وكتابة تمسّ كل موقع، فتكبر كلفة الخطوة مع حجم الذاكرة.

والتعميم أيضاً جزئي. النسخ المتكرّر يمدّ الحلقة ولا يمدّ العدّاد، ونماذج N-gram تقترب من الحدّ البيزي الأمثل دون أن تبلغه. ولا تذكر الورقة شيئاً عن ثبات التدريب عبر بذور عشوائية مختلفة. وقد وجدت إعادات التنفيذ اللاحقة أن تدريب هذه الآلات صعب، وأنه حسّاس لطريقة تهيئة الذاكرة. لكن هذه نتيجة من أعمال لاحقة، لا من هذه الورقة.

ما جاء بعدها

ظهرت الآلة إلى جانب فكرتين قريبتين منها. الأولى الانتباه في الترجمة الآلية، وقد نُشر في العام نفسه. فيه يوزّع المفكِّك قراءته بأوزان ليّنة على حالات المرمِّز. والورقة تذكره عملاً قريباً، والاثنان يشتركان في العملية الجوهرية نفسها (انظر آلية الانتباه). والثانية شبكات الذاكرة، التي نُشرت قبل الورقة بأيام، وهي أيضاً تقرن شبكةً بذاكرة صريحة. ثم جاءت نسختها المدرَّبة من الطرف إلى الطرف في 2015، فاستبدلت البحث الصلب في الذاكرة ببحث ليّن.

أما الوريث المباشر للآلة فهو الحاسوب العصبي القابل للاشتقاق (2016). أبقى على المتحكّم والرؤوس الليّنة، وعالج حدود الإدارة التي ذكرناها. فأضاف آلية لتخصيص الذاكرة الفارغة، وسجلاً لترتيب الكتابة في المواقع، بحيث تتبع الرؤوس هذا الترتيب إلى الأمام أو إلى الخلف.

ثم امتدّ أثر الورقة أبعد من ذلك. فالفكرة العامة لـ انتقلت إلى طبقات الانتباه في نماذج Transformer. وانتقلت معها عادة القراءة من مخزن كبير بدالة softmax على التشابه مع مفتاح.

  1. 1997

    LSTM

    وحدات تكرارية ببوابات تحفظ المعلومات عبر مسافات طويلة. هي المتحكّم المعتاد للآلة، وهي الشبكة المرجعية في مقارنتها.

  2. 2014

    الانتباه في الترجمة (Bahdanau وزملاؤه)

    مفكِّك يقرأ أوزاناً ليّنة على حالات المرمِّز. تذكره ورقة الآلة عملاً قريباً.

  3. 2014

    آلات تورنغ العصبية

    متحكّم برؤوس قراءة وكتابة ليّنة على ذاكرة خارجية، تُعنوَن بالمحتوى وبالموقع.

  4. 2014

    شبكات الذاكرة

    خط بحثي موازٍ يقرن شبكةً بذاكرة صريحة طويلة الأمد.

  5. 2015

    شبكات الذاكرة من الطرف إلى الطرف

    شبكات ذاكرة بانتباه ليّن على الذاكرة، يمكن تدريبها من طرفها إلى طرفها.

  6. 2016

    الحاسوب العصبي القابل للاشتقاق

    وريث الآلة، بتخصيص ديناميكي للذاكرة وسجلّ لترتيب الكتابة.

  7. 2017

    Transformer

    الانتباه بالمفاتيح والاستعلامات والقيم يصير البنية كلها.

المرجعGraves, Wayne, Danihelka. Neural Turing Machines. arXiv:1410.5401, 2014.

مصطلحات هذه الورقة