top of page

المقدّمة الأسهل في العالم عن التعلّم الآلي [machine learning]

  • Adam Geitgey | ترجمة: سيف البصري
  • 22. Sept. 2016
  • 10 Min. Lesezeit

هل سمعت من يتحدّث عن التعلّم الآلي [machine learning] و صورتك عن الموضوع ما زالت غامضة بعد؟ حان الوقت لأن تبصر أكثر.

هذا الدليل الذي سأستهل به هو لكل من يمتلك الفضول للقراءة عن التعلّم الآلي و لكنه لا يملك أي فكرة من أين يبدأ.

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

الهدف هو أن تكون هذه الحلقات في متناول أي شخص و سهلة الفهم - الشيء الذي يقتضي التعميم أحياناً. لكن لو نجحت في كسب اهتمام أي شخص في تعلّم المزيد عن التعلّم الآلي، فسيكون الهدف من كل هذا قد تحقق.

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

على سبيل المثال، أحد انواع الخوارزميات هي الخوارزمية التصنيفية. فهي تضع البيانات في مجموعات مختلفة. حيث بإمكان نفس خوارزمية التصنيف التي تُستَخدم للتعرّف على أرقام الهواتف المكتوبة بخط اليد، أن تُستَخدم لتصنيف رسائل البريد الإلكتروني إلى البريد المزعج [spam] و البريد العادي دون تغيير سطراً واحداً من التعليمات البرمجية. رغم أنها نفس الخوارزمية، لكنها غُذّيَت ببيانات و شفرات تدريبية مختلفة، لذلك تعالج البيانات بمنطق تصنيف مختلف.

التعلّم الآلي هو مصطلح يشمل العديد من هذه الأنواع من الخوارزميات العامة.

هنالك صنفان من خوارزميات التعلّم الآلي

يمكنك تخيّل خوارزميات التعلّم الآلي و هي تنحدر إلى واحدة من فئتين رئيسيتين: التعلّم المُراقَب و التعلّم الغير مُراقَب. الاختلاف بينهما بسيط، لكنه مهم جداً.

التعلّم المُراقَب

لنفترض أنك وكيل عقارات و عملك الاستثماري في نمو متزايد، مما يدفعك لتعيين مجموعة من وكلاء يخضعون للتدريب لمساعدتك. و لكن هناك مشكلة - عندما تقوم أنت بإلقاء نظرة على منزل ما، فسرعان ما ستكوّن فكرة جيدة عن قيمة المنزل التي يستحفها في السوق، لكن المتدربين لا يمتلكون نفس الخبرة التي تساعدهم على التسعير المناسب للمنازل.

و لكي تساعدهم في ذلك [ربما تفكّر في أخذ إجازة]، تقرر كتابة تطبيق [app] يمكنه تقدير قيمة المنزل في منطقتك على أساس الحجم، الحي، الجيران، و وفق قيمة المنازل المجاورة التي تم بيعها و ما إلى ذلك من عوامل أخرى.

و عليه، و في كل مرة يبيع شخص ما منزلاً في المدينة، تقوم بتدوين ذلك و لمدة 3 أشهر. لكل منزل تكتب مجموعة من التفاصيل - عدد غرف النوم، حجم الغرفة بالمتر المربّع m²، الحي و ما إلى ذلك من البيانات المهمة، لكن الأهم من كل ذلك، هو أن تكتب سعر البيع النهائي:

هذه هي "بيانات تدريبية“

باستخدام تلك البيانات للتوضيح و تدريب الخوارزمية، نحن نحاول تصميم برنامجاً يمكنه تقدير أي منزل آخر في منطقتك:

نريد أن نستخدم بيانات التدريب هذه للتنبّؤ بأسعار المنازل الأخرى.

و هذا ما يسمّى بالتعلّم المراقب. أنت كنت تعرف قيمة كل بيت يباع، لذلك و بعبارة أخرى: أنت عرفت الجواب لهذه المشكلة مسبقاً و ما تقوم به هو العودة بالبيانات إلى الوراء لاستقراء المنطق خلف ذلك.

لبناء التطبيق الخاص بك، تقوم بتغذية خوارزمية التعلّم الآلي ببيانات حول كل بيت. الخوارزمية بدورها تحاول معرفة نوع الرياضيات التي يتعين تطبيقها.

هذا يشبه امتلاك مفتاح الإجابة لاختبار رياضيات مع أن كل الرموز الحسابية [+ - / * …] قد تم محيها:

أوه، تباً! أحد الطلّاب قام بمسح الرموز الحسابية [+ - / * ] من مفتاح الإجابة للمعلّم!

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

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

التعلّم غير المُراقَب

دعونا نعود إلى المثال الأوّل مع وكيل العقارات. ماذا لو كنت لا تعرف سعر البيع لكل منزل؟ حتى لو كان كل ما تعرفه هو الحجم و الموقع و غيرها من التفاصيل عن كل بيت، فعلى مايبدو أنت لا تزال قادراً على فعل المثير! و هذا ما يسمّى بالتعلّم الغير مراقب.

و كأن شخص ما يعطيك قائمة من الأرقام مكتوبة على ورقة و يقول لك "أنا لا أعرف ما تعنيه هذه الأرقام أو شكل العلاقة بينها، لكن علّك تستطيع معرفة ما إذا كان هناك نمط أو شيء تشترك فيه - حظاً سعيداً“

ماذا يمكن أن تفعله مع هذه البيانات؟ بالنسبة لمساعديك المبتدئين [كونك تدير مكتب عقارات]، يمكن استخدام خوارزمية تتعرّف تلقائياً على مختلف قطاعات السوق في البيانات الخاصة بك. ربما ستكتشف أن مشتري المنازل في الحي القريب من الجامعة المحلّية يفضّلون منازلاً صغيرة مع الكثير من غرف النوم، في حين مشتري المنازل في الضواحي يفضّلون المنازل المصمّمة بـ 3 غرف نوم مع مساحات كبيرة.

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

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

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

ملاحظة جانبية: هنالك أنواع كثيرة من خوارزميات التعلّم الآلي. لكن ما نتطرّق له هنا هو مكان جيد لنبدأ منه.

هذا رائع، لكن هل المقدرة على تقدير سعر منزل ما يمكن اعتباره ”تعلّماً“؟

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

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

لكن خوارزميات التعلّم الآلي الحالية ليست جيدة بعد - إنها تعمل فقط عندما تصمّم لحل مشكلة محددة للغاية. ربما التعريف الأمثل بدل استخدام كلمة ”التعلّم“ في هذه الحالة قد يكون: ”البحث عن معادلة لحل مشكلة معينّة استناداً إلى بعض البيانات“.

لسوء الحظ ”البحث عن معادلة لحل مشكلة معينّة استناداً إلى بعض البيانات“ هو إسم طويل جداً، لذلك انتهى بنا المطاف مع ”التعلّم الآلي“ بدلاً من ذلك.

بالطبع إذا كنت تقرأ هذا النص بعد 50 سنة من الآن، في وقت نكون فيه قد طوّرنا خوارزميات الذكاء الاصطناعي القوي [strong AI]، سيبدو لك هذا النص غربياً بعض الشيء. الأفضل أن تتوقّف عن القراءة و تطلب من خادمك الروبوت أن يحضّر لك شطيرة شهيّة، أيها الإنسان من المستقبل!

دعنا نكتب ذلك البرنامج!

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

إن كنت تفتقر لمعرفة سابقة عن التعلّم الآلي، فربما ستقوم بكتابة بعض القواعد التعريفية بهذه الطريقة:

def =عرّف [عف]، ما تقرأه أعلاه هي توجيهات و شفرات برمجية يعرّف المبرمج من خلالها المدخلات إلى الخوارزمية، ترجمة أول سطر ستكون هكذا:

عف قدّر_أسعار_بيع_المنازل (عدد_الغرف، قدم_مربع، الحي):سعر = 0

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

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

أحد الطرق للتفكير في هذه المشكلة هو أن تتصور السعر كـخلطة لذيذة مكوّناتها هي عدد غرف النوم، المساحة [بالقدم المربّع sq ft] و الحي. مجرّد معرفة مدى تأثير كل مكوّن على السعر النهائي، ربما تكون هناك نسبة معيّنة و دقيقة من المكوّنات كافية لإنتاج السعر النهائي.

هذا بطبعه سيختزل وظيفة الخوارزمية الأصلية [تلك التي استخدمنا فيها الكثير من الـ if’s و الـ else’s] وصولاً إلى شيء بسيط حقاً، كالتالي:

لاحظ الأرقام السحرية بالخط العريض: 0,841231951398213 و 1231.1231231 و 2.3242341421 و 201.23432095

هذه هي النسب التي نبحث عنها. لو فقط تمكّنا من التعرّف على النسب المثالية لاستخدامها لكل منزل، فستتمكّن الخوارزمية حينها من التنبّؤ بالسعر.

أسلوب ممكن لكن أحمق، للتعرّف على النسب الدقيقة قد يبدو بهذا الشكل التالي:

الخطوة الأولى:

لنبدأ بمدخلات بقيمة 1.0 لكل النسب

الخطوة الثانية:

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

على سبيل المثال، إذا كان البيت الأول قد تم بيعه فعلاً بسعر 250.000 $، في حين أن تخمين الخوارزمية كان بحوالي الـ 178.000 $، فأنت هنا نظرياً خرجت بخسارة 72.000 $ لهذا البيت الواحد.

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

الآن، خذ المجموع و قسّمه على 500 للحصول على متوسّط ​​الخسارة لكل منزل. لنسمّي هذا المتوسط ​​تكلفة الخوارزمية.

إذا كنت تستطيع تخفيض هذه التكلفة إلى الصفر من خلال معايرة الأوزان [النسب]، فإن وظيفة خوارزميتك ستكون مثالية. ذلك يعني أنه في كل حالة يقوم فيها البرنامج بالتنبّؤ بالسعر، يخرج لك السعر الأمثل بناءً على البيانات المدخلة. و عليه فهذا هو هدفنا - جعل هذه التكلفة تكون في أدنى مستوى ممكن من خلال تجربة نسب مختلفة.

الخطوة الثالثة:

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

الأمر يبدو بسيطاً، أليس كذلك؟ تأمّل ما فعلته للتو. أنت أخذت بعض البيانات، أدخلتها من خلال ثلاث خطوات بسيطة إلى الخوارزمية، و في النهاية أصبحت بحوزة برنامج يمكنه تخمين سعر أي منزل في منطقتك. خذي حذركِ يا شركة Zillow! [شركة بيع و شراء عقارات كبيرة و مشهورة]

لكن هنالك عدد بعض الحقائق التي سوف تذهلك:

  • أظهرت الأبحاث في العديد من المجالات [مثل اللغويات/الترجمة] على مدى السنوات الـ 40 الماضية، أن خوارزميات التعلّم الآلي التي تجيد طبخ ”الخلطة اللذيذة“ من الأرقام تقدّم أداءً يتفوّق أحياناً على مناهج لمتخصصين يحاولون صياغة القواعد بنفسهم. النهج ”الغبي“ الذي ينتج عن التعلّم الآلي يتغلّب أحياناً حتى على الخبراء.

  • وظيفة الخوارزمية التي برمجت هي غبية تماماً. بل حتى لا تعرف ما هو الـقدم المربّع أو معنى غرف النوم. كل ما تعرفه أنها بحاجة إلى إعادة ترتيب نسب الأرقام من كل فئة للحصول على الإجابة الصحيحة.

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

دعنا نعود إلى الخطوة الثالثة:

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

لتجنّب ذلك، يستخدم علماء الرياضيات الكثير من الطرق الذكية لإيجاد القيم المطلوبة بسرعة و حصر تللك الأرقام [النسب] في نطاق دون الحاجة إلى محاولات كثيرة جداً. هنا مثال على طريقة ممكنة:

أولاً، قم بكتابة معادلة بسيطة تمثّل الخطوة الثانية:

الآن لنعد كتابة نفس المعادلة مستخدمين بعض المصطلحات الرياضية [التي لست مطالب بفهمها الآن]:

θ تمثّل النسب الحالية، (J (θ تعني ثمن النسب الحالية

المعادلة هذه تمثّل الخطأ في الخوارزمية التي تقيّم السعر وفقاً للنسب التي أدخلناها [مدخلات بقيمة 1.0 لكل النسب].

إذا رسمنا معادلة التكلفة لجميع القيم الممكنة لعدد الغرف و القدم المربّع بشكل بياني، فسنحصل حينها على رسم بياني يبدو بهذا الشكل:

المحور الرأسي يمثّل التكلفة

في هذا الرسم البياني، تقع أدنى نقطة [أزرق] حيث تصل التكلفة لأدنى مستوى - أي أن المعادلة هي ذات المعايير الأقل خطئاً. أعلى النقاط هي حيث تكون المعايير الأكثر خطئاً. و عليه، إذا كنا نستطيع العثور على النسب التي تصل بنا إلى أدنى نقطة على هذا الرسم البياني، فسنكون بحوزة الجواب الذي نبحث عنه!

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

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

لذلك إذا أردنا حساب مشتقاً جزئياً من معادلة التكلفة لدينا، وفقاً للنسب التي أدخلناها، فيمكننا حينها طرح تلك القيمة من كل نسبة. هذا سيقود بنا خطوة أقرب إلى أسفل التل. استمر في فعل ذلك، و في نهاية المطاف سوف تصل إلى أسفل نقطة و تحصل على أفضل النسب للتنبّؤ بالسعر الصحيح. [إن واجهت صعوبة في فهم ذلك، لا تقلق، أكمل القراءة].

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

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

ما الذي تخطّيناه أيضاً بشكل مريح؟

يطلق على الخوارزمية التي وصفتها في الخطوات الثلاث بـخوارزمية الانحدار الخطّي متعدد المتغيرات [في الإحصاء، الانحدار الخطي البسيط هو أسلوب إحصائي يستخدم في قياس العلاقة بين متغيرين على هيئة علاقة دالة، و في الانحدار الخطّي متعدد المتغيّرات، تقاس العلاقة بين أكثر من متغيّرين].

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

إنها فكرة قوية حقاً، و قادرة على حل مشاكل ”حقيقية“ أخرى.

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

و لكن لحسن الحظ هنالك العديد من الطرق للتعامل مع تلك المعضلات الجديدة. الكثير من خوارزميات التعلّم الآلي التي يمكنها التعامل مع البيانات غير الخطية [مثل الشبكات العصبية أو شبكات دعم التمييز]. هنالك أيضاً طرق لاستخدام الانحدار الخطّي بذكاء أكبر تسمح بمعالجة خطوط أكثر تعقيداً من مثال أسعار العقارات أعلاه.

في جميع الحالات، تبقى الفكرة الأساسية هي العثور على أفضل النسب.

و رغم أن المفهوم الأساسي بسيط جداً، إلا أنه يتطلّب بعض المهارة و الخبرة لتطبيق التعلّم الآلي و الحصول على نتائج مفيدة. لكن هذا مهارة يمكن لأي مطوّر أن يتعلّمها!

هل التعلّم الآلي هو سحر؟

بمجرد البدء في رؤية مدى سهولة تطبيق تقنيات التعلّم الآلي لحل المشاكل التي قد تبدو عسيرة [مثل التعرّف على خط اليد]، ستشعر بأنك تستطيع استخدام التعلّم الآلي من أجل حل أي مشكلة تواجهك و تحصل على الجواب المطلوب ما دام لديك ما يكفي من البيانات. غذّي الخوارزمية بالبيانات الكافية و راقب الكمبيوتر و هو كالسحر يصيغ لك المعادلة المناسبة للبيانات!

لكن من المهم أن نتذكّر أن التعلّم الآلي لا يعمل إلا إذا كانت المشكلة هي في الواقع قابلة للحل من خلال البيانات التي لديك.

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

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

أنت فقط تستطيع نمذجة العلاقات الموجودة فعلاً

كيف أتعلّم أكثر عن التعلّم الآلي؟

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

على سبيل المثال، كورسات أندرو نگ [Andrew Ng] التعليمية على موقع Coursera الشهير مذهلة جداً و يستطيع كل من يمتلك تخصصاً في مجال علوم الحاسوب و يتذكّر بعض القواعد الرياضية أن يشارك في حصصها و يتعلّم. إضافةً إلى ذلك، موقع scikit-learn المعروف لدى الأوساط العلمية، يقدّم لك العديد من خوارزميات التعلّم الآلي القابلة للتحميل و التشغيل على جهازك الخاص. من خلالها تستطيع أن تجرّب الأمر بنفسك.

يتبع.. resource: https://medium.com/@ageitgey/machine-learning-is-fun-80ea3ec3c471#.t2y01ycs7

Comments


bottom of page