
মেশিন লার্নিং এমন একটি অধ্যয়নের ক্ষেত্র যা কম্পিউটারকে কোন বিষয়ে আগে থেকে স্পষ্টভাবে প্রোগ্রাম করা ছাড়াই শেখার ক্ষমতা দেয় । (আর্থার স্যামুয়েল, ১৯৫৯)
Machine Learning is the field of study that gives computers the ability to learn without being explicitly programmed. (Arthur Samuel, 1959)
............................................................................
The use and development of computer systems that are able to learn and adapt without following explicit instructions, by using algorithms and statistical models to analyze and draw inferences from patterns in data.(Definitions of machine learning,Google translate)
মেশিন বিভিন্ন অ্যালগরিদম ব্যবহার করে শিখে । মেশিন শেখার বিভিন্ন উপায় গুলি নিন্মে বর্ণনা করা হলঃ
সুপারভাইসড (Supervised)
একটি আদর্শ সুপারভাইসড লার্নিং ক্লাসিফিকেশন
ও ভবিষৎবাণীর জন্য উত্তম । ক্লাসিফিকেশনের একটি ভাল উদাহরণ
যেমন, আপনার ইনবক্সে আসা মেইলটি স্প্যাম কিনা, এই ডিসিশনটা আগের কিছু ডেটার উপর
নির্ভর করে দেওয়া হয় । আপনি যখন
আপনার ডেটা সম্পর্কে যথেষ্ট জানেন তাহলে আপনি আপনার মেশিনকে সুপারভাইসড
লার্নিংয়ের সাথে বিন্দুগুলিকে সংযুক্ত করতে সহায়তা করতে পারেন । সুপারভাইসড লার্নিংয়ের ক্ষেত্রে, আপনি
মেশিনটিকে বিভিন্ন ভেরিয়েবল এবং জ্ঞাত ফলাফলের মধ্যে সংযোগ দেখান মেশিন
লার্নিংয়ে এটিকে লেবেলযুক্ত নমুনা ডেটা এবং সঠিক আউটপুট বলা হয় কারণ এটি
ইতিমধ্যে তথ্য সনাক্তকরণের সাথে ট্যাগযুক্ত । ভবিষৎবাণীর জন্য একটি উদাহরণ কল্পনা করুন । যেমন, আপনি কোনও মেশিনকে প্রশিক্ষণ দিতে চান যেটি আপনার বাসায় যেতে কতক্ষণ সময় ড্রাইভ করতে হবে সেটির একটি
ভবিষ্যৎবানী করতে সহায়তা করবে । এক্ষেত্রে আপনি লেবেলযুক্ত ডেটার একটি সেট তৈরি
করে শুরু করবেন । এই ডেটাটিতে আবহাওয়ার পরিস্থিতি, দিনের সময় এবং এটি কোনও ছুটির
দিন কিনা সেটি অন্তর্ভুক্ত থাকবে । এগুলো হচ্ছে ইনপুট । আর আউটপুট হবে সময়ের
পরিমাণ এটি ড্রাইভ করতে কতক্ষণ সময় লাগবে সেই বিশেষ দিনে । এক্ষেত্রে আপনার
স্বতন্ত্র ভেরিয়েবলগুলি হ'ল ইনপুট এবং নির্ভরশীল ভেরিয়েবল হ'ল আউটপুট । এখানে
আপনি বিভিন্ন মেশিন লার্নিং অ্যালগরিদম ব্যবহার করতে পারেন বিভিন্ন ভেরিয়েবলের
মধ্যে সম্পর্ক ম্যাপ করতে । কয়েকটি গুরুত্বপূর্ণ সুপারভাইসড
লার্নিং অ্যালগরিদম
হচ্ছে:
- k- Nearest
Neighbors
- Linear
Regression
- Logistic
Regression
- Support
Vector Machines
- Decision
Trees and Random Forests
আনসুপারভাইসড (Unsupervised)
প্রোগ্রামে কিছু ডেটা ইনপুট দেওয়া হয় এবং প্রোগ্রাম ঐ ডেটার
উপর নির্ভর করেই সব ধরনের ডিসিশন দেয় । একেই আনসুপারভাইসড লার্নিং বলা হয় ।
আনসুপারভাইসড লার্নিং এর ক্ষেত্রে আউটপুট কি সেটা কোথাও বলা থাকে না । প্রোগ্রাম
নিজ থেকেই সেটা বুঝে বের করে নেয় ।
কয়েকটি গুরুত্বপূর্ণ আনসুপারভাইসড
লার্নিং অ্যালগরিদম
হচ্ছে:
·
Clustering
- k-Means
- Hierarchical Cluster Analysis (HCA)
- Expectation Maximization
·
Visualization and dimensionality reduction
- Principal Component Analysis (PCA)
- Kernal PCA
- Locally-Linear Embedding
- t-distributed Stochastic Neighbor
Embedding
·
Association Rule Learning
- Aporiori
- Eclat
উদাহরণস্বরূপ, আপনার ব্লগে ভিজিটরদের জন্য বিভিন্ন রকমের তথ্য দিয়েছেন । আপনি ক্লাস্টারিং অ্যালগরিদম ব্যবহার করে একই রকম ভিজিটরদের গ্রুপ সনাক্ত করতে চান তাহলে আপনার সাহায্য ছাড়াই এটি তাদেরকে বের করবে । আপনি হয়ত লক্ষ্য করতে পারেন ৪০% ভিজিটর আছেন যারা পুরুষ লোক এবং তারা রাত্রিতে আপনার ব্লগ ভিজিট করে কমিক বই পড়তে ভালোবাসেন । এছাড়া ২০% আছেন যুবক এবং তারা উইকএন্ডে ভিজিট করে সায়েন্স ফিকশন পড়তে ভালোবাসেন এবং ইত্যাদি । আপনি যদি Hierarchical Cluster অ্যালগরিদম ব্যবহার করেন তাহলে প্রতিটি গ্রুপকে আরও ছোট গ্রুপে বিভক্ত করতে পারেন ।
Visualization অ্যালগরিদমও আনসুপারভাইসড লার্নিংয়ের একটি ভাল উদাহরন । জটিল
এবং আনলেবলড ডেটাকে এটি 2D অথবা 3D এর মাধ্যমে
উপস্থাপন করতে পারে । আর একটি আনসুপারভাইসড লার্নিংয়ের গুরুত্বপূর্ণ কাজ
হচ্ছে অসঙ্গতি সনাক্তকরণ । যেমন, জালিয়াতি রোধে অস্বাভাবিক ক্রেডিট কার্ডের
লেনদেন সনাক্ত করতে পারে, উৎপাদনে ত্রুটি ধরতে পারে,
সিস্টেমকে স্বাভাবিক উদাহরণের সঙ্গে প্রশিক্ষণ দেওয়া
হয় এবং এটি একটি নতুন উদাহরণ দেখে বলতে পারে যে, এটি দেখতে
সাধারণের মতো দেখায় না যখন কোন
অসঙ্গতি হতে পারে । এছাড়া আরও একটি আনসুপারভাইসড লার্নিংয়ের
গুরুত্বপূর্ণ কাজ হল, Association Rule Learning যার লক্ষ্য
হচ্ছে বিপুল পরিমাণ ডেটা পর্যালোচনা করা এবং বৈশিষ্ট্যাবলীর মধ্যে আকর্ষণীয়
সম্পর্ক আবিষ্কার করা । উদাহরণস্বরূপ, ধরুন আপনি একটি সুপার মার্কেটের মালিক ।
আপনার বিক্রয় লগগুলিতে Association Rule Learning চালিয়ে আপনি প্রমাণ করতে পারেন যে, যে লোকেরা
বার্বিকিউ সস এবং পটেটো চিপস কিনে থাকে তাদের স্টেক কেনার
ঝোঁকও রয়েছে । সুতরাং, আপনি এই আইটেমগুলি একে অপরের কাছাকাছি রাখতে চাইবেন
।
সেমি-সুপারভাইসড (Semi-Supervised)
কিছু অ্যালগরিদম আংশিকভাবে লেবেল প্রশিক্ষণ ডেটা, লেবেল নেই এমন
ডেটা এবং সামান্য কিছু লেবেলড ডেটার সঙ্গে মোকাবেলা করতে পারে । এই জাতীয় লার্নিংকে সেমি সুপারভাইসড লার্নিং বলা হয় । অধিকাংশ সেমি সুপারভাইসড লার্নিং হচ্ছে সুপারভাইসড এবং আনসুপারভাইসড এর
কম্বিনেশন । উদাহরণ: গুগল ফটো সার্ভিস । এখানে আপনের পরিবারের ফটো একবার
আপলোড করলে এটি স্বয়ংক্রিয়ভাবে একই
ব্যক্তিকে সনাক্ত করতে পারে ।
রিইনফোর্সমেন্ট (Reinforcement)
মেশিন
লার্নিংয়ের এই পর্যায়ে মেশিন তার কিছু কিছু প্রোগ্রামকে ক্রমান্বয়ে আপডেট করতে
থাকে । তবে এই
প্রোগ্রাম নিজ থেকেই বুঝে যে কখন আপডেট করা বন্ধ করতে হবে । অর্থাৎ সে বুঝতে পারে যে আরও সামনের দিকে আগাতে থাকলে প্রোগ্রামটি নিজে
থেকেই শেষ হয়ে যেতে পারে তখন এটা নিজের গতি নিজে থেকেই প্রশমিত হতে থাকে । প্রোগ্রামের অবস্থাটি ভাল বুঝলে এগিয়ে চলে বিপদ বুঝলে থেমে যায় । এই ধরণের লার্নিং কে বলা হয় রিইনফোর্সমেন্ট লার্নিং । আর একটু সহজ
ভাবে বলা যায় । যেমন, একটি বুদ্ধিমান এজেন্টকে বিবেচনা করুন, যার উপর রিইনফোর্সমেন্ট
লার্নিং অ্যালগরিদম প্রয়োগ করা হয়েছে । এজেন্ট পরিবেশ
পর্যবেক্ষণ করতে পারে, নির্বাচন করতে পারে এবং কর্ম সম্পাদন করতে পারে এবং এর
বিনিময়ে পুরষ্কার পেতে পারে অথবা নেতিবাচক পুরস্কারের জন্য জরিমানা রয়েছে । এরপরে সময়ের সাথে সর্বাধিক
পুরষ্কার পাওয়ার জন্য এটির নিজেই শিখতে হবে যে, সেরা কৌশল কী? রিইনফোর্সমেন্ট লার্নিংয়ে একে নীতি বলে । নির্ধারিত পরিস্থিতিতে এজেন্টকে
কোন কাজটি বেছে নেওয়া উচিত একটি নীতি
সেটাকেই সংজ্ঞায়িত করে । অর্থাৎ এজেন্টকে যদি একটি গেম খেলার
প্রশিক্ষণ দেওয়া হয় তখন প্রশিক্ষক কোনও
ইতিবাচক পুরষ্কার সরবরাহ করতে পারে গেমটিতে যখন জিতে এবং নেতিবাচক
পুরষ্কার সরবরাহ করে যখন এটি হেরে
যায় এবং অন্য সমস্ত বিষয়ে শূন্য পুরষ্কার সরবরাহ করে । একটি বাস্তব উদাহরণ উপলব্ধির
মাধ্যমে এর সম্পর্কে আরও সুস্পষ্ট ধারণা পাওয়া যাবে ।
উদাহরণ: ডিপমাইন্ডের আলফাগো প্রোগ্রামটি রিইনফোর্সমেন্ট লার্নিংয়ের একটি ভাল উদাহরণ । এটি ২০১৬ সালের মার্চ মাসে
শিরোনাম তৈরি করেছিল যখন এটি গো খেলায় বিশ্ব চ্যাম্পিয়ন লি সেদলকে হারিয়েছিল । এটি কয়েক মিলিয়ন গেম বিশ্লেষণ করে এবং তারপরে নিজের বিরুদ্ধে অনেক গেম খেলে এর
বিজয়ী নীতি শিখেছিল । তবে চ্যাম্পিয়নের বিরুদ্ধে খেলা
চলাকালীন সময় এর লার্নিং বন্ধ ছিল । আলফাগো কেবলমাত্র যে নীতিটি শিখেছিল তা প্রয়োগ করেছিল । এছাড়া অনেক রোবট কীভাবে চলতে হবে
তা শিখতে রিইনফোর্সমেন্ট লার্নিং অ্যালগরিদম প্রয়োগ করে ।
Thank you for reading this post and encourage me to grow this blog further
মন্তব্যসমূহ
একটি মন্তব্য পোস্ট করুন