أفضل 3 مكتبات لتعلم الآلة في C ++ يجب أن تكون عمليًا
نشرت: 2020-12-10اليوم ، في كل مكان ننظر إليه ، يكون التعلم الآلي من حولنا بشكل أو بآخر. وجدت هذه المجموعة الفرعية من الذكاء الاصطناعي تطبيقات متنوعة في جميع أوجه التشابه في الصناعة ، وهي محقة في ذلك. على الرغم من أن التعلم الآلي هو مجال ناشئ ، فقد فتح عددًا كبيرًا من الاحتمالات للاستكشاف.
الآن ، السؤال هو ، ما هي لغة البرمجة التي يجب استخدامها في مشاريع التعلم الآلي؟
Python و C ++ هما من أكثر لغات البرمجة شيوعًا. تفتخر هاتان اللغتان بمجتمع نشط ، ودعم مخصص للأدوات ، ونظام بيئي واسع للمكتبات ، وأداء جدير بالثناء في وقت التشغيل. ومع ذلك ، سيكون التركيز في منشور اليوم على التعلم الآلي في C ++.
جدول المحتويات
لماذا C ++ لتعلم الآلة؟
من الحقائق الراسخة أن التعلم الآلي يتطلب أداءً شديدًا لوحدة المعالجة المركزية ، وهذا بالضبط ما تضمنه C ++. عندما يتعلق الأمر بالسرعة والأداء ، فإن C ++ تترك وراءها Python و Java وحتى C #. ميزة رئيسية أخرى لاستخدام C ++ للتعلم الآلي هي أنه يحتوي على دعم المؤشر ، وهي ميزة غير متوفرة في العديد من لغات البرمجة الشائعة.
من أجل التنفيذ الناجح لـ Machine Learning في C ++ ، فإن أهم شيء يجب فعله هو التعرف على مكتبات C ++. لحسن الحظ ، تحتوي C ++ على بعض المكتبات الرائعة للتعلم الآلي ، بما في ذلك Shark و MLPack و GRT (مجموعة أدوات التعرف على الإيماءات).
الآن ، دعنا نتعمق في مناقشة مكتبات التعلم الآلي في C ++.

مكتبات تعلم الآلة في C ++
1. سمك القرش
Shark هي مكتبة معيارية مفتوحة المصدر بلغة C ++. إنها المكتبة المثالية للتعلم الآلي نظرًا لأنها تتمتع بدعم مكثف لخوارزميات التعلم الخاضعة للإشراف مثل الانحدار الخطي والوسائل k والشبكات العصبية والتكتل ، على سبيل المثال لا الحصر.
يتضمن Shark أيضًا طرقًا عديدة للتحسين الخطي وغير الخطي ، وخوارزميات التعلم القائم على النواة ، والتحسين العددي ، ومجموعة من تقنيات تعلم الآلة الأخرى. إنها الأداة المثالية للبحث وبناء تطبيقات العالم الحقيقي. يتمتع Shark بوثائق ممتازة ومتوافق مع Linux و Windows و macOS.
كيفية تثبيت Shark؟
لتثبيت Shark ، يجب عليك الحصول على حزم المصدر من صفحة التنزيلات الرسمية . بعد ذلك يجب بناء المكتبة بكتابة الكود التالي:
مكدير شارك / بناء /
قرص قرش / بناء
cmake ../
صنع
يجب أن تعلم أن لدى Shark تبعيتان - Boost و CMake . أثناء استخدام نظام Linux ad Windows ، عادةً ما يتم استخدام ATLAS ، في نظام macOS ، يعد Accelerate مكتبة الجبر الخطي الافتراضية. في macOS ، يمكنك استخدام MacPorts للحصول على الحزم الضرورية ، مثل:
sudo ميناء تثبيت دفعة cmake
ومع ذلك ، ضمن Ubuntu ، يجب عليك تثبيت الحزم المطلوبة باستخدام العبارة التالية:
sudo apt-get install cmake cmake-curses-gui libatlas-base-dev libboost-all-dev
فيما يلي خطوات تثبيت Shark:
- أولاً ، قم بتنزيل حزم المصدر من صفحة التنزيلات وقم بفك حزمها.
- قم بتشغيل CMake GUI
- حدد "Where is the source code" لتعيين المسار إلى موقع Shark الذي تم فك حزمه.
- حدد "مكان بناء الدليل" لتعيين المسار حيث تريد تخزين ملفات مشروع Visual Studio.
- اختر خيار "إضافة إدخال". الآن ، أضف إدخال BOOST_ROOT من النوع PATH واضبطه على دليل التثبيت المعزز.
- مرة أخرى ، أضف إدخال BOOST_LIBRARYDIR من النوع PATH واضبطه على دليل مكتبة التعزيز.
- أخيرًا ، اختر مترجم apt Visual Studio وانقر نقرًا مزدوجًا على خيار "تكوين" ، متبوعًا بخيار "إنشاء".
2. mlpack
mlpack عبارة عن مكتبة C ++ مصممة بشكل صريح للأداء. يعد بتقديم تطبيقات سريعة وقابلة للتوسيع لخوارزميات ML الرائدة. يتمثل الجانب الفريد لمكتبة C ++ هذه في أنها توفر خوارزميات ML كبرامج سطر أوامر بسيطة ، وارتباطات Python ، وارتباطات Julia ، وفئات C ++ ، والتي يمكنك دمجها جميعًا في حلول ML على نطاق واسع.
كيفية تثبيت mlpack؟
تختلف عملية تثبيت MLPack من منصة إلى أخرى.
بالنسبة إلى Python ، يمكنك الحصول على الحزمة المصدر من خلال pip أو conda ، مثل:
نقطة تثبيت mlpack
تثبيت Conda -c conda-forge mlpack

يمكنك الرجوع إلى دليل البدء السريع في لغة البرمجة mlpack في Python للحصول على مزيد من التفاصيل.
بالنسبة إلى Julia ، يمكنك الحصول على المصادر عبر Pkg على النحو التالي:
استيراد Pkg ؛
Pkg.add (“mlpack”)
بالنسبة إلى Ubuntu و Debian و Fedora و Red Hat ، يمكنك تثبيت mlpack باستخدام مدير الحزم. يعد دليل البدء السريع لسطر أوامر mlpack مكانًا جيدًا للبدء. يمكنك أيضًا بنائه من المصدر باتباع البرنامج التعليمي لبناء Linux .
بالنسبة لنظام التشغيل Windows ، يمكنك تنزيل الثنائيات سابقة الإنشاء - Windows 64 بت - MSI Installer و Windows 64 بت - ZIP . يمكنك أيضًا تثبيته باستخدام مدير الحزم مثل vcpkg ، أو الإنشاء من المصدر باتباع البرنامج التعليمي لإنشاء Windows .
عند الوصول إلى macOS ، يمكنك تثبيت المكتبة عبر homebrew ، مثل:
تركيب الشراب mlpack
قراءة: وظائف التعلم الآلي الأعلى أجرًا
3. GRT (مجموعة أدوات التعرف على الإيماءات)
GRT أو Gesture Recognition Toolkit هي مكتبة C ++ مفتوحة المصدر ومتعددة المنصات. إنه مصمم خصيصًا للتعرف على الإيماءات في الوقت الفعلي. وهو يشتمل على واجهة برمجة تطبيقات C ++ شاملة يتم تعزيزها بشكل أكبر من خلال واجهة المستخدم الرسومية (GUI) الأنيقة وسهلة الاستخدام.
GRT ليست صديقة للمبتدئين فحسب ، بل من السهل أيضًا دمجها في مشاريع C ++ الحالية. إنه متوافق مع أي مستشعر / إدخال بيانات ، ويمكنك تدريبه بإيماءاتك الفريدة. علاوة على ذلك ، يمكن أن تتكيف GRT مع المعالجة المخصصة أو خوارزميات استخراج الميزات عند الحاجة.
كيفية تثبيت GRT؟
أول شيء يجب عليك فعله هو تنزيل حزمة GRT. بعد ذلك ، يجب تحديد موقع مجلد GRT في المجلد الرئيسي لمجموعة أدوات التعرف على الإيماءات وإضافة مجلد GRT (بما في ذلك جميع المجلدات الفرعية) إلى المشروع المطلوب.
يمكنك البدء في استخدام GRT عن طريق إضافة الرمز الكامل المخزن في مجلد GRT إلى مشروع C ++ الخاص بك. في حالة استخدام IDEs مثل VisualStudio أو XCode ، يمكنك إضافة ملفات مجلد GRT إلى مشروعك باتباع هذا المسار - " ملف -> إضافة ملفات إلى المشروع ." يمكنك أيضًا سحب مجلد GRT (من Finder أو Windows Explorer) إلى IDE لإضافة جميع الملفات من مجلد GRT إلى مشروعك.
بمجرد إضافة الكود الموجود في مجلد GRT إلى مشروعك ، يمكنك استخدام جميع وظائف / فئات GRT. كل ما عليك فعله هو إضافة السطرين التاليين من التعليمات البرمجية إلى أعلى ملف الرأس في المشروع حيث تريد استخدام رمز GRT:
# تضمين "GRT / GRT.h"
int main (int argc، const char * argv [])
{
// الكود الرئيسي لمشروعك ...
}

في هذا الرمز ، يضيف السطر الأول ملف رأس GRT الرئيسي (GRT.h) إلى المشروع. يحتوي ملف GRT.h على جميع ملفات رأس وحدة GRT ، وبالتالي ، لا يتعين عليك إدخال أي ملفات رأس GRT أخرى يدويًا. ومع ذلك ، يعلن السطر الثاني أن مساحة اسم GRT قيد الاستخدام. هذا يلغي الحاجة إلى كتابة GRT :: WhatEverClass في كل مرة تريد فيها استخدام فئة GRT - يمكنك كتابة WhatEverClass والانتهاء من ذلك.
ومع ذلك ، تذكر أنه يجب عليك تحديد المسار الفعلي حيث قمت بتخزين مجلد GRT على محرك الأقراص الثابتة ، بناءً على IDE الذي تستخدمه.
اقرأ أيضًا: مهنة في تعلم الآلة
خاتمة
تعد مكتبات C ++ الثلاث هذه مثالية للتعامل مع جميع احتياجات ML الخاصة بك تقريبًا. إن مفتاح إتقان تعلم الآلة في C ++ هو أولاً تعلم هذه المكتبات ، وفهم تخصصاتها ووظائفها ، ثم تنفيذها وفقًا لمتطلبات تعلم الآلة المحددة.
إذا كنت مهتمًا بمعرفة المزيد حول التعلم الآلي ، فراجع دبلوم PG في IIIT-B & upGrad في التعلم الآلي والذكاء الاصطناعي المصمم للمهنيين العاملين ويقدم أكثر من 450 ساعة من التدريب الصارم ، وأكثر من 30 دراسة حالة ومهمة ، IIIT- حالة الخريجين B ، أكثر من 5 مشاريع تتويجا عملية ومساعدة وظيفية مع أفضل الشركات.
أيهما أفضل للتعلم الآلي - C ++ أم Python؟
C ++ و Python هما من أكثر لغات البرمجة استخدامًا. ومع ذلك ، اعتمادًا على المهمة المطروحة ، يجب على المرء اختيار المهمة التي يجب استخدامها. عندما يتعلق الأمر بإنشاء الألعاب وأنظمة التعلم ، فإن C ++ هي اللغة المفضلة. ومع ذلك ، عندما يتعلق الأمر بالتعلم الآلي ، فإن Python هي الخيار الأفضل. إنه مفيد أيضًا للمهام التي تتضمن أنظمة البيانات. علاوة على ذلك ، نظرًا لأن بناء جملة بايثون سهل الفهم ، يوصى به للمبتدئين. جانب آخر مميز في Python هو أنها لغة مفسرة ، مما يعني أن شفرة Python لا تتم ترجمتها إلى يمكن قراءتها آليًا في وقت التشغيل.
ما هي بعض التحديات في التعلم الآلي؟
نظرًا لأن البيانات هي المدخلات الأكثر أهمية في التعلم الآلي ، فإن إحدى المشكلات التي يواجهها متخصصو التعلم الآلي هي نقص البيانات عالية الجودة. يمكن أن يحدث عدم ملاءمة أيضًا إذا كانت البيانات لا تتناسب بشكل جيد مع متغيرات الإدخال والإخراج. تعد البيانات أمرًا حيويًا ، ولكن قد يؤدي الكثير من البيانات إلى زيادة التجهيز ، مما يؤدي إلى ضعف أداء خوارزمية التعلم الآلي. يعد العثور على نتائج دقيقة أمرًا بسيطًا باستخدام نماذج التعلم الآلي ، ولكن الوقت المطلوب هائل ، وهي صعوبة أخرى.
كيف تختلف المكتبات الثابتة والديناميكية عن بعضها البعض؟
من حيث الحجم ، تختلف المكتبات الثابتة والديناميكية عن بعضها البعض. نظرًا لأنه يتم الاحتفاظ بنسخة واحدة فقط من مكتبة ديناميكية أو تخزينها في الذاكرة ، فإن المكتبات الديناميكية أصغر حجمًا بشكل كبير من المكتبات الثابتة. يحتوي الملف القابل للتنفيذ على مكتبة ثابتة تم إنشاؤها أو ربطها. إنه أحد مكونات التطبيق الخاص بك ، ولا يمكن لأي شخص آخر استخدامه. بينما يتم إنشاء المكتبة الديناميكية وربطها وتثبيتها بشكل مستقل ، يمكن الوصول إليها بواسطة أي برنامج. هذا يقلل من حجم البرنامج مع إخفاء التعليمات البرمجية أيضًا.