یادگیری ماشین زیرمجموعه ای از هوش مصنوعی (AI) است که به ماشین ها این امکان را می دهد که به طور خودکار یاد بگیرند و از تجربیات خود بدون برنامه ریزی صریح برای انجام این کار استفاده کنند. یادگیری ماشین برای حل انواع مختلی از مسائل، کاربرد دارد. در گذشته، افراد برای انجام کارهای یادگیری ماشین به صورت دستی تمامی الگوریتم ها را پیاده سازی و بهینه می نمودند. این فرآیند بسیار زمانبر و خسته کننده و حتی به نوعی ناکارآمد بود.

اما اکنون با پیشرفت علم در این حوزه و حضور فعال برنامه نویسان، الگوریتم های مختلف در قالب کتابخانه، فریم ورک  و ماژول های متن باز در اختیار عموم قرار گرفته است. در ادامه به توضیح برخی از محبوب ترین کتابخانه ها می پردازیم:

Numpy:

وب سایت اصلی: https://numpy.org

آدرس گیت هاب: https://github.com/numpy/numpy

هدف اصلی: محاسبه علمی و پردازش آرایه های چندبعدی و ماتریس های حجیم

این کتابخانه برای مدیریت داده های چند بعدی و توابع پیچیده ریاضی مورد استفاده قرار می گیرد. Numpy یک کتابخانه محاسباتی سریع است که می تواند وظایف و توابع اعم از جبر پایه تا حتی تبدیل فوریه ، شبیه سازی های تصادفی و… را انجام دهد.

این کتابخانه به زبان C نوشته شده است ، که به آن مزیت بیشتری نسبت به توالی یابی داخلی پایتون می دهد. اگر تعداد رکوردها کمتر از 50 هزار باشد Numpy بهتر عمل می کند.  یادگیری Numpy بسیار آسان است و یکی از محبوب ترین کتابخانه ها برای ورود به دنیای یادگیری ماشین است.

Natural Language Toolkit (NLTK):

وب سایت اصلی: https://www.nltk.org

آدرس گیت هاب: https://github.com/nltk/nltk

هدف اصلی: پردازش زبان طبیعی

NLTK کتابخانه ای گسترده برای طبقه بندی متن و پردازش زبان طبیعی است. این کتابخانه می تواند بیشتر برای تجزیه و تحلیل احساسات ، درک نقد فیلم ، بررسی غذا ، طبقه بندی متن ، بررسی و سانسور کلمات مبتذل از نظرات ، استخراج متن و بسیاری دیگر از عملیات مربوط به زبان انسان استفاده شود. دامنه وسیع تری از کاربردهای آن شامل چت بات هایی است که از هوش مصنوعی استفاده می کنند و برای آموزش مدل های خود برای شناسایی و همچنین ایجاد جملات مهم برای تعامل ماشین و انسان در آینده ، نیاز به پردازش متن دارند.

Pandas:

وب سایت اصلی: https://pandas.pydata.org

آدرس گیت هاب: https://github.com/pandas-dev/pandas

هدف اصلی: آنالیز داده ها

Pandas امروزه یک کتابخانه پرکاربرد برای تجزیه و تحلیل داده های عملی و واقعی در پایتون است. همانطور که می دانیم مجموعه داده باید قبل از آموزش آماده شود. در این مورد ، Pandas  کاربردی است. این کتابخانه به دلیل قابلیت تغییر شکل داده ها ، چرخش در محورهای تعریف شده توسط کاربر ، مدیریت داده های مفقود شده ، ادغام و پیوستن به مجموعه داده ها و گزینه های فیلتراسیون داده ها مشهور است.  زیرا به طور خاص برای استخراج و آماده سازی داده ها توسعه داده شده است. کد بک اند به زبان C یا پایتون نوشته شده است . دو نوع اصلی ساختار داده که توسط پاندا استفاده می شود عبارتند از: سری (1 بعدی) و دیتافریم (دو بعدی)  این دو در کنار هم می توانند اکثریت قریب به اتفاق داده ها را برآورده نمایند. این کتابخانه در مسائلی همچون  آمار ، مباحث اجتماعی ، مالی و تجزیه و تحلیل و سایر زمینه های مهندسی مورد استفاده قرار گیرد.

Scikit-Learn:

وب سایت اصلی: https://scikit-learn.org

آدرس گیت هاب: https://github.com/scikit-learn/scikit-learn

هدف اصلی: تجزیه و تحلیل داده ها و مدل سازی داده ها

Scikit-learn بیشتر بر مفاهیم مختلف مدل سازی داده مانند رگرسیون ، طبقه بندی ، خوشه بندی ، انتخاب مدل و غیره متمرکز است. این یک کتابخانه متن باز و قابل استفاده تجاری است که درک آن نیز بسیار آسان است. Scikit-learn همچنین می تواند برای داده کاوی و تجزیه و تحلیل داده ها مورد استفاده قرار گیرد ، که آن را به یک ابزار عالی برای شروع کار با ML تبدیل می کند. این کتابخانه هم در یادگیری های با نظارت و هم در یادگیری های بدون نظارت کاربرد دارد.

Keras:

وب سایت اصلی: https://keras.io

آدرس گیت هاب: https://github.com/keras-team/keras

هدف اصلی: تمرکز بر شبکه های عصبی

Keras یک کتابخانه متن باز است که به طور موثر بر روی CPU و GPU کار می کند. برای یادگیری عمیق ، به ویژه برای شبکه های عصبی استفاده می شود.

PyTorch:

وب سایت اصلی: https://pytorch.org

آدرس گیت هاب: https://github.com/pytorch/pytorch

هدف اصلی: یادگیری عمیق ، پردازش زبان طبیعی و بینایی ماشین

Pytorch یک کتابخانه ML متن باز و توسعه یافته توسط شرکت فیس بوک است. PyTorch دارای طیف وسیعی از ابزارها و کتابخانه ها است که از بینایی ماشین ، یادگیری ماشین و پردازش زبان طبیعی پشتیبانی می کند. مهمترین مزیت کتابخانه PyTorch سهولت در یادگیری و استفاده از آن است. این کتابخانه رقیب Tensorflow است زیرا هر دوی این کتابخانه ها از تنسور استفاده می کنند اما یادگیری آن آسان تر است و با پایتون یکپارچگی بهتری دارد. اگرچه از NLP پشتیبانی می کند، اما تمرکز اصلی کتابخانه فقط بر توسعه و آموزش مدلهای یادگیری عمیق است.

MlPack:

وب سایت اصلی: https://www.mlpack.org

آدرس گیت هاب: https://github.com/mlpack/mlpack

هدف اصلی: الگوریتم ها و مدل های یادگیری ماشین چندگانه

این کتابخانه تقریباً برای پشتیبانی از همه الگوریتم ها و مدلهای معروف ML مانند GMM ، K-means ، رگرسیون خطی و غیره طراحی شده است. هدف اصلی هنگام توسعه این کتابخانه، ایجاد سریع ، مقیاس پذیری و قابل فهم بودن آن قرار گرفته است. و همچنین یک کتابخانه آسان برای استفاده ست. به طوری که حتی یک برنامه نویس تازه کار در برنامه نویسی، بتواند بدون هیچ مشکلی از آن استفاده کند.

OpenCV:

وب سایت اصلی: https://opencv.org

آدرس گیت هاب: https://github.com/opencv/opencv

هدف اصلی: فقط تمرکز بر بینایی ماشین

OpenCV یک پلتفرم متن باز است که به بینایی ماشین و پردازش تصویر اختصاص داده شده است. این کتابخانه دارای بیش از 2500 الگوریتم اختصاص یافته به بینایی کامپیوتر و ML است. با استفاده از این کتابخانه می توان حرکات انسان را ردیابی کرد ، اجسام متحرک را تشخیص داد ، مدل های سه بعدی را استخراج نمود، تصاویر را با هم ادغام کرد تا تصویری با وضوح بالا ایجاد نمود. این کتابخانه در فعالیتهای مختلف نظارت بر دوربین های مدار بسته توسط بسیاری از دولتها ، به ویژه در چین و… استفاده می شود. همچنین ، شرکت های بزرگ دوربین در جهان از OpenCv برای هوشمندسازی و کاربرپسندی فناوری خود استفاده می کنند.

Matplotlib:

وب سایت اصلی: https://matplotlib.org

آدرس گیت هاب: https://github.com/matplotlib/matplotlib

هدف اصلی: مصورسازی داده ها

Matplotlib کتابخانه ای است که در پایتون برای نمایش گرافیکی به منظور درک داده ها قبل از انتقال آنها به پردازش و آموزش برای اهداف یادگیری ماشین استفاده می شود. مانند پاندا ، ارتباط مستقیمی با یادگیری ماشین ندارد این امر به ویژه هنگامی مفید است که برنامه نویس بخواهد الگوهای داده را تجسم کند. این یک کتابخانه ترسیم دو بعدی است که برای ایجاد نمودارها استفاده می شود. ماژولی به نام pyplot برنامه نویسی را برای برنامه نویسان آسان می کند زیرا ویژگی هایی را برای کنترل استایل خطوط ، ویژگی های فونت ، قالب بندی محورها و غیره ارائه می دهد. Matplotlib همچنین یک رابط شبیه به متلب ارائه می دهد تا کاربر بتواند کارهای مشابه متلب را انجام دهد. این کتابخانه رایگان و متن باز است.

TensorFlow:

وب سایت اصلی: https://www.tensorflow.org

آدرس گیت هاب: https://github.com/tensorflow/tensorflow

هدف اصلی: شبکه های عصبی عمیق

TensorFlow کتابخانه ای است که توسط تیم Google Brain با هدف اصلی یادگیری عمیق و شبکه های عصبی ایجاد شده است.  TensorFlow یکی از بهترین کتابخانه های موجود برای انجام یادگیری عمیق است. این کتابخانه، توزیع آسان کار بر روی چندین هسته CPU یا هسته GPU را فراهم می کند و حتی می تواند کار را در چندین GPU توزیع کند. TensorFlow برای این منظور از تنسورها استفاده می کند. تنسورها را می توان به عنوان محفظه ای تعریف کرد که می تواند داده های N بعدی را به همراه عملیات خطی خود ذخیره کند.