مرحبا بالجميع! أريد أن أشارككم فكرتي في التعلم الآلي.
إن التقدم الكبير في التعلم الآلي مثير للإعجاب. الشبكات التلافيفية و LSTMs رائعة. لكن جميع التقنيات الحديثة تقريبًا تعتمد على الانتشار الخلفي للخطأ. بناءً على هذه الطريقة ، من غير المحتمل أن تكون قادرًا على بناء آلة تفكير. تتكون الشبكات العصبية من شيء مثل الدماغ المتجمد ، والذي تم تدريبه مرة واحدة وإلى الأبد ، غير قادر على
تغيير التفكير.
فكرت ، لماذا لا تحاول إنشاء شيء مثل الدماغ الحي. نوع من إعادة الهيكلة. نظرًا لأنه في جميع الحيوانات ، على الرغم من الاختلافات في الذكاء ، يتكون الدماغ من نفس الخلايا العصبية تقريبًا ، يجب أن يكون بعض المبادئ الأساسية في قلب عمله.
ما لا أعرفه عن الخلايا العصبية
هناك العديد من الأسئلة التي لم أجد لها إجابات لا لبس فيها في الأدب الشعبي.
- من الواضح أن العصبون يستجيب بطريقة ما للناقلات العصبية ، ولكن كيف بالضبط؟ من الواضح أن الافتراض البسيط القائل بأنه كلما كان الناقل العصبي أكبر ، كلما كان التصاقه في الغالب ، لا يتصدى للنقد. إذا كان الأمر كذلك ، فإن تحفيز عصبون واحد سيؤدي إلى تحفيز العديد من الجيران ، من الجيران التاليين ، وفي وقت قصير سيأخذ هذا الانهيار الدماغ كله. لكن في الواقع هذا لا يحدث ، في الوقت نفسه يعمل جزء صغير فقط من الخلايا العصبية في الدماغ. لماذا؟
- من الواضح أن الخلايا العصبية هي وحدات ذاكرة ، ولكن كيف تخزن المعلومات؟ الجزء المركزي من الخلايا العصبية ليس شيئًا مميزًا: نواة الميتوكوندريا وما شابه ذلك. لا يمكن لـ Axon التأثير على الارتفاع ، لأن المعلومات تذهب في اتجاه واحد فقط ، من القلب. لذا الشيء الوحيد المتبقي هو التشعبات. ولكن كيف يتم تخزين المعلومات فيها؟ في شكل تناظري أو رقمي؟
- من الواضح أن الخلايا العصبية تتعلم بطريقة ما. لكن كيف بالضبط؟ لنفترض أن التشعبات تنمو في الأماكن التي كان بها الكثير من الناقلات العصبية قبل السنبلة مباشرة. ولكن إذا كان الأمر كذلك ، فعندئذٍ ينمو العصبون المحفز قليلاً ، وفي المرة التالية التي يظهر فيها ناقل عصبي ، سيكون الأكثر سمكًا بين الجيران ، وسوف يمتص معظم الناقل العصبي وسيعمل مرة أخرى. ومرة أخرى يكبر قليلا. وهكذا إلى ما لا نهاية ، حتى يخنق جميع جيرانه؟ هل هناك خطب ما هنا؟
- إذا نما أحد الخلايا العصبية ، فينبغي أن تنخفض الخلايا المجاورة ، فالرأس ليس من المطاط. يجب أن يتسبب شيء ما في جفاف العصبون. ماذا؟
مجرد تجميع
يبدو لي الجواب المعقول لكل هذه الأسئلة أن الدماغ يعمل مثل الكثير من العناقيد البسيطة. هل من الممكن تنفيذ مثل هذه الخوارزمية على مجموعة من الخلايا العصبية؟ على سبيل المثال ، طريقة K- تعني. فقط بحاجة إلى تبسيطها قليلاً. في الخوارزمية الكلاسيكية ، يتم حساب المراكز بشكل متكرر كمتوسط لجميع الأمثلة المدروسة ، ولكننا سنغير المركز فورًا بعد كل مثال.
دعونا نرى ما نحتاج إليه لتطبيق خوارزمية التجميع.
- المراكز العنقودية ، بالطبع ، هي التشعبات للخلايا العصبية في مجموعتنا. لكن كيف تتذكر المعلومات؟ افترض أن خلية الوحدة لتخزين المعلومات في التغصنات هي حجم فرع التغصنات في منطقة المشبك. كلما زادت سماكة الفرع ، على التوالي ، كان حجمه أكبر ، كلما تم حفظ القيمة. وهكذا ، يمكن لكل التغصينات حفظ العديد من الكميات التناظرية.
- مقارنات لحساب قرب المثال. إنه أكثر تعقيدًا. لنفترض أنه بعد توفير البيانات (طرد محاور عصبية ناقل عصبي) ، فإن كل خلية عصبية ستعمل بشكل أسرع ، كلما زادت البيانات المخزنة (مركز الكتلة) مشابهة للمثال المعطى (عدد الناقلات العصبية). يرجى ملاحظة أن معدل استجابة الخلايا العصبية لا يتأثر بالمقدار المطلق للناقل العصبي ، بل بقرب كمية الناقل العصبي من القيمة المخزنة في التشعبات. لنفترض أنه إذا كان الناقل العصبي صغيرًا ، فإن التشتت لا يعطي أمرًا لارتفاع. لا يحدث شيء ، وإذا كان هناك الكثير من الناقلات العصبية ، فإن ارتفاع الفرع التغصني يحدث في وقت أبكر من الفروع التغصنية الأخرى ولا يصل إلى النواة. ولكن إذا كان الناقل العصبي على حق ، فستعطي جميع الفروع التغصنية ارتفاعًا صغيرًا في نفس الوقت تقريبًا ، وستتحول هذه الموجة إلى ارتفاع عصبي يمتد على طول المحور العصبي.
- يسمح لك المقارن متعدد المدخلات بمقارنة النتائج واختيار الأفضل. افترض أن الخلايا العصبية القريبة لها تأثير مثبط على جميع جيرانها. لذلك ، في مجموعة معينة من الخلايا العصبية ، يمكن أن يكون واحدًا فقط نشطًا في أي وقت. تلك التي عملت أولاً. نظرًا لأن الخلايا العصبية في المجموعة قريبة ، فإن لها نفس الوصول إلى جميع المحاوير القادمة إلى هذه المجموعة. وبالتالي ، فإن الخلايا العصبية التي تكون فيها المعلومات المخزنة الأقرب إلى المثال المعني ستعمل في المجموعة.
- آلية تهجير المركز نحو المثال. حسنًا ، كل شيء بسيط. بعد ارتفاع العصبون ، تغير جميع التشعبات لهذا العصبون حجمها. حيث كان تركيز الناقل العصبي مرتفعًا جدًا ، تنمو الفروع. حيث كانت غير كافية ، يتم تقليل الأغصان. عندما يكون التركيز صحيحًا ، لا يتغير الحجم. تختلف أحجام الأغصان قليلاً. لكن على الفور. الارتفاع التالي هو التغيير التالي.
دعونا نتحقق من الخوارزمية الناتجة عمليا. لقد رسمت بضعة أسطر في Python. إليك ما يحدث بعدين للأرقام العشوائية:
وهنا MNIST:
للوهلة الأولى ، يبدو أن كل ما سبق لم يغير أي شيء. حسنًا ، كان لدينا بعض البيانات عند الإدخال ، وقمنا بتحويلها بطريقة أو بأخرى ، وحصلنا على بيانات أخرى.
ولكن هناك اختلاف حقاً. إذا كان لدينا قبل التحويل مجموعة من المعلمات التناظرية ، فبعد التحويل لدينا معلمة واحدة فقط ، في نفس الوقت مشفرة بواسطة رمز وحدوي. يمكن أن يرتبط كل عصبون في المجموعة بإجراء محدد.
دعني أعطي مثالاً: لنفترض أن هناك عصبونان فقط في مجموعة التكتل. يطلق عليهم "لذيذ" و "مخيف". من أجل السماح للدماغ باتخاذ قرار ، من الضروري فقط ربط العصبون "EAT" بالخلايا الأولى ، و "RUN" بالخلايا الثانية. لهذا نحن بحاجة إلى مدرس. لكن الآن لا يتعلق الأمر بذلك ، التدريس مع مدرس هو موضوع لمقال آخر.
إذا قمت بزيادة عدد المجموعات ، فستزداد الدقة تدريجيًا. الحالة القصوى هي عدد العناقيد تساوي عدد الأمثلة. ولكن هناك مشكلة ، فإن عدد الخلايا العصبية في الدماغ محدود. يجب على المرء المساومة باستمرار ، سواء الدقة أو حجم الدماغ.
تجمع ميتا
لنفترض أنه ليس لدينا مجموعة واحدة ، بل مجموعتان. في هذه الحالة ، يتم تطبيق نفس القيم على المدخلات. من الواضح أنك تحصل على نفس النتيجة.
دعونا نرتكب خطأً عشوائيًا قليلاً. دع ، في بعض الأحيان ، لا يختار كل مجمع أقرب مركز للكتلة ، ولكن أي مركز. ثم ستبدأ القيم في الاختلاف ، مع مرور الوقت سوف يتراكم الفرق.
والآن ، دعنا نحسب خطأ كل أداة تجميع. الخطأ هو الفرق بين مثال الإدخال ومركز الكتلة المحددة. إذا قام أحد المجمعين بتحديد القيمة الأقرب والعشوائية الأخرى ، فسيكون للخطأ الثاني خطأ أكبر.
المضي قدما ، إضافة قناع لإدخال كل كتلة. القناع هو مجموعة من المعاملات لكل إدخال. ليس صفرًا أو واحدًا ، كما هو شائع الاستخدام في الأقنعة ، ولكن بعض الأرقام الحقيقية من صفر إلى واحد.
قبل إعطاء مثال لمدخلات الكتلة ، سنضرب هذا المثال بقناع. على سبيل المثال ، إذا تم استخدام قناع لصورة ، إذا كان القناع يساوي واحدًا لوحدة البكسل ، فإنه كما لو كان شفافًا تمامًا. وإذا كان القناع صفرًا ، فهذه البكسل دائمًا سوداء. وإذا كان القناع 1/2 ، فإن البيكسل نصف معتمة.
والآن الإجراء الرئيسي ، سنقوم بتقليل قيمة القناع بما يتناسب مع خطأ التجميع. بمعنى ، إذا كان الخطأ كبيرًا ، فسنخفض القيمة بقوة أكبر ، وإذا كانت صفرًا ، فلن نقوم بتقليلها على الإطلاق.
لكي لا يتم إعادة تعيين قيم الأقنعة تدريجيًا إلى الصفر ، سنقوم بتطبيعها. أي أن مجموع قيم القناع لكل معلمة إدخال يساوي دائمًا واحدًا. إذا تم أخذ شيء ما في قناع واحد ، فسيتم إضافته إلى قناع آخر.
دعونا نحاول أن نرى ما يحدث مع مثال MNIST. نرى أن الأقنعة تقسم البكسلات تدريجياً إلى قسمين.
تظهر الأقنعة الناتجة على الجانب الأيمن من الصورة. في نهاية العملية ، يعتبر المجمع العلوي الجزء السفلي الأيمن ، والجزء السفلي المجمع الجزء المتبقي من الأمثلة. من المثير للاهتمام ، إذا استأنفنا العملية ، سنحصل على فصل آخر. ولكن في الوقت نفسه ، لا يتم الحصول على مجموعات المعلمات بشكل عشوائي ، ولكن بطريقة تقلل من خطأ التنبؤ. يبدو أن المجموعات تحاول على كل بكسل قناعها ، وفي الوقت نفسه ، تلتقط البكسل أداة الكتلة التي تناسب البكسل بشكل أفضل.
دعنا نحاول تطبيق رقمين على الإدخال ، وليس على بعضهما البعض ، ولكنهما يقعان بجانبهما ، مثل هذا (هذا مثال واحد ، وليس اثنين):
الآن نرى أنه في كل مرة ، يحدث الانفصال نفس الشيء. أي أنه إذا كان هناك واحد ، فمن الواضح أنه الخيار الأفضل لفصل الأقنعة ، فسيتم تحديده.
شيء واحد فقط سيكون عشوائيًا ، سواء كان القناع الأول سيختار الرقم الأيسر أو الصحيح.
أسمي الأقنعة الناتجة عن مجموعات البيانات. وعملية تشكيل الأقنعة عن طريق تجميع الفوقية. لماذا ميتا؟ لأن التكتل ليس من أمثلة المدخلات ، ولكن من المدخلات نفسها.
مثال أكثر تعقيدا. لنحاول تقسيم 25 معلمة إلى 5 مجموعات وصفية.
للقيام بذلك ، نأخذ خمس مجموعات من خمس معلمات مشفرة بواسطة رمز وحدوي.
أي في كل مجموعة توجد وحدة واحدة فقط في مكان عشوائي. هناك دائمًا خمس وحدات في كل مثال يتم تقديمه.
في الصور أدناه ، يكون كل عمود معلمة إدخال ، وكل صف عبارة عن قناع كتلة تعريفية. لا يتم عرض المجموعات نفسها.
100 معلمة و 10 مجموعات تعريفية:
يعمل! في بعض الأماكن ، يشبه إلى حد ما صورة مصفوفة من الفيلم الذي يحمل نفس الاسم.
يمكن أن يقلل استخدام التجمعات الفوقية بشكل كبير من عدد التكتلات.
على سبيل المثال ، خذ عشر مجموعات من عشر معلمات ، لكل مجموعة وحدة واحدة.
إذا كان لدينا مُجمِّع واحد (بدون مجموعات تعريفية) ، فإننا نحتاج إلى 10
10 = مجموعات 10000000000 للحصول على خطأ صفري.
وإذا كان لدينا عشر مجموعات ، فنحن بحاجة فقط إلى 10 * 10 = 100 مجموعة. هذا مشابه لنظام الأعداد العشرية ، لا تحتاج إلى وضع تدوين لجميع الأرقام الممكنة ، يمكنك القيام بعشرة أرقام.
التجمعات الفوقية متوازنة بشكل جيد للغاية. يمكن إجراء الحسابات الأكثر تكلفة (مقارنة المثال بمركز الكتلة) بشكل مستقل لكل عنقود. يرجى ملاحظة ، ليس للتكتل ، ولكن للمجموعة.
كيف يعمل في الدماغ
قبل ذلك ، تحدثت فقط عن التشعبات ، لكن الخلايا العصبية لديها محاور عصبية. ويدرسون أيضا. لذا ، فمن المحتمل جدًا أن تكون المحاوير أقنعة العناقيد الفوقية.
نضيف وظيفة أخرى إلى وصف عملية التغصنات أعلاه.
لنفترض أنه في حالة حدوث ارتفاع في الخلايا العصبية ، فإن جميع التشعبات تنبعث بطريقة ما في المشبك نوعًا من المواد التي تظهر تركيز الناقل العصبي في التغصنات. ليس من المحوار إلى التغصن ، ولكن مرة أخرى. يعتمد تركيز هذه المادة على خطأ المقارنة. افترض أنه كلما كان الخطأ أصغر ، زادت كمية المادة المنبعثة. حسنًا ، يتفاعل المحوار مع كمية هذه المادة وينمو. وإذا كانت المادة صغيرة ، مما يعني خطأً فادحًا ، يتم تقليل المحوار تدريجياً.
وإذا قمت بتغيير المحاور العصبية من ولادة الدماغ ذاتها ، فمع مرور الوقت ، ستذهب فقط إلى مجموعات الخلايا العصبية التي تتطلب التصاقها بهذه المحاور (لا تؤدي إلى أخطاء كبيرة).
مثال: لنتذكر الوجوه البشرية. دع كل وجه يتم تصويره بصورة ميجابيكسل. ثم لكل وجه تحتاج إلى خلية عصبية بمليون التغصنات ، وهو أمر غير واقعي. الآن ، قسّم كل وحدات البكسل إلى مجموعات تعريفية ، مثل العيون والأنف والأذنين ، وما إلى ذلك. عشرة فقط مثل هذه الفوقية. يجب أن يكون هناك عشرة مجموعات ، عشرة خيارات للأنف ، عشرة خيارات للأذن ، وهكذا لكل كتلة وصفية. الآن ، لتذكر الوجه ، يكفي وجود خلية عصبية بها عشرة تغصنات. هذا يقلل من الذاكرة (وحجم الدماغ) بمقدار خمسة أضعاف الحجم.
الخلاصة
والآن ، إذا افترضنا أن الدماغ يتكون من العناقيد الفوقية ، فيمكننا محاولة التفكير من هذه الناحية في بعض المفاهيم المتأصلة في الدماغ الحي:
يجب تدريب المجموعات باستمرار ، وإلا فلن تتم معالجة البيانات الجديدة بشكل صحيح. لتدريب مجموعات في الدماغ ، هناك حاجة إلى عينة متوازنة. اسمحوا لي أن أشرح ما إذا كان الشتاء الآن ، فإن الدماغ سيتعلم فقط من أمثلة الشتاء ، وستصبح المجموعات الناتجة ذات صلة بالتدريج فقط في فصل الشتاء ، وفي الصيف سيكون كل شيء سيئًا لهذا الدماغ. ماذا تفعل حيال ذلك؟ من الضروري أن تقدم بشكل دوري لجميع المجموعات ليس فقط أمثلة جديدة ، ولكن أيضًا أمثلة مهمة قديمة (ذكريات الشتاء والصيف). وحتى لا تتداخل هذه المشاعر مع المشاعر الحالية ، تحتاج إلى إيقاف الحواس مؤقتًا. في الحيوانات ، يسمى هذا
الحلم .
تخيل أن الدماغ يرى شيئًا صغيرًا ، رمادي ، يعمل. بعد التجمعات الفوقية ، لدينا ثلاث خلايا عصبية نشطة في ثلاث مجموعات ميتا. وبفضل الذاكرة يعرف الدماغ أنها لذيذة. ثم يرى الدماغ شيئًا صغيرًا أزرق يعمل. لكن الدماغ لا يعرف ما إذا كان لذيذًا أو مخيفًا. يكفي تعطيل كتلة meta مؤقتًا حيث توجد الألوان ، وسيبقى فقط المجموعة الصغيرة التي تعمل. والدماغ يعرف أنه لذيذ. هذا يسمى
القياس .
لنفترض أن الدماغ قد تذكر شيئًا ما ، ثم غيّر مجموعة الخلايا العصبية النشطة في مجموعة ما إلى أي مجموعة أخرى ، بينما توجد في المجموعات الفوقية المتبقية ذاكرة حقيقية. والآن ، قدم الدماغ بالفعل شيئًا لم يسبق له مثيل من قبل. وهذا بالفعل
خيال .
شكرا لاهتمامكم ، الكود
هنا .