قراية
وضع الحكايات

الـ perceptron (البيرسبترون)

~18 دقيقة قراية الدرس 1 من 3 في الوحدة 6

الخلية العصبية اللي ولّعت الشرارة

سنة 1943، وارن مكولوش وولتر بيتس نشروا model رياضي لإزاي الخلايا العصبية بتطلق إشارة — وحدة threshold ثنائية يا إما بتشتغل يا لأ، على حسب الـ inputs الموزونة بتاعتها. وبعدها بأربعتاشر سنة، فرانك روزنبلات بنى على الفكرة دي وعمل الـ perceptron (البيرسبترون): أول خلية عصبية صناعية بتتدرّب. كان جهاز حقيقي يقدر يتعلّم يصنّف patterns بسيطة، والإعلام وقتها أعلن إن فجر الآلات اللي بتفكّر طلع.

الـ perceptron مش مجرد حاجة تاريخية طريفة. هو حجر الأساس اللي كل الـ deep learning الحديث طلع منه. وإنك تفهم آلياته — بيحسب إزاي، وبيتعلّم إزاي، وليه بيفشل في مهام معيّنة — بيدّيك الأساس الفكري لكل architecture من الـ neural networks اللي بعده.

والإلهام البيولوجي بسيط: الخلية العصبية بتستقبل إشارات من خلايا تانية عن طريق الـ dendrites، وتجمع الإشارات دي، وتطلق إشارة عن طريق الـ axon لو المجموع الكلي عدّى threshold معيّن. والـ perceptron بيمسك ده بالرياضة: احسب المجموع الموزون للـ inputs، قارنه بالـ threshold، وطلّع 1 لو عدّاه، و0 غير كده.

الـ perceptron model

الـ perceptron بياخد input vector x = (x₁, x₂, …, xₙ) ويطلّع output ثنائي. كل input xᵢ بيتضرب في weight wᵢ بيعكس أهميته. والـ inputs الموزونة بتتجمع ويتزوّد عليها bias b. وبعدين الناتج بيعدّي على step function (دالة خطوة): طلّع 1 لو المجموع مش سالب، و0 غير كده.

الـ output بتاع الـ perceptron
\hat{y} = \theta\!\left(\mathbf{w} \cdot \mathbf{x} + b\right) = \begin{cases}1 & \text{if } \mathbf{w}\cdot\mathbf{x}+b \ge 0 \\ 0 & \text{otherwise}\end{cases}
الـ perceptron بيحسب الـ dot product بين الـ weights w والـ inputs x، يزوّد الـ bias b، وبعدين يطبّق الـ step function θ. الـ weights بتحدّد اتجاه الـ decision boundary؛ والـ bias بيزيح الحد ده بعيد عن نقطة الأصل. ومع بعض بيعرّفوا hyperplane في فضاء الـ inputs.

الـ weights (الأوزان) هي الـ parameters اللي بتتعلّم. بتبدأ عشوائية، وبتتظبط أثناء التدريب عشان الـ perceptron يصنّف أمثلة التدريب صح. والـ bias (الانحياز) weight خاص متوصّل بـ input ثابت قيمته 1؛ بيسمح للـ decision boundary يتزاح بعيد عن نقطة الأصل.

وهندسيًا، الـ perceptron بيقسم فضاء الـ inputs بـ hyperplane (مستوٍ فائق) — خط في بُعدين، ومستوى في تلاتة، وحد مسطّح في الأبعاد الأعلى. النقط اللي على ناحية بتتصنّف class 1؛ واللي على الناحية التانية class 0. وvector الـ weights عمودي على الـ hyperplane ده.

الـ perceptron learning rule

الـ perceptron بيتعلّم من غلطاته. لكل مثال تدريب (x, y)، بيحسب الـ prediction بتاعه ŷ، وبعدين يحدّث الـ weights على حسب الغلط y − ŷ. لو الـ prediction صح (y = ŷ)، الـ weights بتفضل زي ما هي. ولو غلط، بتتزق في الاتجاه اللي كان هيطلّع الـ output الصح.

قاعدة تحديث الـ weights
\mathbf{w} \leftarrow \mathbf{w} + \eta\,(y - \hat{y})\,\mathbf{x}
لما الـ label الحقيقي y يختلف عن الـ prediction ŷ، vector الـ weights بيتحدّث بإننا نزوّد η(y − ŷ)x. والـ learning rate η بيتحكم في حجم كل خطوة تحديث. لو y=1 وŷ=0 (فوّت positive)، الـ weights بتتحرّك ناحية x. ولو y=0 وŷ=1 (false positive)، بتتحرّك بعيد عن x.

والـ bias بيتحدّث بنفس القاعدة: b ← b + η(y − ŷ). والتدريب بيكمّل على كذا epoch (حقبة) — لفّات كاملة على بيانات التدريب — لحد ما كل الأمثلة تتصنّف صح أو نوصل لأقصى عدد iterations.

نظرية التقارب

روزنبلات أثبت نتيجة مذهلة: لو البيانات linearly separable (قابلة للفصل الخطي)، فالـ perceptron learning algorithm مضمون إنه يتقارب في عدد خطوات محدود، ويلاقي مجموعة weights بتصنّف كل مثال تدريب صح. وعدد التحديثات المطلوبة متقيّد بـ function في الـ margin — المسافة بين الفئتين. وكل ما الـ margin يكبر، التحديثات بتقل.

مشكلة الـ XOR وحدود الـ perceptron

ضمان تقارب الـ perceptron جاي معاه شرط أساسي: مبيصحّش غير لو البيانات linearly separable. وسنة 1969، مارفن مينسكي وسيمور بابرت نشروا تحليل صارم بيبيّن إن مسائل كتير مثيرة للاهتمام مش linearly separable — وأشهرها الـ XOR function.

الـ XOR بيطلّع 1 لما الـ inputs تختلف (0,1) أو (1,0) و0 لما تتطابق (0,0) أو (1,1). ارسم النقط الأربعة دي وهتشوف إن مفيش خط مستقيم يقدر يفصل الواحدات عن الأصفار — واقعين في زوايا قصاد بعض في مربع. والـ perceptron مبيقدرش يتعلّم XOR مهما طوّلت في التدريب.

والأعمق من كده: الـ perceptron الواحد يقدر يمثّل بس الـ Boolean functions اللي بتتفصل خطيًا. من بين الـ 16 Boolean function الممكنة بـ inputين، 14 بس اللي بتتفصل خطيًا. والـ XOR والـ XNOR لأ. والقيد ده مش حاجة غريبة في الـ algorithm — ده قيد هندسي أصيل في اللي hyperplane واحد يقدر يعبّر عنه.

شتاء الـ AI

كتاب مينسكي وبابرت Perceptrons اللي طلع سنة 1969 أثبت القيود دي رياضيًا، واتفسّر على نطاق واسع — غلط — إنه بيثبت إن الـ neural networks طريق مقفول. التمويل اختفى. والمجال دخل في اللي بيتسمّى أول AI winter (شتاء الذكاء الاصطناعي). ومخدش المجال ينتعش غير سنة 1986، لما الـ backpropagation (الانتشار العكسي) في الشبكات متعددة الـ layers انتشر على إيد روملهارت وهينتون وويليامز. والمفارقة: مينسكي وبابرت كانوا بيحلّلوا perceptrons بـ layer واحدة. وإضافة hidden layers بتعدّي كل اعتراضاتهم.

الـ perceptron يقدر يتعلّم إيه ومبيقدرش على إيه

الـ perceptron يقدر يتعلّم أي binary classification بيتفصل خطيًا: الـ spam من غيره على حسب عدد الكلمات، الأورام الحميدة من الخبيثة على حسب قياسين، أي تصنيف ثنائي الفئات فيه بيفصلها hyperplane. وهو حالة خاصة من الـ logistic regression من غير output احتمالي — threshold قاطع بدل sigmoid function.

ومبيقدرش يتعلّم decision boundaries مش خطية: الحلزونات، والدواير المتحدة المركز، والـ patterns اللي شبه XOR، وأي dataset الفئات فيها متشابكة. والحل الوحيد هو إضافة hidden layers بين الـ input والـ output — وده اللي بيوصّلنا للـ multi-layer perceptrons وثورة الـ backpropagation.

الـ decision boundary
\mathbf{w} \cdot \mathbf{x} + b = 0
الـ decision boundary بتاع الـ perceptron هو مجموعة النقط اللي المجموع الموزون عندها بيساوي صفر — hyperplane في فضاء الـ inputs. والنقط اللي عندها w·x + b > 0 بتتصنّف class 1؛ واللي قيمتها سالبة بتتصنّف class 0. وده نفس الـ decision boundary بتاع الـ linear classifier من غير output احتمالي.
أهم اللي اتعلمته
  • الـ perceptron وحدة threshold ثنائية مستوحاة من الخلايا العصبية البيولوجية — بيحسب مجموع موزون للـ inputs ويطلق إشارة لو المجموع عدّى الـ threshold.
  • الـ weights والـ bias بيعرّفوا hyperplane في فضاء الـ inputs؛ والـ perceptron بيصنّف النقط class 0 أو 1 على حسب الناحية اللي واقعة فيها.
  • الـ perceptron learning rule بتحدّث الـ weights بمقدار η(y − ŷ)x — بتزق الحد ناحية التصنيف الصح غلطة ورا غلطة.
  • نظرية تقارب روزنبلات بتضمن إن الـ algorithm بيلاقي حل صح في خطوات محدودة لو البيانات بتتفصل خطيًا.
  • مشكلة الـ XOR بتوري الحد الصارم: perceptron واحد مبيقدرش يتعلّم functions مش بتتفصل خطيًا مهما طال التدريب.
  • تحليل مينسكي وبابرت للقيود دي ساهم في أول AI winter؛ والحل — الـ hidden layers — مكانش بعيد.
  • الـ perceptron هو الجد الفكري لكل neural network حديثة — بنيته وقاعدة تعلّمه وقيوده بتحرّك كل اللي بعده.
اللي فات الـ dimensionality reduction (تقليل الأبعاد) نظرة عامة اللي بعده الـ neural networks متعددة الـ layers (الشبكات العصبية متعددة الطبقات)