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

shabake-mag.jpg

اگر جست‌وجویی در ارتباط با کتابخانه‌هایی داشته باشید که برای جاوااسکریپت توسعه پیدا کرده‌اند و قابلیت استفاده در پروژه‌هایی مثل یادگیری ماشین و علم داده‌ها را دارند به نام‌های بزرگی مثل nlp.js ،D3.js یا Chart.js (قابل استفاده در مصورسازی داده‌ها)، Brain.js ،TensorFlow.js برخورد می‌کنید. نکته قابل تاملی که باید در این زمینه به آن اشاره کنیم این است که اجرای مدل‌ها و برنامه‌های یادگیری ماشین به‌شکل سرویس‌های سمت کاربر در مرورگرها، فرصت‌های جدیدی در اختیار پژوهشگران قرار داده و پلتفرم توسعه نرم‌افزار جدیدی برای توسعه‌دهندگان یادگیری ماشین پدید آورده است. جالب آن‌که، قابلیت اجرای مدل‌های یادگیری ماشین در مرورگرها، حوزه تحقیقاتی و برنامه‌نویسی جدیدی به‌نام «سیستم‌های یادگیری ماشین تعاملی» (Interactive Machine Learning) را پدید آورده است. شما می‌توانید طیف گسترده‌ای از قابلیت‌های یادگیری ماشین یا علم داده را در جاوااسکریپت با استفاده از این کتابخانه‌ها هم در مرورگرها و هم در پس‌زمینه با استفاده از Node.js پیاده‌سازی کنید. در نمونه قابل تاملی، در جریان گردهمایی TensorFlow Developer Summit در سال 2018، دو نفر از برنامه‌نویسان تیم توسعه کتابخانه تنسورفلو (TensorFlow)، فرآیند آموزش یک مدل یادگیری ماشین برای کنترل بازی PAC-MAN را با استفاده از بینایی کامپیوتر و وب‌کم به نمایش گذاشتند. ویژگی مهم نمایش ارائه‌شده از نحوه عملکرد کتابخانه یادگیری ماشین در جاوااسکریپت (TensorFlow.js) این بود که تمامی مراحل اجرای برنامه (آموزش مدل و کنترل بازی PAC-MAN با استفاده از تکنیک‌های بینایی کامپیوتر و وب‌کم)، به‌طور کامل در مرورگر صفحات وب انجام شده بود. با این مقدمه به‌سراغ معرفی کتابخانه‌های برتر جاوااسکریپت در حوزه یادگیری ماشین، پردازش زبان طبیعی و مصورسازی داده‌ها خواهیم رفت.

1. Brain.js

Brain.js یک کتابخانه جاوااسکریپت برای یادگیری ماشین و به‌ویژه شبکه‌های عصبی است. کتابخانه فوق عملکرد بسیار سریعی دارد، زیرا از پردازنده گرافیکی برای محاسبات استفاده می‌کند و همچنین توانایی بازگشت به حالت عادی و اجرای دستورات جاوااسکریپت را هنگامی‌که پردازنده گرافیکی در دسترس نیست دارد. Brain.js توانایی پیاده‌سازی انواع مختلفی از شبکه‌های عصبی را دارد. نکته مثبتی که کتابخانه فوق دارد این است که برای استفاده از این کتابخانه نیازی به آشنایی عمیق با شبکه‌های عصبی ندارید. همچنین، می‌توانید مدل‌ها را به‌صورت تابع یا با فرمت JSON  به پروژه یا وب‌سایت خود وارد کنید. این کتابخانه سرویس‌های مختلف مثل math routines در اختیار توسعه‌دهندگان قرار می‌دهد. از قابلیت‌های مهمی که کتابخانه فوق در اختیار توسعه‌دهندگان قرار می‌دهد باید به آموزش غیرهمزمان که قابلیت هماهنگ شدن با چند شبکه موازی را دارد، اعتبارسنجی متقابل که یک روش اعتبارسنجی پیچیده و ارزشمند است، استفاده از پردازنده گرافیکی برای آموزش شبکه، و ذخیره و بارگذاری اطلاعات با استفاده از فایل JSON اشاره کرد. 

2. TensorFlow.js

TensorFlow.js یک کتابخانه یادگیری ماشین در جاوااسکریپت است که دارای ابزارها، کتابخانه‌ها و منابع جامع و انعطاف‌پذیر در ارتباط با یادگیری ماشین است. می‌توانید مدل‌های رسمی TensorFlow را که از قبل در دسترس هستند اجرا کنید یا می‌توانید مدل‌های پایتون خود را با استفاده از این کتابخانه اجرا کنید. همچنین، مدل‌های یادگیری ماشین از‌قبل‌آماده‌‌شده‌ای در دسترس توسعه‌دهندگان قرار می‌دهد تا با استفاده از داده‌های خود آن‌ها را آموزش دهند. علاوه بر این، می‌توانید مدل‌های یادگیری ماشین را در هر مکانی مثل ابر، مرورگر، به‌شکل توکار یا روی سامانه‌ها اجرا کنید. به‌طور کلی باید بگوییم که TensorFlow.js یک نسخه از تنسورفلو همراه با قابلیت‌های مختلف مثل TensorFlow Lite برای دستگاه‌های تلفن همراه، TensorFlow Rust برای اتصال‌های Rust ،TensorFlow Extended و غیره است. کتابخانه مذکور، نقطه شروع مناسبی برای یادگیری مباحث مرتبط با یادگیری عمیق، بینایی کامپیوتر و شبکه‌های عصبی برای برنامه‌نویسان مبتدی و علاقه‌مندان به زبان جاوااسکریپت است. 

3. Synaptic

سیناپتیک (Synaptic) یک کتابخانه شبکه عصبی جاوااسکریپتی است که برای node.js و مرورگرها ایجاد شده است. کتابخانه فوق اجازه می‌دهد تا شبکه‌ها را به‌عنوان توابع مستقل به JSON وارد یا صادر کرد؛ شبکه‌هایی که توانایی تعامل با شبکه‌های دیگر را دارند. علاوه بر این، کتابخانه فوق از معماری‌های داخلی ازپیش‌ساخته‌شده‌ای مثل Liquid State Machine، شبکه‌های حافظه‌ کوتاه‌مدت طولانی (LSTM)، پرسپترون‌های چندلایه، شبکه‌های هاپفیلد و غیره پشتیبانی کنند. علاوه بر این، قابلیت ترکیب با انواع مختلفی از شبکه‌ها و مجموعه‌های آموزشی را دارند. سیناپتیک یک کتابخانه منبع‌باز تحت مجوز MIT است، بنابراین هر توسعه‌دهنده‌ای می‌تواند به‌شکل رایگان از آن استفاده کند یا در توسعه آن مشارکت داشته باشد. 

4. ConvNetJS

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

5. ml5.js

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

ml5.js قابلیت‌های ویژه‌ای در اختیار افرادی قرار می‌دهد که قصد دارند به شیوه مسئولانه اقدام به جمع‌آوری داده‌ها کنند که حریم خصوصی افراد یا شرکت‌ها حفظ شود و علاوه بر این، بتوان از مجموعه داده‌ها در ارتباط با پروژه‌های یادگیری ماشین استفاده کرد. 

6. nlp.js

nlp.js یک ابزار زبان طبیعی مبتنی بر جاوااسکریپت برای nodejs است. کتابخانه فوق عملکردهای مختلفی را مانند حدس زدن زبان استفاده‌شده در یک عبارت، ریشه‌یابی (Stemmer)، واحدسازی (tokenizer) که مرز کلمات در متون را تشخیص داده و متن را به دنباله‌ای از کلمات تبدیل می‌کند و آن‌را برای تحلیل‌های بعدی آماده می‌کند، ارائه می‌کند. علاوه بر این، nlp.js قادر به تجزیه‌و‌تحلیل احساسات در عبارات مختلف نوشته‌شده در یک زبان است. همچنین، می‌توانید مفاهیم را طبقه‌بندی کنید و سپس با استفاده از طبقه‌بندی‌کننده پردازش زبان طبیعی (Language Processing Classifier) و مدیر تولید زبان طبیعی (Natural Language Generation Manager) بر مبنای مفهومی که مشخص کرده‌اید، پاسخی برای جمله ایجاد کنید. nlp.js از 40 زبان پشتیبانی می‌کند و علاوه بر این از 104 زبان بر مبنای مدل ادغام BERT پشتیبانی می‌کند.

7. Compromise

Compromise یک کتابخانه جاوااسکریپت است که به‌طور خاص روی پردازش زبان طبیعی متمرکز شده است تا تفسیر و پیش‌تجزیه متون برای تصمیم‌گیری بر مبنای محتوای متن ساده‌تر شود. Compromise توانایی فشرده‌سازی یا همان کوتاه‌کردن کلمات را دارد و بر مبنای محتوای متن قادر به نوشتن کامل اصطلاحات یا کلمات است. کتابخانه فوق می‌تواند 99.99٪ از کل واژگان انگلیسی را با 14000 کلمه مدیریت کند تا فایلی که تنها 40 کیلوبایت فضا اشغال می‌کند، ایجاد شود. رویکرد فوق باعث شده تا Compromise  در درک و اسکن کلمات تاخیر در حد میلی‌ثانیه داشته باشد. 

8. D3.js

D3 یا Data-driven یک کتابخانه جاوااسکریپت است که می‌تواند برای دستکاری داده‌ها با استفاده از HTML ،CSS و SVG و مصورسازی سفارشی داده‌ها مورد استفاده قرار گیرد. D3 این ظرفیت را دارد که اسناد را با یک مدل شیءگرای سند ترکیب کند و سپس به تبدیل سند بر اساس الزامات تعیین‌شده بپردازد. علاوه بر این، D3 دارای نمودارهای مختلف برای تجزیه‌و‌تحلیل داده‌ها مانند هیستوگرام، نقشه درختی، نمودارهای میله‌ای، نمودارهای پراکنده، نمودارهای خطی، نمودارهای دایره‌ای و غیره است. D3 از پویانمایی نیز پشتیبانی می‌کند. گزینه‌هایی مانند نقشه درختی متحرک، نمودارهای میله‌ای با قابلیت بزرگ‌نمایی، نمودار قندیلی (icicles)، char races و غیره از امکاناتی هستند که کتابخانه فوق در اختیار توسعه‌دهندگان قرار می‌دهد. 

9. Chart.js

Chart.js یک کتابخانه نموداری جاوااسکریپت منبع‌باز است که دسترسی به 8 نوع نمودار گسترده را ارائه می‌دهد و از نمودارهای رایج مانند نمودارهای میله‌ای، دایره‌ای، هیستوگرام، پراکندگی، نمودارهای خطا و غیره پشتیبانی می‌کند. این امکان وجود دارد تا تمامی نمودارها را با یک‌دیگر ترکیب کرد. علاوه بر این از پویانمایی نیز پشتیبانی می‌کند. Chart.js می‌تواند به‌راحتی در تمام مرورگرهای وب رندر شود و نمودار را با توجه به اندازه پنجره مرورگر وب تنظیم کند. در صورت نیاز به یک محور زمانی، تمام نمودارهای این کتابخانه را می‌توان با کتابخانه moment.js ترکیب کرد.

10. Sigma.js

نمودارها بخش بسیار مهمی از مصورسازی داده‌ها هستند و sigma.js به‌طور خاص بر ترسیم نمودار متمرکز است. کتابخانه فوق دارای ویژگی‌های ازپیش‌ساخته‌شده برای مصورسازی نمودارها و انتشار آن‌ها در صفحات وب است. Sigma.js از Canvas و WebGL پشتیبانی می‌کند و گزینه‌هایی برای استفاده بهتر از ماوس و صفحه لمسی، رندر سفارشی و دسترس‌پذیری در اختیار توسعه‌دهندگان قرار می‌دهد. کتابخانه فوق اجازه می‌دهد تا داده‌ها را تغییر دهید، دوربین خود را جابه‌جا کنید، رویدادهایی تولید کنید و رندر را به هر شکلی که می‌خواهید انجام دهید تا بالاترین سطح از تعامل با نمودارها ایجاد شود.

کلام آخر

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

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

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

 

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

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

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

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

ایسوس

نظر شما چیست؟