تقنية

المصنف Perceptron: متى يغير أوزانه؟

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

المصنف Perceptron، أو بيرسيبترون، يستخدم درجة خطية لتمييز الفئات. سنشرح القاعدة الكلاسيكية لفئتين موسومتين بـ+1 و−1. [1]

الخلاصة السريعة

في القاعدة الكلاسيكية الثنائية الموضحة، يحدث تحديث عندما y×(w·x+b)≤0، بما يشمل الحد الصفري؛ الدرجة ليست احتمالًا، وشروط التقارب تحتاج فصلًا خطيًا. [1]

  • نقرأ s=w·x+b ووسمًا y من +1 أو−1؛ حاصل y×s يكشف الجانب الصحيح أو غير الصحيح. [1]
  • في قاعدتنا الكلاسيكية، يحدث التحديث عند y×s≤0، ويشمل ذلك مثالًا على الحد حتى قبل حسم اسمه كتنبؤ. [1]
  • مثالنا يختار eta=0.5 ويحدث المعاملات والثابت؛ إصلاح المثال الحالي لا يثبت صحة جميع الأمثلة الأخرى.
  • ضمان إيجاد فاصل يتعلق ببيانات قابلة للفصل خطيًا؛ توقف برنامج عند حد المرور لا يثبت تحقق هذا الشرط. [1] [2]

لماذا نضرب الدرجة في الوسم؟

تعرض محاضرة Cornell مصنف الإشارة لدرجة w·x+b، ووسومًا من +1 و−1؛ الدرجة المضروبة في الوسم موجبة عندما يقع المثال في الجانب الصحيح. [1]

لو كانت الدرجة 1 والوسم +1، فحاصل الضرب 1؛ ولو كانت الدرجة −2 والوسم −1، فحاصله 2. في الحالتين تتفق الإشارتان. أما درجة 1 لوسم −1 فتعطي −1، وتكشف اختلافهما. هذه إشارة اتجاه، وليست احتمال نجاح مقداره واحد أو اثنين.

قاعدة التحديث وحالة الحد

للصيغة الكلاسيكية التي نشرحها، يكون شرط التحديث y×s≤0، ويضاف y×x إلى الأوزان مع تمثيل الثابت ببعد إضافي. [1]

سنختار معدلًا ثابتًا eta=0.5 للتوضيح؛ تصبح قاعدتنا w الجديد=w القديم+eta×y×x، وb الجديد=b القديم+eta×y. ليست 0.5 قيمة افتراضية ادعيناها لكل برنامج، ولا نعالج تنظيمًا إضافيًا في هذا المثال.

المساواة صفرًا داخلة في الشرط. مثلًا، قبل أي تحديث، إذا كان w=(1،−1) وb=0، وكانت x=(1، 1) وy=+1، فالدرجة صفر. تعد قاعدتنا المثال محتاجًا إلى تحديث. هذه نقطة على الحد، فلا نختصر كل أسباب التحديث إلى تنبؤ له إشارة مخالفة فقط.

حساب تحديث لوسم سالب

نعود إلى الأوزان الابتدائية نفسها w=(1،−1) وb=0، في مثال مستقل عن نقطة الحد السابقة. نختار x=(2، 1) وy=−1. الدرجة 1×2−1×1=1، وحاصل الوسم والدرجة −1؛ إذن نحدث.

باختيار eta=0.5، تصبح الأوزان (1،−1)+0.5×(−1)×(2، 1)=(0،−1.5)، ويصبح الثابت −0.5. عند فحص النقطة نفسها، الدرجة الجديدة 0×2−1.5×1−0.5=−2، وحاصلها مع الوسم 2. نقلها التحديث إلى الجانب الصحيح في هذا الحساب.

ولو قرأنا الآن x=(0، 1) وy=−1، وجدنا الدرجة −2 وحاصل الضرب 2، فلا نحدث وفق قاعدتنا. كل نقطة هنا مفترضة من إعداد المقال. صلاحية هاتين الإشارتين لا تختبر بقية البيانات؛ تحديث معادلة يغير حدها لجميع النقاط لا للنقطة الحالية وحدها.

متى يصح الحديث عن التقارب؟

تذكر المحاضرة أن القاعدة تجد فاصلًا بعد عدد محدود من التحديثات عندما تكون البيانات قابلة للفصل خطيًا. [1]

في scikit-learn، يضع max_iter حدًا أعلى لمرور fit على البيانات. هذا شرط توقف برمجي، لا برهان أن جميع نقاط التدريب صارت في الجانب الصحيح. [2]

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

المصادر ومتابعة القراءة

  1. Cornell CS4780: The Perceptron (يفتح في نافذة جديدة)cs.cornell.edu
  2. scikit-learn: Perceptron (يفتح في نافذة جديدة)scikit-learn.org

أُعدّ هذا المقال بصياغة عربية أصلية بالاستناد إلى المصادر أعلاه، وهو مدخل تمهيدي إلى الموضوع. اقرأ منهجية المحتوى وحدوده.