Skip to content

Latest commit

 

History

History
96 lines (54 loc) · 6.76 KB

File metadata and controls

96 lines (54 loc) · 6.76 KB

مقدمة في الشبكات العصبية: بيرسيبترون

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

Frank Rosenblatt The Mark 1 Perceptron

الصور من ويكيبيديا

تم تمثيل الصورة المدخلة بمصفوفة خلايا ضوئية بحجم 20x20، مما يعني أن الشبكة العصبية كانت تحتوي على 400 مدخل ومخرج ثنائي واحد. كانت الشبكة البسيطة تحتوي على خلية عصبية واحدة، تُعرف أيضًا باسم وحدة منطق العتبة. عملت أوزان الشبكة العصبية مثل المقاومات المتغيرة التي كانت تتطلب تعديلًا يدويًا أثناء مرحلة التدريب.

✅ المقاومة المتغيرة هي جهاز يسمح للمستخدم بضبط مقاومة الدائرة.

كتبت صحيفة نيويورك تايمز عن بيرسيبترون في ذلك الوقت: جنين الكمبيوتر الإلكتروني الذي [تتوقع البحرية] أنه سيكون قادرًا على المشي، التحدث، الرؤية، الكتابة، التكاثر، وأن يكون واعيًا بوجوده.

نموذج بيرسيبترون

لنفترض أن لدينا N من الميزات في نموذجنا، وفي هذه الحالة سيكون المتجه المدخل بحجم N. بيرسيبترون هو نموذج تصنيف ثنائي، أي يمكنه التمييز بين فئتين من بيانات المدخلات. سنفترض أنه لكل متجه مدخل x سيكون مخرج بيرسيبترون إما +1 أو -1، اعتمادًا على الفئة. يتم حساب المخرج باستخدام الصيغة:

y(x) = f(wTx)

حيث f هي دالة تفعيل خطوة

تدريب بيرسيبترون

لتدريب بيرسيبترون، نحتاج إلى إيجاد متجه أوزان w الذي يصنف معظم القيم بشكل صحيح، أي يؤدي إلى أقل خطأ. يتم تعريف هذا الخطأ E بواسطة معيار بيرسيبترون بالطريقة التالية:

E(w) = -∑wTxiti

حيث:

  • يتم أخذ المجموع على نقاط بيانات التدريب i التي تؤدي إلى تصنيف خاطئ
  • xi هي بيانات المدخلات، و ti إما -1 أو +1 للأمثلة السلبية والإيجابية على التوالي.

يُعتبر هذا المعيار دالة للأوزان w، ونحتاج إلى تقليلها. غالبًا ما يتم استخدام طريقة تسمى الانحدار التدريجي، حيث نبدأ ببعض الأوزان الأولية w(0)، ثم نقوم بتحديث الأوزان في كل خطوة وفقًا للصيغة:

w(t+1) = w(t) - η∇E(w)

هنا η هو ما يسمى معدل التعلم، و ∇E(w) يمثل تدرج E. بعد حساب التدرج، نحصل على:

w(t+1) = w(t) + ∑ηxiti

يبدو الخوارزم في Python كما يلي:

def train(positive_examples, negative_examples, num_iterations = 100, eta = 1):

    weights = [0,0,0] # Initialize weights (almost randomly :)
        
    for i in range(num_iterations):
        pos = random.choice(positive_examples)
        neg = random.choice(negative_examples)

        z = np.dot(pos, weights) # compute perceptron output
        if z < 0: # positive example classified as negative
            weights = weights + eta*weights.shape

        z  = np.dot(neg, weights)
        if z >= 0: # negative example classified as positive
            weights = weights - eta*weights.shape

    return weights

الخاتمة

في هذه الدرس، تعلمت عن بيرسيبترون، وهو نموذج تصنيف ثنائي، وكيفية تدريبه باستخدام متجه الأوزان.

🚀 تحدي

إذا كنت ترغب في محاولة بناء بيرسيبترون خاص بك، جرب هذا المختبر على Microsoft Learn الذي يستخدم مصمم Azure ML.

المراجعة والدراسة الذاتية

لرؤية كيف يمكننا استخدام بيرسيبترون لحل مشكلة بسيطة وكذلك مشاكل الحياة الواقعية، وللمتابعة في التعلم - انتقل إلى دفتر بيرسيبترون.

إليك مقالًا مثيرًا للاهتمام عن بيرسيبترون.

في هذا الدرس، قمنا بتنفيذ بيرسيبترون لمهمة تصنيف ثنائي، واستخدمناه للتصنيف بين رقمين مكتوبين بخط اليد. في هذا المختبر، يُطلب منك حل مشكلة تصنيف الأرقام بالكامل، أي تحديد الرقم الأكثر احتمالًا الذي يتوافق مع الصورة المعطاة.