خوارزميات تعلم الآلة

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

عنقدة البيانات (Data clustering)

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

خوارزمية عنقدة التجمعات أو الجبل (Mountain Clustering)

(Mountain Clustering)هي طريقة بسيطة لإيجاد مراكز التجمعات بالاعتماد على حساب الكثافة من خلال ما يدعى بال(Mountain Function). كما يمكن استخدام هذه الطريقة لإيجاد مراكز التجمعات بشكل تقريبي، مما يسهل استخدامها كوسيلة ابتدائية قبل الدخول في مراحل تجميع أكثر تعقيدا.
في المرحلة الأولى من ال(Mountain Clustering) يتم تشكيل شبكة على البيانات في المستوى الديكارتي، حيث أن التقاطعات بين خطوط هذه الشبكة تشكل مراكز المجموعات.
المرحلة الثانية، يتم تتابع بناء ال(MF) والذي يمثل قياس كثافة البيانات. ذروة(ارتفاع) ال(MF) عند النقطة v؟V تعادل
حيث أن xi هي نقطة i من البيانات، وs هو ثابت تطبيقي محدد، يتبين من المعادلة السابقة أن قياس كثافة البيانات يتأثر بكل النقاط xi في مجموعة البيانات، وقياس كثافة البيانات يتناسب عكسيا مع المسافة بين نقاط البيانات xiو النقطة الموجودة في الv(MF. الثابت يحدد الذروة والانحدار لل (MF) الناتج.
المرحلة الثالثة تنطوي على اختيار مراكز التجمعات عن طريق هدم ال(MF) بشكل تسلسلي. يحدد مركز التجمع الأول ci من خلال اختيار النقطة التي لها أعلى قياس للكثافة. يتم تحديد مركز التجمع الثاني من خلال القضاء على تأثير التجمع الأول. ويتم ذلك من خلال إعادة تشكيل ال(MF)، ويتم تشكيل ال(MF) الجديد من خلال
القيمة الطروحة في المعادلة السابقة تزيل أثر المجموعة الأولى. من الملاحظ أن بعد عملية الطرح تقل قيمة ال(MF) الجديدة mnew(v) لتصل إلى الصفر عند v=c1.
بعد عملية الطرح، يتم اختيار مركز المجموعة الثانية من خلال تحديد النقطة التي يكون عندها أعلى قيمة لل(MF)الجديدة. تستمر هذه العملية حتى يتم تحديد عدد كاف من مراكز التجمع.

تقییم خورازمیات التعلیم بالاشراف (Supervised Learning Evaluation )

ال(Cross Validation) هو عبارة عن عمليات حسابية واحصائية لتقسيم البيانات والعينات (samples) إلى مجموعات فرعية. ويتم اجراء عملية التحليل في البداية على مجموعة فرعية واحدة، في حين نحتفظ بالمجموعات الفرعية الأخرى لاستخدامها لاحقا للتأكد من صحة التحليل الأولي.
المجموعة الفرعية الأولى يطلق عليها مجموعة التدريب(training set)، والمجموعات الفرعية الأخرى يطلق عليها مجموعات الاختبار والتحقق (testing and validation).
المشكلة في استخدام الطرق السابقة انها لاتعطي مؤشرا عن كيفية تصرف المعلم (Learner)، عندما يطلب منه التنبؤ حول البيانات التي لم تكن جاهزة حتى الآن. لاتقوم بعمليه التعميم لجميع البيانات المستقبلية 
(not generalized).
يمكن التغلب على هذه المشكلة من خلال عدم استخدام مجموعة البيانات بالكامل في عمليه التدريب، بعض البيانات نقوم بحذفها قبل اجراء عملية التدريب، وبعد اجراء عملية التدريب، البيانات التي تم حذفها يتم استخدامها في عملية الاختبار، وذلك لحساب الأداء (performance)، وهذه هي الفكرة الرئيسية لل(Cross validation).
أنواع ال(Regression)
(linear regression)
سمي بالخطي لان العلاقة بين كل من المتغير x والمتغير y هي خطية، في هذه الحالة يتم محاولة إيجاد خط يصنف حميع نقاط البيانات.
(Quadratic regression)
سمي بذلك لانه متعلق بالمعادلات التربيعية من الدرجة الثانية، ويمثل منحنى يصنف نقاط بيانات معينة، ويحقق نتائج أفضل من ال(Linear regression).(Piecewise linear nonparametric regression)
في هذا النوع يتم تصنيف نقاط البيانات حسب وجودها في مستوى البيانات، والمشكلة في هذه الطريقة أنها صعبة التطبيق، كما أنه لا يمكن تعميمها لجميع البيانات، لان جميع البيانات تستخدم في عملية التدريب.
الشكل2.1: أنواع ال(Regression)، (أ) (linear regression)، (ب) (Quadratic regression)، (ج)(Piecewise linear nonparametric regression)
طرق ال(Cross Validation)

ترك عنصر خارجا  Leave one out

الفكرة الرئيسية من هذه الطريقة هو أننا نقوم بالتدريب عدة مرات باستخدام كل النقاط، باستثناء نقطة واحدة تستخدم للاختبار، وفي كل مرة يتم استخدام نقطة أخرى لعملية الاختبار.
طريقة عمل الخوارزمية:
•لكل عينة k في المجموعة R.
•نقوم بحذف إحداثيات النقطة (Xk ،Yk) من المجموعة.
•نقوم بعمليه التدريب على باقي النقاط في المجموعة.
•نقوم بحساب الخطأ (MSE) الناتج من هذه النقطة (Xk ،Yk).
•نقوم بتكرار من 1 – 4 لكل النقاط الموجودة في المجموعة R.
الخطوة الأولى:
كما نرى في الشكل 2.5، النقطة باللون الأحمر تمثل نقطة الاختبار.
الخطوة الثانية:
حذف إحداثيات النقطة (Xk ،Yk) من المجموعة R قبل القيام بعملية التدريب، كما في الشكل 2.6.
الخطوة الثالثة:
نقوم بعملية التدريب على النقاط المتبقية في المجموعة R، كما يظهر في الشكل 2.7.
الخطوة الرابعة:
حساب نسبة الخطأ (MSE) الناتج من النقطة (Xk ،Yk)، لاحظ الشكل 2.8.
الخطوة الخامسة:
•تكرار الخطوات الأربعة (1 – 4) لكل النقاط الموجودة في المجموعة R كما هو في الشكل 2.9.
•حساب الخطأ (MSE) الناتج من جميع النقاط.
تكرار الخطوات على الأنواع لأخرى من ال(Regression)
عند المقارنه بين الطرق الثلاثة تبين ان اقل نسبة خطأ هوعند استخدام ال(LinearRegression)، وهي الأفضل في عمليه التدريب.
ميزات استخدام ال(Leave one out):
•لاتضيع أي جزء من البيانات عند اجراء عمليه التدريب لان نقطه واحده تستخدم في عمليه الاحتبار في كل مرة.
سيائتها:
•عمليه تطبيق هذه الطريقة مكلفه مقارنه بالطرق الأخرى، لأنه يتم تكرار العمليات الحسابية عدة مرات بناء على عدد النقاط.

التقییم باستخدام التحزيم المتشابك  (K-fold Cross Validation)

خلال هذه الطريقة يتم تقسيم البيانات بشكل عشوائي إلى k من المجموعات ومن ثم عملية التدريب لعدد k من المرات باستخدام جميع النقاط الموجودة باستثناء المجموعة k.
خطوات عمل الخوارزمية:
•تقسيم البيانات بشكل عشوائي إلى K من المجموعات.
•لكل مجوعه نقوم بالتدريب باستخدام كل النقاط التي لاتنتمي إلى هذه المجموعة.
•حساب مجموع نسبة الخطأ في هذه المجموعة.
•تكرار الخطوات من 2- 3 حتى ننتهي من جميع المجموعات.
•حساب الوسط(الmean) للمجموع الكلي للخطأ من كل المجموعات.
الخطوة الأولى:
تقسيم البيانات بشكل عشوائي إلى Kمن المجموعات.
في هذا المثال يتم تقسيم البيانات إلى ثلاث مجموعات، كما يظهر في الشكل 2.12.
المجموعة الأولى : اللون الأحمر
المجموعة الثانية : اللون الأزرق
المجموعة الثالثة : اللون الأخضر
الخطوة الثانية والثالثة:
في هذه المرحلة يتم تدريب جميع النقاط التي لا تنتمي إلى اللون الأحمر، كما هو في الشكل 2.13. 
حساب نسبة الخطأ في هذه المجموعة.
الخطوه الرابعة:
تكرار الخطوة الثانية والثالثة حتى ننتهي من جميع المجموعات، كما هو في الشكل 2.14.
الخطوه الخامسة:
حساب الوسط للمجموع نسب الخطأ لكل المجموعات.
عند تطبيق هذه الخوارزمية على ال((Piecewise linear nonparametric regression
وال((quadratic regression فإن نسب الخطأ تكون كما يلي:
بعد المقارنه بين الطرق الثلاثة تبين ان اقل نسبة خطأ هوعند استخدام ال(Quadratic regression)، وهي الأفضل في عمليه التدريب
ميزات استخدام ال(K-fold cross validation)
•إذا تم اختيار القيمة الصحيحه للمتغير k، فانه يقلل استخدام البيانات في عملية الاختبار مقارنه مع 
ال(test set method)، ويقلل من التكلفة مقارنه مع ال(leave one out method).
ملاحظة:
لايوجد نظرية ثابتة لاختيار قيمه k، لكن الشائع هو اختيار k=10.
مخطط تنيفذ خوارزمية K-fold cross validation

الخوارزميات الوراثية (Genetic algorithm)

هي عبارة عن طريقه تستخدم لحل المشكلات التي تحتوي على بيانات كبيرة, كما أنها إحدى الطرق التي تستخدم في حل المشكلات بشكل عام. حيث تعتمد هذه الطريقة على المبدأ الأساسي في تزاوج الجينات.
تقوم هذه الطريقة باختيار عينات من مشكله معينه والقيام بعمليه تزاوج بين هذه العينات, وهناك نوعان من عمليات التزاوج, إحداهما خلط الجينات مع بعضها البعض من الاباء(Crossover) والثاني هو تغيير في الجينات لأحداث طفره (Mutation).
تتم عمليه التنفيذ من خلال ثلاثة مراحل(operator): تتم على أساس الانتقاء الطبيعي 
للعينات الأولية.
1-عمليه الاختيار (selection)
وهي عمليه اختيار العينات ال بسبب وجود مجموعه من الكروموسامات الضعيفة وأخرى قوية، فإن وجود الفرد أو عدمه يعتمد على ال(fitness function)
2-عمليه الخلط(crossover) 
 
عمليه خلط ودمج بين اثنين من الآباء وذلك لإنتاج طفل جديد بمواصفات محسنه, وعاده تكون عمليه اختيار نقطه التقسيم عشوائية من خلال عملية تبادل الكروموسومات. في هذه العملية يتم اختيار فردين من العينات الأولية (initial population) التي تم اختيارها في الخطوه الأولى.
-إذا وجد لدينا
س1= 000000 وس2=111111
-فان ناتج عمليه الخلط
س1َ = 110000 وس2َ= 001111
وتكون النتيجة من هذه العملية (طفلين جديدين) وتدخل هذه العينة الجيل التالي لل(population)
-باعاده التزاوج بين الوالدين تكون العينات الجديدة أفضل من العينات القديمة.
-مثال على عمليه التزاوج
الوالد الأول
الوالد الثاني
الطفل الأول
3-الطفرة(Mutation)
عمليه تغير في بعض الكر وموسومات لوالد معين وإنتاج طفل جديد وهذه عمليه تسمى طفرة لان الطفل هو جديد لايحمل صفات من الأب أو الام
قبل إجراء عمليهMutation
بعد اجراء عمليه Mutation
ما هي طريقه عمل ألخوارزميه الجينية ؟
1-اختيار عينات(population) بشكل عشوائي
2-تحديد مايسمي (fitness) لهذه العينات وتكون باختيار علاقه معينه لحساب والتحكم من يعيش من هذه الكروموسامات ومن لايعيش
3-اختيار الوالدين(parent) من هذه العينات
4-إجراء عمليه(crossover) وهي عمليه الدمج والتزاوج لإنشاء جيل جديد من الأطفال(children) أي عينات جديدة منpopulation
5-إجراء عمليه (mutation) أي ما يسمى بالطفره على الأولاد
6-يتم حساب ((fitness لهذه الأطفال
7-يتم اعاده إجراء الخطوات من 4-6 حتى الوصول إلى الحل الأمثل(optimal)
ملاحظه:
•الكروموسوم ممكن ان يكون :-
-مجمعه من الخانات (Bit) :- الأرقام الثنائية (Binary number) أي 010.....1100
-الاعداد الحقيقة (Real number) : 43.3 -33 0.0
-تكرار من العناصر (permutation of element) : E11E3 E7 E1E15 
•في البداية يكون العمل على العينه (عينات يتم اختيارها) وليس على كل العينات
•نقوم بالتأكد من العينة الجديدة (الأطفال) سواء إذا كانت العينة ضمن الحل لهذه المشكلة أو لا عن طريق ما يسمى fitness function
 
fitness function
.هي التي تتحكم هل هذا الكروموسوم قوي أو ضعيف ونقوم بتحديها في البداية
•في الجينات ليس بالضروري ان تكون العينه الناتجة هي الحل للمشكله بشكل نهائي  (optimal) ولكن ممكن ان تكون قريبه من الحل أو لا
•هناك أطفال لا علاقة لهم بالحل أي بعدين عن الحل الصحيح نقوم بعمليه تزاوج بينهم مره أخرى حتى نصل الحل القريب أو النهائي
أمثله من الواقع على الخوارزميات الوراثيه
1-مشكله البائع المتجول (Traveling Salesman Problem TSP)
-وضعت الخوارزميات الجينية الحل لمشكلة البائع المتجول والهدف من ذلك هو إيجاد أقصر مسافة بين (س) مدن مختلفة.
-لو افترضنا ما يلي :-
•انوه يوجد (س) من المدن وفحص هذه المدن في الحل تكون عن طريق الاحتمالات وهذا يوجب حساب مضروب س (س!)
•لو افترضنا انه لدينا 30 جولة من المدن فعلينا حساب المجموع الكلي للمسافات 
أي 2.65*1032 من الجولات المختلة ولو افترضنا مليارات اضافيه من الثواني (second) واضافه مدينة جديده يسبب استهلال الوقت الكثير من الوقت من الحساب أي حساب مضروب 31 وهذا رقم كبير كثير وهذه مهمه مستحيله الحل
-الخوارزميات الوراثية يمكن استخدامها لإيجاد الحل بوقت اقل بكثير ورغم أنها لا تجد الحل الأمثل. ولكن تجد الحل الأمثل تقريبا 100 جولة باقل من دقيقه هناك بضع خطوات أساسية لحل مشكلة البائع المتجول
أولا : تشكيل وإنشاء مجموعه عشوائية من الجولات أو ما يسمي  (population) والأفضليه لربط المدن التي تكون قريبه من بعضها البعض
ثانيا: اختيار أفضل 2 من الأقصر جوالات من (population) وإجراء عمليه الجمع بينهم لإنشاء 2 طفل جديد من الجولات وتكون أفضل من الأول (الوالدين التي تم اختيارهم في البداية)، 
•وهنا نقوم بإجراء عمليه (mutated) على الجولات الجديدة أي الأطفال (new Children tour)ونقوم بعمل ذلك لمنع من وجود تماثل وتشابه بين كل الجولات
•والاطفال الجديدة (new Children tour) نقوم بادخالها إلى (population) وذلك محل الجولات الطويلة التي تاخد مسافه كبيرة ووقت أكبر
•ونقوم بتكرار العملية أي إنشاء أطفال حتى الوصول إلي الهدف المرجو من العملية وهو المسافات الأقصر
•ومن القضايا المعقدة في الخوارزميات الوراثيه لحل مشكله البائع المتجول هي التشفير والترميز (encoding) للجولات وإجراء عمليه الدمج الخلط(crossover)بينهم التي تستخدم والدين لإنشاء طفلين جديدين
• في الخوارزميات الوراثية يكون التشفير هو عبارة عن مجرد سلسله من الاعداد وعمليه الدمج والخلط تكون باختيار عشوائي نقطه فصل وتقاطع بين الأبوين. وفي هذه المثال نقطه التقاطع بين الثالثة والرابعة
  
الوالد الأول F A B | E C G D
الوالد الثاني D E A | C G B F
  
الطفل الأول F A B | C G B F
الطفل الثاني D E A | E C G D
•الصعوبة في مشكله البائع المتجول أن كل مدينة يجب أن تستخدم مره واحده فقط في الجولات
•إذا الحرف (Letters) المستخدم في المثال يمثل المدن، الطفل الجديد المكون من خلال عمليه الدمج تكون خطأ لان الطفل الأول يذهب إلى المدن F و B مرتين ولايذهب إلى المدن D و E