মেশিন লার্নিং কী তা নিয়ে পরে বিস্তারিত আলোচনা করা হবে তবে সংক্ষেপে বলা যেতে পারে, যদি কোন মেশিন অভিজ্ঞতার উপর ভিত্তি করে নিজে নিজে শিখতে পারে কিংবা ভবিষ্যদ্বানী করতে পারে তাহলে বলা যায় সিস্টেমটি ইন্টেলিজেন্ট বা ML Activated।
বর্তমানে যেকোন ইঞ্জিনিয়ারিং বিভাগের জন্য মেশিন লার্নিং একটি গুরুত্বপূর্ণ বিষয় হয়ে দাঁড়িয়েছে। ডেটা অ্যানালাইসিস, ক্লাসিফিকেশন, প্রেডিকশনের জন্য এটা শেখা অত্যন্ত জরুরি। বিগ ডেটা, ডেটা সায়েন্স, আর্টিফিশিয়াল ইন্টেলিজেন্সের সাথে মেশিন লার্নিং ওতপ্রোতভাবে জড়িত। বর্তমানে সাধারণ ওয়েব অ্যাপ কিংবা মোবাইল ফোনেও ML এর বিভিন্ন থিওরি অ্যাপ্লাই করা হয় যাতে আপনার ব্যবহারকৃত অ্যাপ্লিকেশনটি আরও ইন্টেলিজেন্ট হয় এবং আপনার মনের কথা বোঝার ক্ষমতা অর্জন করতে পারে। সাধারণ অ্যাপ ও ML ইম্প্লিমেন্টেড অ্যাপের মধ্যে তফাৎ হল এই, সাধারণ অ্যাপ্লিকেশন সব সময় সাধারণই থাকবে কিন্তু ML ইম্প্লিমেন্টেড অ্যাপটি হবে অনন্যসাধারণ, প্রতিবার ব্যবহার করার পর আপনার মনে হবে অ্যাপটি যেন আরও ইন্টেলিজেন্ট হচ্ছে। তবে ML যে শুধু অ্যাপকে ইন্টেলিজেন্স দিতে পারে তাই নয়, রোগ নির্ণয় থেকে শুরু করে যেকোন ধরণের ক্লাসিফিকেশন ও প্রেডিকশনের জন্য ML এর জুড়ি নেই। এই বইয়ে মূলত মডেল তৈরির পাশাপাশি এর পিছনের ম্যাথমেটিক্সেরও ব্যাখ্যা যথাসাধ্য সাবলীল ভাষায় উপস্থাপন করা হবে।
আর্টিফিশিয়াল ইন্টেলিজেন্স, বিগ ডেটা, ডেটা মাইনিং এ আগ্রহী কিংবা ML প্র্যাকটিশনার , ML হবিস্ট ও ML বিগিনারদের জন্য এই বই। আর্টিফিশিয়াল ইন্টেলিজেন্স এর নাম শুনেছেন কিন্তু অ্যাপ্লাই করার যাদের শখ তারাও চাইলে বইটি পড়তে পারেন। বিস্তারিত নিচে বলা হল।
- বেসিক পাইথন প্রোগ্রামিং*
- বেসিক MATLAB প্রোগ্রামিং*
- বেসিক JavaScript প্রোগ্রামিং*
- লিনিয়ার অ্যালজেব্রা*
- Pythonic Syntactic Sugar
- OOP Python পারলে সেটাকে প্লাস পয়েন্ট হিসেবে ধরা যাবে
- ক্যালকুলাস (ইন্টিগ্রাল ও ডিফারেনশিয়াল)
- বেসিক পরিসংখ্যান জ্ঞান যেমন: Mean, Mode, Median, Variance, Co-Variance, Correlation, Standard Deviation...
মেশিন লার্নিং আসলে অনেক বিস্তৃত একটি বিষয়। একটি বইয়ে এটা কম্প্লিট করা সম্ভব নয়। প্রতিনিয়তই ভাল থেকে আরও ভাল মডেল বিল্ড করার পদ্ধতির রিসার্চ চলছে। এই বইয়ে মূলত আপনাকে মেশিন লার্নিংয়ের সাথে পরিচয় করিয়ে দেওয়া হবে, তবে অ্যাডভান্সড লেভেলে যেতে হবে আপনার নিজেরই। তাহলে টপিকগুলো এক নজরে দেখা যাক (সম্পূর্ণ টপিক পরে আপডেট করা হবে):
-
প্রয়োজনীয় সফটওয়্যার ইন্সটলেশন
- Anaconda Python Distribution ইন্সটলেশন
- PyCharm IDE এর সাথে পরিচয় ও ইন্সটলেশন
- Sublime Text 3 কে Python এর উপযোগী করে তোলা
-
মেশিন লার্নিং কিক স্টার্ট
- মেশিন লার্নিং কী?
- মেশিন লার্নিংয়ের প্রয়োগ কী?
- রিগ্রেশন কী?
- লিনিয়ার ও পলিনমিয়াল রিগ্রেসন কী?
- সিম্পল লিনিয়ার রিগ্রেশন এর মাধ্যমে প্রেডিকশন (Sklearn মডিউল ব্যবহার করে)
- সিম্পল লিনিয়ার রিগ্রেশন এর মাধ্যমে প্রেডিকশন (Scratch থেকে মডেল তৈরি করা)
-
মেশিন লার্নিং কিক স্টার্ট ২
- Supervised Learning
- Unsupervised Learning
-
দুইটা প্রয়োজনীয় প্রেডিকশন অ্যালগরিদম
- কেন এই দুইটা অ্যালগরিদম প্রয়োজনীয়?
- পেনালাইজড রিগ্রেশন মেথড (Penalized Regression Method) কী?
- এনসেম্বল মেথড (Ensemble Method) কী?
- কীভাবে অ্যালগরিদম সিলেক্ট করবেন?
- প্রেডিক্টিভ মডেল তৈরি করার সাধারণ রেসিপি
-
সমস্যা চিনুন ডেটাসেট চেনার মাধ্যমে
- নতুন কোন সমস্যার ব্যবচ্ছেদ
- অ্যাট্রিবিউট ও লেবেল কী? সমার্থক শব্দগুলো কী কী?
- ডেটাসেট এর যেসব জিনিসের দিকে খেয়াল রাখতে হবে
- নতুন কোন সমস্যার ব্যবচ্ছেদ
-
মডেল ও Cost Function
- মডেল রিপ্রেজেন্টেশন
- Cost Function
- Cost Function Intuition - 1
- Cost Function Intuition - 2
- Ovefitting - আপনার বানানো মডেল কী একটু বেশিই ভাল পার্ফর্ম করছে?
- মডেল রিপ্রেজেন্টেশন
-
Parameter লার্নিং
- গ্রেডিয়েন্ট ডিসেন্ট
- গ্রেডিয়েন্ট ডিসেন্ট ইনটুইশন
- লিনিয়ার রিগ্রেশনে গ্রেডিয়েন্ট ডিসেন্ট
- চলবে
-
মেশিন লার্নিং প্রস্তুতি
-
লিনিয়ার রিগ্রেশন
- লিনিয়ার রিগ্রেশন প্রাথমিক আলোচনা
- লিনিয়ার রিগ্রেশন পর্ব-২ ও গ্রেডিয়েন্ট ডিসেন্ট
- মাল্টিভ্যারিয়েবল লিনিয়ার রিগ্রেশন
- প্র্যাক্টিক্যাল লিনিয়ার রিগ্রেশন
- মাল্টিভ্যারিয়েবল লিনিয়ার রিগ্রেশন : গ্রেডিয়েন্ট ডিসেন্ট অ্যালগরিদমের রকমফের
- প্র্যাক্টিক্যাল মাল্টিভ্যারিয়েবল লিনিয়ার রিগ্রেশন : গ্রেডিয়েন্ট ডিসেন্টের নরমাল ফর্ম
-
লজিস্টিক রিগ্রেশন
-
মাল্টিক্লাস রিগ্রেশন
-
ন্যাচারাল ল্যাঙ্গুয়েজ প্রসেসিং (NLP)
-
পরিশিষ্ট
-
মিনি প্রজেক্ট
মেশিন লার্নিং খুবই বিস্তৃত একটি এরিয়া, আর্টিফিশিয়াল ইন্টেলিজেন্স থেকে প্যাটার্ন রিকগনিশন এর অন্তর্গত। প্রতিদিনই প্রচুর পরিমাণ ডেটা নিয়ে কাজ চলে। প্যাটার্ন রিকগনিশনের মাধ্যমে এই ডেটাকে গুগল, মাইক্রোসফটের মত বড় বড় কোম্পানি প্রসেস করে। এই কারণেই গুগল সার্চ দিতে এত আরাম। যত ভুলই থাকুক না কেন, সে সেটাকে ঠিক করে নেয়, ধরা যাক আপনি নিয়মিত প্রোগ্রামিং এর উপরে ভিডিও দেখেন ইউটিউবে। বেশ কিছুদিন দেখলে সে এমন এমন সব ভিডিও রিকমেন্ডেশনে দেবে যে মনে হবে এই ভিডিওটাই যেন আপনি চাইছিলেন।
কেরিয়ারে লাগবে কী লাগবে না সেটা আপনার ব্যাপার। আপনি যদি ডাক্তার হন, হাল্কা পাতলা প্রোগ্রামিং পারেন, কিছুটা ML, কিছুটা Data Science এবং কিছুটা NLP (Natural Language Processing) বা NLU (Natural Language Understanding) এর মাধ্যমে বানাতে পারেন আর্টিফিশিয়াল ব্রেইন যেটা হয়ত রোগের লক্ষণ ও রোগ ইনপুট নিতে পারে এবং আউটপুটে প্রতিষেধক দিতে পারে। আপনি যখন কোথাও ঘুরতে যাবেন, চ্যাটবট হিসেবে আপনার তৈরি করা ব্রেইন ই ডাক্তার হিসেবে ছোটখাট রোগের চিকিৎসা করতে পারবে।
কেরিয়ারে লাগুক বা না লাগুক, CS এর একটি বিশাল ইন্টারেস্টিং এরিয়া হল ML। কমবেশি সবারই ML এ ব্যবহৃত কিওয়ার্ডগুলো জানা উচিৎ।
মেশিন লার্নিং শেখার জন্য সায়েন্স ব্যাকগ্রাউন্ড হলে খুবই ভাল। কেননা সাধারণ প্রোগ্রামিং করা হয় Explicit প্রোগ্রামিং এর মাধ্যমে কিন্তু প্রেডিকশনের ব্যাপার যেখানে জড়িত সেখানে Explicit প্রোগ্রামিংয়ের মাধ্যমে সে সমস্যা সল্ভ করা যায় না। যদি সায়েন্স সম্পর্কে বিন্দুমাত্র আইডিয়া না থাকে তাহলে আন্ডারলাইং কনসেপ্টগুলো বুঝতে সমস্যা হতে পারে তবে, ম্যাথ বাদে মডেল ডেভেলপ করতে পারবেন, কিন্তু মডেলের যে অপ্টিমাইজেশন, সেটা ম্যাথ ছাড়া করা অসম্ভবের কাছাকাছি।
যদি মনে হয় আপনার অ্যাপে মিউজিক/ভিডিও/ব্লগ পোস্ট রিকমেন্ডেশন সেট করা প্রয়োজন। কিংবা আপনার ওয়েবসাইটে স্মার্ট স্প্যামার ব্লকার প্রয়োজন। কিংবা কোন কোন প্যারামিটারের উপর ভিত্তি করে আপনার ওয়েবসাইটে কেউ Ad এ ক্লিক করে ... ইত্যাদি।
যদি একজন ফুল স্ট্যাক জাভাস্ক্রিপ্ট ডেভেলপার তার ওয়েব অ্যাপে ML মেথড অ্যাপ্লাই করতে চাইলে তাকে নতুন করে Python শিখতে হবে, এইসব ঝামেলা এড়ানোর জন্য একই জিনিস ভিন্ন ভিন্ন প্ল্যাটফর্মে অ্যাপ্লাই করে দেখানো হবে।
- Machine Learning in Python : Essential Techniques for Predictive Analysis [Wiley] - Michael Bowles
- Mastering Machine Learning with Scikit-Learn [PACKT]
- Data Science from Scratch [OREILY] - Joel Grus
- Building Machine Learning System with Python [PACKT]
মেশিন লার্নিং ব্যাপারটা জটিল ও কাঠখোট্টা লাগলেও, কোন কিছু শেখার সময় শুধু থিওরি জানলে সেটা জটিল ও নিরস থেকে যায়। কিন্তু আমরা যদি পাশাপাশি ওই টপিক রিলেটেড মুভি বা সিরিজ দেখি তাহলে আমাদের আগ্রহ বহুগুণ বেড়ে যায়। সেজন্য এই সংক্ষিপ্ত লিস্ট।
মেশিন লার্নিং কে বেজড করে চমৎকার উপভোগ্য একটি টিভি সিরিজ, মেশিন লার্নিং কে ভালবাসার জন্য এই একটাই যথেষ্ট। এর মূল চরিত্রে থাকে চরম প্রতিভাবান প্রোগ্রামার Harold Finch ও তার ডান হাত John Reese। Harold Finch এমন একটি মেশিন তৈরি করেন যেটা কোন দুর্ঘটনা ঘটার আগেই প্রেডিক্ট করতে পারে এবং Harold Finch এর কাজ হল সেই দুর্ঘটনা প্রতিরোধ করা।
-
Natural Language Understanding (যেখানে Harold তার এই Machine এর সাথে English ল্যাঙ্গুয়েজের মাধ্যমে কমিউনিকেট করে)
-
Image Processing (Facial Recognition, Object Recognition, Optical Character Recognition ... )
-
Artifical Neural Network: প্রায়ই দেখা যায় বেশকিছু ছবি লাইনের মাধ্যমে ইন্টারকানেক্টেড, এগুলো দিয়ে আসলে Artifical Neuron এর কানেকশন বোঝানো হয়েছে। এই বইয়ের একটি বিশাল অংশ জুড়ে থাকবে ANN।
সিরিজটি মূলত প্রতিভাবান প্রোগ্রামার ও তার ডেটা কম্প্রেশন কোম্পানির কাহিনী নিয়ে তবুও এখানে ML এর প্রয়োগটা ৩য় সিজনে বলা হয়।
ডেটা কম্প্রেশন অ্যালগরিদমের মূল কাজ থাকে কোন একটা ডেটাসেটে Information কতটা থাকে? যদি অ্যালগরিদম ডিটেক্ট করতে পারে যে Dataset এর একটা নির্দিষ্ট অংশ Redundant মানে, সেটা মুছে দিলেও ক্ষতি নেই। সেই অংশটুকু বাদ দিলে কম্প্রেসড ডেটার সাইজ আগের চেয়ে কম হবে সেটাই স্বাভাবিক। কিন্তু Information extraction টাই হল আসল চ্যালেঞ্জ।
ধরুন, আপনার ক্লাসের শিক্ষক ক্লাসে শুধু 'ক' শব্দটি উচ্চারণ করেন, এটা থেকে বুঝা যায় যদিও বা 'ক' এর সমষ্টিগুলো ডেটাসেট হিসেবে গ্রহণযোগ্য কিন্তু এতে Information এর পরিমাণ 0। আমরা এই সমস্ত 'ক' এর স্ট্রিং নিয়ে কম্প্রেস করলে আউটপুট ফাইলের সাইজ হবে ০ বাইট। যেহেতু এতে আদৌ কোন Information নাই। কিন্তু বাজে অ্যালগরিদম অ্যাপ্লাই করলে আউটপুট ফাইলের সাইজ ইনপুটের সমান বা কিছুটা কম হতে পারে।
মেশিন লার্নিংয়ের অন্যতম অ্যাপ্লিকেশন প্রেডিক্ট করা। তাই ডেটা কম্প্রেশনে এটা ব্যবহার করে আমরা অতি সহজেই Information extract করতে পারি। কিন্তু আমাদের মডেলের পার্ফর্মেন্স যদি খারাপ হয় সেক্ষেত্রে AI সিস্টেমটা Redundant অংশ রেখে Information কেটে দিতে পারে।
৩য় সিজনে (নন স্পয়লার) দেখা যায় কোন একটা পরিস্থিতিতে Richard কে বলা হয় মেশিন লার্নিং সিস্টেম ফেলে দিতে, কিন্তু সে বলে তাতে তার কম্প্রেশন অ্যালগরিদম ইউজলেস হয়ে যাবে।
আমরা ধারণা করতে পারি এখান থেকে ML মেথডলজি অ্যাপ্লাই করে Information Extraction ই ছিল Middle Out (কাল্পনিক অ্যালগরিদম) এর মূল কাজ।
অত্যন্ত মজার ও Insightful একটি টিভি সিরিজ Silicon Valley। হয়ত ML এর সাথে পুরোপুরি যুক্ত না থাকলেও এর কাহিনীগুলো আপনার সময় ভালভাবে কাটাতে সাহায্য করবে।
Research Assistant - Data Science, ShopUp
সম্পূর্ণ বিনামূল্যে বইটি যে কেউ পড়তে পারেন ও কন্টেন্ট শেয়ার করতে পারেন কিন্তু মূল কন্টেন্ট অবিকৃত রেখে এবং পর্যাপ্ত ক্রেডিট দিয়ে। কমার্শিয়াল ব্যবহার সম্পূর্ণ নিষিদ্ধ।
This work is licensed under a Creative Commons Attribution-NonCommercial-NoDerivatives 4.0 International License.