الخطأ Error
نحن نتعلم من اخطائنا، كذلك نماذج models تعلم الالة. المقصود بالخطأ هو الفرق بين القيمة التي يتوقعها / يتنبأها النموذج وقيمة القياس. مثلا نبني نموذج يتوقع سعر الشقق في مدينة ما على حسب مساحة الشقة.
تخيل انك سافرت الى مدينة للعمل، واردت ان تشتري شقة في تلك المدينة. فقررت ان تبني نموذج يقوم بتحديد سعر الشقة بناءا على مساحتها حتى تستطيع شراء الشقة بالسعر المظبوط. لذلك قمت بجمع مجموعة من البيانات المتوفرة على الانترنت لمجموعة من الشقق (مساحتها و سعرها). المساحة تمثل الملامح Features و السعر يمثل الوسم Label.
الشكل السابق يوضح نموذج تحديد سعر الشقة بناءا على مساحتها
- اما العلامات X باللون الازرق هي البيانات التي يتعلم / يتدرب عليها النموذج.
- الخط باللون الاخضر يمثل النموذج الذي تم بناءه، حيث اننا نستطيع ادخال اي قيمة للمساحة ويقوم النموذج بمعرفة السعر المقابل لها.
- الخط باللون الاحمر يمثل الخطأ وهو الفرق بين قيمة القياس والقيمة التي يتنبأها النموذج.
دالة التكلفة Cost Function
هي دالة تستخدم لتحديد تكلفة النموذج الذي تم بناءه. من ابسط دوال التكلفة مثلا هي جمع قيم الخطأ لكل البيانات التي يتدرب عليها النموذج. لكن هناك العديد من الدوال الاخرى التي يتم استخدامها. تعتير تدالة التكلفة من اهم العوامل في بناء النماذج، حيث اننا نتوقف عن تدريب النموذج عندما تكون التكلفة مقبولة. لكن كيف يتم تدريب النموذج من البيانات؟
المحسن Optimizer
كما بالشكل السابق، النموذج هو دالة او معادلة وتكون الميزات Features هي احد المتغيرات فيه : f(x) = a . x^2 + b . x + c
حيث ان x
هي قيمة الميزة و ال a و b و c هي المتغيرات التي تتغير فيها شكل النموذج و بالتالي يكون النموذج افضل او احسن.
المحسن هو خوارزمية تقوم بايجاد افضل دالة او معادلة للنموذج بناءا على البيانات ودالة التكلفة. حيث تقوم في البداية بفرض مجموعة من القيم للمتغيرات (بالتالي حصلنا على نموذج اولى) و تقوم بحساب تكلفة هذا النموذج. اذا كان سيئا تقوم بتعديل قيم المتغيرات مرة اخرى (بناءا على خوارزمية معينة وهي التي تفرق بين محسن و محسن اخر) ثم تقيس دالة التكلفة مرة تخرى وتستمر في هذة الدورة الى ان نحصل على افضل نتيجة.
اذا اردنا ان نلخص ما هو ML هي دالة او خوارزمية يتم تغير متغيراتها بواسطة المحسن Optimizer بناءا على البيانات و دالة التكلفة Cost Function.
تعتير البيانات هي محور تعلم الالة، فكلما كانت البيانات دقيقة ومتوفرة كلما زاد دقة النموذج واعتماديته. لكن كيف يمننا حساب اداء النموذج؟
الاداء Performance
بالطبع اهم ما يهمنا ان نبني نموذج ذو اداء جيد بحيث نستطيع الاعتماد عليه، هناك العديد من القياسات التي تستخدم لتحديد الاداء، مثلا في حالات التصنيف نحسب عدد البيانات التي توقعها النموذج صحيحة و نقسمها على عدد البيانات الكلية و هو ما يعرف بالدقة Accuracy، اي حساب النسبة المئوية للتوقعات الصحيحة.
اثناء تدريب النموذج، يحاول المحسن Optimizer الوصول الى اعلى درجة دقة ممكنة و كثيرا من الحالات تصل الدقة الى 100%، لكن هل يعني ذلك اننا وصلنا الى نموذج اعتمادي؟ للاسف لا، فنتيجة النموذج مع البيانات التي لم نتمرن عليها قد تكون سيئة وهو ما يحدث كثيرا !!
عندما نبني نموذجا، نريد ان يكون النموذج جيدا ونريده يحقق نتائج جيدة مع البيانات الجديدة التي لم نجمعها، تلك المشكلة تعرف باسم التعميم Generalization اي ان تكون نتائج النموذج معممة ساعة التدريب و مع بيانات الواقع*، كيف نفعل ذلك ونحن لا نملك تلك البيانات (تحدث في المستقبل)؟
* يقصد ببيانات الواقع، هي البيانات الحقيقة التي نستخدمها بعد بناء النموذج. فمثلا قد تطلب منا احد الشركات بتوقع سعر سهما بناءا عن مجموعة من المتغيرات و تعطينا مجموعة من البيانات المتوفرة لديها وتلك التي نستخدمها للتدريب، ام بيانات الواقع فهي البيانات التي ستحدث في المستقبل وييقوم النموذج بتنيأ سعر السهم بناءا عليها.