যখন আপনি মেশিন লার্নিং সম্পর্কে কথা বলেন, তখন কি আপনি এর অর্থ সম্পর্কে অস্পষ্ট বোধ করেন? আপনি কি আপনার সহকর্মীদের সাথে কথা বলার সময় কেবল মাথা নাড়াতে ক্লান্ত? আসুন এটি পরিবর্তন করি!
মেশিন লার্নিং সম্পর্কে জানতে আগ্রহী কিন্তু কিভাবে শুরু করতে হয় তা জানেন না এমন সকল পাঠকের জন্য এই গাইডটি। আমি মনে করি যে অনেকেরই উইকিপিডিয়ায় মেশিন লার্নিং সম্পর্কে লেখা পড়ে হতাশার অনুভূতি হয়েছে যে কেউ উচ্চ স্তরের ব্যাখ্যা দিতে পারে না। এই নিবন্ধটি আপনার জন্য।
এই নিবন্ধটি সহজলভ্য হওয়ার জন্য তৈরি করা হয়েছে, যার অর্থ হল এখানে প্রচুর সাধারণীকরণ রয়েছে। তবে কে এই বিষয়ে চিন্তা করে? পাঠককে এমএল সম্পর্কে আরও আগ্রহী করে তোলার জন্য কাজটি সম্পন্ন হয়েছে।
মেশিন লার্নিং এর এই ধারণায় বলা হয় যে, আপনার সমস্যা সমাধানের জন্য কোন বিশেষ প্রোগ্রাম কোড লিখতে হবে না, জেনেটিক্যাল অ্যালগরিদম (জেনেরিক অ্যালগরিদম) ডেটাসেটে আপনার জন্য আকর্ষণীয় উত্তর বের করতে পারে। জেনেটিক্যাল অ্যালগরিদমের ক্ষেত্রে, কোডিং না করে, ডেটা ইনপুট করা হয়, এটি ডেটার উপরে নিজস্ব যুক্তি তৈরি করবে।
উদাহরণস্বরূপ, একটি শ্রেণিবদ্ধকরণ অ্যালগরিদম রয়েছে যা ডেটাকে বিভিন্ন গ্রুপে বিভক্ত করতে পারে। একটি শ্রেণিবদ্ধকরণ অ্যালগরিদম যা হাতে লেখা সংখ্যাগুলি সনাক্ত করতে ব্যবহৃত হয়, কোডের একটি লাইন পরিবর্তন না করেই ইমেলকে জ্যাম এবং সাধারণ মেইলে বিভক্ত করতে ব্যবহার করা যেতে পারে। অ্যালগরিদমটি পরিবর্তিত হয়নি, তবে ইনপুট করা ডেটা প্রশিক্ষিত হয়েছে, তাই এটি একটি ভিন্ন শ্রেণিবদ্ধকরণ যুক্তি তৈরি করেছে।

মেশিন লার্নিং অ্যালগরিদম হল একটি কালো বাক্স যা বিভিন্ন শ্রেণীবিভাগের সমস্যার সমাধান করতে পুনরায় ব্যবহার করা যেতে পারে।
মেশিন লার্নিং একটি বিস্তৃত শব্দ যা অনেকগুলি অনুরূপ জেনেটিক অ্যালগরিদমকে আচ্ছাদন করে
আপনি মেশিন লার্নিং অ্যালগরিদমকে দুটি শ্রেণীতে বিভক্ত করতে পারেনঃ সুপারভাইজড লার্নিং (Supervised Learning) এবং আনসুরভাইজড লার্নিং (Unsupervised Learning) ।
ধরুন, আপনি একজন রিয়েল এস্টেট এজেন্ট, আপনার ব্যবসা যত বড় হবে, আপনি আপনার কাজ করার জন্য প্রশিক্ষণার্থীদের নিয়োগ করবেন। কিন্তু সমস্যা হচ্ছে, আপনি একটি বাড়ির দিকে তাকিয়ে দেখতে পারেন যে এটি কতটা মূল্যবান, এবং প্রশিক্ষণার্থীদের কোন অভিজ্ঞতা নেই, তারা জানে না কিভাবে মূল্য নির্ধারণ করতে হয়।
আপনার ইন্টার্নদের সাহায্য করার জন্য (এবং সম্ভবত আপনার নিজের ছুটি কাটাতে মুক্তি পাওয়ার জন্য) আপনি সিদ্ধান্ত নিয়েছেন যে আপনি একটি ছোট সফটওয়্যার তৈরি করবেন যা আপনার এলাকার বাড়ির মূল্য নির্ধারণ করবে, বাড়ির আকার, জমির অবস্থান এবং অনুরূপ বাড়ির বিনিময় মূল্যের উপর ভিত্তি করে।
আপনি আপনার শহরে গত তিন মাসের প্রতিটি বাড়ি কেনাবেচা লিখেছেন, এবং প্রত্যেকটাতে আপনি অনেক বিস্তারিত তথ্য লিখেছেন, যেমনঃ কতটি বেডরুম, বাড়ির আকার, জমির পরিমাণ ইত্যাদি। কিন্তু সবচেয়ে গুরুত্বপূর্ণ, আপনি চূড়ান্ত কেনার মূল্য লিখেছেনঃ
এটি আমাদের রিক্সা প্রশিক্ষণের ডেটা।

আমরা এই প্রশিক্ষণের তথ্য ব্যবহার করে একটি প্রোগ্রাম লিখতে চাই যাতে এই এলাকার অন্যান্য বাড়ির মূল্য নির্ধারণ করা যায়ঃ

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

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

এমনকি যদি আপনি অজানা তথ্য (যেমন দাম) সম্পর্কে ভবিষ্যদ্বাণী করতে না চান, তাহলে মেশিন লার্নিং ব্যবহার করে আপনি কিছু মজার কাজ করতে পারেন।
এটা অনেকটা এমন যে, কেউ আপনাকে একটা কাগজ দেয়, যার উপর অনেকগুলো সংখ্যা লেখা আছে, এবং বলে, “আরে, আমি জানি না এই সংখ্যার মানে কি, হয়তো তুমি এর থেকে নিয়ম বের করতে পারবে, অথবা তাদের শ্রেণীবদ্ধ করতে পারবে, বা অন্য কিছু - শুভকামনা! “
প্রথমত, আপনি একটি অ্যালগরিদম ব্যবহার করতে পারেন যা স্বয়ংক্রিয়ভাবে বিভিন্ন বাজার বিভাগে তথ্য ভাগ করে নেবে। সম্ভবত আপনি দেখতে পাবেন যে কলেজের আশেপাশের বাড়ির ক্রেতারা ছোট ঘর পছন্দ করে, কিন্তু অনেকগুলি বেডরুমের সাথে, এবং শহরতলির বাড়ির ক্রেতারা তিন-শয়নকক্ষের বড় ঘর পছন্দ করে। এই তথ্য সরাসরি আপনার বিপণনে সহায়তা করতে পারে।
আপনি এমন কিছু করতে পারেন যা অসাধারণ, আপনি স্বয়ংক্রিয়ভাবে খুঁজে বের করতে পারেন যে কোন বাড়ির দামের তথ্য অন্যের থেকে আলাদা। এই ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন ঘন
এই নিবন্ধের পরবর্তী অংশে আমরা তত্ত্বাবধানে শেখার বিষয়ে কথা বলব, কিন্তু এটি এমন নয় যে এটি অযৌক্তিক বা অযৌক্তিক। প্রকৃতপক্ষে, অ্যালগরিদমের উন্নতির সাথে সাথে, সঠিক উত্তরগুলির সাথে ডেটা সংযুক্ত করার প্রয়োজন নেই, তাই তত্ত্বাবধানে শেখার ক্রমবর্ধমান গুরুত্বপূর্ণ হয়ে উঠছে।
মেশিন লার্নিং এর আরও অনেক ধরনের অ্যালগরিদম রয়েছে। কিন্তু এটা প্রথম শ্রেণীর জন্য ভালো।
“আমি মনে করি, এটা খুবই ভালো, কিন্তু আপনি কি মনে করেন যে মূল্য নির্ধারণ করাটা শিক্ষার কাজ?
মানুষের অংশ হিসাবে, আপনার মস্তিষ্ক বেশিরভাগ পরিস্থিতির সাথে মোকাবিলা করতে পারে এবং কোনও সুস্পষ্ট নির্দেশনা ছাড়াই কীভাবে এটি পরিচালনা করতে হয় তা শিখতে পারে। আপনি যদি দীর্ঘ সময় ধরে রিয়েল এস্টেট ব্রোকার হন তবে আপনার কাছে একটি প্রাকৃতিক অনুভূতি থাকবে যে কোনও সম্পত্তির সঠিক মূল্য নির্ধারণ করা উচিত, কীভাবে এটি সর্বোত্তমভাবে বিপণন করা যায় এবং কোন গ্রাহকরা আগ্রহী হবে ইত্যাদি। শক্তিশালী এআই (Strong AI) গবেষণার লক্ষ্য হ’ল কম্পিউটারে এই ক্ষমতা প্রতিলিপি করা।
কিন্তু বর্তমান মেশিন লার্নিং অ্যালগরিদমগুলি এত ভাল নয় যে তারা কেবলমাত্র খুব নির্দিষ্ট, সীমিত সমস্যাগুলিতে মনোনিবেশ করতে পারে। সম্ভবত এই ক্ষেত্রে, মেশিন লার্নিং মেশিনের আরও উপযুক্ত সংজ্ঞা হ’ল একটি নির্দিষ্ট সমস্যা সমাধানের জন্য একটি সমীকরণ খুঁজে বের করা যা একটি ছোট পরিমাণ উদাহরণ ডেটার উপর ভিত্তি করে।
দুর্ভাগ্যবশত, মেশিনের একটি ছোট উদাহরণ ডেটার উপর ভিত্তি করে একটি সমীকরণ খুঁজে বের করে একটি নির্দিষ্ট সমস্যা সমাধানের জন্য।
অবশ্যই, যদি আপনি এই নিবন্ধটি ৫০ বছর পরে পড়েন, তাহলে আমরা একটি শক্তিশালী কৃত্রিম বুদ্ধিমত্তার অ্যালগরিদম তৈরি করেছি, এবং এই নিবন্ধটি একটি পুরানো পুরাতন বলে মনে হচ্ছে। ভবিষ্যতের মানুষ, আপনি আর পড়বেন না, আপনার মেশিনের চাকরকে আপনার জন্য স্যান্ডউইচ বানাতে বলুন।
আসুন কোডিং করি!
এই উদাহরণে, আপনি কিভাবে বাড়ির মূল্য নির্ধারণ করবেন? নীচের দিকে তাকানোর আগে একটু ভাবুন।
আপনি যদি মেশিন লার্নিং সম্পর্কে কিছুই না জানেন, তাহলে সম্ভবত আপনি কিছু মৌলিক নিয়ম লিখতে চেষ্টা করবেন, যার মাধ্যমে আপনি বাড়ির মূল্য নির্ধারণ করতে পারবেন, যেমনঃ
def estimate_house_sales_price(num_of_bedrooms, sqft, neighborhood):
price = 0
# In my area, the average house costs $200 per sqft
price_per_sqft = 200
if neighborhood == "hipsterton":
# but some areas cost a bit more
price_per_sqft = 400
elif neighborhood == "skid row":
# and some areas cost less
price_per_sqft = 100
# start with a base price estimate based on how big the place is
price = price_per_sqft * sqft
# now adjust our estimate based on the number of bedrooms
if num_of_bedrooms == 0:
# Studio apartments are cheap
price = price — 20000
else:
# places with more bedrooms are usually
# more valuable
price = price + (num_of_bedrooms * 1000)
return price
আপনি যদি এইভাবে কয়েক ঘন্টা কাজ করেন তবে আপনি কিছুটা সাফল্য অর্জন করতে পারেন, তবে আপনার প্রোগ্রামটি কখনই নিখুঁত হবে না এবং দামের পরিবর্তনের সময় এটি বজায় রাখা কঠিন।
যদি কম্পিউটারকে এই ফাংশনটি বাস্তবায়নের উপায় খুঁজে বের করতে দেওয়া যায়, তাহলে কি ভাল হবে না? কে চিন্তা করবে যে এই ফাংশনটি আসলে কী করছে, যদি এটি সঠিকভাবে বাড়িটির দাম ফেরত দেয়?
def estimate_house_sales_price(num_of_bedrooms, sqft, neighborhood):
price = <computer, plz do some math for me>
return price
এই প্রশ্নের একটি দৃষ্টিকোণ হল, বাড়ির দামকে একটি সুস্বাদু রসুনের পাত্র হিসেবে বিবেচনা করা, যার উপাদানগুলো হচ্ছে বেডরুমের সংখ্যা, আয়তন এবং জমি। আপনি যদি হিসাব করতে পারেন যে, প্রতিটি উপাদান কতটা প্রভাব ফেলে চূড়ান্ত দামে, তাহলে হয়তো আপনি বিভিন্ন উপাদান মিশ্রিত করে চূড়ান্ত দামে একটি নির্দিষ্ট অনুপাত পেতে পারেন।
এইভাবে আপনি আপনার প্রাথমিক প্রোগ্রামটি (যার অর্থ হল পাগল যদি অন্যথায় বিবৃতি) নিম্নলিখিত মত কিছুতে সরল করতে পারেনঃ
def estimate_house_sales_price(num_of_bedrooms, sqft, neighborhood):
price = 0
# a little pinch of this
price += num_of_bedrooms * .841231951398213
# and a big pinch of that
price += sqft * 1231.1231231
# maybe a handful of this
price += neighborhood * 2.3242341421
# and finally, just a little extra salt for good measure
price += 201.23432095
return price
এই জাদুকরী সংখ্যাগুলোর দিকে নজর দিন, যেগুলো বড় হাতের অক্ষরে লেখা আছে: ৮৪১২৩১৯৫১৩৯৮২১৩, ১২৩১১২১৩১, ২.৩২৪২৩৪১৪২১, এবং ২০১২৩৪৩২০৯৫। এগুলোকে বলা হয় ওজন। যদি আমরা প্রতিটি বাড়ির জন্য সঠিক ওজন খুঁজে বের করতে পারি, তাহলে আমাদের ফাংশনটি সব বাড়ির দামের পূর্বাভাস দিতে পারবে!
এই পদ্ধতির একটি উদাহরণ হলঃ
ধাপ ১ঃ
প্রথমত, প্রত্যেকটির জন্য ১.০ এর একটি ওজন নির্ধারণ করুনঃ
def estimate_house_sales_price(num_of_bedrooms, sqft, neighborhood):
price = 0
# a little pinch of this
price += num_of_bedrooms * 1.0
# and a big pinch of that
price += sqft * 1.0
# maybe a handful of this
price += neighborhood * 1.0
# and finally, just a little extra salt for good measure
price += 1.0
return price
দ্বিতীয় ধাপঃ
এই ফাংশনটি ব্যবহার করে, আপনি আপনার মূল্যায়নটি সঠিক মূল্যের থেকে কতটা দূরে রয়েছে তা পরীক্ষা করতে পারেনঃ

আপনার অ্যাপ্লিকেশনটি ব্যবহার করে বাড়ির দামের পূর্বাভাস দিন।
উদাহরণস্বরূপ, উপরের তালিকার প্রথম সম্পত্তিটির প্রকৃত বিক্রয় মূল্য \(২৫,০০০, আপনার ফাংশনটির মূল্যায়ন \)১৭,০০০, এবং এই সম্পত্তিটির জন্য আপনার মূল্য $৭২,০০০।
তারপর আপনার ডাটাসেটের প্রতিটি সম্পত্তির মূল্যায়ন মানের বর্গক্ষেত্রের পরে যোগ করুন। ধরুন আপনার ডাটাসেটে 500 টি সম্পত্তি লেনদেন রয়েছে, যার মূল্যায়ন মানের বর্গক্ষেত্রের মোট পরিমাণ $86,123,373। এটি আপনার ফাংশনটির সঠিকতাকে প্রতিফলিত করে।
এখন, মোট মানকে 500 দ্বারা ভাগ করুন এবং প্রতিটি সম্পত্তির জন্য গড় মান থেকে বিচ্যুত মূল্যায়ন পাবেন। এই গড় ত্রুটিকে আপনার ফাংশনের মূল্য বলুন।
যদি আপনি ওজনকে 0 তে পরিবর্তন করতে পারেন, তাহলে আপনার ফাংশনটি নিখুঁত হবে। এর মানে হল যে আপনার প্রোগ্রামটি প্রতিটি রিয়েল এস্টেট লেনদেনের জন্য সঠিকভাবে মূল্যায়ন করে। এবং এটিই আমাদের লক্ষ্য। আমরা বিভিন্ন ওজনের মান চেষ্টা করব যাতে খরচ যতটা সম্ভব কম হয়।
ধাপ ৩ঃ
ধাপ ২ বার বার করুন, সব সম্ভাব্য ওজন সমন্বয় চেষ্টা করুন। কোন সমন্বয়টি আপনার খরচকে 0 এর কাছাকাছি করে তোলে, এবং আপনি যে সমন্বয়টি খুঁজে পেয়েছেন, সমস্যাটি সমাধান হয়ে গেছে!
চিন্তাধারা সময় নষ্ট করে
এটা খুব সহজ, তাই না? আপনি কি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে, আপনি কিছু তথ্য আছে। কিন্তু নিম্নলিখিত ঘটনাগুলি আপনার মনকে অস্থির করে তুলতে পারেঃ
২. আপনার শেষের ফাংশনটা আসলেই অদ্ভুত, এটা জানতো না যে, এর আয়তন কত এবং এর বেডরুমের সংখ্যা কত। এটা জানতো শুধু সংখ্যাগুলোকে ঘুরিয়ে ঘুরিয়ে সঠিক উত্তর বের করতে।
৩. আপনি হয়ত জানেন না কেন একটি বিশেষ ওজন মান কাজ করে। তাই আপনি একটি ফাংশন লিখেছেন যা আপনি আসলে বুঝতে পারেন না কিন্তু যা আপনি প্রমাণ করতে পারেন।
৪. ধরুন, আপনার প্রোগ্রামটি একটি প্যারামিটার গ্রহণ করে, যেমন রুমের আয়তন এবং রুমের বেডরুমের সংখ্যা। ধরুন, প্রতিটি সংখ্যা আপনার গাড়ির উপর লাগানো ক্যামেরার ছবির একটি পিক্সেলকে প্রতিনিধিত্ব করে, এবং ভবিষ্যদ্বাণী করা আউটপুটকে রুমের দামের প্যারামিটার না বলে, বরং রুমের স্টিয়ারিং ঘূর্ণন পরিমাপের প্যারামিটার বলে, তাই আপনি একটি প্রোগ্রাম পেয়েছেন যা আপনার গাড়িকে স্বয়ংক্রিয়ভাবে পরিচালনা করতে পারে!
পাগলামি, তাই না?
ধাপ ৩-এ, প্রত্যেকটি ডিজিটাল ক্যাশ চেষ্টা করে দেখুন, কী হবে?
ঠিক আছে, অবশ্যই আপনি সব সম্ভাব্য ওজন চেষ্টা করতে পারবেন না সেরা সমন্বয় খুঁজে বের করতে। এটি একটি দীর্ঘ সময় নিতে পারে, কারণ চেষ্টা করার সংখ্যা অসীম হতে পারে। এই পরিস্থিতি এড়াতে, গণিতবিদরা অনেকগুলি বুদ্ধিমান উপায় খুঁজে পেয়েছেন যাতে খুব বেশি চেষ্টা না করেই দ্রুত দুর্দান্ত ওজনের মান খুঁজে পাওয়া যায়। নীচে তাদের মধ্যে একটি দেওয়া হলঃ প্রথমত, একটি সহজ সমীকরণ লিখুন যা এই দুইটি ধাপকে নির্দেশ করেঃ
এটা আপনার খরচ ফাংশন

এখন, আসুন আমরা এই একই সমীকরণটি মেশিন লার্নিংয়ের সাথে পুনরায় লিখতে পারি (এখন আপনি এগুলি উপেক্ষা করতে পারেন):
θ বর্তমান ওজনের মানকে নির্দেশ করে। J ((θ) অর্থ হল এর বর্তমান ওজনের মানের সমতুল্য খরচ ।

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

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

সুতরাং, আমরা কেবলমাত্র ওজনকে সামঞ্জস্য করতে পারি যাতে আমরা গ্রাফের সর্বনিম্ন পয়েন্টের দিকে ঝাঁপিয়ে পড়তে পারি। যদি ওজনগুলির জন্য সামান্য সামঞ্জস্য আমাদের সর্বনিম্ন পয়েন্টের দিকে চালিয়ে যায়, তবে শেষ পর্যন্ত আমরা খুব বেশি ওজন চেষ্টা না করেই সেখানে পৌঁছতে পারি।
যদি আপনি হিসাব-নিকাশের কথা একটু মনে রাখেন, তাহলে আপনি হয়তো মনে রাখবেন যে আপনি যদি একটি ফাংশনকে নির্দেশ করেন, তাহলে ফলাফলটি আপনাকে বলবে যে ফাংশনটি কোন বিন্দুতে অবস্থিত। অন্য কথায়, যদি আমরা একটি নির্দিষ্ট বিন্দু পাই, তাহলে এটি আমাদেরকে বলে যে সেই পথটি একটি ঢালু পথ। আমরা এই বিন্দুটি ব্যবহার করে নীচের দিকে যেতে পারি।
সুতরাং, যদি আমরা প্রতিটি ওজনের জন্য ব্যয় ফাংশনকে বিভক্ত করি, তবে আমরা প্রতিটি ওজনের থেকে এই মানটি বাদ দিতে পারি। এইভাবে আমরা পাহাড়ের নীচে আরও কাছাকাছি যেতে পারি। এটি চালিয়ে যান, এবং অবশেষে আমরা নীচে পৌঁছে যাব এবং ওজনের সর্বোত্তম মান পাব। (অনুবাদঃ আপনি কি বুঝতে পারছেন না? চিন্তা করবেন না, নীচে পড়ুন) ।
সর্বোত্তম ওজন খুঁজে বের করার এই পদ্ধতিটিকে ভর গ্রেডিয়েন্ট অবতরণ বলা হয়, এবং এটি সম্পর্কে একটি উচ্চতর সারসংক্ষেপ এখানে দেওয়া হয়েছে। আপনি যদি বিশদটি জানতে চান তবে ভয় পাবেন না, আরও গভীরে যান (http://hbfs.wordpress.com/2012/04/24/introduction-to-gradient-descent/) ।
যখন আপনি মেশিন লার্নিং অ্যালগরিদম লাইব্রেরি ব্যবহার করে বাস্তব সমস্যা সমাধান করবেন, তখন এগুলি সবই আপনার জন্য প্রস্তুত থাকবে।
আপনি কি অন্য কিছু এড়িয়ে গেছেন?
আমি উপরে বর্ণিত তিন ধাপের অ্যালগরিদমকে বলি মাল্টি-লিনিয়ার রিগ্রেশন। আপনার অনুমান সমীকরণটি এমন একটি সরলরেখা খুঁজছে যা সমস্ত বাড়ির দামের ডেটা পয়েন্টের সাথে খাপ খায়। তারপর আপনি এই সমীকরণটি ব্যবহার করে এমন একটি বাড়ির দাম অনুমান করেন যা আপনি কখনও দেখেননি, আপনার সরলরেখায় বাড়ির দামের সম্ভাব্য অবস্থানের উপর ভিত্তি করে। এই ধারণাটি শক্তিশালী, এটি ব্যবহার করে আপনি প্রকৃত অর্থের সমস্যার সমাধান করতে পারেন।
কিন্তু আমি যে পদ্ধতিটি দেখিয়েছি তা সহজ পরিস্থিতিতে কাজ করতে পারে, কিন্তু সব পরিস্থিতিতে কাজ করে না। এর একটা কারণ হল যে, বাড়ির দাম একটানা সরল রেখা অনুসরণ করে না।
কিন্তু, সৌভাগ্যবশত, এই পরিস্থিতি মোকাবেলা করার অনেক উপায় আছে। অ-রৈখিক তথ্যের জন্য, অনেক অন্যান্য ধরনের মেশিন লার্নিং অ্যালগরিদম কাজ করতে পারে (যেমন নিউরাল নেটওয়ার্ক বা নিউক্লিয়ার ভেক্টর মেশিন) । আরো অনেক উপায় আছে যেগুলি লিনিয়ার রিগ্রেশন ব্যবহার করে আরো বেশি নমনীয়, আরো জটিল লাইন ব্যবহার করে ফিট করার জন্য। সব পরিস্থিতিতে, সর্বোত্তম ওজনের মান খুঁজে বের করার এই মৌলিক চিন্তাধারাটি এখনও প্রযোজ্য।
এছাড়াও, আমি মিলে যাওয়া ধারণাকে উপেক্ষা করেছি। এটা খুব সহজ যে আপনি এমন একটি ওজন সেট পাবেন যা আপনার মূল ডেটাসেটের বাড়ির দামের পূর্বাভাস দেবে, কিন্তু মূল ডেটাসেটের বাইরে কোনও নতুন বাড়ির জন্য সঠিক হবে না। এই পরিস্থিতির সমাধানের জন্য অনেকগুলি উপায় রয়েছে (যেমন প্রমিতকরণ এবং ক্রস যাচাইকৃত ডেটাসেট ব্যবহার করা) । এই সমস্যাটি কীভাবে মোকাবেলা করা যায় তা শিখতে মেশিন লার্নিংয়ের কার্যকর প্রয়োগের জন্য গুরুত্বপূর্ণ।
অন্য কথায়, মৌলিক ধারণাগুলি খুব সহজ, এবং মেশিন লার্নিং ব্যবহার করে দরকারী ফলাফল পেতে কিছু কৌশল এবং অভিজ্ঞতা প্রয়োজন। তবে, এটি এমন একটি কৌশল যা প্রতিটি বিকাশকারী শিখতে পারে।
একবার যখন আপনি বুঝতে শুরু করেন যে মেশিন লার্নিং প্রযুক্তিগুলি সহজেই কঠিন বলে মনে হওয়া সমস্যার সমাধান করতে পারে (যেমন হাতের লেখা সনাক্তকরণ), আপনার মনে একটি অনুভূতি তৈরি হয় যে পর্যাপ্ত ডেটা থাকলে আপনি মেশিন লার্নিং ব্যবহার করে যে কোনও সমস্যা সমাধান করতে পারেন। কেবলমাত্র ডেটা ইনপুট করুন এবং কম্পিউটারের ডাইভারজেকশন হিসাবে উপযুক্ত সমীকরণগুলি সন্ধান করুন।
কিন্তু এটা মনে রাখা খুবই গুরুত্বপূর্ণ যে মেশিন লার্নিং শুধুমাত্র সেইসব সমস্যার জন্য প্রযোজ্য যা আপনি আপনার ডেটা দিয়ে সমাধান করতে পারবেন।
উদাহরণস্বরূপ, যদি আপনি একটি মডেল তৈরি করেন যা প্রতিটি বাড়ির ভিতরে কতগুলি বাগান রয়েছে তার উপর ভিত্তি করে বাড়ির দামের পূর্বাভাস দেয়, তবে এটি কখনই সফল হবে না। বাড়ির ভিতরে বাগানের সংখ্যা এবং বাড়ির দামের মধ্যে কোনও সম্পর্ক নেই। সুতরাং, কম্পিউটারটি যতই চেষ্টা করুক না কেন, এটির মধ্যে কোনও সম্পর্ক নেই।

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