کتابخانههای یادگیری ماشین جاوااسکریپت
خدمات طراحی سایت و برنامه نویسی انواع پلتفرم ، اپلیکیشن در شمال کشور با سابقه درخشان از سال 1385 بصورت حرفه ای
.کتابخانه TensorFlow.js
TensorFlow.js یک کتابخانه منبعباز (open source) برای ساخت و آموزش مدلهای ماشین لرنینگ در جاوا اسکریپت است. و مجموعهای جامع از ابزارها را برای ساخت و آموزش مدلهای ماشین لرنینگ در مرورگر یا در یک محیط زماناجرای جاوا اسکریپت (JavaScript Runtime Environment) فراهم میکند.
محیط زماناجرای جاوا اسکریپت نرمافزاری است که دسترسی به کتابخانههای داخلی و اشیایی را که در دسترس یک برنامه هستند فراهم میکند تا بتواند با دنیای خارج تعامل داشته و کدها را به کار ببرد.
TensorFlow.js از طیف وسیعی از وظایف ماشین لرنینگ از جمله طبقهبندی تصاویر، ترجمه زبان و یادگیری تقویتی (RL: reinforcement learning) پشتیبانی میکند. و از آن برای امور مرتبط با NLP مانند تجزیه و تحلیل احساسات و تولید متن استفاده میشود.
یادگیری تقویتی زیرمجموعهای از یادگیری ماشین است که به یک سیستم مبتنی بر هوش مصنوعی اجازه میدهد تا از طریق آزمون و خطا با استفاده از بازخورد اقدامات خود وارد فرآیند یادگیری شود.
مدل ایجاد شده با Tensorflow اشیاء را در تصاویر و کاراکترهای دستنویس و همچنین چهرهها را در عکسها تشخیص میدهد. امروزه از این کتابخانه برای پیشبینی شیوع بیماریها، روند بازار سهام و رفتار مشتری نیز استفاده میشود.
۲. کتابخانه ML.js
ML.js یک API ارزشمند ارائه میدهد که توسعهدهندگان وب را قادر میسازد مدلهای یادگیری ماشین را فقط با چند خط کد بسازند و آموزش دهند. شما میتوانید از ML.js برای اجرای وظایف رایج ماشین لرنینگ مانند طبقهبندی، رگرسیون، خوشهبندی و کاهش ابعاد استفاده کنید. این کتابخانه همچنین شامل ابزارهای مرتبط با داده مانند پیشپردازش دادهها، استخراج ویژگیها و تجسم دادهها است که کمک میکند تا به توابع پیچیده ML دست یافت.
ML.js کاربردهای گستردهای دارد و برای پردازش زبان طبیعی (NLP)، بینایی کامپیوتر (Computer Vision) و سیستمهای توصیهگر استفاده میشود. این کتابخانه بر خوانایی تمرکز دارد. و به راحتی با پروژههای موجود توسعهدهنده ادغام میشود. مزیت دیگر این کتابخانه این است که جمعی از توسعهدهندگان وب و محققانی که فعالانه در حال توسعه و نگهداری ML.js هستند، از آن پشتیبانی میکنند.
۳. کتابخانه Neuro.js
Neuro.js کتابخانه جاوااسکریپت است که بر پردازش زبان طبیعی (NLP) تمرکز دارد. NLP به ایجاد دستیاران هوش مصنوعی و چتباتها کمک میکند. این کتابخانه شبکههای عصبی مانند شبکههای پیشخور (Feedforward Networks)، شبکههای بازگشتی (Recurrent Networks) و شبکههای پیچشی (Convolutional Networks) را آموزش میدهد.
شما میتوانید با استفاده از یک API ساده و شهودی یک معماری شبکه عصبی با این کتابخانه تعریف کنید. تعداد لایهها، تعداد نورونها در هر لایه، توابع فعالسازی و توابع هزینه یا زیان (Loss function) همگی قابل سفارشیسازی هستند.
به طور کلی، Neuro.js کتابخانه قدرتمند و کاربرپسند است. این کتابخانه هم برای افراد مبتدی و هم برای کاربران حرفهای که میخواهند یادگیری ماشین را در مرورگر یا Node.js تجربه کنند، مناسب است.
۴. کتابخانه Brain.js
Brain.js کتابخانه جاوا اسکریپت برای ماشین لرنینگ است که برای ساخت و آموزش شبکههای عصبی در مرورگر یا Node.js استفاده میشود. این کتابخانه رابط کاربر ساده و ملموسی دارد. و از طیف گستردهای از معماریهای شبکه عصبی از جمله شبکههای پیشخور، شبکههای بازگشتی و شبکههای حافظه طولانی کوتاهمدت (LSTM) پشتیبانی میکند.
ادغام این کتابخانه با طیف گستردهای از محیطها و پلتفرمهای توسعه به دلیل سازگاری بینپلتفرمی آن آسان است. Brain.js برای پروژههایی که نیاز به آموزش سریع و کارآمد شبکههای عصبی دارند مناسب است. همچنین این کتابخانه در هر مرورگر یا محیط Node.js قابل اجرا است. این همان ویژگی است که Brain.js را برای هر اپلیکیشن بیدرنگ (Realtime) مانند Game AI، اپلیکیشنهای وب و حتی برای اپلیکیشنهایی که میبایست تاخیر (Latency) کمی داشته باشند، ایدهآل میکند.
۵. کتابخانه OpenCV.js
OpenCV.js یک پورت جاوا اسکریپت از کتابخانه بینایی کامپیوتر و ماشین لرنینگِ منبعبازِ و محبوب OpenCV است.این کتابخانه شامل مجموعهای از ابزارها و الگوریتمهای قدرتمند برای پردازش و تجزیه و تحلیل تصاویر و ویدئوها در مرورگر یا محیطِ Node.js است.
استفاده از OpenCV.js اعمال کردن فیلتر بر روی تصاویر، تشخیص ویژگیها، تشخیص اشیا، تشخیص چهره و تحلیل شار نوری (Optical flow) را ممکن میسازد. همچنین این کتابخانه الگوریتمهای یادگیری ماشین مانند درختهای تصمیم، جنگلهای تصادفی و ماشینهای بردار را نیز پشتیبانی میکند.
OpenCV.js هم در برنامههای سمت کلاینت و هم در برنامههای سمت سرور استفاده میشود. همچنین از API آن برای ادغام قابلیتهای بینایی کامپیوتر در برنامههای وب استفاده میگردد.
۶. کتابخانه ML5.js
ML5.js کتابخانه جاوا اسکریپت سطح بالا برای آموزش و استفاده از مدلهای یادگیری ماشین در مرورگر است. این کتابخانه در پشتیبانی از وظایفِ (task) ماشین لرنینگ مشابه کتابخانه TensorFlow عمل میکند. ML5.js یک کتابخانه جامعهمحور است و برای مبتدیان مناسب است. چون که بر زمینههایی مانند اخلاق در دنیای کامپیوتر و جمعآوری دیتا تاکید بسیار دارد.
هنگام کار با محیط Node.js میتوان وابستگیها را اضافه کرد. برنامهنویسان میتوانند کتابخانههای جاوا اسکریپت ML را بدون اینکه نیاز باشد مدل را از صفر بسازند در پروژههای خود بگنجانند. این برنامه از برنامههای خلاقانه یادگیری ماشین مانند هنر مولد (Generative Art)، موسیقی و طراحی پشتیبانی میکند.
۷. کتابخانه WebDNN
WebDNN یک فریمورک یادگیری عمیقِ منبعباز است که اجرای شبکههای عصبی عمیق را در مرورگر امکانپذیر میکند. و شامل یک موتور زماناجرای (Runtime) چندپلتفرمی است که میتواند مدلهای یادگیری عمیق را روی دسکتاپ، لپتاپ، گوشیهای هوشمند و دستگاههای اِمبِد شده اجرا کند.
یکی از ویژگیهای کلیدی WebDNN توانایی آن برای اجرا بر روی مدلهای از پیش آموزشدیده (Pre-trained) مانند Tensorflow، Keras و PyTorch است. WebDNN همچنین شامل مجموعهای از APIها برای بارگیری و اجرای مدلهای یادگیری عمیق تبدیلشده در مرورگر وب است. یکی دیگر از مزایای WebDNN این است که از شتاب سختافزاری پشتیبانی و از فناوریهای آن مانند WebGL و WebGPU برای بهبود عملکرد مدلهای یادگیری عمیق استفاده میکند.
جمعبندی و نتیجهگیری
همانطور که گفته شد، با پیدایش کتابخانههای ماشین لرنینگ در جاوا اسکریپت توسعهدهندگان وب قابلیتهای ماشین لرنینگ را به برنامههای وب وارد کردند. در این مقاله، کتابخانههای TensorFlow.js, ML.js, Neuro.js, Brain.js, OpenCV.js, ML5.js, WebDNN معرفی شدند. دربارهی عملکرد و قابلیتهای هرکدام به صورت جداگانه بحث شد. در مقالات آتی، با معرفی کتابخانههای دیگر این مبحث جذاب و کاربردی را ادامه خواهیم داد.