النتائج 1 إلى 12 من 12
الموضوع: الشبكات العصبية من الألف إلى الياء
- 24-08-2008, 06:29 PM #1
الشبكات العصبية من الألف إلى الياء
بعد أن أخذنا فكرة عن الشبكات العصبية وكيفية إنشائها وتدريبها واستخدامها بواسطة برنامج الاكسيل .
هذا الموضوع سيكون عبارة عن شرح أكثر لنفس الموضوع بشكل سلس ومتتابع .
سأبدأ بشرح الشبكات العصبية والمبدأ النظري الذي تعتمد عليه .
لأن فهم المبدأ النظري بشكل صحيح سوف يجعل التطبيق سهلا ونابعا عن فهم صحيح وليس كتطبيق خطوات بشكل أعمى .
ما هي الشبكات العصبية Neural Networks ؟
الشبكات العصبية هي عبارة عن خوارزمية رياضية معقدة نوعا ما تصلح لحل كل المسائل التي لا تخضع لقوانين رياضية ثابتة .
وهي تحاكي طريقة عمل الدماغ البشري للتعرف على الأصوات والكلام والصور .
ويكفي أن نعرف أن الدماغ يملك مليارات من هذه الشبكات العصبية والمترابطة فيما بينها بطريقة يعجز حتى الدماغ البشري نفسه عن إدراكها .
مثلا كلنا نعرف أن القذيفة مثلا تمشي وفق قانون رياضي معروف .
نستطيع من خلال هذا القانون الرياضي الثابت تحديد سرعة المقذوف والمسافة والزمن بشكل دقيق جدا .
لكن في حالات أخرى قد لا تخضع المسألة لقانون رياضي ثابت مثل درجات الحرارة وحركة الرياح والأصوات البشرية أي الكلام وفي حالتنا هذه حركة الأسعار في الفوركس .
كل هذه الأمور لا تخضع لقانون رياضي ثابت بل تخضع لمجموعة كبيرة من المتغيرات .
تستطيع الشبكات العصبية أن تتعامل مع هذه المسائل المعقدة بطريقة أذكى قليلا .
وبسبب سرعة الحوسبة وكبر الذاكرة التي تملكها الكمبيوترات الحالية فإنها تستطيع الوصول إلى درجة مقبولة من الحلول المتوقعة .
تقوم الشبكة العصبية بإنشاء عصبونات مترابطة فيما بينها بأوزان مختلفة .
كل عصبونة تكون مسؤولة عن مدخل واحد من المعلومات المتوفرة .
مثلا لدينا مسألة تتكون من عشرة مدخلات ومخرج واحد .
عند تكوين الشبكة فإننا في الواقع نكون قد أنشأنا شبكة مكونة من عشرة عصبونات وكل عصبونة مسؤولة عن مدخل واحد .
الآن عند التدريب تقوم الشبكة بتعديل مستمر للأوزان المرتبطة بكل عصبونة لكي يكون المخرج أقرب ما يكون للواقع .
تستمر عملية التدريب على كل المدخلات المتوفرة وتعديل الأوزان المرتبطة بكل عصبونة بشرط أن تكون القيمة الناتجة مقاربة أكثر ما يمكن لقيمة الخرج الحقيقية .
لذلك فإن عملية التدريب وكثرة المعلومات مهمة جدا لجعل توقع الشبكة أقرب ما يكون للواقع .
هذا الشرح النظري والبسيط هو مبدأ عمل الشبكات العصبية بشكل عام .
طبعا الموضوع أعقد من هذا ولكنه لن يخرج عن هذا الشرح .
طبعا هذا لا يعني أننا مضطرين لبرمجة هذه الخوارزمية يدويا لأن البرامج المتوفرة تغنينا عن مثل هذه الخطوة .
وملف الاكسل الذي أرفقته لكم في موضوع آخر هو قوي جدا وكافي جدا .
أهم شيء يجب معرفته للتعامل مع ملف الاكسل هذا هو ملف المدخلات والمخرجات .
- كيف نكون هذا الملف نظريا .
- كيف نكون هذا الملف عمليا .
يتبع ...
- 24-08-2008, 06:37 PM #2
رد: الشبكات العصبية من الألف إلى الياء
ما شاء الله الله يعطيك الصحه والعافية
- 24-08-2008, 06:45 PM #3
رد: الشبكات العصبية من الألف إلى الياء
مبرمج متمكن تبهرنا دائما بامكانياتك العاليه يااستاذ وضاح
بارك الله فيك
- 24-08-2008, 07:07 PM #4
رد: الشبكات العصبية من الألف إلى الياء
وهذا شرح تفصيلي مختصر من موسوعة الويكيبيديا ..
الشبكات العصبية الاصطناعية
Artificial Neural Networks
هي تقنيات حسابية مصممة لمحاكاة الطريقة التي يؤدي بها الدماغ البشري مهمة معينة، وذلك عن طريق معالجة ضخمة موزعة على التوازي، ومكونة من وحدات معالجة بسيطة، هذه الوحدات ما هي إلا عناصر حسابية تسمى عصبونات أو عقد (Nodes ، Neurons ) والتي لها خاصية عصبية ، من حيث أنها تقوم بتخزين المعرفة العملية والمعلومات التجريبية لتجعلها متاحة للمستخدم وذلك عن طريق ضبط الأوزان .
إذاً الـ ANN تتشابه مع الدماغ البشري في أنها تكتسب المعرفة بالتدريب وتخزن هذه المعرفة باستخدام قوى وصل داخل العصبونات تسمى الأوزان التشابكية .
وهناك أيضا تشابه عصبي حيوي مما يعطي الفرصة لعلماء البيولوجيا في الاعتماد على ANN لفهم تطور الظواهر الحيوية.
مكونات الشبكة العصبونية الاصطناعية
كما رأينا أن الشبكات العصبونية تتكون من مجموعة من وحدات المعالجة ويسمى أحدها عصبون ، والشكل (1) يبين نموذجا لا خطيا وبسيطا للعصبون الاصطناعي :
كما أن للإنسان وحدات إدخال توصله بالعالم الخارجي وهي حواسه الخمس، فكذلك الشبكات العصبية تحتاج لوحدات إدخال .
ووحدات معالجة يتم فيها عمليات حسابية تضبط بها الأوزان و نحصل من خلالها على ردة الفعل المناسبة لكل مدخل من المدخلات للشبكة .
فوحدات الإدخال تكوّن طبقة تسمى طبقة المدخلات، و وحدات المعالجة تكوّن طبقة المعالجة وهي التي تخرج نواتج الشبكة. وبين كل طبقة من هذه الطبقات هناك طبقة من الوصلات البينية التي تربط كل طبقة بالطبقة التي تليها والتي يتم فيها ضبط الأوزان الخاصة بكل وصلة بينية، وتحتوي الشبكة على طبقة واحدة فقط من وحدات الإدخال ، ولكنها قد تحتوي على أكثر من طبقة من طبقات المعالجة.
نلاحظ من الشكل أن العصبون يتألف من:
1 - إشارات الدخل Input :
a1,a2,a2,….an
2 - قوى الأوزان Weights
Wj1, Wj2, Wj3,……Wjn حيث يعبر الوزن عن شدة الترابط بين عنصر قبله وعنصر بعده .
3 - عنصر المعالجة J Processing Element
وهذا العنصر يقسم إلى قسمين :
أ - الجامع (Adder ) لجمع الإشارات في الدخل الموزون .
ب - تابع النقل أو تابع التفعيل (Activation Function ) :
وهذا التابع يحد من خرج العصبون لذا يسمى بتابع التخميد Squashing حيث يجعل الخرج ضمن المجال [0,1] أو ضمن المجال[-1,1] .
4 - الخرج (Output) (Xj ) .
يتبع ...
- 24-08-2008, 08:14 PM #5
رد: الشبكات العصبية من الألف إلى الياء
تطبيق مثال عملي رقمي
لنفرض أن لدينا شبكة عصبية ونريد تعليمها كيف تطبق الدالة المنطقية AND، و هذه الدالة تعطي القيمة 1 إذا كانت كلاً من قيمة المدخلين مساوية للواحد، وصفر في الحالات الأخرى.
وإليك مجموعة الأمثلة التالية لتدريب الشبكة:
I1 _____ I2 _____ t0.0 _____ 0.0 _____ 1.0
1.0 _____ 0.0 _____ 1.0
0.0 _____ 1.0 _____ 0
0 _____ 0 _____ 1
حيث I1 و I2 ترمز للمدخلات، بينما t ترمز للمخرج أو النتيجة الهدف (المرغوب بها).
وقاعدة التحويل هي:كود PHP:[right]if Sj>0 then Xj=1
if Sj<=0 then Xj=0
[/right]
وسنفرض معدل التعلم بالقيمة C=0.5.
لتمثيل هذه الشبكة فإننا نحتاج لوحدتي إدخال لأن هناك مدخلين، ووحدة معالجة واحدة لأن هناك مخرج واحد كالتالي:
من الرسم نجد أن هناك طبقة واحدة من الوصلات البينية وسنفرض لها قيم أوزان مختلفة على أن تكون في المدى من -0.5 إلى 0.5كود PHP:[right]w11=0.1
w12=0.3
[/right]
سنبدأ الآن بالمدخل الأول ونطبق أول عميلة وهي عملية الجمع:
كود PHP:[center]S= 0.1 * 0.0 + 0.3 * 0.0
S=0.0
[/center]
وحيث أن وحدة المعالجة هذه هي آخر وحدة معالجة فيجب تطبيق قاعدة التحويل:
كود PHP:[center]S=0.0<=0.0
إذاً X=0
[/center]
وبعد ذلك سنطبق عملية ضبط الأوزان، ولكن أولاً نتحقق مما إذا كان هناك حاجة لضبط الأوزان أم لا:
الناتج الهدف للمدخل الأول هو 0 والناتج الذي أخرجته الشبكة هو 0 وحاصل طرح هذين الناتجين هو 0، وهذا يدل على أن أوزان الشبكة ليست بحاجة إلى تعديل.
لننتقل إلى المدخل الثاني مستخدمين نفس الأوزان السابقة لأنه لم يتم تعديلها لعدم الحاجة لذلك:
نبدأ من جديد بتطبيق عملية الجمع:
كود PHP:[center]Sj=∑ai wji
S= 0.1 * 0.0 + 0.3 * 1.0
S=0.3
[/center]
ثم قاعدة التحويل:
كود PHP:[center]if Sj>0 then Xj=1
if Sj<=0 then Xj=0
S=0.3>0.0
X=1
[/center]
وبعد ذلك عملية ضبط الأوزان:
الناتج الهدف للمدخل الثاني هو 0 أيضاً، والناتج الذي توصلت له الشبكة هو 1 بطرح ناتج الشبكة من الناتج الهدف يعطي القيمة -1
وهي غير مساوية للصفر لذا لا بد من ضبط جميع أوزان الشبكة.كود PHP:[center]wjinew= wjiold+C(tj-Xj)ai
w11new=0.1+ 0.5 * (-1)* 0.0
w11new=0.1
w12new=0.3+ 0.5 * (-1)* 1.0
w12new= -0.2
[/center]
وبذلك نكون قد انتهينا من المدخل الثاني لنبدأ في الثالث مستخدمين الأوزان بعد تعديلها، متبعين نفس الخطوات السابقة:
قاعدة الجمع:
كود PHP:[center]S= 0.1 * 1.0 +(- 0.2) * 0.0
S=0.1
[/center]
قاعدة التحويل:
كود PHP:[center]S=0.1>0.0
X=1
[/center]
بعد ذلك عملية ضبط الأوزان:
الناتج الهدف للمدخل الثاني هو 0 أيضاً، والناتج الذي توصلت له الشبكة هو 1 بطرح ناتج الشبكة من الناتج الهدف يعطي القيمة -1
وهي غير مساوية للصفر لذا لا بد من ضبط جميع أوزان الشبكة.
عملية ضبط الأوزان:
كود PHP:[center]w11new=0.1+ 0.5 * (-1)* 1.0
w11new= -0.4
w12new= -0.2+ 0.5 * (-1)* 0.0
w12new= -0.2
[/center]
ننتقل للمدخل الرابع والأخير مستخدمين الأوزان بعد التعديل:
عملية الجمع:
كود PHP:[center]S= -0.4 * 1.0 +(- 0.2) * 1.0
S= -0.6
[/center]
قاعدة التحويل:
كود PHP:[center]S= -0.6<0.0
X=0
[/center]
بعد ذلك عملية ضبط الأوزان:
الناتج الهدف للمدخل الثاني هو 1 أيضاً، والناتج الذي توصلت له الشبكة هو 0 بطرح ناتج الشبكة من الناتج الهدف يعطي القيمة 1
وهي غير مساوية للصفر لذا لا بد من ضبط جميع أوزان الشبكة.
عملية ضبط الأوزان:
كود PHP:[center]w11new= -0.4+ 0.5 * (1)* 1.0
w11new= 0.1
w12new= -0.2+ 0.5 * (1)* 1.0
w12new= 0.3
[/center]
وبهذا نكون قد انتهينا من عرض جميع الأمثلة (متجهات من الأنماط) على الشبكة وعرض جميع الأمثلة على الشبكة تسمى محاولة، ففي هذه المحاولة أعطت الشبكة نتيجة واحدة فقط صحيحة من أصل 4 نتائج، أي أن الشبكة لم تتعلم بعد وتحتاج لمحاولات أخرى بنفس الطريقة، حتى تستطيع إعطاء إجابات صحيحة لكل الأمثلة، حينها نقول أن الشبكة تعلمت، ويتبقى فقط اختبارها.
مرحلة الاختبار:
اختبار الشبكة مشابه تماماً لعملية التعليم إلا أن الشبكة في هذه المرحلة لا تضبط أوزانها، وإنما فقط تقوم بعمليتي الجمع والتحويل ومقارنة الناتج الذي تنتجه الشبكة بالناتج الهدف. حيث يتم عرض فئة اختبار على الشبكة وتحتوي هذه الفئة على مجموعة من المدخلات والمخرجات المصاحبة لكل مدخل.
ويفضل أن تكون فئة الاختبار مختلفة عن فئة التدريب.
فإذا استطاعت الشبكة اجتياز الاختبار وإعطاء إجابات صحيحة، يكون تعليم الشبكة ناتج، وتصبح الشبكة جاهزة للاستخدام.
أسباب عدم تعلم الشبكة:
قد يتم تصميم الشبكة وتدريبها، ولكنها بالنهاية تفشل! و أسباب فشلها في الواقع متعددة منها:- نوعية الشبكة لا تناسب التطبيق الذي تم تدريبها عليه، وهذا يستلزم اختيار شبكة أخرى.
- عدد وحدات المعالجة غير مناسب.
- الأوزان التي تبدأ بها الشبكة غير مناسبة.
- معدل التعلم غير مناسب.
- فئة التدريب لم يتم اختيارها بعناية.
- قاعدة التحويل غير مناسبة.
آخر تعديل بواسطة وضاح عطار ، 24-08-2008 الساعة 08:19 PM
- 24-08-2008, 10:07 PM #6
رد: الشبكات العصبية من الألف إلى الياء
ماشاء الله عليك اخي وضاح
عطاء دائم من شخص مميز فعلا
الف شكر
ومتابعين معاك
- 24-08-2008, 10:40 PM #7
رد: الشبكات العصبية من الألف إلى الياء
الله يجازيك بألف خير يا أستاذ وضاح.
- 24-08-2008, 10:51 PM #8
رد: الشبكات العصبية من الألف إلى الياء
انت جدا جدا جدا رائع بمعنى الكلمه
بارك الله لك في صحتك ومالك واهلك
- 24-08-2008, 11:37 PM #9
رد: الشبكات العصبية من الألف إلى الياء
ما شاء الله عليك أخي وضاح
وهذه بعض المواضيع المفيدة
الشبكات العصبية (Neural Network)
الشبكة العصبية Perceptron
تطبيق مثال عملي على شبكة Perceptron
آخر تعديل بواسطة wajdyss ، 24-08-2008 الساعة 11:59 PM
- 25-08-2008, 04:57 AM #10
رد: الشبكات العصبية من الألف إلى الياء
نعم ولكن كيف ستنجح الشبكه الاصطناعيه اذا كانت الشبكه الطبيعيه ( دماغ الانسان ) الاكثر تعقيدا اصلا لا تستطيع حل المسائل الرياضيه التي لا تخضع لقوانين رياضيه ثابته.
- 25-08-2008, 02:11 PM #11
رد: الشبكات العصبية من الألف إلى الياء
أكرمك الله استاذ وضاح
مبدع المنتدي
- 25-08-2008, 02:37 PM #12
رد: الشبكات العصبية من الألف إلى الياء
معاك معاك متابعين ان شاء الله
المواضيع المتشابهه
-
التحليل الفني باستخدام برمجة الشبكات العصبية ( حصريا لمنتدى المتداول العربي )
By وضاح عطار in forum طرق و استراتيجيات التداول في أسواق المالمشاركات: 169آخر مشاركة: 11-08-2018, 01:16 AM -
معلومات وتجارب عن الشبكات العصبية
By financialmarket in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 46آخر مشاركة: 11-01-2011, 02:42 PM -
المجنون من الألف إلي الياء
By إبراهيم الســــويفي in forum توقعات وتوصيات سوق العملاتمشاركات: 5آخر مشاركة: 21-03-2010, 10:27 PM -
آخر اخبار موضوع الشبكات العصبية
By mercury_man in forum برمجة المؤشرات واكسبرتات التداول - Experts Advisor EAمشاركات: 3آخر مشاركة: 16-01-2009, 10:43 PM -
الشبكات العصبية
By ashrafnajo in forum أرشيف مؤشرات اكسبرتات الفوركس المميزة.مشاركات: 2آخر مشاركة: 16-01-2008, 09:01 PM