আপনি কি মেশিন লার্নিং সম্পর্কে শুনেছেন এবং এর অর্থ সম্পর্কে অস্পষ্ট ধারণা পেয়েছেন? আপনি কি আপনার সহকর্মীদের সাথে কথা বলার সময় কেবল মাথা নাড়ার ক্লান্ত? আসুন আমরা এটি পরিবর্তন করি!
এই গাইডটি এমন সকল পাঠকের জন্য যারা মেশিন লার্নিং সম্পর্কে জানতে আগ্রহী কিন্তু কীভাবে শুরু করবেন তা জানেন না। আমি অনুমান করি যে অনেকেরই উইকিপিডিয়াতে মেশিন লার্নিং সম্পর্কে কিছু শব্দ পড়েছেন এবং হতাশ হয়ে পড়েছেন যে কেউ উচ্চ-স্তরের ব্যাখ্যা দিতে পারে না। এই নিবন্ধটি আপনি যা চান তা।
এই নিবন্ধটির উদ্দেশ্য সহজলভ্য, যার অর্থ এটিতে প্রচুর সারসংক্ষেপ রয়েছে। কিন্তু কে এসবের কথা চিন্তা করে? পাঠককে এমএল সম্পর্কে আরও আগ্রহী করে তুললে কাজটি সম্পন্ন হয়ে যাবে।
মেশিন লার্নিং এর ধারণাটি হল যে, আপনার কোন বিশেষ প্রোগ্রামিং কোড লিখতে হবে না এবং জেনেটিক অ্যালগরিদমগুলি ডেটাসেটে আপনার জন্য আকর্ষণীয় উত্তর বের করতে সক্ষম হবে। জেনেটিক অ্যালগরিদমগুলির জন্য, আপনি কোডিং করবেন না, তবে ডেটা ইনপুট করবেন এবং এটি ডেটার উপরে নিজস্ব যুক্তি তৈরি করবে।
উদাহরণস্বরূপ, একটি শ্রেণিবদ্ধকরণ অ্যালগরিদম রয়েছে যা ডেটাকে বিভিন্ন গ্রুপে ভাগ করতে পারে। একটি শ্রেণিবদ্ধকরণ অ্যালগরিদম যা হাতে লেখা সংখ্যাগুলি সনাক্ত করতে ব্যবহৃত হয়, এটি কোডের একটি লাইন সংশোধন না করেই ইমেলগুলিকে স্প্যাম এবং সাধারণ ইমেলগুলিতে ভাগ করতে ব্যবহৃত হয়। অ্যালগরিদমটি পরিবর্তিত হয়নি, তবে ইনপুট করা প্রশিক্ষণ ডেটা পরিবর্তিত হয়েছে, তাই এটি একটি ভিন্ন শ্রেণিবদ্ধকরণ যুক্তি তৈরি করে।
মেশিন লার্নিং অ্যালগরিদম একটি কালো বাক্স যা বিভিন্ন শ্রেণিবদ্ধকরণ সমস্যা সমাধানের জন্য পুনরায় ব্যবহার করা যেতে পারে।
মেশিন লার্নিং মেশিন একটি বিস্তৃত শব্দ যা প্রচুর অনুরূপ জেনেটিক অ্যালগরিদমকে আচ্ছাদিত করে।
আপনি মেশিন লার্নিং অ্যালগরিদমকে দুটি প্রধান শ্রেণীতে ভাগ করতে পারেনঃ তত্ত্বাবধানে শেখার (Supervised Learning) এবং তত্ত্বাবধানে শেখার (Unsupervised Learning) ।
ধরুন, আপনি একজন রিয়েল এস্টেট এজেন্ট এবং আপনার ব্যবসা যত বড় হবে, ততই আপনি আপনার জন্য একজন ইন্টার্ন নিয়োগ করবেন।
আপনার ইন্টার্নদের সাহায্য করার জন্য (সম্ভবত ছুটিতে যাওয়ার জন্য) আপনি একটি ছোট সফটওয়্যার লিখতে সিদ্ধান্ত নেন যা আপনার এলাকার বাড়ির মূল্যকে বাড়ির আকার, লট এবং অনুরূপ বাড়ির বিক্রয়মূল্য ইত্যাদির উপর ভিত্তি করে মূল্যায়ন করতে পারে।
আপনি গত তিন মাসের মধ্যে শহরের প্রতিটি হাউজিং লেনদেন লিখেছেন, প্রতিটি লেনদেনের জন্য আপনি একটি দীর্ঘ রেখা লিপিবদ্ধ করেছেন, যার মধ্যে রয়েছে বেডরুমের সংখ্যা, বাড়ির আকার, লট ইত্যাদি। কিন্তু সবচেয়ে গুরুত্বপূর্ণ, আপনি চূড়ান্ত লেনদেনের মূল্য লিখেছেনঃ
এটি আমাদের মাগো প্রশিক্ষণ ডেটাবেজ।
আমরা এই প্রশিক্ষণের তথ্য ব্যবহার করে একটি প্রোগ্রাম লিখছি যা এই এলাকার অন্যান্য বাড়ির মূল্য নির্ধারণ করবেঃ
এটাকে বলা হয় তত্ত্বাবধানে শেখার পদ্ধতি। আপনি ইতিমধ্যে প্রতিটি বাড়ির বিক্রয় মূল্য জানেন, অন্য কথায়, আপনি প্রশ্নের উত্তর জানেন এবং সমাধানের যুক্তিটি উল্টো দিকে খুঁজে পেতে পারেন।
সফটওয়্যার লেখার জন্য, আপনি প্রতিটি সম্পত্তির প্রশিক্ষণ ডেটা আপনার মেশিন লার্নিং অ্যালগরিদমকে ইনপুট করবেন। অ্যালগরিদমটি মূল্যের সংখ্যা বের করার জন্য কোন ক্রিয়াটি ব্যবহার করা উচিত তা খুঁজে বের করার চেষ্টা করবে।
এটি একটি গাণিতিক অনুশীলনের মতো, যেখানে গণনার সমস্ত চিহ্ন মুছে ফেলা হয়ঃ
ওহ মাই গড! একজন দুষ্টু ছাত্র তার শিক্ষকের উত্তর থেকে অঙ্ক চিহ্নটি মুছে ফেলেছে।
এই প্রশ্নগুলো দেখে আপনি কি বুঝতে পারবেন যে এই পরীক্ষাগুলোতে কোন ধরণের গাণিতিক সমস্যা আছে? আপনি কি জানেন যে, আপনি কি বাম দিকের সংখ্যার বিন্দুতে কিছু করতে হবে যাতে আপনি ডান দিকের উত্তর পেতে পারেন?
তত্ত্বাবধানে শেখার ক্ষেত্রে, আপনি কম্পিউটারকে আপনার জন্য সংখ্যার মধ্যে সম্পর্ক গণনা করতে দেন। এবং একবার আপনি এই বিশেষ ধরণের সমস্যার সমাধানের জন্য প্রয়োজনীয় গাণিতিক পদ্ধতিগুলি জানেন, আপনি একই ধরণের অন্যান্য সমস্যার সমাধান করতে পারেন।
আসুন আমরা শুরুতে থাকা রিয়েল এস্টেট এজেন্টের উদাহরণে ফিরে যাই। যদি আপনি জানেন না যে প্রতিটি বাড়ির দাম কত হবে? এমনকি যদি আপনি কেবলমাত্র বাড়ির আকার, অবস্থান ইত্যাদির তথ্য জানেন তবে আপনি দুর্দান্ত জিনিসগুলি তৈরি করতে পারেন। এটিকে বলা হয় অনির্দেশিত শেখার।
এমনকি যদি আপনি অজানা তথ্য (যেমন দাম) সম্পর্কে ভবিষ্যদ্বাণী করতে চান না, তবে আপনি মেশিন লার্নিং ব্যবহার করে মজার কিছু করতে পারেন।
এটা অনেকটা এরকম যে কেউ আপনাকে একটি কাগজ দেয়, যেখানে অনেকগুলো সংখ্যা রয়েছে, এবং বলে, "ওহ, আমি জানি না এই সংখ্যাগুলোর অর্থ কী, হয়তো আপনি এর মধ্যে একটি সূত্র খুঁজে বের করতে পারবেন অথবা সেগুলোকে শ্রেণীবদ্ধ করতে পারবেন, অথবা অন্য কিছু - শুভকামনা!
প্রথমত, আপনি একটি অ্যালগরিদম ব্যবহার করতে পারেন যা স্বয়ংক্রিয়ভাবে ডেটা থেকে বিভিন্ন বিভাগের বাজারকে আলাদা করে দেয়। সম্ভবত আপনি দেখতে পাবেন যে বিশ্ববিদ্যালয়ের কাছাকাছি বাড়ির ক্রেতারা ছোট এবং অনেক বেডরুমের ঘর পছন্দ করে, যখন শহরতলির ক্রেতারা তিনটি বেডরুমের বড় ঘর পছন্দ করে। এই তথ্য সরাসরি আপনার বিপণনে সহায়তা করতে পারে।
আপনি একটি দুর্দান্ত কাজও করতে পারেন, স্বয়ংক্রিয়ভাবে বাড়ির দামের বিচ্ছিন্ন ডেটা খুঁজে বের করতে পারেন, অর্থাৎ অন্যান্য ডেটার সাথে পার্থক্যের মান। এই উঁচু স্তরের বাড়িগুলি সম্ভবত উচ্চ ভবন, এবং আপনি সেরা বিক্রেতাদের এই অঞ্চলে কেন্দ্রীভূত করতে পারেন কারণ তাদের কমিশন বেশি।
এই নিবন্ধের বাকি অংশে আমরা মূলত তত্ত্বাবধানে শেখার বিষয়ে আলোচনা করব, তবে এটি তত্ত্বাবধানে শেখার জন্য কম কার্যকর বা একেবারেই অভাবনীয় নয়; প্রকৃতপক্ষে, অ্যালগরিদমগুলির উন্নতির সাথে সাথে ডেটা এবং সঠিক উত্তরগুলির সাথে সম্পর্কিত হওয়ার প্রয়োজন নেই, তাই তত্ত্বাবধানে শেখার জন্য এটি আরও গুরুত্বপূর্ণ হয়ে উঠছে।
মেশিন লার্নিং অ্যালগরিদমের আরও অনেক ধরনের আছে।
এটা খুব ভাল, কিন্তু কি সত্যিই বাড়ির দাম মূল্যায়ন করাকে ময়লা শেখার ময়লা বলা যায়?
একজন মানুষ হিসেবে আপনার মস্তিষ্ক বেশিরভাগ পরিস্থিতির মোকাবেলা করতে পারে এবং কোন সুস্পষ্ট নির্দেশনা ছাড়াই কীভাবে সেগুলি মোকাবেলা করতে হয় তা শিখতে পারে। আপনি যদি দীর্ঘ সময় ধরে রিয়েল এস্টেট ব্রোকার হন তবে আপনার কাছে সম্পত্তির উপযুক্ত মূল্য নির্ধারণ, এটির সর্বোত্তম বিপণন পদ্ধতি এবং কোন গ্রাহকরা আগ্রহী হবে ইত্যাদি সম্পর্কে একটি প্রাকৃতিক অনুভূতি থাকবে। শক্তিশালী এআই গবেষণার লক্ষ্য হ'ল কম্পিউটারে এই ক্ষমতাটি প্রতিলিপি করা।
তবে বর্তমান মেশিন লার্নিং অ্যালগরিদমগুলি এত ভাল নয় যে তারা কেবল খুব নির্দিষ্ট, সীমিত সমস্যার উপর ফোকাস করতে পারে। সম্ভবত এই ক্ষেত্রে, মেশিন লার্নিং অ্যালগরিদমের আরও উপযুক্ত সংজ্ঞা হ'ল মেশিনটি একটি নির্দিষ্ট সমস্যার সমাধানের জন্য একটি সমীকরণ খুঁজে বের করতে পারে।
দুর্ভাগ্যবশত, একটি মেশিনের জন্য একটি সমীকরণ খুঁজে বের করার জন্য একটি নির্দিষ্ট সমস্যা সমাধানের জন্য একটি মেশিনের নামটি খুব খারাপ ছিল। তাই আমরা শেষ পর্যন্ত মেশিনের শেখার মেশিনের সাথে এটি প্রতিস্থাপন করেছি।
অবশ্যই, যদি আপনি এই নিবন্ধটি 50 বছর পরে পড়েন, তাহলে আমরা শক্তিশালী এআই অ্যালগরিদম নিয়ে এসেছি, এবং এটি পুরানো পুরানো জিনিসগুলির মতো দেখাচ্ছে। ভবিষ্যতের মানুষ, আপনি এখনও পড়েন না, আপনার মেশিন সেবককে আপনার জন্য একটি স্যান্ডউইচ তৈরি করতে বলুন।
আসুন কোড লিখুন!
পূর্ববর্তী উদাহরণে গৃহমূল্য নির্ধারণের পদ্ধতিটি আপনি কীভাবে লিখতে চান? নীচে নেমে যাওয়ার আগে চিন্তা করুন।
আপনি যদি মেশিন লার্নিং সম্পর্কে কিছুই জানেন না, তাহলে সম্ভবত আপনি হোম মূল্য নির্ধারণের জন্য কিছু মৌলিক নিয়ম লিখতে চেষ্টা করবেনঃ
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
এই সমস্যাটি বিবেচনা করার একটি উপায় হ'ল বাড়ির দামকে একটি সুস্বাদু রসুনের থালা হিসাবে বিবেচনা করা, যেখানে রসুনের উপাদানগুলি হ'ল বেডরুমের সংখ্যা, আয়তন এবং প্ল্যাটফর্ম। আপনি যদি প্রতিটি উপাদান চূড়ান্ত দামের উপর কতটা প্রভাব ফেলে তা গণনা করতে পারেন তবে সম্ভবত আপনি বিভিন্ন উপাদানগুলি মিশ্রিত করে চূড়ান্ত দামের একটি নির্দিষ্ট অনুপাত পেতে পারেন।
এটি আপনার প্রাথমিক প্রোগ্রামকে (সমস্ত পাগল if else বিবৃতি) এমন কিছুতে সংক্ষিপ্ত করতে পারেঃ
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
দয়া করে সেই অদ্ভুত সংখ্যাগুলি লক্ষ্য করুন যা বড় হাতের আকারে চিহ্নিত করা হয়েছে। 841231951398213, 1231.1231231, 2.3242341421, এবং 201.23432095। এগুলিকে ওজন বলা হয়। যদি আমরা প্রতিটি বাড়ির জন্য উপযুক্ত নিখুঁত ওজন খুঁজে পাই তবে আমাদের ফাংশনগুলি সমস্ত বাড়ির দামের পূর্বাভাস দিতে পারে!
নিচের ছবিতে আমরা দেখাবো কিভাবে সেরা ওজন নির্ধারণ করা যায়।
প্রথম ধাপঃ
প্রথমত, প্রতিটি ওজনকে ১.০ তে সেট করুনঃ
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 হয়, তাহলে আপনার ফাংশনটি নিখুঁত। এর অর্থ হল যে আপনার প্রোগ্রামটি প্রতিটি সম্পত্তি লেনদেনের জন্য ইনপুট ডেটার উপর ভিত্তি করে একই পরিমাণে মূল্যায়ন করে। এবং এটি আমাদের লক্ষ্য। বিভিন্ন ওজন চেষ্টা করুন যাতে খরচ যতটা সম্ভব কম হয়।
তৃতীয় ধাপঃ
ধারা 2 পুনরাবৃত্তি করুন, সমস্ত সম্ভাব্য ওজন মান সমন্বয় চেষ্টা করুন। কোন সমন্বয় 0 এর কাছাকাছি খরচ করে, এটি আপনি ব্যবহার করতে হবে, এবং যত তাড়াতাড়ি আপনি এই ধরনের একটি সমন্বয় খুঁজে পেতে, সমস্যা সমাধান করা হয়!
চিন্তা সময়কে ব্যাহত করে
এটা খুব সহজ, তাই না? আপনি কি শুধু কি করেছেন তা চিন্তা করুন. আপনি কিছু তথ্য পেতে, তিনটি সাধারণ সহজ ধাপে তাদের ইনপুট, এবং অবশেষে আপনি একটি ফাংশন যা আপনার এলাকায় ঘর মূল্য নির্ধারণ করতে পারেন পেতে. তবে নিম্নলিখিত তথ্যগুলি আপনার মনকে বিভ্রান্ত করতে পারেঃ
১. গত ৪০ বছর ধরে, অনেক ক্ষেত্রের গবেষণায় (যেমন ভাষাবিজ্ঞান/অনুবাদ) দেখা গেছে যে এই সাধারণ ভিবিশ্বরিত ডেটা পুকুর (যে শব্দটি আমি তৈরি করেছি) এর মতো শেখার অ্যালগরিদমগুলি বাস্তব ব্যক্তিদের ব্যবহারের জন্য সুস্পষ্ট নিয়মগুলির প্রয়োজনের চেয়ে ভাল। মেশিন লার্নিংয়ের পুকুরের পদ্ধতিগুলি শেষ পর্যন্ত মানব বিশেষজ্ঞদের পরাজিত করেছে।
2.你最后写出的函数真是笨,它甚至不知道什么是“面积”和“卧室数”。它知道的只是搅动,改变数字来得到正确的答案。
3.很可能你都不知道为何一组特殊的权重值能起效。所以你只是写出了一个你实际上并不理解却能证明的函数。
4.试想一下,你的程序里没有类似“面积”和“卧室数”这样的参数,而是接受了一组数字。假设每个数字代表了你车顶安装的摄像头捕捉的画面中的一个像素,再将预测的输出不称为“价格”而是叫做“方向盘转动度数”,这样你就得到了一个程序可以自动操纵你的汽车了!
এটা পাগলামি, তাই না?
ধাপ ৩-এর টিকাগুলো প্রতিটি সংখ্যার টিকাগুলোকে পরীক্ষা করে দেখে নিন।
ঠিক আছে, অবশ্যই আপনি সব সম্ভাব্য ওজন চেষ্টা করতে পারবেন না সেরা সমন্বয় খুঁজে পেতে; কিন্তু এটি একটি দীর্ঘ সময় নিতে পারে, কারণ চেষ্টা করার সংখ্যা সম্ভবত অসীম। এটি এড়ানোর জন্য, গণিতবিদরা খুব বেশি চেষ্টা না করেই দ্রুত এবং খুব ভালভাবে ওজনযুক্ত মানগুলি খুঁজে পাওয়ার জন্য অনেকগুলি স্মার্ট উপায় খুঁজে পেয়েছেন। নীচে একটি রয়েছেঃ প্রথমত, একটি সহজ সমীকরণ লিখুন যা পূর্ববর্তী ধাপ দুটিকে উপস্থাপন করেঃ
এটি আপনার খরচ ফাংশন।
এখন, আসুন আমরা এই একই সমীকরণকে মেশিন লার্নিং এর জন্য গণিতের একটি শব্দ (এখন আপনি এগুলিকে উপেক্ষা করতে পারেন) পুনর্লিখন করিঃ
θ বর্তমান ওজনের মানকে নির্দেশ করে; J ((θ) এর অর্থ হ'ল বর্তমান ওজনের মানের সাথে সামঞ্জস্যপূর্ণ দামের
এই সমীকরণটি আমাদের মূল্যায়ন পদ্ধতির বর্তমান ওজনের মান থেকে বিচ্যুতির মাত্রা নির্দেশ করে।
আপনি যদি বেডরুমের সংখ্যা এবং এলাকার জন্য সমস্ত সম্ভাব্য ওজন মানগুলি গ্রাফিকভাবে দেখান, তাহলে আপনি নিম্নলিখিত চিত্রের মতো একটি গ্রাফ পাবেনঃ
খরচ ফাংশনটির গ্রাফ একটি বাটি মত; লম্ব অক্ষ খরচ নির্দেশ করে।
নীল নীচের বিন্দুটি হল সবচেয়ে কম খরচের জায়গা, যার অর্থ হল আমাদের প্রোগ্রামের সবচেয়ে কম বিচ্যুতি। সর্বোচ্চ বিন্দু মানে সবচেয়ে বেশি বিচ্যুতি। সুতরাং, যদি আমরা একটি সেট ওজন মান খুঁজে পাই যা আমাদের গ্রাফের সর্বনিম্ন বিন্দুতে নিয়ে যায়, তাহলে আমরা উত্তর খুঁজে পেয়েছি!
সুতরাং, আমাদের কেবলমাত্র ওজনকে সামঞ্জস্য করতে হবে যাতে আমরা গ্রাফের সর্বনিম্ন পয়েন্টের দিকে নামতে পারি। যদি ওজনগুলির জন্য ক্ষুদ্রতম সমন্বয় আমাদের সর্বনিম্ন পয়েন্টের দিকে চলতে থাকে তবে শেষ পর্যন্ত আমরা খুব বেশি চেষ্টা না করে সেখানে যেতে পারি।
আর যদি আপনি একটু অ্যালগরিদমের কথা মনে রাখেন, তাহলে আপনি হয়তো মনে রাখবেন যে যদি আপনি একটি ফাংশনের উপর অনুসন্ধান করেন, তাহলে ফলাফল আপনাকে বলবে যে ফাংশনটি যে কোন পয়েন্টে এর ঢাল। অন্য কথায়, একটি পয়েন্টের জন্য, এটি আমাদের বলে যে পথটি নিম্নমুখী। আমরা এটিকে নীচের দিকে এগিয়ে যেতে ব্যবহার করতে পারি।
সুতরাং, যদি আমরা মূল্য ফাংশনের প্রতিটি ওজনের জন্য একটি বিভাজক অনুসন্ধান করি, তাহলে আমরা প্রতিটি ওজনের থেকে এটিকে বিয়োগ করতে পারি। এটি আমাদের নিচের দিকে নিয়ে যাবে। এভাবে চালিয়ে যান, এবং শেষ পর্যন্ত আমরা নীচে যাব এবং ওজনের সর্বোচ্চ মান পাব। (যদি আপনি বুঝতে না পারেন তবে চিন্তা করবেন না, নীচে পড়ুন) ।
সর্বোত্তম ওজন নির্ধারণের এই পদ্ধতিটি নামকরণ করা হয় 'বোল্ট গ্রেডিয়েন্ট ডিসপেনশন' এবং এর উচ্চতা সম্পর্কে এটির একটি সাধারণ বিবরণ রয়েছে।http://hbfs.wordpress.com/2012/04/24/introduction-to-gradient-descent/
আপনি যখন মেশিন লার্নিং অ্যালগরিদমস ল্যাবরেটরি ব্যবহার করে একটি বাস্তব সমস্যা সমাধান করেন, তখন এটি আপনার জন্য প্রস্তুত থাকে। তবে নির্দিষ্ট কিছু বিষয় বুঝতে পারা সবসময় সহায়ক।
আপনি কি অন্য কোন বিষয় এড়িয়ে গেছেন?
উপরে আমি যে তিন ধাপের অ্যালগরিদমটি বর্ণনা করেছি তাকে বহু-রৈখিক প্রত্যাবর্তন বলা হয়। আপনার অনুমান সমীকরণটি এমন একটি সরলরেখার সন্ধান করছে যা সমস্ত হোম মূল্যের ডেটা পয়েন্টকে ফিট করতে পারে। তারপরে আপনি এই সমীকরণটি ব্যবহার করে আপনার সরলরেখায় সম্ভাব্য অবস্থানের ভিত্তিতে হোমের দামগুলি কখনই দেখা যায় না এমন হোমগুলির দাম অনুমান করেন। এই ধারণাটি শক্তিশালী, এটি ব্যবহার করে আপনি বাস্তবিক হোম সমস্যাটি সমাধান করতে পারেন।
কিন্তু আমি আপনাকে যে পদ্ধতিটি দেখিয়েছি তা সহজ পরিস্থিতিতে কাজ করতে পারে, এটি সব ক্ষেত্রে কাজ করবে না। এর একটি কারণ হ'ল হোমের দামগুলি কেবলমাত্র একটি ধারাবাহিক সরলরেখা অনুসরণ করবে না।
তবে, সৌভাগ্যবশত, এই পরিস্থিতি মোকাবেলার জন্য অনেকগুলি উপায় রয়েছে। অ-রৈখিক ডেটার জন্য, অনেকগুলি অন্যান্য ধরণের মেশিন লার্নিং অ্যালগরিদমগুলি (যেমন নিউরাল নেটওয়ার্ক বা নিউক্লিয়ার ভেক্টর মেশিনগুলি) মোকাবেলা করতে পারে। আরও অনেকগুলি উপায় রয়েছে যা রৈখিক রিগ্রেশনকে আরও নমনীয়ভাবে ব্যবহার করে, আরও জটিল রেখাগুলির সাথে ফিট করার চিন্তাভাবনা করে। সমস্ত ক্ষেত্রে, সর্বোত্তম প্রাধান্য ওজন সন্ধান করার মূল ধারণাটি এখনও প্রযোজ্য।
এছাড়াও, আমি over-matching এর ধারণাটি উপেক্ষা করেছি। এটা সহজেই এমন একটি ভারসাম্যপূর্ণ মানের সাথে দেখা করতে পারে যা আপনার প্রাথমিক ডেটাসেটের সমস্ত বাড়ির দামের জন্য নিখুঁতভাবে ভবিষ্যদ্বাণী করতে পারে, কিন্তু প্রাথমিক ডেটাসেটের বাইরে যে কোনও নতুন বাড়ির জন্য এটি অনুমোদিত নয়। এই পরিস্থিতির অনেকগুলি সমাধান রয়েছে (যেমন রুটালাইজেশন এবং ক্রস-ভ্যালিডেশন ডেটাসেটগুলি ব্যবহার করা) । এই সমস্যাটি কীভাবে মোকাবেলা করা যায় তা শিখতে মেশিন লার্নিংয়ের সুষ্ঠু প্রয়োগের জন্য গুরুত্বপূর্ণ।
অন্য কথায়, মৌলিক ধারণাগুলি খুবই সহজ, এবং মেশিন লার্নিং ব্যবহার করে দরকারী ফলাফল পেতে কিছু কৌশল এবং অভিজ্ঞতা প্রয়োজন; তবে, এটি এমন একটি কৌশল যা প্রত্যেক ডেভেলপার শিখতে পারে।
একবার আপনি বুঝতে শুরু করলে যে মেশিন লার্নিং প্রযুক্তি সহজেই কঠিন মনে হতে পারে এমন সমস্যার সমাধানের জন্য প্রয়োগ করা যায় (যেমন হস্তাক্ষর সনাক্তকরণ), আপনার মনে একটি অনুভূতি আসে যে পর্যাপ্ত ডেটা থাকলে আপনি মেশিন লার্নিং দিয়ে যে কোনও সমস্যা সমাধান করতে পারেন। কেবলমাত্র ডেটা ইনপুট করুন এবং আপনি দেখতে পাবেন যে কম্পিউটারগুলি ড্রামা হিসাবে উপযুক্ত সমীকরণগুলি খুঁজে পায়।
তবে এটা মনে রাখা গুরুত্বপূর্ণ যে মেশিন লার্নিং শুধুমাত্র সেইসব সমস্যার জন্য কাজ করে যা আপনার কাছে থাকা ডেটা দিয়ে সমাধান করা যায়।
উদাহরণস্বরূপ, যদি আপনি একটি মডেল তৈরি করেন যা প্রতিটি বাড়ির মধ্যে গাছের সংখ্যা অনুসারে বাড়ির দামের পূর্বাভাস দেয়, তবে এটি কখনই সফল হবে না। বাড়ির মধ্যে গাছের সংখ্যা এবং বাড়ির দামের মধ্যে কোনও সম্পর্ক নেই। সুতরাং, এটি যতই চেষ্টা করুক না কেন, কম্পিউটার দুটি সম্পর্কের মধ্যে কোনও সম্পর্ক নির্ধারণ করতে পারে না।
আপনি কেবল বাস্তব সম্পর্কের মডেলিং করতে পারেন।
আমি মনে করি বর্তমান মেশিন লার্নিংয়ের সবচেয়ে বড় সমস্যা হল এটি মূলত একাডেমিক ও বাণিজ্যিক গবেষণা সংস্থাগুলিতে সক্রিয়। যারা বিশেষজ্ঞ হতে চায় না তাদের চেয়ে যারা সাধারণভাবে জানতে চায় তাদের জন্য সহজ এবং সহজলভ্য শেখার সামগ্রী খুব কম। কিন্তু এটি প্রতিদিন উন্নতি করছে।
কোর্সারে প্রফেসর অ্যান্ড্রু এনজি'র বিনামূল্যে মেশিন লার্নিং কোর্স খুবই ভালো। আমি এটাকে অত্যন্ত সুপারিশ করছি। যে কেউ কম্পিউটার বিজ্ঞান নিয়ে ডিগ্রি অর্জন করেছে এবং গণিতের কিছু মনে রাখে, তারা এটা বুঝতে পারবে।
এছাড়াও, আপনি ডাউনলোড এবং ইনস্টল করতে পারেন SciKit-Learn, যা দিয়ে আপনি হাজার হাজার মেশিন লার্নিং অ্যালগরিদম পরীক্ষা করতে পারেন। এটি একটি পাইথন ফ্রেমওয়ার্ক যা সমস্ত স্ট্যান্ডার্ড অ্যালগরিদমের জন্য ব্ল্যাক বক্স সংস্করণ রয়েছে।
পাইথন ডেভেলপার থেকে পুনর্নির্দেশিত
ওক্লুওকানএই উদাহরণটি প্রফেসর ওয়ান্ডা প্রতিবার নতুন ক্লাস শুরু করার সময় পুনরাবৃত্তি করেন।
স্লট্রেনতাহলে কি এটা m হওয়া উচিত নয়? কেন এটা 2m হয়ে গেল?