10 نمونه از یادگیری ماشین در جاوااسکریپت

گردآوری و تالیف : ارسطو عباسی
تاریخ انتشار : 02 تیر 1397
دسته بندی ها : جاوا اسکریپت

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

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

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

1. Brain

Brain

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

۲. Deep playground

Deep playground

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

۳. FlappyLearning

FlappyLearning

FlappyLearning یک پروژه جاوااسکریپتی است که در تقریبا ۸۰۰ خط کد نوشته شده است. از این پروژه برای ایجاد یک ماشینی با قابلیت انجام بازی Flappy Bird استفاده شده است. تکنیک هوش مصنوعی استفاده شده در این پروژه Neuroevolution نام دارد. در این سیستم الگوریتم‌های اعمال شده براساس سیستم نورون‌ها در طبیعت کار می‌کند. این موضوع روند یادگیری را با انجام کارهای تکراری که به شکست یا موفقیت منجر می‌شود، اجرا می‌شود. استفاده کردن از پیش‌نمایش بسیار ساده است تنها کافی است که فایل index.html را در مرورگر اجرا کنید.

۴. Synaptic

Synaptic

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

۵. Land Lines

Land Lines

Land Lines یک پروژه Chrome Web است که می تواند تصاویر ماهواره‌ای روی زمین را پیدا کند. اپلیکیشن به هیچ ارتباطی با سرور نیاز ندارد. تمام موارد روی مرورگر اجرا می‌شود. به لطف استفاده صحیح از یادگیری ماشین و WebGL، کارایی این پروژه روی دستگاه‌های موبایل بسیار خوب است. می‌توانید پروژه را به صورت متن باز روی گیت‌هاب در این لینک مشاهده کنید و یا اینکه مطالعه کاملی در رابطه با آن رو در این لینک داشته باشید. 

۶. ConvNetJS

ConvNetJS

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

۷. Thing Translator

Thing Translator

Thing Translator یک پروژه آزمایشی مبتنی بر وب است که به موبایل‌تان این قابلیت را می‌دهد تا بتواند اشیاء واقعی در دنیا را شناسایی کند و نام آن را در زبان‌های مختلف نمایش دهد. اپلیکیشن کاملا براساس تکنولوژی‌های مبتنی بر وب ایجاد شده و از دو API گوگل برای یادگیری ماشین استفاده می‌کند - Cloud Vision برای تشخیص تصاویر و Translate API برای ترجمه موارد. 

۸. Neurojs

Neurojs

این مورد فریمورکی برای ایجاد سیستم‌های هوش‌مصنوعی براساس یادگیری تقویتی است. متاسفانه این پروژه متن باز از مستندسازی خوبی بهره نمی‌برد اما وجود پیش‌نمایش‌هایی از این کتابخانه می‌تواند دیدگاه خوبی را برای کار کردن به شما بدهد. این کتابخانه به صورت کامل براساس جاوااسکریپت ایجاد شده و از ابزارهایی مانند وب‌پک و Babel نیز استفاده می‌کند.

۹. Machine_learning

Machine_learning

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

۱۰. DeepForge

DeepForge

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

۱۱. Bonus: Machine Learning in Javascript

Bonus

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

در پایان

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

منبع

مقالات پیشنهادی

مقدمه‌ای بر TensorFlow.js - یادگیری ماشین در جاوااسکریپت

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

۱۰ قطعه کد هشدار با استفاده از CSS و جاوااسکریپت

در گذشته این پیغام‌ها تنها با استفاده از alertهای داخل جاوااسکریپت نمایش داده می‌شد که بعضی اوقات این موضوع عذاب آور بود. اما امروزه می‌توانیم چنین چی...

آموزش less در 10 دقیقه

همه ما میدونیم که نوشتن کد های css کمی خسته کننده است ، مخصوصا زمانی که روی یه پروژه جدی با هزاران خط کد کار میکنیم . شما مجبورید تا آخر پروژه کد های...

10 کتابخانه مفید جاوااسکریپت

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