التعلم الآلي ممتع!

أسهل مقدمة في العالم لتعلم الآلة

Update : هذه المقالة جزء من سلسلة. تحقق من السلسلة الكاملة: الجزء الأول ، الجزء الثاني ، الجزء 3 ، الجزء 4 ، الجزء 5 ، الجزء 6 و الجزء السابع و الجزء الثامن ! يمكنك أيضًا قراءة هذه المقالة باللغة 日本語 ، البرتغالية ، ، البرتغالية (بديلة ) ، Türkçe ، Français ، 한국어 ، العَرَبِيَّة ، Español (México) ، Español (España) ، Polski ، Italiano ، 普通话 ، Русский ، 한국어 ، Tiếng Việt أو فارسی .

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

Hav e هل سمعت أشخاصًا يتحدثون عن التعلم الآلي ولكن لديك فكرة غامضة عما يعنيه ذلك؟ هل سئمت من الإيماء برأسك من خلال المحادثات مع زملاء العمل؟ دعونا نغير ذلك!

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

يمكن لأي شخص الوصول إلى الهدف – مما يعني أن هناك الكثير من التعميمات. لكن من يهتم؟ إذا كان هذا يثير اهتمام أي شخص بدرجة أكبر في تعلم الآلة ، فإن المهمة تنجز.

ما هو التعلم الآلي؟

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

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

“التعلم الآلي” هو مصطلح شامل يغطي الكثير من هذه الأنواع من الخوارزميات العامة.

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

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

التعلم الخاضع للإشراف

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

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

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

باستخدام بيانات التدريب هذه ، نريد إنشاء برنامج يمكنه تقدير قيمة أي منزل آخر في منطقتك:

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

لإنشاء تطبيقك ، يمكنك إدخال بيانات التدريب الخاصة بك حول كل منزل في خوارزمية التعلم الآلي. تحاول الخوارزمية معرفة نوع الرياضيات التي يجب إجراؤها لجعل الأرقام تعمل.

يشبه هذا وجود مفتاح الإجابة لاختبار الرياضيات مع محو جميع الرموز الحسابية:

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

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

التعلم غير الخاضع للإشراف

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

هذا يشبه إلى حد ما قيام شخص ما بإعطائك قائمة بالأرقام على ورقة ويقول “لا أعرف حقًا ما تعنيه هذه الأرقام ولكن ربما يمكنك معرفة ما إذا كان هناك نمط أو مجموعة أو شيء ما – جيد الحظ! “

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

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

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

ملاحظة جانبية: هناك الكثير من أنواع أخرى من خوارزميات التعلم الآلي. لكن هذا مكان جيد جدًا للبدء.

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

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

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

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

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

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

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

إذا لم تكن تعرف أي شيء عن التعلم الآلي ، فربما تحاول كتابة بعض القواعد الأساسية لتقدير سعر منزل مثل هذا:

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

ألن يكون من الأفضل لو استطاع الكمبيوتر فقط معرفة كيفية تنفيذ هذه الوظيفة من أجلك؟ من يهتم بما تفعله الوظيفة بالضبط طالما أنها تعرض الرقم الصحيح:

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

سيقلل ذلك من وظيفتك الأصلية (مع كل تلك العناصر المجنونة if و أخرى ) إلى شيء بسيط حقًا مثل هذا:

لاحظ الأرقام السحرية بالخط العريض – .841231951398213 و 1231.1231231 و 2.3242341421 و و 201.23432095 . هذه هي أوزاننا . إذا تمكنا فقط من تحديد الأوزان المثالية لاستخدام هذا العمل لكل منزل ، فيمكن لوظيفتنا التنبؤ بأسعار المنازل!

قد تكون الطريقة الغبية لمعرفة أفضل الأوزان هي شيء من هذا القبيل:

الخطوة 1:

ابدأ بتعيين كل وزن على 1.0:

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

قم بإدارة كل منزل تعرفه من خلال وظيفتك وانظر إلى أي مدى بعيدة عن الوظيفة في تخمين السعر الصحيح لكل منزل:

على سبيل المثال ، إذا تم بيع المنزل الأول بالفعل مقابل 250000 دولار أمريكي ، لكن وظيفتك توقعت أنه تم بيعه مقابل 178000 دولار أمريكي ، فستحصل على خصم 72000 دولار أمريكي لهذا المنزل الواحد.

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

الآن ، خذ هذا المبلغ الإجمالي وقسمه على 500 للحصول على متوسط ​​المسافة التي تفصلها عن كل منزل. أطلق على هذا متوسط ​​مبلغ الخطأ تكلفة وظيفتك.

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

الخطوة 3:

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

وقت تفكير العقل

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

ولكن إليك بعض الحقائق الأخرى التي ستذهلك:

مجنون ، أليس كذلك؟

ماذا عن هذا البتة الكاملة “جرب كل رقم” في الخطوة 3؟

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

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

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

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

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

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

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

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

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

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

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

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

ما الأشياء الأخرى التي تخطيتها بسهولة؟

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

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

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

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

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

هل تعلم الآلة سحر؟

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

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

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

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

كيفية معرفة المزيد عن التعلم الآلي

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

إذا كنت ترغب في تجربة ما تعلمته في هذه المقالة ، فقد أنشأت دورة تعليمية ترشدك خلال كل خطوة في هذه المقالة ، بما في ذلك كتابة كل التعليمات البرمجية. جربها!

إذا كنت تريد التعمق أكثر ، فإن فصل تعلم الآلة المجاني الذي يقدمه Andrew Ng على Coursera رائع جدًا كخطوة تالية. انا اوصي بشده به. يجب أن يكون في متناول أي شخص لديه Comp. علوم. درجة ومن يتذكر قدرًا ضئيلًا جدًا من الرياضيات.

يمكنك أيضًا التلاعب بالعديد من خوارزميات التعلم الآلي عن طريق تنزيل SciKit-Learn وتثبيته. إنه إطار عمل Python يحتوي على إصدارات “الصندوق الأسود” لجميع الخوارزميات القياسية.

إذا أعجبك هذا المقال ، فالرجاء التفكير في الاشتراك في التعلم الآلي الخاص بي! النشرة الإخبارية:

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

يمكنك أيضًا متابعتي على Twitter علىageitgey ، أو مراسلتي عبر البريد الإلكتروني مباشرةً أو العثور علي على LinkedIn. يسعدني أن أسمع منك إذا كان بإمكاني مساعدتك أنت أو فريقك في التعلم الآلي.

الآن تابع إلى التعلم الآلي هو الجزء الثاني الممتع !