معرفی بسترهای توسعه یادگیری ماشینی
مقدمه
به گزارش واحد فناوری اطلاعات سایبربان؛ در طول چند سال گذشته، بسیاری از شرکتهای فناوری اطلاعات، مانند فیسبوک، مایکروسافت و گوگل تمرکز خود را روی توسعهی یادگیری ماشینی قرار دادهاند. همچنین افراد بسیار زیادی هستند که به این موضوع و یادگیری آن علاقهمند هستند.
الگوریتمهای یادگیری ماشینی برای تجزیهوتحلیل، پیشبینی یا تشخیص الگوهای پنهان در دادهها استفاده شده و میتوانند با توجه به اطلاعاتی که به دست میآورد به مرور زمان پیشرفت کرده و بهبود پیدا کنند.
محیطهای ابری و سختافزارهایی مانند پردازندهی گرافیکی1 تنها سختافزارهای موردنیاز یادگیری ماشینی نیستند؛ بلکه چارچوبهای نرمافزاری2 بسیاری نیز برای آنها ایجاد شده است. همهی فناوریهای به کار رفته در یادگیری ماشینی متنباز هستند؛ اما اصلیترین مزیت آنها در دسترس بودن بخشهای انتزاعی مختلف آن برای توسعهدهندهها است.
در ادامه تعدادی از چارچوبهای یادگیری ماشینی که به تازگی در آنها تجدید نظر شده و کاربران برای آموزش مدلهای خود میتوانند از آنها استفاده کنند و تعدادی از ابزارهای متن بازی که الگوریتمهای یادگیری ماشینی معروف با آنها توسعه داده شدهاند، قابلمشاهده است.
لازم به ذکر است که هیچ ترتیب خاصی برای معرفی چارچوبهای موردنظر وجود ندارد.
1)Apache Spark Mllib
چارچوب مذکور را میتوان به عنوان بخشی از خانوادهی هادوپ3 (Hadoop)، به حساب آورد. با وجود این، چارچوب پردازش دادههای درون پایگاه دادهی مذکور، در خارج از اکوسیستم هادوپ به وجود آمد. اسپارک به علت رشد کتابخانهی الگوریتمها که میتوانند با سرعت بالایی دادههای درون پایگاه داده را پردازش کنند، به ابزاری برای یادگیری ماشینی تبدیل شده است. الگوریتمهای به کار رفته در این چارچوب به طور پیوسته در حال بهروزرسانی هستند. به عنوان مثال سال گذشته عملکرد بسیاری از الگوریتمهای آن بهبود پیدا کرده یا الگوریتم های جدیدی به آن اضافه شد. این چارچوب از زبان پایتون (Python) که یک زبان مثال برای مسائل ریاضی است، پشتیبانی میکند.
2)Apache Singa
چارچوبهای یادگیری عمیق (Deep Learning) وظیفهی تأمین قدرت عملکردهای یادگیری ماشینی مانند پردازش زبان طبیعی و تصویر را بر عهده دارد. سینگا اخیرا به عنوان یک چارچوب متن باز برای آموزش سادهی مدلهای یادگیری عمیق با حجم بالای دادهها شناخته شده است.
سینگا یک مدل برنامهنویسی ساده را برای آموزش شبکههای یادگیری ماشینی در تمام یک سامانه ارائه داده و از انواع بسیاری از تمرینهای بخشهای مختلف در زمینهی هوش مصنوعی، پشتیبانی میکند. این مدلها با توجه به نوع فعالیت برای گرفتن بهترین نتیجه، میتوانند به آموزش همزمان یا غیرهمزمان بپردازند.
3)Caffe
چارچوب یادگیری عمیق کافه، در سال 2013 برای پروژهی دید ماشینی (machine vision) ایجاد گشت. سپس به مرور زمان برای پروژههای چندرسانهای و گفتاری نیز توسعه داده شد.
سرعت بالا یکی از اولویتهای برنامهنویسی است؛ بنابراین کافه از زبانهای «C++» برای نوشته شدن استفاده میکند. از طرفی این چارچوب از کودا4 (CUDA) و جابهجایی سریع اطلاعات بین پردازندههای گرافیکی و مرکزی پشتیبانی میکند.
4) Microsoft Azure ML Studio
با توجه به میزان بالای دادهها و قدرت محاسباتی موردنیاز یادگیری ماشینی، فضای ابری محیطی مناسب برای این دست برنامههای به حساب میآید. مایکروسافت دارای بستر خدمات ابری رایگان آژُر (Azure) برای یادگیری ماشینی است. از طرفی مایکروسافت یک محیط توسعهی یادگیری ماشینی به نام آژر استودیو را در قالب نسخههای ماهانه، ساعتی و رایگان ایجاد کرده است.
استودیو مذکور به کاربر اجازه میدهد تا مدلهای مخصوص خود را ایجاد کرده و آموزش دهند و در نهایت آنها را به یک رابط برنامهنویسی نرمافزار (API) تبدیل و در اختیار دیگران قرار بگذارند. کاربران میتوانند تا 10 گیگابایت از اطلاعات مدل خود را در استودیو آژر ذخیره کنند. با وجود این در صورتی که کاربر دارای حساب کاربری آژر باشد میتواند فضای ذخیرهسازی خود را افزایش دهد. در محیط کاربری مذکور الگوریتمهای بسیاری در دسترس هستند که توسط مایکروسافت یا همکاران شخص ثالث آنها توسعه داده شده است.
بات معروف تشخیص سن افراد از روی عکس آنها که سال گذشته توسط مایکروسافت ایجاد و معرفی شد توسط استودیو ام. ال آژور ایجاد شده است.
برای استفاده از خدمات یادگیری ماشین مایکروسافت نیازی به ایجاد حساب کاربری وجود ندارد. علاقهمندان میتوانند بهصورت ناشناس و به مدت 8 ساعت از خدمات آن استفاده کنند.
5) Amazon Machine Learning
یادگیری ماشین آمازون خدمات رایگان را به توسعهدهندگان ارائه میدهد و توسعهدهندگان برای کار با آن نیازی به دانستن الگوریتمهای پیچیده یا دانش پیشرفتهی هوش مصنوعی ندارند. این بستر به کاربر امکان ایجاد الگوریتمهای پیشرفته، قوی و مقیاسپذیر را برای یادگیری ماشینی میدهد.
یادگیری ماشینی آمازون برای ذخیرهسازی دادهها به آمازون اس53 (Amazon S3)، رد شیفت (Redshift) یا آر. دی. اس (RDS) متصل بوده و از دادههای دودویی آن برای ایجاد مدلی از دادهها استفاده میکند.
با وجود تمام امکاناتی که آمازون ارائه میدهد، محیط کاربری آنها با محدودیتهایی نیز همراه است. حداکثر فضای ذخیرهسازی کاربران 100 گیگابایت تعیین شده و مدلهای ایجاد شده را نمیتوان منتقل یا به آن وارد کرد.
6- Microsoft Distributed Machine Learning Toolkit
هرچه تعداد رایانههایی که با یادگیری ماشینی درگیر هستند، بیشتر باشد، بهتر است؛ اما توسعهی برنامههای یادگیری ماشینی که بهطور مناسبی روی همهی آنها اجرا شده و با هم عمل کنند، مشکل است. چارچوب «DMTK» ابزاری را برای سامانههای یادگیری ماشینی توزیع شده در سراسر سیستمها، در اختیار کاربران قرار میدهد. این چارچوب باعث میشود تا عملیات الگوریتمهای یادگیری ماشینی روی ابر دادهها در مقیاسهای بزرگتر، کارآمدتر و منعطفتر صورت بگیرد.
طراحی DMTK به کاربران اجازه میدهد تا با استفاده از منابع محدودی که در اختیار دارند به توسعهی الگوریتمها بپردازند به عنوان مثال، هر گره در این سیستم توزیع شده دارای یک کش (Cash) محلی است که با استفاده از گره مرکزی باعث کاهش ترافیک میشود.
7- Google TensorFlow
تنسورفلو گوگل درست مانند DMTK مایکروسافت، یک چارچوب یادگیری ماشینی است که برای سامانههایی با گرههای چندگانه طراحی شد. این چارچوب ابتدا برای حل مشکلات داخلی گوگل و افزایش 5 برابری سرعت سامانههای یادگیری ماشینی آنها توسعه یافت. از این محصول هماکنون در خدمات جدید ایمیل گوگل با نام پاسخ هوشمند (Smart Replay) و بهبود عملکرد موتور جستجوگر آنها استفاده میشود. گوگل مدتی بعد از ساخت تنسورفلو آن را به صورت متنباز در اختیار همه قرار داد.
چارچوب مذکور با زبانهای پایتون و «C++» سازگاری داشته و میتواند محاسبات را روی هر دو پردازندهی مرکزی و گرافیکی انجام دهد. گوگل قصد دارد با قرار دادن تنسور فلو در اختیار شرکتهای شخص ثالث به تقویت عملکرد آن بپردازد و
8- Microsoft Computational Network Toolkit
شرکت مایکروسافت علاوه بر آژُر و DMTK، ابزارهای دیگری نیز برای توسعهی یادگیری ماشینی ایجاد کرده است. یکی از این ابزارها «CNTK» نام دارد. عملکرد این ابزار بسیار به تنسورفلو گوگل شباهت دارد. کاربر میتواند با استفاده از آن و استفاده از گرافهای جهتدار به تولید شبکههای عصبی بپردازد.
مایکروسافت ادعا میکند چارچوب مذکور تولید شده توسط آنها از نظر کارایی با کافه، ثآنو (Theano) و تورچ (Torch)، دیگر چارچوبهای یادگیری ماشینی قابلمقایسه است.
از مزیتهای اصلی چارچوب «CNTK» میتوان به توانایی بهرهگیری از پردازندههای مرکزی و گرافیکی بهصورت همزمان و به طور موازی، اشاره کرد. مایکروسافت بیان میکند از چارچوب مذکور و پردازندهی گرافیکی برای تسریع آموزش تشخیص گفتار کورتانا در آژُر استفاده کرده است.
چارچوب ذکر شده در بالا به عنوان بخشی از پروژهی تشخیص گفتار مایکروسافت، در آپریل 2015 توسعه داده شد و تحت لایسنس اِم. آی تی در وبگاه گیتهاب (GitHub) قرار گرفت.
9) Veles
وِلِس یک پلتفرم توزیع شده توسط سامسونگ است که برای برنامههای یادگیری عمیق، ایجاد شد. ولس مانند تنسورفلو و «DMTK» با زبان «C++» نوشته شده و میتواند از زبان پایتون نیز برای هماهنگی بین گرهها استفاده کند. دیتاست6 (Dataset) قبل از اینکه به خوشهها ارسال و توسط آنها تغذیه شود بهصورت خودکار تجزیهوتحلیل خواهد شد. از طرفی رابط برنامهنویسی نرمافزار «REST API» به کاربران اجازه میدهد تا مدلهای آموزش دیده را بلافاصله در محصولات استفاده کنند.
10) Brainstorm
چارچوب بریناستورم در سال 2015، توسط دانشجویان در «موسسهی داله موله برای تحقیقات هوش مصنوعی»7 (IDSIA) سوییس ایجاد شد. هدف از ایجاد این چارچوب سریع، قابلانعطاف و سرگرم کننده بودن شبکههای عصبی عمیق اعلام شد.
برین استورم در حال حاضر از چندین نوع شبکههای عصبی مانند «حافظههای کوتاهمدت عمیق»8 (LTSM) پشتیبانی میکند. برین استورم از پایتون برای مدیریت دادهی رابط برنامهنویسی نرمافزار استفاده میکند. چارچوب مذکور از دوکنترلر یکی کتابخانهی نامپای پایتون9 (Numpy) برای محاسبات پردازندهی مرکزی و دیگری استفاده از هستههای کودا برای پردازندهی گرافیکی بهره میبرد. از آنجایی این چارچوب از زبان پایتون استفاده میکند پس کاربران نباید انتظار یک نتیجه و رابط کاربری کاملاً گرافیکی را داشته باشند؛ اما در یک طرح بلندمدت امکان درس گرفتن از پروژههای متنباز قدیمی و استفاده از طراحیهای جدید سازگار با سیستمعاملها و پایانههای مختلف را فراهم میکند.
11) mlpack 2
جمعآوری منابع یادگیری ماشین باعث ایجاد ام. ال. پک شد. این چارچوب یک کتابخانه مقیاسپذیر بر پایهی بر پایهی یادگیری ماشین است که در سال 2011 برای C++ منتشر شد. این کتابخانه با هدف پیادهسازی سریع، ساده و مقیاسپذیر یادگیری ماشینی ایجاد شد.
کتابخانهی مذکور میتواند الگوریتمها را به عنوان برنامههای سادهی خط فرمان یا با رابط برنامهنویسی نرمافزار C++ برای کارهای پیچیدهتر ارائه بدهد.
الگوریتمها و ویژگیهای جدیدی در نسخهی دوم کتابخانهی مذکور به آن اضافه شد که باعث افزایش سرعت عملکرد آن شد. به عنوان مثال باعث شد تا تابع ایجاد اعداد تصادفی در نسخهی 11 زبان C++ بهبود پیدا کند.
12- Marvin
ماروین یک چارچوب شبکهی عصبی ایجاد شده توسط گروه چشماندازان پرینستون آمریکا (Princeton Vision Group) است. اولین هدف از طراحی این چارچوب، هک پذیر بودن آن است. چارچوب مذکور در C++ نوشته شده و با هستهی کودای پردازندهی گرافیکی کار میکند؛ اما تنها به تعداد کمی از این منابع وابسته است. از ماروین برای توسعهی سریع نمونهی اولیه با استفاده از زبان C و C++ استفاده میشود.
13- Neon
شرکت آمریکایی نروانا (Nervana)، پلتفرم یادگیری عمیق نرمافزاری و سختافزاری مخصوص به خود را ایجاد کرده و چارچوبی با نام نئون را به عنوان یک پروژهی متنباز ایجاد کرد. این چارچوب اجازهی انجام محاسبات سنگین روی پردازندهی گرافیکی، مرکزی یا سختافزارهای نرواتا را میدهد.
نئون با استفاده از پایتون و چند قطعه از C++ تولید شد تا سرعت عملکرد بالاتری داشته باشد. این موضوع باعث میشود تا به سرعت در دسترس افرادی که با دیگر چارچوبها قرار گرفته یا در زمینه علم دادهها10 در پایتون کار میکنند، قرار گیرد.
نتیجهگیری:
بسترهای معرفی شده در بالا نشان میدهد، فناوری یادگیری ماشینی به مرور زمان در حال فراگیر شدن هستند و افراد بسیاری به یادگیری آنها، علاقه نشان میدهند؛ به همین دلیل شرکتهای فناوری اطلاعات سعی دارند با عرضهی چارچوبهایی با کاراییهایی مختلف تولید و توسعهی این فناوری را سادهتر بکنند. به عنوان مثال میتوان به سامانهی تولید بات شرکت مایکروسافت که در اجلاس بیلد 2016 (Build 2016) معرفی شد، اشاره کرد. کاربر بدون نیاز به داشتن دانش یادگیری ماشینی و برنامهنویسی، بات موردنظر خود را تولید کرده و تنها با استفاده از یک رابط گرافیکی، اقدام به تقویت و آموزش آن میکند.
______________________________
1-GPU
2- Software Framework
3- هادوپ، بک چارچوب نرمافزاری است که از استفادهی دادههای برای برنامههای توزیع شده و متنباز حمایت میکند.
4- کودا یک مدل برنامهنویسی است که توسط شرکت انودیا ایجاد شد. این فناوری به توسعهدهندگان اجازه میدهد تا از هستههای پردازشی کارتهای گرافیک برای پردازش اطلاعات بهصورت موازی استفاده کنند.
5- آمازون اس 3 (Simple Storage Service)، یک خدمات وب ذخیرهسازی آنلاین فایلهای ارائه شده در خدمات وب آمازون است.
6- دیتاست، معمولاً یک مجموعه داده در محتوای یک جدول پایگاه داده است. همچنین میتواند یک ماترسی دادهی آماری در جدول باشد که هر ستون آن نشاندهندهی یک متغیر خاص و هر سطر نماینده از مجموعه دادههای استخراج شده تشکیل میشود.
7- Institute Dalle Molle for Artificial Intelligence
8- Long short-term memory
9- نامپای بستهی نرمافزاری قابل افزودن به پایتون است که کار با اعداد ایجاد شد.
10- علم داده (Data Science)، دانشی میانرشتهای پیرامون استخراج دانش و آگاهی از مجموعهای داده و اطلاعات است.