মেশিন লার্নিংউইত জাভাস্রিপ্ট — JS
শুরু করার আগে বলে নিচ্ছি মেশিন লার্নিং কি? এবং একটু বেসিক ধারনা


মেশিন লার্নিং এ বড় ধরণের একটা সাফল্য দশটা মাইক্রোসফট এর সমান হবে। এটা আমার কথা না, বিল গেটস নিজের কথা।
**সাধারণত আমরা কম্পিউটারকে কিছু ইন্সট্রাকশন দেই, কম্পিউটার সে অনুযায়ী কাজ করে। কিন্তু মেশিন লার্নিং এর ক্ষেত্রে আমরা কিছু প্রসেস বলে দেই, বাকিটা সে নিজে নিজে শিখে নেয় এবং সে অনুযায়ী কাজ করে।
কম্পিউটার প্রোগ্রামকে ডেটা দিলেই তা এনালাইসিস করতে পারবে না। আমাদের কিছু ইন্সট্রাকশন দিয়ে দিতে হবে কিভাবে ডেটা এনালাইসিস করতে হবে। কি কি অ্যালগরিদম কিভাবে ব্যবহার করতে হবে, ইত্যাদি। এসব করে দিলে বাকি কাজ মেশিন বা প্রোগ্রাম নিজে করবে। এখন ছোট খাটো অ্যাপেও মেশিন লার্নিং এর দরকার হয়। ডেটা মাইনিং, ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং, ইমেজ রিকগনিশন, এক্সপার্ট সিস্টেম সহ কম্পিউটার সাইন্স এবং আর্টিফিশিয়াল ইন্টীলিজেন্স এর অনেক জায়গায় মেশিন লার্নিং এর প্রয়োগ হয়।
যেমনঃ আপনি ইউটিউব এ যখন গান শুনেন তখন সাজেস্টেট গান গুলা আপনার সার্চ এবং আপনার দেখার উপর ভিত্তি করে আসে অর্থাৎ কন্ডিশনালি মেশিন শিখে গেছে আপনার কোন গুলা পছন্দ আপনার ব্যাবহারের উপর

আরেকটি উদাহরণঃ ইমেলে আসা কোনটা স্প্যাম, কোনটা স্প্যাম না, তা বের করতেও মেশিন লার্নিং বা ক্লাসিফিকেশন অ্যালগরিদম ব্যবহৃত হয়।
মেশিন লার্নিং অ্যালগরিদম গুলোকে প্রধানত চার ক্যাটেগরিতে ভাগ করা যায়।
Supervised Learning.
Unsupervised learning.
Semi-Supervised learning
Reinforcement learning
Supervised Learning: কিছু প্রি ডিফাইন ডেটাসেট এর উপর প্রোগ্রামকে ট্রেইন করা হয়। ঐ ট্রেইন ডেটা এর উপর ভিত্তি করে প্রোগ্রাম ডিসিশন দেয়। এটা হচ্ছে সুপারভাইসড লার্নিং। যেমন মেইলটি কি স্প্যাম না কি স্প্যাম না, এই ডিসিশনটা আগের কিছু ডেটার উপর নির্ভর করে দেয়া হয়।
Unsupervised learning: আনসুপারভাইসড লার্নিং এ প্রোগ্রামকে কিছু ডেটা দেওয়া হয়। প্রোগ্রাম ঐ ডেটার উপর নির্ভর করে ডিসিশন দেয়।
Semi-Supervised learning: সেমি সুপারভাইসড লার্নিং বলা যায় সুপারভাইসড এবং আনসুপারভাইসড এর মিশ্রন।
Reinforcement learning: আমরা ছোটবেলায় কিভাবে শিখি? কোন কিছু করার পর ভালো লাগলে তা বেশি করে করি। আবার কোন কিছু করে ব্যথা পেলে তা আর করি না। বাস্তবে মানুষ বা কোন প্রাণী যেভাবে শিখে, রিইনফোর্সমেন্ট লার্নিং এ কোন প্রোগ্রামে ঠিক ঐ ভাবে ট্রেইন করা হয়।
মেশিন লার্নিং JS দিয়ে শুরু করার জন্য ভাল একটি জিনিসঃ
মেশিঞ লার্নিং শুরু করার জন্য কয়েকটি লাইব্রেরী আছে যেমন
1.TensorFlow JS
2. Ml5.js
3. P5.js
আমি কথা বলব এম এল ৫ জে এস নিয়ে
তাকে বলা হয়ঃ ml5.js — Friendly Machine Learning for the Web
কেন ml5.js কারন আপনি খুব সহজে এটি ইউজ করতে পারবেন এবং এইটা tensorFlow.js এর টপ লেয়ার ব্যাবহার করে তৈরী করা হয়েছে
এবং p5.js থেকে অনুপ্রেরিত হয়ে তৈরী করা হয়েছে যেন খুব সহজেই মেশিং লার্নিং শুরু করা যায় এবং ওয়েভ এ কাজ করা যায়
অর্থাৎ আপনি tensorFlow.js and p5.js এই ২ টি লাইব্রেবীর মিশ্রন পাবেন এবং সব করতে পারবেন
শুরু করা যাকঃ
Install:
** code editor like vsCode “https://code.visualstudio.com/”
** node.js “https://nodejs.org/en/download/”
** P5 generator “npm install p5-manager -g”
এইগুলো ইন্সটল করে নিন তারপর আপনি
আপনার নির্দিষ্ট ফোল্ডারে যেয়ে আপনি একটি কমান্ড চালান
“p-5 generate -b your_project_name”
চিত্র ১ এর মত একটি ফোল্ডার স্ট্রাকচার পাবেন

তারপর আপনি sketch.js আপনার কাজ শুরু তার আগে আপনাকে
Ml5.js এর সিডিএন হেডার ফাইল এর ভিতরে লিংক করতে হবে ।
<script src=”https://unpkg.com/ml5@latest/dist/ml5.min.js"></script>
তারপর আপনি ইমেজ ক্লাসিফিকেশন এর জন্য sketch.js মত কোড করেন তাহলে আপনি আপনার মেশিং লার্নিং এর যাত্রা শুরু
নোটঃ লাইভ সার্ভার এক্সটেনশন ডাউনলোড করে নিয়েন .
সাধারন একটি কথাঃ -ml5.js এর ডকুমেন্টেশন এত সহজ করে তৈরী করা হয়েছে যেন খুব সহজে যে কেউ বুঝতে পারে আমি ইউটিউব ভিডিও প্রেপার করব
ধন্যবাদ
আমি নিচে রির্সোস দিয়ে দিচ্ছি

আমার গিটহাব কোডঃ https://github.com/linkon63/machineLearningWIthJS
-ml5.js doc : https://learn.ml5js.org/#/
যারা ভিডিও দেখে কাজ করতে পছন্দ করেনঃ
-ml5.js এর অফিশিয়ার টিউটরিয়াল আছেঃ
https://www.youtube.com/watch?v=jmznx0Q1fP0
Blog resources: https://jakir.me/%E0%A6%AE%E0%A7%87%E0%A6%B6%E0%A6%BF%E0.../