هذه هي أبسط شبكة عصبية اصطناعية يمكن شرحها وإظهارها.
الشبكات العصبية الاصطناعية مستوحاة من الدماغ من خلال وجود خلايا عصبية صناعية مترابطة تخزن الأنماط وتتواصل مع بعضها البعض. أبسط شكل من أشكال الخلايا العصبية الاصطناعية لديه مدخل واحد أو عدة مدخلات ولكل منها وزن محدد ومخرج واحد .
في أبسط مستوى، يكون الناتج هو مجموع مدخلاته مضروبًا في أوزانه.
الغرض من الشبكة هو تعلم مخرجات معينة نظرا لبعض المدخلات (ق) عن طريق تقريب وظيفة معقدة مع العديد من المعلمات أننا لم نتمكن من التوصل إلى أنفسنا.
لنفترض أن لدينا شبكة ذات مدخلين و واثنين من الأوزان و .
والفكرة هي ضبط الأوزان بطريقة تجعل المدخلات المحددة تنتج المخرجات المطلوبة.
تتم عادةً تهيئة الأوزان بشكل عشوائي نظرًا لأننا لا نستطيع معرفة قيمتها المثالية مسبقًا، ولكن من أجل التبسيط، سنقوم بتهيئتها معًا .
إذا قمنا بحساب مخرجات هذه الشبكة، فسنحصل على
إذا كان الإخراج لا يتطابق مع القيمة المستهدفة المتوقعة، فلدينا خطأ.
على سبيل المثال، إذا أردنا الحصول على قيمة مستهدفة لـ ثم سيكون لدينا فرق
إحدى الطرق الشائعة لقياس الخطأ (يشار إليها أيضًا باسم دالة التكلفة) هي استخدام متوسط الخطأ التربيعي:
إذا كان لدينا ارتباطات متعددة للمدخلات والقيم المستهدفة، فسيصبح الخطأ هو متوسط مجموع كل ارتباط.
نحن نستخدم متوسط الخطأ التربيعي لقياس مدى بعد النتائج عن هدفنا المنشود. يزيل التربيع الإشارات السلبية ويعطي وزنًا أكبر للاختلافات الأكبر بين الناتج والهدف.
لتصحيح الخطأ، سنحتاج إلى ضبط الأوزان بطريقة تتوافق مع هدفنا. في مثالنا، خفض من ل سوف تفعل الحيلة، منذ ذلك الحين
ومع ذلك، من أجل ضبط أوزان شبكاتنا العصبية للعديد من المدخلات والقيم المستهدفة المختلفة، نحتاج إلى خوارزمية تعليمية للقيام بذلك تلقائيًا.
تكمن الفكرة في استخدام الخطأ لفهم كيفية تعديل كل وزن بحيث يتم تقليل الخطأ إلى الحد الأدنى، ولكن أولاً، نحتاج إلى التعرف على التدرجات.
إنه في الأساس متجه يشير إلى اتجاه الصعود الأكثر انحدارًا للدالة. ويشار إلى التدرج مع وهو ببساطة المشتق الجزئي لكل متغير من دالة معبرًا عنه كمتجه.
يبدو الأمر هكذا بالنسبة لدالة متغيرة:
دعونا ندخل بعض الأرقام ونحسب التدرج بمثال بسيط. لنفترض أن لدينا وظيفة ، فسيكون التدرج
جزء النسب يعني ببساطة استخدام التدرج للعثور على اتجاه الصعود الأكثر حدة لوظيفتنا ثم السير في الاتجاه المعاكس بمقدار صغير عدة مرات للعثور على الحد الأدنى للدالة العالمية (أو المحلية في بعض الأحيان) .
نستخدم ثابتًا يسمى معدل التعلم ، ويشار إليه بـ لتحديد مدى صغر الخطوة التي يجب اتخاذها في هذا الاتجاه.
لو كبيرة جدًا، فإننا نخاطر بتجاوز الحد الأدنى للوظيفة، ولكن إذا كانت منخفضة جدًا، فستستغرق الشبكة وقتًا أطول للتعلم ونخاطر بالتعثر في الحد الأدنى المحلي الضحل.
لأوزاننا و نحن بحاجة إلى إيجاد تدرج تلك الأوزان فيما يتعلق بوظيفة الخطأ
لكلاهما و يمكننا إيجاد التدرج باستخدام قاعدة السلسلة
من الآن فصاعدا سوف نشير إلى كما مصطلح للبساطة.
بمجرد حصولنا على التدرج، يمكننا تحديث أوزاننا عن طريق طرح التدرج المحسوب مضروبًا في معدل التعلم.
ونكرر هذه العملية حتى يقل الخطأ إلى الحد الأدنى ويقترب بدرجة كافية من الصفر.
يعلم المثال المضمن مجموعة البيانات التالية لشبكة عصبية ذات مدخلين ومخرج واحد باستخدام النسب المتدرج:
بمجرد معرفة ذلك، يجب أن تقوم الشبكة بإخراج ~0 عند إعطائها اثنين ق و~ عندما تعطى أ و أ .
docker build -t simplest-network .
docker run --rm simplest-network