13 فریم ورک پیشرفته برای یادگیری ماشین

13 فریم ورک پیشرفته برای یادگیری ماشین

در طول چند سال گذشته یادگیری ماشین Machine Learning به یکی از جریانات اصلی در حوزه هوش مصنوعی تبدیل شده است این امر صرفا به دلیل محیط های cloud در دسترس و یا حتی سخت افزارهای GPU قدرتمند نیست بلکه گسترش بی اندازه فریم ورک های موجود برای یادگیری ماشین نیز می تواند دلیلی بر این امر باشد تمامی این فریم ورک ها متن باز هستند ولی مهم تر از آن روش طراحی آنها برای خارج ساختن بخش های سخت یادگیری ماشین از حالت انتزاعی است

در اینجا قصد داریم چند فریم ورک پیشرفته که در سال های گذشته مورد توجه قرار گرفته اند  به شما معرفی کنیم.

فریم ورک Apache Spark MLlib

Apache Spark در خانواده هادوپ ها بسیار شناخته شده است ولی فریم ورک پردازش داده، خارج از هادوپ ایجاد شد و نامی جدا از نام هادوپ به خود اختصاص داد. اسپارک یک ابزار یادگیری ماشین است و بخاطر رشد کتابخانه مربوط به الگوریتم ها، سرعت بالایی در پردازش داده های موجود در حافظه اصلی دارد.

اسپارک هنوز به صورت گسترده مطرح نشده است زیرا الگوریتم های آن مرتبا در حال بازبینی و اصلاح هستند. سال گذشته نسخه 1.5 آن با الگوریتم های جدید و الگوریتم های بهبود یافته پیشین، همراه با پشتیبانی کتابخانه MLlib از پایتون که یکی از پلتفرم های اصلی برای کاربران آمار و ریاضی است، منتشر شد. نسخه جدید اسپارک 1.6 نیز به تازگی منتشر شده که ویژگی های جالب توجهی به آن افزوده شده است.

فریم ورک Apache Singa

فریم ورک های مربوط به یادگیری عمیق (Deep Learning)، عملکردهای مربوط به یادگیری ماشین مانند پردازش زبان طبیعی و تشخیص عکس را قدرت می بخشند. Singa، که به تازگی وارد پروژه های آپاچی شده است، یک فریم ورک متن باز با هدف آسان تر ساختن آموزش مدل های یادگیری عمیق بر روی حجم زیادی از داده ها می باشد.

Singa یک مدل برنامه نویسی آسان برای آموزش شبکه های یادگیری عمیق از طریق یک مجموعه از ماشین ها را فراهم می کند و از روش های مشترک بسیاری مانند شبکه های عصبی convolutional، ماشین بالتزمن محدود  و شبکه های عصبی recurrent پشتیبانی می کند. مدل ها می توانند به صورت همزمان و یا ناهمزمان آموزش داده شوند که بستگی به نوع کار دارد. Singa نیز با استفاده از Apache Zonekeeper، تنظیمات کلاسترینگ را آسان می کند.

فریم ورک caffe

فریم ورک یادگیری عمیق caffe، به صورت ماژولار ساخته شده است. این فریم ورک در سال 2013 برای پروژه های بینایی ماشین ایجاد شده، و تابحال برای اپلیکیشن های دیگر مانند چندرسانه ای نیز توسعه داده شده است.

در این اپلیکیشن ها، سرعت، عامل بسیار مهمی می باشد بنابراین به صورت کامل با زبان C++ پیاده سازی شده و به طور کامل از زبان کودا پشتیبانی می کند، در زمان های لازم نیز می تواند بین پردازش های CPU و GPU سوئیچ کند. این توزیع شامل مجموعه ای از مدل های ارجاعی آزاد و متن باز برای کارهای دسته بندی می شود.

فریم ورک مایکروسافت آژور ML Studio

به منظور کار بر روی حجم وسیعی از داده ها و توان محاسباتی با استفاده از یادگیری ماشین، محیط cloud ، محیطی ایده آل برای اپلیکیشن های ML است. مایکروسافت سرویس یادگیری ماشین آژور نیز ایجاد کرده است که آژور ML Studio نام دارد و دارای نسخه های ماهانه، ساعتی و آزاد است.

آژور ML Studio به کاربران اجازه می دهد تا مدل هایی را ایجاد و آموزش دهند و سپس آنها را در  API قرار دهند تا توسط سرویس های دیگر استفاده شود. کاربران برای مدل کردن داده، 10 گیگابایت فضا در اختیار دارند و برای استفاده از فضای ذخیره سازی بیشتر، می توان به آژور وصل شد و از فضای ذخیره سازی آن برای مدل های بزرگتر استفاده کرد. تعداد زیادی از الگوریتم ها موجود هستند. برای تست این سرویس می توان بدون داشتن حساب کاربری، تا هشت ساعت از آن بهره برد.

فریم ورک Amazon machine learning

روش همه جانبه آمازون برای سرویس های cloud از یک الگوی مشخص پیروی می کند. فراهم کردن ملزومات، جمع کردن عده ای از مخاطبان، اجازه به آنها برای استفاده از اپلیکیشن و سپس پیدا کردن نیازهای واقعی مخاطبان و ایجاد آنهاست.

این الگو نیز برای سرویس یادگیری ماشین آمازون به کار رفته است. فریم ورک Amazon Machine Learning به داده های ذخیره شده در آمازون S3 وصل می شود، و می تواند دسته بندی های دودویی، دسته بندی های چند کلاسه یا رگرسیون را بر روی داده های ذکر شده، اعمال کرده و یک مدل تولید کند. باید توجه داشت که این فریم ورک کاملا بر پایه آمازون است. از آنجاییکه این سرویس به شدت برپایه آمازون است و مدل بدست آمده از داده های آمازون بدست آمده، مدل نتیجه، نمی تواند استخراج شود و مجموعه داده های مورد استفاده برای آموزش مدل نیز نباید بزرگتر از 100 گیگابایت باشد.

ابزارهای توزیع شده Machine Learning مایکروسافت

بسیاری از کامپیوترهایی که شما در حال حاضر از آنها استفاده می کنید، در اجرای برنامه های یادگیری ماشین به مشکل برخورد می کنند، و باید از تعدادی از آنها به صورت گروهی استفاده کرد تا بتوانند اپلیکیشن های ML را به خوبی اجرا کنند. ابزار DMTK مایکروسافت، فریم ورکی است که می تواند بر روی تعدادی از کامپیوترهای کلاستر شده به صورت توزیع شده، نصب گردد و برنامه ها را اجرا کند.

DMTK به عنوان یک فریم ورک ساخته شده، در نتیجه تعداد الگوریتم های واقعی که در اختیار دارد بسیار کم است، ولی طراحی آن به گونه ای است که می توان آن را در آینده گسترش داد. این فریم ورک برای کاربرانی مناسب است که از مجموعه ای از کامپیوترها به عنوان کلاستر استفاده می کنند که منابع محدودی دارند.

فریم ورک Google TensorFlow

این فریم ورک نیز مانند فریم ورک DMTK، ابزاری برای یادگیری ماشین است که برای سیستم های توزیع شده، طراحی شده است. این فریم ورک در ابتدا تنها برای حل مشکلات داخلی گوگل ایجاد شد ولی بعدها گوگل تصمیم گرفت که آن را به عنوان یک محصول متن باز منتشر کند.

فریم ورک TensorFlow، گراف های کنترل جریان را پیاده سازی می کند که دسته ای از داده ها می توانند توسط مجموعه ای از الگوریتم ها که توسط یک گراف شرح داده می شوند، پردازش شوند. این گراف ها می توانند با زبان های C++ یا پایتون بر روی CPU یا GPU پردازش شوند.

فریم ورک Computational Network Toolkit

علاوه بر انتشار ابزار DMTK، مایکروسافت از یکی دیگر از ابزارهای یادگیری ماشین به نام Microsoft Computational Network Toolkit یا CNTK نیز رونمایی کرد. CNTK شبیه به TensorFlow است با این تفاوت که به کاربران اجازه می دهد تا شبکه های عصبی با استفاده از گراف های مستقیم ایجاد کنند. این فریم ورک نیز با پروژه هایی مانند Caffe، Theano و Torch نیز مقایسه شده است. مزیت اصلی CNTK، نسبت به دیگر فریم ورک ها، سرعت آن به ویژه توانایی آن در بهره برداری از چندین CPU و چندین GPU به صورت همزمان است. مایکروسافت ادعا کرده است که با استفاده از CNTK همراه کلاسترهای GPU بر روی آژور، سرعت تشخیص صدا را در کرتانا افزایش داده است.

CNTK که اساسا به عنوان بخشی از پروژه تحقیقاتی مایکروسافت در تشخیص صدا ایجاد شده، در سال 2015 به عنوان یک پروژه متن باز، ارائه گردید.

فریم ورک Veles

این فریم ورک، یک پلت فرم توزیع شده برای برنامه های یادگیری عمیق است و مانند فریم ورک های TensorFlow و DMTK، به زبان C++ نوشته شده است. Veles از پایتون نیز برای هماهنگ سازی و خودکارسازی گره ها، استفاده می کند. مجموعه داده ها می توانند تحلیل شوند و به صورت خودکار قبل از اینکه در کلاستر قرار گیرند، نرمالیزه گردند و واسط REST نیز وجود دارد که به آموزش مدل برای استفاده می پردازند.

استفاده Veles از پایتون به عنوان، ابزار و کدی جهت همساز کردن دیگر قسمت های برنامه است. IPython، ابزار نمایش داده و تحلیل می تواند نتایج یک کلاستر Veles را به تصویر درآورد. سامسونگ امیدوار است که با متن باز کردن این پروژه، آن را برای ویندوز و مک نیز توسعه دهد.

فریم ورک Brainstorm

این فریم ورک در سال 2015، توسط دانشجویان دکترا در یکی از کلاس های دانشگاهی ایجاد شد. هدف از ایجاد Brainstorm، انعطاف پذیری و بالا بردن سرعت شبکه های عصبی عمیق بود.

فریم ورک Brainstorm از پایتون استفاده می کند تا واسط هایی جهت مدیریت داده فراهم آورد. یکی از واسط ها، برای محاسبات CPU با استفاده از کتابخانه Numpy و دیگری جهت استفاده از GPU با استفاده از کودا است. اکثریت این کارها با استفاده از اسکریپت های پایتون انجام می شود بنابراین منتظر یک GUI قدرتمند نباشید. این فریم ورک در برنامه طولانی مدت خود قصد دارد که از المان های طراحی جدید برای توسعه فریم ورکی، سازگار با پلتفرم های مختلف استفاده کند.

کتابخانه mlpack2

این کتابخانه در سال 2011، بر پایه زبان C++ عرضه شد و هدف از طراحی آن، قابلیت مقیاس پذیری، سرعت و راحتی استفاه از آن بود. پیاده سازی با mlpack، می تواند از طریق دستورات اجرایی خط فرمان و یا با یک واسط C++ برای کارهای پیچیده تر انجام شود.

در نسخه دو از این کتابخانه، اصلاحات بسیاری انجام و ویژگی های بسیاری افزوده شده است که شامل انواع الگوریتم ها، و تغییراتی برای افزایش سرعت می شود.

یکی از کمبودهای این کتابخانه، نبود هماهنگی با هیچ زبان دیگری به جز C++ است به این معنی که کاربران زبان هایی مانند R یا پایتون نمی توانند از این کتابخانه استفاده کنند.

فریم ورک Marvin

ابزار دیگری که برای یادگیری ماشین به کار می رود، فریم ورک شبکه عصبی Marvin است که توسط گروه بینایی ماشین پرینستون، ایجاد شده است. این فریم ورک با استفاده از C++ و کودا نوشته شده است. اگرچه تکه کد مربوط به این فریم ورک بسیار کوچک است ولی مدل هایی در این فریم ورک است که برای استفاده در پروژه های دیگر آماده می باشد.

فریم ورک Neon

شرکت Nervana، پلتفرم مخصوص خود برای سخت افزار و نرم افزار یادگیری عمیق را ایجاد کرده است. این فریم ورک با نام Neon و به عنوان یک پروژه متن باز ارائه شده است. Neon از ماژول های مختلفی استفاده کرده که قابلیت اجرای بر روی CPUها، GPUها و سخت افزارهای سفارشی شرکت Nervana را داشته باشند.

Neon به زبان پایتون نوشته شده و برای افزایش سرعت از C++ بهره برده است. به همین دلیل برای کاربرانی که از پایتون یا زبان هایی سازگار با پایتون استفاده می کنند، بسیار مناسب است.

وجیهه نیکخواه

وجیهه نیکخواه

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


0 نظر درباره‌ی این پست نوشته شده است.

ثبت نظر