مدخل للذكاء الاصطناعي تعلم الآلة: التحديات الرئيسية وكيفية التوسع في المجال


Mohamed Lahlah

هذا المقال جزء من سلسلة «مدخل إلى الذكاء الاصطناعي»:

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

  1. اختيار البيانات المناسبة.
  2. اختيار الخوارزمية (الطريقة) المناسبة.

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

كمية غير كافية من بيانات التدريب

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

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

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

  1. شمولية البيانات لكافة الحالات الممكنة للشيئ المدروس.
  2. عدم وجود ضجيج أو قيم فارغة أو شاذة.

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

1.png

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

بيانات التدريب المتحيزة

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

من أحد الأمثلة المشهورة في تحيز البيانات (العينات) وهو ما حدث أثناء الانتخابات الرئاسية الأمريكية عام 1936، والّتي تنافس فيها لاندون مقابل روزفلت: إذ أجرت مجلة The Literary Digest استطلاعًا كبيرًا جدًا، إذ أرسلت بريدًا لحوالي 10 ملايين شخص. تطلب منهم رأيهم في المرشح المناسب للرئاسة حصل هذا الاستطلاع على 2.4 مليون إجابة، وتوقع بثقة عالية أن لاندون سيحصل على 57٪ من الأصوات. ولكن كانت المفارقة عندما فاز روزفلت بنسبة 62٪ من الأصوات. ولكن كيف حدث ذلك؟

في الحقيقة وبعد التدقيق في حيثيات الموضوع تبين أن العيب كان في طريقة تجميع البيانات (وتسمى أحيانًا طريقة أخذ العينات) وكانت المشاكل على الشكل التالي:

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

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

البيانات ذات جودة ضعيفة

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

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

الميزات التي لا علاقة لها بالموضوع

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

  • اختيار الميزة: اختيار أكثر الميزات المفيدة والتي لها علاقة بالموضوع لتدريب الخوارزمية عليها من بين جميع الميزات الأخرى الموجودة.
  • استخراج الميزات: دمج بعض الميزات الموجودة لإنتاج ميزة أكثر فائدة.
  • إنشاء ميزات جديدة: إنشاء ميزات جديدة من خلال جلب بيانات جديدة.

والآن بعد أن اطلعنا على العديد من الأمثلة على التحديات الّتي تواجهنا في طريقة التعامل مع البيانات، لنلقِ نظرة على بعض التحديات الّتي تواجهنا في طريقة تعاملنا مع الخوارزميات.

فرط تخصيص بيانات التدريب

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

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

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

قلة تخصيص بيانات التدريب

إن قلة التخصيص (Underfitting) هو عكس فرط التخصيص: ويحدث ذلك عندما يكون نموذجك بسيطًا جدًا في طريقة تعرفه على البنية المخفية في البيانات. وإليك بعض الطرق الّتي تساعدنا على إصلاح هذه المشكلة هي:

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

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

عملية الاختبار والتحقق

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

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

من الشائع استخدام 80٪ من البيانات لمجموعة بيانات التدريب (Training) و20٪ لمجموعة بيانات الاختبار (Testing). كما أنه يوجد العديد من الطرق الأخرى للتقسيم مثل طريقة تقسيم البيانات إلى ثلاث مجموعات: مجموعة للتدريب، مجموعة للاختبار، ومجموعة للتحقق (Validation) والّتي تستخدم لاختيار أفضل الإعدادات لخوارزميات تعلّم الآلة. (مثلًا لاختيار hyper-parameters). ولكي لا يخرج الكتاب عن عنوانه الرئيسي سنكتفي بهذه الطرق مبدأيًا وسنحاول التطرق لها لاحقًا بالتفاصيل الكاملة عند ورودها.

المفاهيم الضرورية للتوسع بمجال تعلم الآلة

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

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

سنعتمد على نفس الركائز الّتي تتبناها شركة غوغل أثناء عند تعليمها للمبتدئين في هذا المجال.

ملاحظة: أغلب المراجع باللغة الإنكليزية.

المتطلبات المعرفية الأساسية

عمومًا يفضل أن يكون لديك معرفة جيدة للمتغيرات والمعادلات الخطية والرسوم البيانية (Graphs) للدوال والتوابع والمخططات أو المُدجات البيانية (Histograms) والوسائل الإحصائية. بالإضافة إلى ذلك من الناحية المثالية يجب أن تكون إمكانياتك البرمجية جيدة إلى حد ما. كما يفضل أن تكون لك معرفة بلغات البرمجة الخاصة بتعلم الآلة (مثل لغة البايثون ولغة R). إلا أنه إذا لم يكن لديك معرفة بها فلا بأس بذلك إذ يمكنك تعلم الأساسيات فقط وإكمال طريقك في تعلّم الآلة.

الجبر

الجبر الخطي

علم المثلثات

  • دالة الظل الزائدية tanh، نتعرف عليها باعتبارها دالة التنشيط ولا حاجة لمعرفة متعمقة بها.

الإحصاء

أساسيات البرمجة ولتكن بلغة بايثون

عمومًا يجب أن نتعلم المفاهيم الأساسية لأي لغة برمجة وسنضرب مثلًا عن لغة البايثون:

فالمواضيع الأساسية التي يجب أن تتقنها (والمشمولة بالمرجعين السابقين) هي:

  • تعريف التوابع وكيفية استدعائها، وكيفية استخدام الطرق المختلفة للمعاملات.

  • أنواع البيانات وأهمها القواميس Dictionaries، القوائم Lists، المجموعات Sets، وطرق (إنشائها والوصول إليها وكيفية المرور عليها).

  • الحلقات التكرارية بأنواعها.

  • الكتل الشرطية، والتعابير الشرطية.

  • تنسيق السلاسل النصية.

  • المتغيرات، وطرق الإسناد، وأنواع البيانات الأساسية.

  • فهم كيفية استعمال list comprehensions (متقدم واختياري).

التعامل مع الطرفية المحلية والسحابية

لتشغيل تمارين البرمجة على جهازك المحلي أو في وحدة تحكم سحابية، يجب أن تتعلم كيفية العمل مع كلّ طرفية:

حساب التفاضل والتكامل (اختياري) للمواضيع المتقدمة

  • مفهوم الاشتقاق (لن تضطر إلى حسابه وإنما لفكرته).
  • التدرج أو الانحدار.
  • الاشتقاق الجزئي (التي ترتبط ارتباطًا وثيقًا بالتدرجات أو الإنحدار).
  • قاعدة السلسلة Chain rule (من أجل فهم كامل وشامل لخوارزمية backpropagation المختصة بتدريب الشبكات العصبية).

الخلاصة

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

  1. جمع البيانات وإعدادها: كلّ شيء بدءًا من اختيار مكان الحصول على البيانات، مع التركيز على مدى نظافتها وشموليتها.
  2. اختيار الميزات المناسبة: وتعرف أيضًا بهندسة الميزات وهي جميع التغييرات الّتي تطرأ على البيانات من لحظة تنظيفها وإعادة بنائها في بعض الحالات إلى حين إدخالها في نموذج تعلّم الآلة.
  3. اختيار خوارزمية تعلّم الآلة المناسبة وتدريب نموذجنا الأول.
  4. اختبار وتقييم نموذجنا: ويشمل ذلك اختيار المقاييس المناسبة إلى جانب التقييم الفعلي.
  5. التغيير والتبديل للنماذج وضبطها: تشمل عملية تحسين النموذج إلى أقصى حد ممكن.

ولا ننسَ أيضًا بعض الملاحظات الأخرى المهمة:

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

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

وأخيرًا قد تكون هذه هي النهاية بالنسبة لهذه السلسلة، ولكنها حتمًا بداية الرحلة بالنسبة لك : )

المراجع





تفاعل الأعضاء


لا توجد أيّة تعليقات بعد



يجب أن تكون عضوًا لدينا لتتمكّن من التعليق

انشاء حساب جديد

يستغرق التسجيل بضع ثوان فقط


سجّل حسابًا جديدًا

تسجيل الدخول

تملك حسابا مسجّلا بالفعل؟


سجّل دخولك الآن