『 Renad 』🌙👩🏻‍💻
『 Renad 』🌙👩🏻‍💻

@llii4r

26 تغريدة 435 قراءة May 15, 2022
أهلا وسهلا💕💕
بالبداية قبل ما اشرح لكم خوارزمية الـ hill climbing
خليني اوضح لكم انواع البحث في علم الذكاء الاصطناعي لننطلق في طريق رحلتنا بالترتيب ونفهم اكثر كيف تتم عملية حل المشاكل في الذكاء الاصطناعي وكيف تشتغل وكيف طريقة عملها🤩
عندنا نوعين من انواع البحث في الذكاء الاصطناعي :
النوع الاول :Classical search وهو البحث الاعتيادي بطريقة نظامية Systemic exploration
وطريقته تكون بأنه يبدأ البحث من عند نقطة بداية محددة initial state ومن ثم تستمر عملية الاختيار و البحث مجددا حسب الخوارزمية الى ان نصل للهدف✅
وبالنسبة لهذه الطريقة :
الطريق للحل او الخطوات اللي اتبعناها حتى نصل للحل هي الحل وليس الهدف النهائي فقط!💡
وبالتالي راح تاخذ هذه الطريقة مساحة كبيرة من الذاكرة وهذا شيئ غير محمود بالنسبة لنا❗️
ومن الخوارزميات التي تتبع هذه الطريقة :
1- BFS
2- DFS
3- UCS
4- IDS
5- LDS
6- A*
النوع الثاني : 
Local Search او البحث المحلي👩🏻‍💻💕
و طريقة عملها تكون باستكشاف الحالات اللي حولها ( جيرانها ) حتى تختار منهم حالة وحدة افضل وتنتقل الى مكانها وتأخذ قيمة الحالة الجديدة اللي انتقلت لها👏🏻
- اختيار نقطة البداية بشكل عشوائي مو مثل النوع الاول تبدا من نقطة بداية محددة🔍
وبالنسبة لهذا النوع فهو يعتبر الافضل لنوعية المشكلات اللي مو من اهتمامها تفاصيل الحل الكامل ✅
المهم الهدف النهائي بالنسبة لها وبس👍🏻
وبما انه يهمها الهدف او الحالة النهائية فقط ، فالمساحة في الذاكرة راح تكون بس لهذا الهدف ( الحالة النهائية ) وهذا الشي رهيييب بالنسبة للاداء💡💯
ومن الخوارزميات التي تتبع هذه الطريقة : 
1- Hill-Climbing
2 - Simulated Annealing
3- Local Beam
4- Genetic Algorithm
هذا باختصار نبذة بسيطة عن النوعين او الطريقتين للبحث عن حل للمشكلات في خوارزميات الذكاء الاصطناعي🥳🤍
الحين ننتقل لموضووعنا🤩..
hill climbing algorithm❤️
هي تتبع طريقة الـ local search فبالتالي يهمها الهدف الاخير وراح تكون نقطة بدايتها بشكل عشوائي وبعض من القوانين اللي تساعدها باختيار الحالة التالية الافضل💯
عملية تحركها راح تكون بشكل loop او تكرار في الصعود الى ان تصل لقيمة عالية او تصل للـ ( القمة )🏃🏻‍♀️
بمجرد النظر الى الحالات المجاورة لها و قيمهم
( اذا كلهم قيمهم اقل منها ) فهذا يعني انها في القمة وهي الفايزة وعندها النسبة والقيمة الاعلى وبالتالي تتوقف عملية البحث وترجّع لنا القيمة اللي عندها👍🏻
وهذا هو كود الخوارزمية💓
في عملية صعودها:
راح يتم تمرير المشكلة لها وتبدأ في عملية البحث
اذا وصلت الى القمة (قيمتها هي الاعلى) بترجع لنا هذه القيمة وتنتهي عملية البحث👏🏻
اذا لا:
راح تختار الحالة اللي عندها اعلى قيمة وتستبدل قيمتها بقيمة الحالة الجديدة
الى ان تصل لاعلى قيمة💕
بالنسبة لعملية الصعود او اللانتقال للحالة الافضل لها حالتين او two versions :
1- steepest ascent version : يعني ان عملية الصعود تكون للاعلى بيانيا، و الانتقال للحالة التالية يكون للحالة اللي عندها قيمة اعلى عدديا ،ونقدر نعرف اذا كان مكتوب على الرسم البياني (objective function)✅
2- steepest-descent version : يعني ان عملية الصعود تكون للاسفل بيانيا و الانتقال للحالة التالية يكون للحالة اللي عندها قيمة اقل عدديا ،ونقدر نعرف اذا كان مكتوب على الرسم البياني (cost)
- لان التكلفة في البحث نبغاها تكون اقل مو اكثر وبالتالي الحالة الاحسن هي الاقل عدديا في التكلفة
هذا الرسم يبيّن لنا اسماء ومصطلحات القمم والقيعان في هذه الخوارزمية!
الحل الافضل والمثالي دائما يكون عند نقطة Global max او Global min
وهذا بالاعتماد على الفيرجن المُعطى💡
في هذه الحالة الفيرجن objective function وبالتالي اتجاه الصعود للاعلى بيانيا
فالحل الافضل : Global max🤩
وفيما يلي شرح مفصّل لكل نقطة في هذه الرسمة🤔:
Local maximum:
هي اكبر واعلى نقطة بيانيا بالنسبة لباقي الحالات المجاورة لها ولكنها ليست اكبر قيمة في المخطط البياني بالكامل، ليست الحل الافضل👎🏻
2- Global maximum:
هي الحالة أو النقطة الافضل والمثالية
وهي الحل النموذجي للخوارزمية، هي اكبر قيمة بالنسبة للحالات القريبة منها وللمخطط البياني بالكامل .💯🤍
3- Current state:
هي الحالة او النقطة الحالية ( البحث عندها قائم الان )👍🏻
4- Flat local maximum:
هي منطقة مسطحة تدل على ان كل الحالات القريبة من هذه الحالة لها نفس قيمة الحالة الحالية ( كلهم نفس القيمة العددية )
وبكذا تبيّنت لنا كل نقطة تدل على ايش✅👏🏻
بس عندنا مشكلة راح تخرّب علينا عمل الخوارزمية بالكاااامل!!😔
تعالوا نكتشف ايش هي🏃🏻‍♀️
💡المشكلة : هذه الخوارزمية تاخذ القيم ( الاعلى او الادنى على حسب طريقة العمل او اختيار الversion ) يعني : طريقة التحرك واحدة وغير متغيرة
امّا انها تكون صعود للاعلى فقط ، او نزول للاسفل فقط!😫
التغير فيما بينهم ممنوع منعًا باتّا❗️
خلوني ابيّن لكم عملها بالشكل البياني عشان تتثبت معلوماتنا🤩
وعشان نعرف المشكلة وين راح تصير بالضبط!
Let's Gooo🥳🏃🏻‍♀️
الحين نقدر نشوف بشكل افضل ونتصور الكلام النظري اللي شرحته لكم فوق👍🏻
Current state هي الحالة اللي احنا واقفين عندها الان
و الـ next state هي الحالة الافضل اللي راح يتم اختيارها
💡هنا الحالة الافضل ( النزول للاسفل يعني قيمة عددية اقل ) ليش؟
لأننا بفيرجن يمشي على الـ cost✅
تم اختيارها واستُبدلت القيمة ونزلت الحالة لتحت👍🏻
هل وصلنا لأقل قيمة عددية نقدر نوصل لها؟
الجواب: لا!
زي ما احنا شايفين فيه اماكن اقل قيمتها وعلى تحت اكثر✅
راح نستمر بالبحث عن افضل حالة ( اقل قيمة من قيمة حالتنا الحالية ) ونختارها ونحدّث قيمة حالتنا🤩
ويستمر النزول بحثًا عن هدفنا ( أقل قيمة )
وهذا الشي يكون بداخل حلقة تكرار ( Loop ) زي ماشفنا في كود الخوارزمية بالأعلى💓🔍
ونستمر..🏃🏻‍♀️
💡تمااام الحين ركزوا معاي هنا
شايفين كيف عملية بحث الخوارزمية وقّفت!
حلو وصلنا الى قيمة أقل من القيمة اللي احنا بدينا فيها صح؟
صح، بس لاحظوا معي بالصورة
هل وصلنا لأقل قيمة ( أقصى قاع )؟
طبعا لون حالتنا الحالية الكورة الصفراء😂
الكورة الخضراء أقل قيمة من اللي احنا وصلنا لها صح!
هذه هي المشكلة بالضببط !!
المفروض ان الخوارزمية تسمح بانها تعاكس حركتها الصحيحة ( النزول ) وتسمح بحركة ( الصعود للاعلى ) ببعض الحالات
لان فيه حلول أفضل وأحسن تقدر تلقاها!💡
ولذلك تعتبر مشكلة عدم السماح بانها تتحرك حركات خاطئة في بعض الاحيان مشكلة كبيرة!
عُلماء الذكاء الاصطناعي ابتكروا خواررمية اخرى لحل هذه المشكلة🥳
وصارت تسمح بأنها تسوي بعض الحركات الخاطئة بنسب معينة ( نسب احتمالية ولها قانونها الخاص رياضيّا ) وراح تكون نسبة حدوثها قليلة حتى نوصل لحل أفضل ومثالي🤩💓
واسم هذه الخوارزمية :
simulated annealing 🤍algorithm
وبكذا نكون انتهينا من شرح خوارزمية من خوارزميات الذكاء الاصطناعي الممتعة جدا🤍🥳
أتمنى كان الشرح جميل وبسيط وسهل الفهم💓
وبإذن الله مواضيع كثيرة بانتظاركم بعد ما تعدي فترة الاختبارات النهائية ان شاء الله🤍!!
اكتبوا لي ارائكم اذا ودّكم انسعد فيها جدّا💕!!
شكرا لوقتكم🌟!

جاري تحميل الاقتراحات...