التعلم العميق مبتدئ · Beginner 10 دقيقة

البيرسبترون

Perceptron

أول نموذج تعلم لخلية عصبية: قاعدة التحديث، وما يستطيع فصله وما لا يستطيع.

تقدّمك في المسار0%

النموذج

$$\hat{y} = \begin{cases} 1 & \text{if } \mathbf{w}^\top \mathbf{x} + b > 0 \\ 0 & \text{otherwise} \end{cases}$$

قاعدة التعلم

لكل مثال \((\mathbf{x}, y)\):

$$\mathbf{w} \leftarrow \mathbf{w} + \eta\,(y – \hat{y})\,\mathbf{x}, \qquad b \leftarrow b + \eta\,(y – \hat{y})$$

إذا كان التنبؤ صحيحاً فلا تغيير، وإذا كان خاطئاً تُدفع الأوزان نحو التصنيف الصحيح.

تطبيق من الصفر

import numpy as np

def train_perceptron(X, y, lr=0.1, epochs=20):
    w = np.zeros(X.shape[1]); b = 0.0
    for _ in range(epochs):
        errors = 0
        for xi, yi in zip(X, y):
            pred = int(xi @ w + b > 0)
            update = lr * (yi - pred)
            w += update * xi; b += update
            errors += int(update != 0)
        if errors == 0:
            break
    return w, b

X = np.array([[0, 0], [0, 1], [1, 0], [1, 1]])
w, b = train_perceptron(X, np.array([0, 0, 0, 1]))   # AND
print([int(x @ w + b > 0) for x in X])               # [0, 0, 0, 1]

جرّب التسميات [0, 1, 1, 0] (XOR) ولاحظ أن الأخطاء لا تختفي.

مشكلة XOR والحل

النقاط \((0,1)\) و\((1,0)\) في فئة، و\((0,0)\) و\((1,1)\) في الأخرى؛ لا يوجد خط واحد يفصلها. الحل إضافة طبقة مخفية بدالة تنشيط غير خطية، وهذا هو جوهر الشبكة متعددة الطبقات. تدريب هذه الشبكات احتاج إلى الانتشار الخلفي الذي انتشر استخدامه بعد عمل Rumelhart وزملائه عام 1986.

مصطلحات الدرس

البيرسبترون Perceptron
مصنف خطي ثنائي يخرج 1 إذا كان المجموع الموزون للمدخلات مع الانحياز موجباً، و0 (أو -1) خلاف ذلك.
القابلية للفصل الخطي Linear Separability
إمكانية فصل فئتين تماماً بخط مستقيم أو مستوى فاصل.

الملخص

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

أسئلة مراجعة

  1. لماذا لا يستطيع البيرسبترون الواحد حل مسألة XOR؟

    لأن نقاط XOR غير قابلة للفصل بخط مستقيم واحد.

  2. متى يتوقف البيرسبترون عن تحديث الأوزان؟

    عندما يصنف كل أمثلة التدريب تصنيفاً صحيحاً (إذا كانت البيانات قابلة للفصل خطياً).

المصادر والمراجع

  1. Rosenblatt (1958) The perceptron: A probabilistic model for information storage and organization in the brain — Psychological Review
  2. scikit-learn — Perceptron
  3. Goodfellow et al. — Deep Learning, Ch. 6

إكمال الدرس