متعة تعلم الألة Machine Learning

المقدمة الأسهل في العالم عن ال Machine Learning

5٬148

هل سمعت الآخرين يتحدثون عن ال Machine Learning ولكن تجد البداية أمر غامض حتي وإن تحدثت مع زملائك؟ لنقم بتغيير تلك الفكرة.

هذه الدليل لأي شخص مهتم بمجال ال Machine Learning ولا يعرف من أين يبدأ. أتصور أن العديد من الناس قرأوا مقال من موسوعة ويكيبيديا (Wikipedia) ولكنهم وجدوا الأمر غامض وتمنوا لو وجدوا المساعدة. هذا الدليل هو المساعد لذلك.

الهدف أن يكون الدليل متاح للجميع، بمعني أن عام. إذا كان الجميع مهتم بهذا المجال بعد الإنتهاء من القراءة، فإن الدليل نجح في مهمته.

ال Machine Learning عبارة عن بعض الخوارزميات المعممة التي تستطيع إخبارك عن أشياء مهمة في البيانات بدون أن تقوم بمرمجتها بنفسك. بدلاً من البرمجة، أنت فقط تقوم بتغذية البيانات وبعدها تقوم هي بتطبيق أسلوبها في فهم البيانات.

علي سبيل المثال، أحد أنواع الخوارزميات هي خوارزميات التصنيف، بوضع البيانات في مجموعات مختلفة. نفس المُصنف المستخدم في التعرف علي الأرقام المكتوبة يدوياً (handwritten) يستطيع تصنيف الرسائل الإلكترونية (e-mails) بأنها مرغوب أو غير مرغوب بها بدون تغيير أي سطر برمجي. نفس الخوارزمية لكن بنغيير البيانات لتطبق طريقة مختلفة في التصنيف.

Machine Learning يشمل العديد من الخوارزميات المعممة.

 

صنفان من خوارزميات ال Machine Learning

تتصنف خوارزميات ال Machine Learning لصنفين: التعلم الموجه (supervised learning) والتعلم غير الموجه (unsupervised learning). الإختلاف بسيط لكن مهم جداً.

ال Supervised Learning

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

لمساعدة المتدربين، قررت كتابة تطبيق بسيط لتخمين سعر المنزل بناءً علي حجمة، الجيران، والمنازل المشابهة التي تم بيعها، وغير ذلك.

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

بإستخدام بيانات التدريب، تريد إنشاء برنامج لتخمين أسعاد المنازل.

 

هذا يُسمي ال supervised learning.  تعرف سعر كل منزل، أو بمعني آخر، تعرف الإجابة لسؤالك وتريد إستخدامه للرجوع للوراء لمعرفة أسلوب توقع هذا السعر.

لنباء تطبيقك، تُدرب خوارزمية ال Machine Learning ببيانات كل منزل. الخوارزمية تتولي أمر التعرف علي الطرق الحسابية لربط المدخلات بسعر المنزل.

هذا يُشبه حل إختبار رياضي لكن بدون أي رموز رياضية:

هل يُمكنك إستنتاج أي نوع من المسائل الرياضية كانت بالإختبار؟ تعلم أنك عليك أن تفعل شيئاً ما بالأرقام لتحصل علي الناتج.

في ال supervised learning ، تترك الأمر للحاسب الآلي لإستنتاج تلك العلاقات. بمجرد معرفة الحسابات المطلوبة لحل المسائل، يُمكنك إجابة أي مسئلة من نفس النوع.

 

التعلم غير الموجه

في المثال الوكيل العقاري، ماذا لو لم تكن تعلم سعر كل منزل؟ حتي وإن كنت تعلم البيانات الأخري مثل الحجم، الموقع، وغير ذلك. بمعرفة جزء من البيانات، يُمكنك أن تفعل شيئاً هاماً. هذا يُسمي التعلم غير الموجه.

 

ال unsupervised learning يُشبه شخص يُعطيك قائمة بأرقام ويقول لك “لا أعلم ماذا تعني هذه الأرقام وعليك إستنتاج علاقة بينها – حظ سعيد!”.

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

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

هذا المنشور سيهتم أكثر بال supervised learning ، لكن هذا لا يعني أن التعلم غير الموجه ليس مهماً أو مفيداً. ال supervised learning أصبح مهماً لأن الخوارزميات تتحسن عن الماضي ويُمكن إستخدامها بدون الإرشادات المستخدمة في ال supervised learning.

 

هل يعني تخمين سعر المنزل تعلماً؟

العقل البشري يستطيع التعامل مع أي موقف بدون تعليمات واضحة. إذا كان لديك خبرة في بيع المنازل، يُمكنك معرفة السعر الصحيح للمنزل، الطريقة المُثلي للتسويق، نوع العملاء المهتمين بمنزل معين، وغير ذلك. الهدف من الذكاء الإصطناعي القوي (strong artificial intelligence) هو نقل تلك القدرة إلي الحاسب الآلي.

خوارزميات ال Machine Learning الحالية لا تستطيع القيام بذلك. يعملون جيداً في نطاق أضيق. التعريف الأنسب للتعلم في هذه الحالة هو “الوصول لحل لمعادلة ما لحل مسئلة محددة بناءً علي أمثلة سابقة”.

لسوء الحظ، التعريف السابق ليس بالأمثل.  لذلك نكتفي فقط بمصطلح ال Machine Learning.

بعد مرور 50 عاماً، سيكون هناك خوارزميات للذكاء الإصطناعي القوي وسيكون هذا المنشور أقل فاعلية.

 

لنكتب هذا البرنامج

كيف أن نكتب برنامج لتخمين قيمة المنزل كما في المثال السابق؟

إذا لم تكن تعلم أي شيئ عن ال Machine Learning فعليك أن تحاول أن تكتب بعض القواعد بتخمين سعر المنزل كالتالي:

البرنامج لن يكون مثالياً وسيكون هناك بعض الحالات التي يُعب عليه توقعها.

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

 

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

سيساعدك ذلك في إختزال الدالة الأصلية، التي هي عبارة عن مجموعة شروط، إلي شيئ أبسط كهذا:

 

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

طريقة بسية لمعرفة كيف أن نصل إلي أفضل الأوزان هي كالتالي:

خطوة 1:

مبدئياً إجعل قيم كل الأوزان مساوية 1.0:

 

خطوة 2:

قم بإخال بيانات كل منزل إلي الدالة ولاحظ كيف يبعد الناتج المتوقع عن الناتج الصحيح:

 

علي سبيل المثال، لو كان سعر أول منزل هو 250,000$ وكان الناتج المتوقع هو 178,000$ فإنك تبعد بمقدار 72,000$ عن الناتج الصحيح لهذا المنزل.

بناءً علي هذا، فإن نسبة تربيع الفرق بين الناتج الصحيح والناتج الخاطئ عدد 500 منزل هو $86,123,373. هذا يُسمي تكلفة الدالة.

إذا وصلت هذه التكلفة إلي صفر عن طريق تغيير الأوزان، فإن دالتك تُصبح مثالية. تستطيع وقتها أن تتوقع الناتج الصحيح لكل منزل. هذا هو الهدف.

 

الخطوة 3:

قم بتكرار الخطوة 2 أكثر من مرة لكل مجموعة قيم متاحة للأوزان حتي تصل لتكلفة صفر. حينما تصل إلي تلك الأوزان، فإذن المسئلة تم حلها.

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

لكن هناك عدة حقائق ستزهلك:

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

الدالة التي حصلت عليها لا تعرف ماذا يعني المتر المربع أو عدد الغرف. هي لا تفقه شيئاً غير أنها تحصل علي مجموعة أرقام وتأتي بناتج.

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

يُمكن أن نجعل الأمور أكثر إحترافية بأن نُغذي الدالة بمصفوفة بدلاً من أرقام منفصلة.

 

ماذا يعني تجربة جميع قيم الأوزان في الخطوة 3:

بالطبع لا تستطيع تجربة كل مجموعات الأوزان المتاحة للوصول لأفضل القيم.

لتفادي ذلك، الرياضيون توصلوا لطرق أفضل من ذلك في الوصول لأفضل قيم للأوزان بدون تكرارها جميعاً. هذه هي أحدهم:

في الداية قم بكتابة معادلة بسيطة تُعبر عن الخطوة 2:

 

لنكتب الآن الدالة نفسها لكن بأسلوب ال Machine Learning:

 

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

إذا رسمنا ناتج معادلة التكلفة لجميع قيم الأوزان الممكنة، سنحصل علي الرسمة التالية:

 

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

 

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

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

بحساب التفاضل الجزئي لدالة التكلفة بالنسبة للأوزان، يمككنا أن نطرح تلك القيمة من الوزن حتي نسير في إتجاه أسفل التل. بالوصول إلي أسفل التل، نكون قد وجدنا أفضل حل.

خوارزمية الإنحدار التدريجي (batch gradient descent) هي أحد الطرق للوصول لأفضل الأوزان.

عند إستخدام مكتبة من مكتبات ال Machine Learning لحل مشكلة ما، كل هذا سيتم بدون عناء. لكن عليك أن تعرف عن التفاصيل فهذا سيفيدك.

 

ما الذي تخطيناه؟

خوارزمية الخطوات الثلاثة تُسمي الإنحدار الخطي متعدد المتغيرات (multivariate linear regression). نُخمن معادلة الخط الذي يفصل البيانات بأقل تكلفة. بعد ذلك نستخدم هذه المعادلة لتخمين أسعار منازل جديدة.

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

لحسن الخظ يوجد العديد من الطرق لمعالجة هذا. العديد من الخوارزميات تستطيع التعامل مع البيانات الغير خطية مثل الشبكات العصبية (neural networks) أو شعاع الدعم الآلي (support vector machine). هناك أيضاً طرق أخري لإستخدام النحدار الخطي لحل مشاكل أكثر تعقيداً. في كل الحالات، مازلنا نحتاج إلي طريقة لمعرفة أفضل الأوزان.

 

هل ال Machine Learning سحر؟

بمجرد معرفة كيف لل Machine Learning أن يحل بعض الأمور البسيطة مثل التعرف علي كتابة اليد، سيصبح الأمر أسهل في تطبيق خوارزميات للتعامل مع مشاكل أكثر تعقيداً. فقط قم بتغذية البيانات وشاهد قدرة الحاسب الآلي في إيجاء المعادلة التي تُحقق العلاقة بين المدخلات والمخرجات.

لكن إعلم جيداً بأن ال Machine Learning فقط يستطيع العمل في الحلات التي يوجد بها حلول بالفعل.

علي سبيل المثال، لن نستطيع بناء نموذج لتوقع سعر المنزل بناءً علي نوع النباتات المزروعة بالمنزل. لا يوجد علاقة بين النباتات وسعر المنزل. لذلك مهما تحاول فلن تستطيع الوصول لنموذج يتوقع السعر الصحيح.

 

تذكر أنه إذا لم يستطع الإنسان أن يحي المشكلة بشكل يدوي، فلن يستطيع الحاسب الآلي أيضاً. ركز علي المشاكل التي يستطيع الإنسان حلها ويكون من الرائع تطبيق الحل علي الحاسب الآلي.

كيف أن تتعلم المزيد عن ال Machine Learning؟

في رأيي، أكبر مشكلة الآن أن المجال منحصر علي المؤسسات الأكاديمية ومجموعات الأبحاث. ليس من السهل تعلمه دون ذلك. لكن الأمر أصبح أسهل الآن.

لتتعلم أكثر، دورات Andrew Ng المجانية علي Coursera جيدة في البداية وتذكر الأأمور الرياضية البسيطة المطلوبة في المجال.

يمكنك أيضاً أن تتعلم العديد من الخوارزميات بإستخدام مكتبة Scikit-Learn. هي إطار للغة Python ويجد بها العديد من الخوارزميات الجاهزة.


المقال الأصلي

تم ترجمة هذا المقال بواسطة أحمد جاد.

المقال الأصلي موجود في هذا الرابط لصاحبه (Adam Geitgey).

https://medium.com/@ageitgey/machine-learning-is-fun-80ea3ec3c471

تعليقات