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

shabake-mag.jpg

این مطلب یکی از مجموعه مقالات پرونده ویژه «یادگیری ماشینی» شماره ۱۸۱ ماهنامه شبکه است. علاقه‌مندان می‌توانند کل این پرونده ویژه را از روی سایت شبکه دانلود کنند. 

این چارچوب‌ها، این ظرفیت را ایجاد کرده‌اند تا دسترسی به پیچیده‌ترین بخش‌های یادگیری ماشینی برای همگان امکان‌پذیر باشد. همین موضوع باعث شده است تا یادگیری ماشینی در طیف گسترده‌ای از کلاس‌ها در اختیار توسعه‌دهندگان قرار گیرد. بر همین اساس، در این مقاله تعدادی از این چارچوب‌های یادگیری را معرفی خواهیم کرد.

مطلب پیشنهادی

سریان زندگی در دستان صفرها و یک‌ها

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

ApacheSpark MLib
«Apache Spark» به دلیل اینکه بخشی از خانواده هادوپ است، ممکن است در مقایسه با رقبای خود شهرت بیشتری داشته باشد. در حالی که این چارچوب پردازش داده‌های درون‌حافظه‌ای خارج از هادوپ متولد شد، اما به‌خوبی موفق شد در اکوسیستم هادوپ خوش بدرخشد. (شکل 1) Spark یک ابزار یادگیری ماشینی رونده است. این مهم به لطف کتابخانه الگوریتم‌های روبه‌رشدی که برای استفاده روی داده‌های موجود در حافظه استفاده می‌شوند، به وجود آمده است؛ الگوریتم‌هایی که از سرعت بالایی برخوردار هستند.


  شکل 1:  Spack MLib یک کتابخانه یادگیری ماشینی گسترش‌پذیر است. 

الگوریتم‌های مورد استفاده در اسپارک دائماً در حال گسترش و تجدیدنظر هستند و هنوز به عنوان موجودیت کاملی خود را نشان نداده‌اند. سال گذشته در نسخه 1.5، تعداد نسبتاً زیادی الگوریتم جدید به این ابزار یادگیری ماشینی افزوده شد، تعدادی از آن‌ها الگوریتم‌های بهبود یافته بودند، در حالی که تعداد دیگری در جهت تقویت پشتیبانی از MLib که در پایتون استفاده می‌شود، عرضه شده‌اند؛ پلتفرم بزرگی که به یاری کاربران رشته آمار و ریاضیات آمده است. Spark نسخه 1.6 می‌تواند کارهای Spark Ml را از طریق یک پایپ‌لاین (مجموعه‌ای از عناصر پردازشی داده‌ای) پایدار به حالت تعلیق (Suspend) درآورده و مجدداً از حالت تعلیق خارج کند و به مرحله اجرا درآورد. آپاچی اسپارک متشکل از ماژول‌های یادگیری ماشینی (MLib)، پردازش‌گراف (GraphX)، پردازش جریانی (Spark Streaming) و Spark SQL  است.

Apache Singa
چارچوب‌های یادگیری عمیق، بازوی قدرتمند یادگیری ماشینی به شمار می‌روند و توابع قدرتمندی را در اختیار یادگیری ماشینی قرار می‌دهند. قابلیت‌هایی همچون پردازش زبان طبیعی و تشخیص تصاویر از جمله این موارد هستند. Singa به‌تازگی به درون Apache Incubator راه پیدا کرده است؛ چارچوب منبع‌بازی که با هدف ساده‌سازی آموزش مدل‌های یادگیری عمیق روی حجم گسترده‌ای از داده‌ها استفاده می‌شود. (شکل‌2) Singa مدل برنامه‌نویسی ساده‌ای برای آموزش شبکه‌های یادگیری عمیق بر مبنای کلاستری از ماشین‌ها ارائه می‌کند.


  شکل 2:  نمایی از یادگیری ماشینی Singa

این چارچوب از انواع رایجی از آموزش‌ها همچون شبکه‌ عصبی پیچیده (Convolutional neural network)، ماشین‌ بولتزمن محدود (Restricted Boltzmann machine) و شبکه‌ عصبی بازگشتی (Recurrent neural network) پشتیبانی می‌کند. مدل‌ها می‌توانند هم‌زمان یکی بعد از دیگری یا در زمان‌های مختلف و پهلوبه‌پهلو (side by side) آموزش ببینند. انتخاب هر یک از این روش‌ها به این موضوع بستگی دارد که کدام‌یک برای حل مشکل بهتر جواب می‌دهند. Singa می‌تواند فرایند کلاستربندی با Apache Zookeeper را ساده‌تر کند.

Caffe
چهارچوب یادگیری عمیق Caffe بر مبنای بیان (expression)، سرعت (speed) و پیمانه‌ای بودن (modularity) ساخته شده است. گفتنی است در دنیای کامپیوترها، modularity اشاره به طراحی کامپیوترها در قالب بلوک ساختمانی دارد. این کار با هدف افزایش کارایی و کیفیت تجهیزات انجام می‌شود. این پروژه اولین بار در سال 2013 و به منظور تسریع در پروژه‌ بینایی ماشینی طراحی شد. (شکل 3) Caffe از آن زمان به بعد توسعه پیدا کرده و از برنامه‌های دیگری همچون گفتار و چندرسانه‌ای پشتیبانی کرده است.


  شکل 3:  چارچوب یادگیری ماشینی Caffe، قدرتمند و ساده 

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

Microsoft Azure ML Studio
با توجه به داده‌های حجیم و نیاز به مکانیزم قدرتمند محاسباتی، کلاود محیط ایده‌آلی برای میزبانی برنامه‌های یادگیری ماشینی به شمار می‌رود. مایکروسافت از مکانیزم پرداختی خاص خود در ارتباط با سرویس آژر و یادگیری ماشینی استفاده می‌کند؛ به‌طوری که کاربران در بیشتر نسخه‌های ماهیانه، ساعتی و رایگان می‌توانند از Azure ML Studio  استفاده کنند. شایان ذکر است پروژه HowoldRobot نیز بر مبنای همین سامانه ساخته شده است. Azure ML Studio به کاربر اجازه ساخت و آموزش مدل‌های مطبوعش را می‌دهد. (شکل 4) در ادامه توابعی در اختیار کاربران قرار می‌دهد که با استفاده از آن‌ها از سرویس‌های دیگر استفاده کنند.


  شکل 4:  نمایی از محیط Microsoft Azure ML Studio

کاربران به ازای هر حسابی که برای یک مدل در اختیار دارند، به 10 گیگابایت فضا دسترسی خواهند داشت. در کنار این فضای ذخیره‌سازی، مایکروسافت دسترسی به طیف گسترده‌ای از الگوریتم‌ها را برای کاربران امکان‌پذیر ساخته است؛ الگوریتم‌هایی که از سوی مایکروسافت یا شرکت‌های ثالث ارائه شده‌اند. البته به این نکته توجه کنید برای دسترسی به این چهارچوب لزوماً به حساب کاربری نیاز ندارید. مایکروسافت مکانیزمی را طراحی کرده است که در آن کاربران می‌توانند به‌طور ناشناس وارد شده و از Azure ML Studio به مدت هشت ساعت استفاده کنند.

Amazon Machine Learning
رویکرد کلی آمازون در خصوص سرویس‌های ابری بر مبنای الگوی خاصی قرار دارد. در این رویکرد آمازون سعی کرده است اصول زیربنایی را در اختیار مخاطبان خود قرار دهد تا کاربران با استفاده از آن‌ها، برنامه‌های سطح بالای خود را طراحی کنند و آگاه شوند که دقیقاً به چه چیزی نیاز دارند. الگویی که به این شکل از سوی آمازون ارائه شده است، اولین شکل از عرضه یادگیری ماشینی در قالب یک سرویس است و Amazon Machine Learning، اولین در نوع خود به شمار می‌رود. (شکل 5) این سرویس به داده‌های ذخیره‌شده در Amazon S3، RedShift یا RDS متصل شده است و می‌تواند طبقه‌بندی دودویی، طبقه‌بندی چندکلاسی یا رگرسیون را بر مبنای داده‌هایی که یک مدل را ایجاد می‌کنند، به وجود آورد که این خدمات به میزان نسبتاً زیادی آمازون‌محور هستند.


  شکل 5:  نمایی از عملکرد یادگیری ماشینی آمازون

با این حال، این سرویس دارای سه مشکل عمده است. اول آنکه این سرویس به داده‌های ذخیره‌شده در آمازون متکی است، دوم آنکه قابلیت وارد یا خارج کردن مدل‌های خروجی در آن وجود ندارد و سوم آنکه از مجموعه‌ داده‌های بیش از 100 گیگابایت برای آموزش مدل‌ها پشتیبانی نمی‌کند. با این ‌حال، آمازون نشان داده است که چگونه یادگیری ماشینی می‌تواند از محصول تزیینی به محصول تجاری تبدیل شود.
Microsoft Distributed Machine Learning Toolkit see
بیشتر کامپیوترهایی که امروزه کاربران استفاده می‌کنند، مشکل عمده‌ای در ارتباط با یادگیری ماشینی دارند. توان پردازشی یک کامپیوتر منفرد برای سازمان‌دهی و مدیریت برنامه‌های یادگیری ماشینی کافی نیست. برای حل این مشکل می‌توان از ترفند خاصی استفاده کرد؛ به طوری که این کامپیوترها گردهم آمده و به یکدیگر متصل شوند. آن‌گاه برنامه‌های یادگیری ماشینی بر مبنای آن‌ها طراحی شده و اجرا شوند. ابزار یادگیری ماشینی توزیع‌شده DMTK، سرنام Distributed Machine Learning Toolkit، در اصل چارچوبی است که اسباب و وسایل لازم برای این مسئله را ارائه کرده است. (شکل 6) به‌طوری که وظایف مربوط به یادگیری ماشینی را روی کلاستری از سیستم‌ها پخش کرده تا هر یک به بخشی از پردازش‌ها رسیدگی کنند.


  شکل 6:  DMTK راهکار مایکروسافت در زمینه ایجاد سیستم‌های توزیع‌شده ویژه یادگیری ماشینی

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

==============================

شاید به این مقالات هم علاقمند باشید:

ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از کتابخانه‌های عمومی سراسر کشور و نیز از دکه‌های روزنامه‌فروشی تهیه نمائید.

ثبت اشتراک نسخه کاغذی ماهنامه شبکه     
ثبت اشتراک نسخه آنلاین

 

کتاب الکترونیک +Network راهنمای شبکه‌ها

  • برای دانلود تنها کتاب کامل ترجمه فارسی +Network  اینجا  کلیک کنید.

کتاب الکترونیک دوره مقدماتی آموزش پایتون

  • اگر قصد یادگیری برنامه‌نویسی را دارید ولی هیچ پیش‌زمینه‌ای ندارید اینجا کلیک کنید.

ایسوس

نظر شما چیست؟