الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

خوارزمية العصبونات الشبكية

مغلقرائج
بدأه مهند عبادي في 18 يونيو 2004 · 27 رد · 25,492 مشاهدة · في الرياضيات والخوارزميات
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

السلام عليكم ورحمة الله وبركاته

إن ما يميّز مبرمج عن آخر هو مدى قوته في الخوارزميات ومعرفته لأنواعها

فالخوارزميات هي شيء مهم جداً للمبرمج .. وتبرز أهميتها حسب صعوبة الموضوع الذي نحاول برمجته

أحببت أن أتكلم اليوم عن خوارزمية العصبونات الشبكية حسب معلوماتي عنها

تستخدم هذه الخوارزمية في برمجة برامج التعرف على الصوت وبرامج التعرف البصري على الأحرف أو ما يدعى (OCR) و برامج الذكاء الصناعي عموماً

أولاً سميت بهذا الأسم بسبب شبه بناءها بالعصبونات التي في المخ حيث نعرف أن المخ يحتوي على خلايا عصبية (عصبونات) . وكل خلية تتصل بالخلية التي تليها من خلال اتصال عصبي

وهكذا من أجل معالجة مسألة معينة يكون لدينا ثلاث طبقات

1- طبقة الإدخالات

2- طبقة المعالجة

3- طبقة الإخراجات

1- طبقة الإدخالات : تتألف من مجموعة (عقد) أو (عصبونات) تشكل صفاً واحداً حيث يتم إسناد القيم إلى هذه العقد في مرحلة الإدخال .. ويكون عدد هذه العقد حسب الموضوع الذي نبرمجه

2- طبقة المعالجة : تتألف من مجموعة عقد إما صفاً واحداً أو مجموعة صفوف حسب عمق المعالجة الذي نحتاجه

3- طبقة الإخراجات : تتألف من مجموعة عقد أقل من الطبقتين السايقتين ويمكن أن تكون عقدة واحدة إذا كانت النتيجة المطلوبة إما نعم أو لا

أسلوب تدفق البيانات داخل هذه الشبكة (شبكة العصبونات) :

إن لكل عقدة بيانان : 1- البيان المدخل من قبل المستخدم ، 2- وزن العقدة : هذا البيان عبارة عن قيمة إذا كان البيان الأول أكبر أو يساوي الوزن فإنه يتم تمريره إلى العقدة في الصف التالي وإذا كان أقل لا يتم تمريره (إنه من المعروف أنه لكل عصبون توتر كهربائي معين يمثل الحد الأدنى للتيار الذي يمكنه المرور ضمن العصبون وهذا سبب تسمية الخوارزمية بالعصبونات الشبكية)

وعندما يتم تمرير القيمة من عقدة فإنها تمرر إلى كل العقد في الصف التالي .. بمعنى : أن كل عقدة من أول صف تمرر البيان إلى جميع العقد في الصف التالي وهكذا .. وهذا سبب تسمية الخوارزمية (بالشبكية) لأن تقاطع خطوط مسير البيانات داخلها تشكل شبكة متقاطعة

إن هذا الخوارزمية يعطي نتائج مذهلة لأنها تعالج مواضيع لا يمكن معالجتها بالمنطقية المعتادة للبرمجة

والبرامج المبنية على هذه الخوارزمية تمتاز بخاصية التعلّم ( يعني عندما أعمل برنامج باستخدام هذه الخوارزمية يجب أن أدعه يتدرب فترة من الزمن (كلما طالت كلما تعلّم البرنامج أكثر وأصبحت نتائجه أكثر دقة )

التعلم هو عبارة عن تجربة هذه الخوارزمية على حالات معروف حلّها وتعديل الأوزان بالنسبة للعقد حتى تصبح النتيجة النهائية مطابقة للنتيجة الصحيحة التي نعرفها

لذلك فإن ذكاء هذه التطبيقات ما هو إلا مجموعة أوزان العقد المستخدمة في الخوارزمية

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

#2

موضوع شيق يا ريت من الاعضاء الذين يعرفون عن اي خوارزمية الشرح عنها للفائدة العامة

ومشكور اخ مهند على جهودك

راكان الحنيطي

Be Open Source

opensource-550x4752.gif

#3

حلوة جدا كنت اود فتح هذا الموضوع من قبل

قمت بعمل برامج لبعض الخوارزميات المشهورة Hebb و Preceptron و Delta

ايظا برنامج تطبيقي لتمييز الحروف بشكل مبسط ولا اقصد تمييز الحروف من خلال قراءة صورةمثلا

سأقوم بتنزيل هذة الاكواد للفائدة

#4

السلام عليكم ورحمة الله وبركاتة

شكراا لأخي الكريم على شرح الخوازميات ......أخي لأ أعرف أي شئ عن الخورزميات بتتا وأود تعلمها وأتعلم كتبتاها والبرامج التي يمكن أن نكتب فيها الخورزميات ....بالله عليك دلني أين الطريق الى ذلك والبرامج المستخدمة فيها .....وجزاك الله عني وعن المسلمين خير الجزاء (الجنة)

والسلام عليكم ورحمة الله وبركاتة

محمد عبدالله

#5

أخي mohamed_k78 ..

الخوارزميات لا تتعلق باللغة .. فهي قابلة للتنفيذ على أي لغة

الخوارزميات .. هي الأسلوب العقلي النظري المنطقي للوصول إلى الحل الذي نريده انطلاقاً من البيانات الأولية التي لدينا

أو هي مجموع الخطوات الجزئية التي نستطيع من خلالها تنفيذ شيء معين

والخوارزميات بطبيعة الأمر لا تتعلق بالبرمجة من أساسها .. فمدرب كرة السلة أو القادم يضع خوارزمية لتنفيذ الهجمة أو تنفيذ الدفاع

وأنت تضع خوارزمية لحل مشكلة معينة تصادفها في حياتك

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

#6

الأخ مهند

شكرا لك على هذه المقدمة .

سأساعدك قليلا من خلاصة ما أدرس هذه الأيام في كورس الشبكات العصبية في الجامعة.

ما يميز الشبكات العصبية هو قابليتها للتطبيق على أي لغة عامة الأغراض ++C أو لغات دوت نت ، أو غيرها من اللغات ، ليس كبقية طرق الذكاء الصناعي التي لا يمكن تطبيقها إلا على لغة مخصصة للذكاء الصناعي LISP أو Prolog.

اقتباس
ذكاء هذه التطبيقات ما هو إلا مجموعة أوزان العقد المستخدمة في الخوارزمية

أو

net(i)= sum(xi * wi)

حيث neti هو خرج طبقة المعالجة ، xi هو المدخل، وwi هو الوزن.

اقتباس
الخوارزمية يجب أن أدعه يتدرب فترة من الزمن (كلما طالت كلما تعلّم البرنامج أكثر وأصبحت نتائجه أكثر دقة )

وأيضا اختيار أمثلة مناسبة تساعد في تعليم الشبكة بكفاءة في فترة مناسبة بتكاليف معقولة ( من ناحية حجم المعالجة اللازمة).

اقتباس
قمت بعمل برامج لبعض الخوارزميات المشهورة Hebb و Preceptron و Delta

ايضا برنامج تطبيقي لتمييز الحروف بشكل مبسط ولا اقصد تمييز الحروف من خلال قراءة صورةمثلا

سأقوم بتنزيل هذة الاكواد للفائدة

في الانتظار.

الملف المرفق هو كود لمعالجة مسألة بطريقة Hopfield مكتوب بلغة ++C ، منقول من كتاب neural network in C++ .

hopfield.zip

تم تعديل هذه المشاركة بواسطة walcom في 19 يونيو 2004 في 10:48

فكر بطريقة أخرى

#7

السلام عليكم و على المواضيع الهامه :)

أرفقت برنامج كنت قد صممته بالفجوال بيسيك للتعرف على الأرقام من 0 إلى 9 فى مساحة رسم .

وهو مصمم بطريقة العقده و الوزن الذى تحدث عنها الأخوه مهند و Welcom بأعلى .

DiGiT recognision.zip

#8

بعض المواضيع المتعلقة المنشورة على الموقع www.codeproject.com

Creating Optical Character Recognition (OCR) applications using Neural Networks

نتيجة بحث عن الشبكات العصبية في نفس الموقع.

تم تعديل هذه المشاركة بواسطة walcom في 19 يونيو 2004 في 16:41

فكر بطريقة أخرى

#9

هذة بعض الخوارزميات خورازمية Hebb و Preceptron و Delta

بالاضافة الى برنامج تطبيقي لتمييز الحروف

Net.zip

#11

الأخ مهند عبادي

Hebb و Preceptron و Delta هي قواعد تعلم تستخدم كخوارزميات لتعديل الأثقال (الروابط بين العصبونات)

قاعدة Hebb تعتمد على القاعدة "تزيد القوة الرابطة بين عصبونين إذا كانت المدخلات والمخرجات من نفس العلاقة ، وتقل إذا اختلفت العلامة" والصيغة الرياضية هي:

dij=L * ai * inpj

حيث

dij هو مقدار التغير في القوة الرابطة بين العصبونين i و j.

L هو معدل التعلم Learning rate

inpj هو المدخل للخلية العصبية j

أما قاعدة دلتا فهي تعتمد على القاعدة "التغير في القوة الرابطة يعتمد على التغير في المخرج" والصيغة الرياضية هي :

dij= L *( ti - oj) * inpj

حيث

ti هو االمخرج المتوقع من الخلية العصبية i

oj هو المخرج الفعلي للخلية العصبية i

في كل من القاعدتين يتم تحسين الثقل بالقاعدة:

wi= wi+ dij

اما قاعدة perceptron فتحسن الثقل حسب الصيغة الرياضية:

d threshold = - d p

و dp= tp - Op

حيث threshold هي القيمة الحدية لدالة التنشيط، و Op هو خرج دالة التنشيط.

tp هو الخرج المتوقع من الخلية العصبية المراد تعديل ثقلها.

ويتم تحسين الثقل بالقاعدة

d wij = dp * inpj

كل أسماء المتغيرات المبدوءة ب d أقصد بها الحرف اليوناني delta ، ولكنني لم أستطع كتابته.

شرح بقية المتغيرات موضح أعلاه.

وبالتوفيق بإذن الله.

.

تم تعديل هذه المشاركة بواسطة walcom في 20 يونيو 2004 في 18:38

فكر بطريقة أخرى

#12

شكرا لك اخي وليد

اعتذر لعدم الشرح حيث اني في موسم الاختبارات

شرح مختصر

بالنسبة لل Preceptron هي خوارزمية مطورة عن Hebb

عند ادخال نموذج التدريب لا يتم تعديل الاوزان الا بعد اختبار هذا النموذج اذا كانت الشبكة تتعرف عليه ام لا فإذا تعرفت عليه لا يتم تعديل الاوزان

واذا لم تتعرف يتم تعديل الاوزان لكي تتعرف على النموذج المدخل

من وجهة نظري لاي شخص يحب تعلم الشبكات ان يبدأ بتعلم قاعدة Hebb

لانها اسهل الخوارزميات وايظا اعتبرها الاساس لكل الخوارزميات

فقط افهمها بعمق وافهم كيف تعمل وكيف فكر Hebb في ابتكارها وستجد الطريق ممهدا لكي تفهم بقية القواعد

#13

بسم الله الرحمن الرحيم

جزاكم الله كل خير يا أخواني بالله عليكم أستمرو على هذا النحو حتى تعم الفائدة ........وأدعو كل من لة علاقة بالموضوع أن يدخل ويناقش ويضيف .....ويجعلكم ربي من أهل الفردوس الأعلى ...من القلب والله

والسلام عليكم ورحمة وبركاتة

محمد عبدالله

#14

الملف المرفق هو برنامج بلغة ++C لتدريب الشبكة على التعرف على ثلاثة طرق مختلفة لكتابة الحرف X و O وتمييزها، وذلك باستعمال طريقة Hebb لتعديل الأوزان ، مع دالة إخراج حدية.

ومرفق معه قيم الأوزان النهائية ، وسجل التعديلات التي طرأت على الأوزان.

تم إجراء بعض التعديلات على الكود ، واستبدال الملف المرفق.

ox_hebb.zip

تم تعديل هذه المشاركة بواسطة walcom في 26 يونيو 2004 في 11:28

فكر بطريقة أخرى

#15

الان تذكرت الموضوع ووجدت لكم هذا الشرح من ارشيفى وانقله لكم من مؤلف "مجهول" الى حد ما:

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

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

إن أهم ميزة في المخ البشري والتي لا تقتصر على كونها شبكات عصبية هائلة هي التعلم, والسؤال هو ما هذا السحر الذي يحدث داخل هذا العقل لكي تحدث عملية التعلم?! ويرى العالم هيب أن أي إدخال يكون نشطا عندما تتلقى الخلية العصبية إشارة من الخلايا الأخرى حيث يقوى وتصبح الخلية أكثر حساسية لأي إشارات أخرى قادمة في المستقبل. وهذه العملية "التي لا يوجد تصور لكيفية حدوثها" هي التي تؤدي إلى حدوث عملية التعلم. ويمكن إرجاع كل قواعد تعلم الشبكات إلى قاعدة هيب أو شيء ما مرتبط بها.

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

وكانت الشبكات العصبية الأولى بسيطة للغاية حيث كانت عبارة عن طبقة واحدة من الخلايا العصبية, وفي الواقع أن عملية التعلم حدثت في أغلب الحالات في خلية عصبية صناعية أطلق عليها الخلية المدركة أو perceptron, وبالطبع هناك أشياء لا تستطيع أن تتعلمها الطبقة الواحدة من الخلايا العصبية.. وكان من الصعب جدا أن تقوم بتوسيع الطبقات لتشمل عدة طبقات لعدم وجود وسيلة واضحة أو مفهوم محدد لكيفية التعامل مع هذه الطبقات لجعلها تتعلم أي شيء.

** الوزن والرؤية

في بداية الثمانينات اكتشف لوغاريتم يساعد الشبكات متعددة الطبقات على التعلم, وتجدد البحث في الموضوع مرة أخرى, وقبل أن نلقى نظرة على هذا اللوغاريتم التجريبي لابد أن نفكر في الطريقة التي ندرب بها الخلية العصبية الواحدة, والفكرة الأساسية بسيطة للغاية, فالخلية العصبية عبارة عن إشارات داخلة هي د1 د2 وكل إشارة يتم ضربها في الوزن و1 و2 وتكون النتيجة هي مجموع كل هذا, ويمكنك أن تعتبر الوزن العامل الذي يحدد حساسية الخلية العصبية لإشارة داخلة معينة, والإشارة الخارجة من الخلية عبارة عن الإجمالي الموزون للإشارات الداخلة وعادة ما يمثل هذا الإجمالي الحد الأدنى الذي ينتج إشارة خارجة في حالة زيادة إجمالي الإشارات الداخلة وتخطيها لهذا الحد الأدنى. وهذا يعني أن الخلية العصبية لا تطلق إشارة إلا في حالة وصول استثارة الإشارة الداخلة إلى مستوى عال جدا انظر شكل 1.

كيف تتعلم هذه الأداة البسيطة أي شيء? أولا لابد أن نعرف ماذا نعني بالتعلم, لنفترض أن اثبتنا أن بعض الإشارات الداخلة التي تصدر من أي عنصر أو شيء مثل قيم ألوان البيكسل من صور شخص ما, على سبيل المثال وقامت الخلية بإطلاق إشارة عصبية ولكنها لا تطلق إشارة عصبية عندما نعرض لهذه الخلية إشارات داخلة من مجموعة أخرى من العناصر, ويمكنك القول أنها تتعرف على النوع الأول من العنصر وليس الثاني, ولنفترض أنها خلية عصبية من طراز جديد ستنخفض فرص إعداد أوزانها حتى تطلق إشارة عند وصول الاستثارة إلى مستوى معقول من الإشارات الداخلة, وفي هذا السياق يمكن تعريف التعلم بأنه عملية ضبط الأوزان لجعل الخلية تطلق إشارة استجابة للأمثلة من مجموعة معينة.

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

** أخطاء الإدراك

عندما تتبع الإجراء السابق مرات ومرات ستتعلم الخلية العصبية في النهاية القدرة على التمييز بين المجموعات, وعندما تم اكتشاف هذا السلوك لأول مرة أذهل الناس للوهلة الأولى, وكما هو الحال في تقنيات الذكاء الاصطناعي الجديدة حدثت ضجة كبيرة حول شيء لا يستحق.

هناك شرط ضمني في لوغاريتم التعلم وهو أن لا يتم تعلم إلا ما يمكن تعلمه .ورغم أن هذا منطقي بالبداهة , فلابد أن تعرف أن منح الخلية العصبية إشارات داخلة بشكل عشوائي للمجموعة التي تريدها أن تتعرف عليها فلن تتعلم الخلية التمييز بين أي شيء, والخلية العصبية محدودة في الأشياء التي يمكن أن تتعلمها بصورة أكبر مما تتخيل, وفكر في الإشارات الداخلة التالية:

د1 د2 إشارة خارجة

صفر صفر لا توجد إشارات

1 1 لا توجد إشارات

صفر 1 إطلاق إشارة

1 صفر إطلاق إشارة

إذا حاولت أن تدرب الخلية على استخدام هذه الإشارات الداخلة أي أنك تريد أن تجعل الخلية قادرة على تمييز عنصر واحد في كل إشارة داخلة, ستكتشف أنها لن تتعلم أبدا هذه المهمة, وهذه وغيرها من المحاولات الفاشلة لتعليم الخلية العصبية شيئا ما أقنعت العاملين في هذا المجال أن الفكرة برمتها سخيفة جد ا.

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

في الواقع ليس من الصعب أن نجد مجموعة تتكون من ثلاث خلايا عصبية ولا يمكنها حل مشكلة صفر وواحد أو واحد وصفر, وهذا الأمر معروف منذ وقت طويل ولكن كان الناس يتجاهلونه لأنه دليل على وجود حياة في فكرة الخلية العصبية. ويجب تدريب مجموعة الخلايا الثلاث يدويا حيث يجب إعداد أوزانها على القيم المناسبة والتي لم تتعلمها بعرض البيانات المتكررة عليها, ويمكنك أن تعرف كيف يتم ذلك في الشكل التوضيحي (شكل رقم 2), ويتم كتابة الأوزان بجانب الاتصالات والرقم الموضوع في كل خلية عصبية هو الحد الأدنى, وتساوي الخلية العصبية التي تطلق إشارة بالإجمالي الموزون أو تتجاوز الحد الأدنى.

وإذا تأملت جدول الإشارات الداخلة والخارجة لكل خلية عصبية (شكل رقم 3) ستعرف أن جدول إجمالي الداخل والخارج من البيانات في ومن الخلايا العصبية الثلاث هو بالضبط ما نحتاج إليه.

** طريقة اللوغاريتم

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

يطلق على لوغاريتم التعلم اسم المنحنى الكبير وهو عبارة عن تطبيق لبعض طرق التحسين القياسية standard optimization methods, والفكرة الأساسية هي نفس الفكرة المستخدمة لتعديل أوزان الخلية العصبية الفردية أي أنك تغير الأوزان حتى تجعل النتاتج تتحرك نحو القيمة المطلوبة, وفي حالة الشبكة العصبية لابد أن تحدد الأوزان وخلاياها العصبية وكذلك الأوزان التي ينبغي تعديلها.

للأسف الشديد, لا نعلم الخلية العصبية المسئولة عن الخطأ الحالي في الناتج النهائي, ولا يمكنك أن تستخدم وظيفة الحد الأدنى البسيط لتحديد موقع المشكلة, ويجب عليك استخدام وظيفة تتيح لناتج الخلية العصبية الانتقال بسلاسة من "عدم إطلاق إشارة" إلى "إطلاق إشارة", ومن خلال جعل هذه الوظيفة تعمل على الانتقال المفاجئ من الحد الأدنى تحتفظ الخلية بخصائصها في التشغيل والإقفال أو "الإطلاق وعدم الإطلاق".

وعندما تستخدم الخلية العصبية من هذا النوع يمكنك تطبيق لوغاريتم التعلم بغض النظر عن تعقيد الشبكة أو بساطتها وذلك عبر الخطوات التالية:

1- تطبيق الناتج بالنتيجة المطلوبة (مخرجات البيانات).

2- حساب ناتج الخلية العصبية وحساب الخطأ الحالي.

3- نقل قيمة إجمالي الخطأ إلى كل خلية عصبية في الشبكة بالتناسب مع أوزانها الحالية, وتوصيل هذه الخلية بخلية الناتج .

4- استخدام الخطأ المحدد لكل خلية عصبية في تدريبها بالطريقة المعتادة والتفاصيل الخاصة بهذه الإجراءات أو الخطوات معقدة جدا , لأن مقدار الخطأ المنقول إلى كل خلية يعتمد على شكل وظيفة الحد الأدنى, وهذه هي الفكرة العامة في هذه الخطوات, ومن أكثر الأسماء شيوعا التي تطلق على هذه العملية "التفاعل العكسي" لأن الأخطاء تعود من خلال الشبكة بنفس الطريقة وعبر نفس الخطوات إلى الخلايا تماما مثلما تتطور البيانات الداخلة وتتفاعل باتجاه الناتج أو البيانات الخارجة.

** التفاعل العكسي

تتعلم الشبكة العصبية باستخدام التفاعل العكسي أي شيء ترغب في تعلمها إياه, حيث يمكنها أن تعرف الفرق بين صفر وواحد وواحد وصفر بدون مساعدة خارجية, وفي هذه النقطة تبدو كل مشاكل الذكاء الإصطناعي محلولة, وإذا أردت من نظام ذكاء إصطناعي أن يستجيب للأوامر باللغة الإنجليزية, فكل ما عليك هو أن تحصل على شبكة عصبية كبيرة وتقوم بتدريبها على تمييز الكلمات والألفاظ, وكانت هذه هي الضجة التي تلت إعادة اكتشاف الشبكات العصبية متعددة المستويات أو الطبقات, ولكن الحقيقة لا تبعث على التفاؤل على الإطلاق, فالشبكة العصبية يمكنها أن تتعلم أي شيء تريده ولكنها تستغرق دهرا كاملا حتى تفعل ذلك, كما أننا ليس لدينا أي فكرة عن التعميم, فإذا تعلمت الشبكة كيف تتعرف على إبريق معين للشاي, فهل ستتعرف على إبريق شاي آخر مشابه للإبريق الأول ولم تكن قد رأته من قبل?

ربما تعتقد أننا في موقف يمكننا أن نبدأ فيه بناء شبكات خلايا عصبية صناعية معقدة أو شبكات من العقول الصناعية ونعلمها جميع المعارف والنظريات المعقدة وتعد نظرية كولموجوروف هي النظرية الوحيدة التي تقدم لنا رأيا واقعيا في هذا الأمر,حيث تقول إن أي شيء تتعلمه الشبكة العصبية تستطيع أن تتعلمه شبكة عصبية من مستويين, أي تتكون من خليتين عصبيتين إحداهما للإدخال والأخرى للإخراج.

ولهذا ليس لدينا وصفة للعقل لأن عقولنا تستخدم شبكات أعمق من ذلك, كما أنه من المحتمل أن تكون عقولنا عبارة عن شبكات من الخلايا المتصلة ببعضها البعض. وتقدم تقريرا لتقييم الموقف بين الخلايا المتصلة ببعضها البعض .وتحديد المواضع التي تصبح فيه الاتصالات مفيدة مشكلة عويصة.. فنوع الشبكات الذي نستطيع تدريبه باستخدام التفاعل الخلفي لا يمكن أن يكون به نوع من التقارير المنعكسة وفي الحقيقة لا تحتاج إلى مثل هذه التقارير.

#16

مقاله دسمه فعلا ، شكرا لك يا دكتور محمد .

#17

لاشكر على واجب اخى (مستر أحمد :) ) وعموما اعتقد انه كان لدى مقالات عربية عن الذكاء الصناعى بالعام الماضى سأبحث عنها ان كانت تفيد فى الموضوع

#18

اولا شكرا على المعلومات القيمة

ثانيا:

الصراحة لم اعرف الفائدة الحقيقية من هذه الخوارزمات , هل تستخدم في برمجة الشبكات ام في الذكاء الاصطناعي ام ماذا؟

ايضا لم افهم ما هي علاقة الاوزان في هذه الخوارزمات؟

يا ريت لم توضحولي

"خيركم من تعلم العلم وعلمه". ..........استغفر الله. ........ اللهم صلي وسلم على سيدنا محمد

احمد عبد الحميد ابوغرارة

CodeGuru CodeProject CGTalk

#19

اخى احمد اول شئ ان شبكات الكمبيوترلا علاقة لها بالموضوع لأن هذا لخبطنى فى البداية .. بل هى مصطلح شبكة ولكن عصبية ليس أكثر :)

اما الأوزان فلا أعرف كيفية شرحها جيدا ولكن اعتقد الأخوة هنا متخصصون اكثر فى تقديمها بشكل مبسط

#20

الأوزان ببساطة هي القوة الرابطة بين كل خليتين عصبيتين(عصبونين)، وتكون موجبة عندما تكون قوة دفع ، وتكون سالبة عندما تكون قوة سحب.

بطريقة أخرى ، اعتبرها قوة تأثير العصبون على العصبون التالي له.

فكر بطريقة أخرى

#21

طيب ما هي العصبونات اصلا

الدكتور احمد قال ان لا دخل لها بالشبكات للكومبيوتر

طيب ما هي وما استخداماتها واين يمكن ان اجدها في التطبيقات المتوفرة في الاسواق؟

"خيركم من تعلم العلم وعلمه". ..........استغفر الله. ........ اللهم صلي وسلم على سيدنا محمد

احمد عبد الحميد ابوغرارة

CodeGuru CodeProject CGTalk

#22

انا اعرف سبب لخبطتك اخى احمد :) ومقدرها أنا لا أعرف فى اللغة العربية معنى كلمة عصبون لأنن امشى على المرادف الأصلى بالإنجليزية .. لذا أرجو من الأخوة لتوضيح الموضوع كتابة المصطلح بالانجليزى بدل من الترجمة فقط .. والموضوع ببساطة يعنى الاستفادة من مجرد فكرة وجود الأعصاب neuron حيث هناك ما يسمى بالsynapse او الشق التكعبرى على ما اتذكر وهو اتصال نهايات محاور الاعصاب بشجيرات اجسام الخلايا العصبية نفسها dendrites of cyton وهذه الصورةتوضح شكل العصب واتصاله بالخلية التالية

neuron2.jpg

طبعا الموضوع له علاقة بسيطة بالطب :) ومن ركائز الذكاء الاصطناعى

#23

الأخ anwarica

كلمة عصبون هي تعريب لكلمة neuron .

الأوزان بين كل خليتين عصبيتين تقع في المنطقة التي أسميتها Synapse ( لا أفقه كثيرا في الطب والتشريح :) ) ، وتمثل قوة الرابطة بين الخليتين العصبيتين ،وتكون سالبة إذا كانت الخلية العلوية تسحب المعلومات من الخلية السفلية ، وتكون موجبة إذا كانت تدفع المعلومات إليها.

نحن هنا نتحدث عن الشبكات العصبية الاصطناعية ، وهي محاولة لمحاكاة شبكات الخلايا العصبية البشرية. لمعلومات أكثر ، انظر كتاب الشبكات العصبية ، تأليف د. علام زكي ، نشر دار شعاع للنشر.

الأخ ahmed_3d

اقتباس
طيب ما هي وما استخداماتها واين يمكن ان اجدها في التطبيقات المتوفرة في الاسواق؟

لها العديد من التطبيقات: التعرف على الأنماط (خط يد، صور ، صوت ... إلخ) ، إنتاج الكلام، تقدير بيانات الأعمال(أسعار صرف العملات مثلا) ، محاكاة الإنسان على أداء عمليات معقدة لا يستطيع تكرارها عدة مرات بنفس الإتقان ، استكشاف المعرفة عبر تنقيب البيانات data mining والكثير من التطبيقات الأخرى .

مثلا حتى تعرف الصعوبات التي تظهر أثناء التنقيب عن البيانات ، انظر

من عنده فكره على OLAP

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

أيضا لو بحثت في Google عن neural networks application ستجد العديد من برمجيات وتطبيقات الشبكات العصبية ، مفتوحة ومغلقة المصدر.

فكر بطريقة أخرى

#24

للرفع

:rolleyes:

فكر بطريقة أخرى

#25

السلام عليكم

الموضوع رائع جدا

و اريد ان اعرف اكثر عن هذا الموضوع

فهل ممكن تدلوني على كتب عن الشبكات االعصبيه وعن الذكاء الاصطناعي

وشكرا

هذا الموضوع مغلق.

مواضيع مشابهة