در این پست قصد داریم تا به معرفی برخی از محبوبترین کتابخانه ها و فریم ورک های یادگیری ماشین (ماشین لرنینگ) که برای زبان برنامهنویسی پایتون که در اختیار دولوپرهای علاقمند به هوش مصنوعی گرفتهاند بپردازیم.
1. کتابخانه Tensorflow
TensorFlow(تنسورفلو) یک کتابخانه سطح بالا است که عمدتاً به زبان ++C نوشته شده که همچنین شامل بایندینگهای پایتون هم میشود و به همین دلیل دیگر جای نگرانی در زمینهٔ افت پرفرومنس باقی نمیگذارد. یکی از بهترین ویژگیهای این کتابخانه معماری منعطف آن است که به شما اجازه میدهد آن را بر روی یک یا تعداد بیشتری CPU یا GPU در دسکتاپ، سرور و موبایل دیپلوی کنید.
تنسورفلو ابتدا به ساکن برای پروژهٔ Google Brain توسعه داده شد و هماکنون توسط صدها مهندس در این کمپانی مورد استفاده قرار میگیرد و از همین روی دیگر جای هیچ شک و شبههای برای استفاده از آن باقی نمیماند (برای کسب اطلاعات بیشتر، میتوانید به مقالهٔ TensorFlow: لایبرری اپنسورس یادگیری ماشینی گوگل مراجعه نمایید.)
2. کتابخانه Scikit-learn
کتابخانه Scikit-learn اگر معروفترین نباشد، قطعاً یکی از معروفترین کتابخانه موجود برای یادگیری ماشین در اکثر زبانهای برنامهنویسی رایج است که ویژگیهای بیشماری برای دادهکاوی و آنالیز دیتا دارد که همین هم آن را به یک انتخاب عالی هم برای تحقیقات و هم برای صنعت تبدیل کرده است. Scikit-learn بر پایهٔ کتابخانههای NumPy ،SciPy و Matplottib ساخته شده و به همین دلیل حس آشنایی برای کسانی که قبلاً از کتابخانههای فوقالذکر استفاده کردهاند دارا است.
3. کتابخانه Theano
کتابخانه یادگیری ماشینی Theano به شما اجازه میدهد تا دستوراتی که شامل آرایههای چندبُعدی میباشند را تعریف، بهینهسازی و ارزیابی کنید و مانند Scikit-learn، این کتابخانه هم به طور تنگاتنگی با NumPy ترکیب شده است.
سِتاپ اولیهٔ این لایبرری سریع و بدون دردسر است که این نکته برای کسانی که اول راه هستند بسیار مهم و کاربردی است (نیاز به توضیح است که بعضی از افراد بیشتر آن را ابزاری مناسب برای پژوهش دانستهاند تا مناسب برای توسعهٔ نرمافزار و از همین روی بد نیست که حین انتخاب، به این نکته هم توجهی داشته باشید.) یکی از بهترین ویژگیهای این کتابخانه داکیومنتیشن (مستندات) کاربردی همراه با آموزشهای خودآموز است. به لطف مشهور بودن این کتابخانه، مشکل زیادی با پیدا کردن منابعی که به شما نشان بدهند چهطور مدلهای خود را ایجاد و اجرا کنید نخواهید داشت.
4. کتابخانه Pylearn2
اکثر قابلیتهای Pylearn2 بر پایهٔ Theano ساخته شده و به همین دلیل بیس نسبتاً قدرتمندی دارد. در نظر داشته باشید که این احتمال وجود دارد گاهی اوقات Pylearn2 بسته به نوع پروژه، نیازمند به کتابخانههای دیگری همچون Scikit-learn باشد و از همین روی در چنین مواقعی شما یک سورسکد ٪۱۰۰ کاستومایز نخواهید داشت.
5. کتابخانه Pyevolve
یکی از هیجانانگیرترین و متفاوتترین زمینههای تحقیقات در مورد شبکههای عصبی مربوط به الگوریتمهای ژنتیکی میشود. یک الگوریتم ژنتیکی اساساً یک جستوجوی اکتشافی و ابتکاری است که فرایند انتخاب طبیعی را تقلید میکند. این الگوریتم در واقع یک شبکهٔ عصبی را بر مبنای یکسری دیتا آزمایش کرده و از عملکرد شبکه فیدبک میگیرد و سپس به طور مکرر تغییراتی کوچک و تصادفی را بر شبکه اِعمال کرده و به آزمایش دوبارهٔ آن با همان دیتا ادامه میدهد. در نهایت شبکههایی که آمادگی و سازگاری بالاتری دارند به عنوان والدی برای نسلهای جدید استفاده میشوند و این در حالی است که Pyevolve یک فریمورک عالی برای بیلد و اجرای الگوریتمهای اینچنینی است.
6. کتابخانه NuPlc
این کتابخانه NuPlc قابلیتهای مختلفی فراتر از الگوریتمهای یادگیری ماشینی به شما ارائه میکند که بر پایهٔ نظریهای مبتنی بر نئوکورتکس به نام Hierarchical Temporal Memory یا به اختصار HTM میباشد که میتوان آن به عنوان نوعی از شبکههای عصبی در نظر گرفت.
این کتابخانه در صدد است تا به منزلهٔ فریمورک محاسباتی جدیدی باشد که نحوهٔ آمیخته شدن حافظه و محاسبات در ذهن ما را تقلید میکند. در هستهٔ HTM یکسری الگوریتمهای یادگیری وجود دارند که میتوانند یاد بگیرند، استنباط و تفسیر کنند و به یاد بیاورند مضاف بر اینکه میتوانند چندین الگو را به طور همزمان یاد بگیرند و برای پیشبینی، تشخیص مشکل و ناهنجاری، طبقهبندی و کاربرد در زمینههای حسی-حرکتی بسیار مناسب هستند.