Machine Learning
يعتبر مجال من أهم المجالات المتقدمة في حياتنا وظهر من أكتر من 60 سنة ومع ذلك فهو اسم مجهول لكتير من الناس كمان من خلاله تقدر تخلي الكمبيوتر يتعلم من غير ما تبرمجه بشكل مباشر، طيب إيه دا وبيحصل ازاي ؟
بالضبط صح، هنتكلم عن الـ Machine Learning واللي بيعتمد بصفة أساسية على حاجتين مهمين وهما:
الـ training والـ prediction
بمعني إنك بتدربه إنه يتوقع إجابات منطقية، والتدريب ده عبارة عن الـ Data والـ Algorithms اللي بتديها للـ machine وبتقدر من خلالها تنفذ models، والدقة بتعتمد في زيادتها على تدريب الآلة.
فالحل السحري في البيانات هو:
➡️️ more Data
➡️ more Modules
➡️ high Security
طب ليه محتاج تتعلم الـ ML ؟
لأن أنت كمصمم أو كمطور ما تقدرش تتوقع كل الاحتمالات اللي ممكن تحصل، على عكس الآلة مع وجود التطور الكبير في الـ Technology وإمدادها بكم كبير من البيانات تقدر تتوقع ببساطة كل الاحتمالات الممكنة في أي حاجة، على سبيل المثال: توقعات الأمراض الممكنة ونسبة الناس المحتمل إنها تصاب بيها.
ومن الأمثلة اليومية اللي بنغفل فيها وجود الـ ML هي التعرف علي الصور والأشكال ومنها:
⬅️️ لما تيجي تعمل Tag على وش حد في صورة وتلاقيه أول اختيار.
⬅️ في جوجل لما تدور على صورة بأنك تكتب تفاصيلها أو محتواها وتلاقيها.
⬅️ وأخيرًا، فلاتر الـ Snapchat وفيها هو بيحدد ملامحك وبيحدد أماكن معينة عشان يقدر يضيف الفلتر.
ودا جزء بسيط جدًا من الأمثلة الحية.
أما الشركات العملاقة زي Google وAmazon فهى بتستخدم كمية فائقة من الـ Data الخاصة بينا ومن خلالها الـ machine بتتوقع معلومات عنك، كمان من خلاله بتقدر تنفذ صور لناس بيبقى صعب انك تفرق بينها وبين الحقيقة، وده زي ما ذكرنا لأنه ادرب وتوقع ازاي ممكن يوصل لأقرب شكل في الحقيقة.
طيب إيه هي الحاجات الأساسية اللي لازم تعرفها عشان تتعلم الـ ML؟
1- إتقان أساسيات الإحصاء (Statistics) ونظريات الاحتمالات (Probability Theory).
واللي بتتضمن :
(Descriptive Statistics, Baye’s Rule and Random Variables, Probability Distribution, Decision Analysis).
2- الجبر الخطي (linear algebra) :
التعامل مع المصفوفات ومختلف العمليات الأساسية عليها مثل الجمع والضرب والطرح و مقلوب مصفوفة و غيره من العمليات الأساسية، ونفس الشيء بالنسبة لـ (vectors).
3- الرياضة (calculus) :
معرفة أهم أساسيات الاشتقاق والتكامل.
4- البرمجة (Programming) :
ومن أهم لغات البرمجة المستخدمة في المجال هي (Python, Java, Opp).
5- التعامل أو هندسة البيانات :
القدرة على التعامل مع البيانات الضخمة (big data) وكل طرق معالجة البيانات واستخراجها وتحويلها وحفظها مثلًا (SQL and NOSQL).
6- معرفة خوارزميات تعلم الآلة (machine learning algorithms) :
موجود خوارزميات مشهورة ومعروفة في المجال، فضروري معرفتها وفهم طريقة عملها، فهنتكلم بشكل مبسط عن بعض الأنواع:
التعلم بالإشراف (Supervised Learning):
بيقوم على وجود داتا وقت التعلم، بحيث أنها تشكل أمثلة حقيقية بتخلي الـ model يتعلم منها.
التعلم بدون إشراف (Unsupervised Learning):
الآله هنا بتتعلم بمفردها، عن طريق إضافة البيانات ليها وبتبدأ بعدها تتعلم تلقائي ومن أشهر أنواعها الـ Clustering.
التعلم المعزز (Reinforcement learning):
أما هنا الآلة بتتفاعل مع البيئة وبتبني خبراتها بناءً على التفاعل ده، فلازم نستخدمه لما البيئة تكون غير معروفة وإلا هتحتاج الكثير من المصادر الحسابية دون جدوى فعلية لعملية التعلم.
7- معرفة أهم المكتبات المساعدة في المجال وإتقان العمل بها ومن أشهرها حاليًا:
(scikit learn, TensorFlow, theano, azure, caffe, spark and torch).
وبكدا نكون اتكلمنا بشكل مبسط عن الحاجات اللي لازم تكون عارفها لما تفكر تتعلم الـ Machine Learning، فهو مجال يستحق التعلم فعلًا "كهرباء العصر الجديد" ودوره في السنين اللي جاية مهم جدًا، ولكن لو ما قدرتش تطبق الـ ML صح ممكن يسبب مشاكل أنت ما تقدرش عليها، لأنه قادر يعمل model أقوى بكتير من الإنسان، والاستخدام الغلط ليه ممكن يؤدي لنهاية البشرية، وده اللي وضحه Steven Hopkins وElon Mask .