معرفی برخی فریمورک‌های یادگیری ماشینی برای پایتون


در این پست قصد داریم تا به معرفی برخی از محبوب‌ترین لایبرری‌ها و فریمورک‌های یادگیری ماشینی که برای زبان برنامه‌نویسی پایتون که در اختیار دولوپرهای علاقمند به هوش مصنوعی گرفته‌اند بپردازیم.

Tensorflow
تنسورفلو یک لایبرری سطح بالا است که عمدتاً به زبان ++C نوشته شده که همچنین شامل بایندینگ‌های پایتون هم می‌شود و به همین دلیل دیگر جای نگرانی در زمینهٔ افت پرفرومنس باقی نمی‌گذارد. یکی از بهترین ویژگی‌های این لایبرری معماری منعطف آن است که به شما اجازه می‌دهد آن را بر روی یک یا تعداد بیشتری CPU یا GPU در دسکتاپ، سرور و موبایل دیپلوی کنید.

تنسورفلو ابتدا به ساکن برای پروژهٔ Google Brain توسعه داده شد و هم‌اکنون توسط صدها مهندس در این کمپانی مورد استفاده قرار می‌گیرد و از همین روی دیگر جای هیچ شک و شبهه‌ای برای استفاده از آن باقی نمی‌ماند (برای کسب اطلاعات بیشتر، می‌توانید به مقالهٔ TensorFlow: لایبرری اپن‌سورس یادگیری ماشینی گوگل مراجعه نمایید.)

Scikit-learn
این لایبرری اگر معروف‌ترین نباشد، قطعاً یکی از معروف‌ترین لایبرری‌های موجود برای یادگیری ماشینی در اکثر زبان‌های برنامه‌نویسی رایج است که ویژگی‌های بی‌شماری برای داده‌کاوی و آنالیز دیتا دارد که همین هم آن را به یک انتخاب عالی هم برای تحقیقات و هم برای صنعت تبدیل کرده است. Scikit-learn بر پایهٔ لایبرری‌های NumPy ،SciPy و Matplottib ساخته شده و به همین دلیل حس آشنایی برای کسانی که قبلاً از لایبرری‌های فوق‌الذکر استفاده کرده‌اند دارا است.

Theano
لایبرری یادگیری ماشینی Theano به شما اجازه می‌دهد تا دستوراتی که شامل آرایه‌های چندبُعدی می‌باشند را تعریف، بهینه‌سازی و ارزیابی کنید و مانند Scikit-learn، این لایبرری هم به طور تنگاتنگی با NumPy ترکیب شده است.

سِتاپ اولیهٔ این لایبرری سریع و بدون دردسر است که این نکته برای کسانی که اول راه هستند بسیار مهم و کاربردی است (نیاز به توضیح است که بعضی از افراد بیشتر آن را ابزاری مناسب برای پژوهش دانسته‌اند تا مناسب برای توسعهٔ نرم‌افزار و از همین روی بد نیست که حین انتخاب، به این نکته هم توجهی داشته باشید.) یکی از بهترین ویژگی‌های این لایبرری داکیومنتیشن (مستندات) کاربردی همراه با آموزش‌های خودآموز است. به لطف مشهور بودن این لایبرری، مشکل زیادی با پیدا کردن منابعی که به شما نشان بدهند چه‌طور مدل‌های خود را ایجاد و اجرا کنید نخواهید داشت.

Pylearn2
اکثر قابلیت‌های Pylearn2 بر پایهٔ Theano ساخته شده و به همین دلیل بیس نسبتاً قدرتمندی دارد. در نظر داشته باشید که این احتمال وجود دارد گاهی‌ اوقات Pylearn2 بسته به نوع پروژه، نیازمند به لایبرری‌های دیگری همچون Scikit-learn باشد و از همین روی در چنین مواقعی شما یک سورس‌کد ٪۱۰۰ کاستومایز نخواهید داشت.

Pyevolve
یکی از هیجان‌انگیرترین و متفاوت‌ترین زمینه‌های تحقیقات در مورد شبکه‌های عصبی مربوط به الگوریتم‌های ژنتیکی می‌شود. یک الگوریتم ژنتیکی اساساً یک جست‌وجوی اکتشافی و ابتکاری است که فرایند انتخاب طبیعی را تقلید می‌کند. این الگوریتم در واقع یک شبکهٔ عصبی را بر مبنای یکسری دیتا آزمایش کرده و از عملکرد شبکه فیدبک می‌گیرد و سپس به طور مکرر تغییراتی کوچک و تصادفی را بر شبکه اِعمال کرده و به آزمایش دوبارهٔ آن با همان دیتا ادامه می‌دهد. در نهایت شبکه‌هایی که آمادگی و سازگاری بالاتری دارند به عنوان والدی برای نسل‌های جدید استفاده می‌شوند و این در حالی است که Pyevolve یک فریمورک عالی برای بیلد و اجرای الگوریتم‌های اینچنینی است. 

NuPlc
این لایبرری قابلیت‌های مختلفی فراتر از الگوریتم‌های یادگیری ماشینی به شما ارائه می‌کند که بر پایهٔ نظریه‌ای مبتنی بر نئوکورتکس به نام Hierarchical Temporal Memory یا به اختصار HTM می‌باشد که می‌توان آن به عنوان نوعی از شبکه‌های عصبی در نظر گرفت.

این لایبرری در صدد است تا به منزلهٔ فریمورک محاسباتی جدیدی باشد که نحوهٔ آمیخته شدن حافظه و محاسبات در ذهن ما را تقلید می‌کند. در هستهٔ HTM یکسری الگوریتم‌های یادگیری‌ وجود دارند که می‌توانند یاد بگیرند، استنباط و تفسیر کنند و به یاد بیاورند مضاف بر اینکه می‌توانند چندین الگو را به طور هم‌زمان یاد بگیرند و برای پیش‌بینی، تشخیص مشکل و ناهنجاری، طبقه‌بندی و کاربرد در زمینه‌های حسی-حرکتی بسیار مناسب هستند.