منطق التفكير العرضي 2: بعض خوارزميات التسلسل

التحدي:


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

حل واحد



نقسم المهمة إلى قسمين:
1) نعثر على سلسلتين متشابهتين من الأحداث (عليك أن تفهم أن هاتين الكلمتين تقريبًا تحتويان على تسلسلات متشابهة)
2) حددهما في سلسلة منفصلة ("لوحة")
لنبدأ بالجزء 2. نقوم بتعقيد الكتلة العصبية بأختام زمنية ، والتي تخزن جميع الأحداث في سلسلة الذاكرة ، كما هو موضح في الصورة. بفضل جزء التعرف (اتجاه الاتصالات من السمات إلى الطابع الزمني المعمم) ، سيتم حل المهمة الفرعية 1 - للعثور على موضع بسمات مشتركة ، وبفضل سلسلة الذاكرة مع الروابط لأسفل ، سيتم حل المهمة الفرعية 2. الحل للمهمة الفرعية 2 هو هذا: سنبدأ في استدعاء كلمتين في نفس الوقت حيث يشتركان في. أي أن النظام سيرسل التنشيط بواسطة الخلايا العصبية التي تتوافق مع تلك الحروف. إذا تم العثور على الحرف في كلتا الكلمتين ، فيجب تذكره. للقيام بذلك ، دع الذاكرة تحدث مع نصف القوة. إذا كانت عتبة التنشيط للخلايا العصبية هي T ، فيجب أن ترسل سلسلة الذاكرة 0.5 T من إمكانات الفعل. ثم سيتم تجاوز عتبة التنشيط إلا إذاعندما التقى العرض في كلا السلسلتين. بعد ذلك ، يتم تنشيط الأعراض. ثم يمكنك استخدام خوارزمية الحفظ المعتادة مع الرمز من المقالة السابقة - سينشئ الحصين سلسلة من الذاكرة ، ويخصص لها تلك العلامات الشائعة في كلا السلسلتين. قللنا الحل إلى الحل السابق.
في ENS (NS الطبيعية) ، يمكن تحقيق "نصف التنشيط" من خلال تغيير وقت الإرسال (عدد المسامير التي وصلت) ، أو عدد الناقلات العصبية ، أو ربما باستخدام اتصالات مثبطة (لتحويل 1T إلى 0.5T).
المهمة الفرعية 1 أكثر تعقيدًا إلى حد ما ، حيث يجب أن تعمل مع التعرف الغامض. أي أنه حتى في حالة فقدان عدد قليل من العلامات الشائعة في السلسلة في مكان ما في منتصف السلسلة ، فلا يزال عليك ملاحظة هذا الموقف. دعني أذكرك أن الخلايا العصبية ، نسبيًا ، يمكن أن تكون في ثلاثة أوضاع - الراحة ، وإرسال إشارة واحدة ، ووضع التنشيط عالي التردد. يمكن قبول أن "التعرف الكامل" يؤدي إلى انتقال العصبون إلى وضع التنشيط عالي التردد ، ويؤدي التعرف الغامض إلى إرسال إشارة واحدة. أو يمكننا أن نفترض أنه سيكون هناك خلايا عصبية متخصصة في الكتلة العصبية ، وبعضها سيعمل فقط بمصادفة كاملة والاعتراف الواثق ، وسيعمل العصبون الآخر إذا تم التعرف على جزء فقط من الميزات. هناك العديد من الحلول ، الشيء الرئيسي هو ملاحظة ظهور التنشيط بطريقة ما على المجموعات المطلوبة.

متى تفعل ذلك


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

خوارزميات مماثلة


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

البحث عن التطابقات ...


(1 ، 1 سلسلة رائدة) يمكن إجراؤها بالطرق التالية:
1) عرض جميع الذكريات التي اجتمعت خلال النهار بشكل خطي. يمكن إجراء الانتقال إلى هذا الوضع لأغراض التصحيح على النحو التالي: يتم إدراج حرف Unicode خاص أو كلمة خاصة في مجموعات اختبار بيانات الإدخال الخاصة بـ ANN ، عند القراءة التي سيحولها ANN إلى وضع "السكون البطيء" ويبدأ البحث عن التطابقات. المعنى هذا - لقد ملأوا ANN ببيانات حقيقية ، وأطلقوا خوارزميات التصحيح للعثور على التعميمات.
2) عدم استخدام البحث الخطي ، ولكن لبدء التحليل في المواقف الأكثر إثارة للاهتمام - مع تلك التي كان لها أكبر لون عاطفي. هذا التحسين مطلوب ، لأن هذه الخوارزميات شرهة للغاية. في الفئران ، يبدو أن تذكر ما كان يوم يحدث فقط حوالي 10 مرات أسرع مما حدث خلال النهار. يستغرق النوم وقتًا أقل من اليقظة. لذلك ، مع توزيع متساوٍ للوقت عبر جميع الذكريات ، يمكن إدارة كل ذاكرة لمقارنة بعض المواقف المتشابهة فقط ، والتي سيكون معظمها عبارة عن نفايات غير مهمة. لذلك ، من المفيد التركيز على أهمها ، والبدء في العمل معها. يمكننا القول أن الخوارزمية تضيف خطوة أخرى - 0 سلاسل رئيسية ، في هذه الخطوة يجب على النظام اختيار الحدث التالي في الذاكرة بأقصى أهمية ،وقم بتمريرها إلى الخطوة التالية - اجعلها السلسلة الرائدة للعثور على التطابقات.
3) من الممكن عمل serifs من وقت اليقظة - قم بإنشاء اتصالات مسبقة بأكثر الأماكن إثارة للاهتمام التي يجب مقارنتها في الليل.
يتم تذكر السلاسل المختارة بالصدف ، ولكن في المستقبل يمكن نسيانها إذا تلاشت أهميتها بمرور الوقت.

النسيان


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

موازاة


من أجل الانتقال من الوضع 1 إلى 2 ، حاولت في البداية إنشاء خلايا عصبية تحكم تنتج تحويل الإشارات وتحليلها وتغيير الوضع. ولكن بعد ذلك وجدت هذا العمل منخفض المستوى للغاية وبدأت في كتابة كود C ++ حتمي - كود مثل "تصفح جميع المجموعات ، وحلّلها ، واختر الرمز الذي تريده ، وفكر فيما إذا كنت تريد تغيير وضع التشغيل".
مسألة أداء مثل هذا النظام: إذا قمت بعمل أجهزة عصبية ، يمكنك موازتها (نعم ، على الأقل على بطاقات الفيديو). ثم تتم موازنة الرمز الذي يتحكم في الخلايا العصبية والوصلات داخل الكتلة بسهولة وتلقائية (هذه مجرد حزمة تنشيط موازية وفقًا لظروف المهمة) ، ولكن يجب موازاة رمز C ++ الضروري في كل مرة بشكل مستقل. لذلك ، بالنسبة للشبكات العصبية الصغيرة ذات الخيوط المفردة ، من الأسهل كتابة كود C ++ ، وبالنسبة إلى شبكات ANN المتوازية بشكل كبير ، فمن الأفضل نقل هذا العمل داخل ANN نفسها إلى أكتاف الخلايا العصبية والصلات بينها. يجب ألا ننسى أن "الدورة عبر جميع الخلايا العصبية" أو "الدورة عبر جميع الخلايا العصبية" في C ++ من وجهة نظر الأجهزة ANN هي O (1) ، وهي خطوة واحدة لإرسال التنشيط. لذلك يمكن رؤيتهكل من 1VTs و 2 VTs (سلاسل رائدة) لشبكات ANN المتوازية بشكل مثالي لها نفس التعقيد الحسابي.

استمرار: التنبؤ البدائي في ANN

Source: https://habr.com/ru/post/ar388725/


All Articles