মেশিন লার্নিং শেখার বেস্ট রোডম্যাপ

মেশিন লার্নিং(Machine Learning) শিখতে চাচ্ছেন? তবে কোথা থেকে শিখবেন? কিংবা কীভাবে শিখবেন? সেটা বুঝতে পারছেন না। তাহলে ভাইয়া/আপু এই ব্লগটি আপনার জন্য। যাইহোক, আপনি যদি মেশিন লার্নিং কী? তা না জানেন তবে নিচের লিংক থেকে পড়ে আসতে পারেন।

★ মেশিন লার্নিং কী? কিভাবে কাজ করে?

আর জানলে, পুরো ব্লগটি পড়া চালিয়ে যান।

ভূমিকা (Introduction)

একজন মেশিন লার্নিং ইঞ্জিনিয়ার (ML Engineer) হওয়ার জন্য নয়টি স্কিল (skill) আয়ত্ত করা প্রয়োজন। সেগুলো একে জানবো এই লিখাতেই। এখন মেশিন লার্নিং এর মাধ্যমে আমরা এমন মডেল তৈরি করতে পারি, যেটি বিভিন্ন ডেটা থেকে শিখে অনুমান করতে পারে কিংবা সিদ্ধান্ত নিতে পারে। একজন মেশিন লার্নিং ইঞ্জিনিয়ার হওয়ার জন্য আপনাকে প্রোগ্রামিং, ম্যাথমেটিক্স থেকে শুরু করে মডেল ডিপ্লোইমেন্ট পর্যন্ত শিখতে হবে।

ব্লগ পড়তে না চাইলে, এখানে ক্লিক করে, ভিডিও দেখতে পারেন।

প্রোগ্রামিং ভাষা (Programming Language)

প্রথমে আপনাকে পাইথন (Python) প্রোগ্রামিং এ দক্ষ হয়ে উঠতে হবে। কারণ মেশিন লার্নিং এ পাইথন হলো প্রাথমিক ল্যাঙ্গুয়েজ (Primary Language)। এটি অনেক সহজ, আর আপনি চাইলে এক-দুই মাসের মধ্যে পাইথন শিখতে পারবেন। পরবর্তীতে প্রয়োজনের তাগিদে আপনাকে জাভা(Java), সি প্লাস প্লাস(C+), আর(R) এর মতো প্রোগ্রামিং ল্যাঙ্গুয়েজ শিখতে হতে পারে। তবে নতুন হিসেবে শুধুমাত্র পাইথনে লেগে থাকুন। সবকিছু একবারে শিখে ফেলার চেষ্টা করে, নিজের উপর চাপ বাড়াবেন না।

So, Focus on Mastering Python First.

নিচে শেখার কিছু রিসোর্স দেওয়া হলো:

ভার্সন কন্ট্রোল সিস্টেম (Version Control System)

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

ডাটা স্ট্রাকচার ও অ্যালগরিদম (Data Structure and Algorithm)

তারপর ঝাঁপ দিতে হবে ডেটা স্ট্রাকচার ও অ্যালগরিদম এর জগতে। আমি জানি, অনেক self-taught ইঞ্জিনিয়ার এই স্টেপটিকে এড়িয়ে যান। তবে আমাকে বিশ্বাস করুন, ভাইয়া/আপু! প্রথমে আপনি ডেটা স্ট্রাকচার আর অ্যালগরিদম এর কনসেপ্ট গুলো রপ্ত করুন। তারপর দেখুন আপনার প্রবলেম সলভিং স্কিল কতটা বৃদ্ধি পায়। পাশাপাশি টেক জায়ান্ট কোম্পানি যেমন গুগল, অ্যামাজন আর মেটা(ফেসবুক) তাদের জব ইন্টারভিউতে ডেটা স্ট্রাকচার ও অ্যালগরিদম নিয়ে প্রশ্ন করতে খুব ভালোবাসে। এছাড়া বড় ডেটা সেটগুলোর কাছে আপনি ডেটা স্ট্রাকচার ও অ্যালগরিদম ছাড়া দুর্বল হয়ে পড়বেন। তাই আমি বলবো, আপনি দুই মাস মত সময় ডেটা স্ট্রাকচার ও অ্যালগরিদম শিখতে ব্যয় করুন।

পাইথন দিয়ে ডেটা স্ট্রাকচার ও অ্যালগরিদম শিখতে নিচের বইটি পড়তে পারেন।

SQL

এরপর আপনাকে SQL শিখতে হবে। SQL এর পূর্ণরূপ হলো Structured Query Language। যেটি দিয়ে ডেটাবেসের কাজগুলো করা হয়। আপনার মডেলে ব্যবহার করার ডেটা গুলোকে কিভাবে SQL দিয়ে এক্সেস ও অর্গানাইজ করবেন এটুকু তো শিখতেই হবে। SQL শিখতেও আপনার এক-দুই মাসের বেশি সময় লাগার কথা নয়।

গণিত ও পরিসংখ্যান (mathematics and statistics)

এরপর আপনার ম্যাথমেটিক্স এবং স্ট্যাটিসটিক্স এ সলিড ফাউন্ডেশন থাকতে হবে। কারণ মেশিন লার্নিং অ্যালগরিদম গুলো এই প্রিন্সিপাল গুলোর উপরেই প্রতিষ্ঠিত। এক্ষেত্রে, লিনিয়ার অ্যালজেবরা(linear algebra), ক্যালকুলাস (calculus), প্রবাবিলিটি (probability) এবং স্ট্যাটিস্টিক(statistics) এগুলোতে বেশি ফোকাস দেবেন। এগুলো আপনাকে বুঝতে সাহায্য করবে -“কিভাবে মেশিন লার্নিং অ্যালগরিদম গুলো কাজ করে?” এবং কিভাবে এগুলোকে অপটিমাইজ করবেন? এইটা থেকে দুই থেকে তিন মাস সময় অবশ্যই দেওয়া লাগবে।

ডেটা হ্যান্ডেলিং(data handling)

এবার পালা ডেটা হ্যান্ডেলিং এর। ডে টাকে পরিষ্কার ও সংঘটিত এবং বিশ্লেষণযোগ্য রাখা খুবই প্রয়োজন। এজন্য প্যান্ডাস(Pandas) ও নামপাই(NumPy) ব্যবহার করে ডেটা প্রসেসিং শিখতে হবে। আবার ডেটা ভিজুয়ালাইজ করাও প্রয়োজন। তাই Matplotlib, Seaborn এর সাথে পরিচিত হওয়া আবশ্যক। যদি পাইথন ও এস.কিউ.এল (SQL) জানা থাকে, তবে দুই মাসের মধ্যে এই স্কিল আয়ত্ত করা সম্ভব।

ML Fundamentals

এখন মেশিন লার্নিং ফান্ডামেন্টাল অনেক কথা বলা যাক- মেশিন লার্নিং অ্যালগোরিদম গুলোকে দুইটি ক্যাটাগরিতে বিভক্ত করা যায়- ১. সুপারভাইজড (supervised), ২. আনসুপারভাইজড(unsupervised)। সুপারভাইজড লার্নিং এ মডেলটি লেবেল ডেটা থেকে শিখে। যেটা বলতে বোঝায় প্রত্যেকটি ইনপুট একটি চেনা আউটপুটের সাথে আসে। আর আনসুপারভাইজড লার্নিং এ মডেলটি আন-লেবেলড ডেটা নিয়ে কাজ করে। আপনাকে আরো - TensorFlow, PyTorch এবং scikit-learn এর সাথে পরিচিত হতে হবে। এই টপিকের জন্য তিন মাস সময় দেওয়া আবশ্যক।

Advanced Topic

বেসিক জিনিসগুলোতে ভালো বুঝ আসলে এডভান্সড টপিকে যাওয়া যায়-

  • Ensemble Learning
  • Deep Learning
  • Neural Network
  • Natural language processing (NLP)
  • Computer Vision

এই অ্যাডভান্স টপিকগুলো আপনাকে জটিল সমস্যা ট্যাকেল দিয়ে আরও বেশি বাস্তবধর্মী মডেল তৈরি করতে সাহায্য করবে। এডভান্স টপিক এর পেছনেও ৩ মাস আপনাকে বরাদ্দ রাখতে হবে।

মডেল ডিপ্লয়মেন্ট (model deployment)

সবশেষ আপনাকে জানতে হবে- "কিভাবে আপনার তৈরি করা মডেল গুলোকে সার্ভিস এ নিয়ে যেতে হবে?" আসলে আমি বলতে চাচ্ছি, অন্য অ্যাপ্লিকেশন গুলো যাতে আপনার মডেলটি ব্যবহার করতে পারে সেজন্য simple web service তৈরি করতে হবে। আপনি পাইথনের Django আর Flask এর মতো ফ্রেমওয়ার্ক গুলো শিখে এই কাজ করতে পারবেন। মডেল প্যাকেজিং এর জন্য ডকারের (Docker) দিকেও একটু নজর দিবেন। (২ মাস বরাদ্দ)

এইতো পেয়ে গেলেন রোড ম্যাপ। যাইহোক! পাইথন প্রোগ্রামিং শিখতে চাইলে এখনই কচু প্রোগ্রামারের Python for unstoppable learners প্লেলিস্ট ফলো করতে পারেন।

টেকটিউনস এ আমাকে ফলো দিয়ে রাখতে ভুলবেন না কিন্তু!

Level 0

আমি মোহাম্মদ জাকারিয়া হোসেন। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 5 মাস 2 সপ্তাহ যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 6 টি টিউন ও 0 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 0 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।

Learn For Teach


টিউনস


আরও টিউনস


টিউনারের আরও টিউনস


টিউমেন্টস