Activation Function – নিউরাল নেটওয়ার্ক

আগের পোস্ট থেকে আমরা এটা জানি যে activation ফাংশন মূলত কি কাজে ব্যবহৃত হয়। আমি আবারও বলছি। activation ফাংশন নিউরনের ইনপুটগুলো থেকে আউটপুট জেনারেট করে থাকে। নরমালি প্রথমে ইনপুটগুলোর weighted sum ক্যালকুলেট করে তারপর activation ফাংশনে পাঠানো হয়। আর ফাংশনটি আউটপুট জেনারেট করে।

তবে একটা শর্ত আছে, ইনপুট যত বড়ই হোক না কেন আউটপুট সবসময় একটা বাউন্ডারির মধ্যেই থাকবে। বাউন্ডারি বলতে একটা নির্দিষ্ট upper bound এবং lower bound এর মধ্যেই থাকবে। উদাহরণস্বরূপ আমরা sigmoid একটিভেশন ফাংশনকে নিতে পারি। এটার ইনপুট যত বড় সংখ্যাই হোক না কেন। এর আউটপুট সর্বদা 0 এবং 1 এর মধ্যেই আসবে।

image source: wikipedia

উপরের গ্রাফটি sigmoid ফাংশন এর। লক্ষ্য করলে দেখতে পাবেন যে ইনপুট নেগাটিভ হলে এর আউটপুট 0 এর কাছাকাছি। ইনপুট যত বেশি নেগাটিভ হবে, আউটপুট 0 এর তত কাছাকাছি হবে। আবার ইনপুট যত বড় পজিটিভ সংখ্যা হবে, আউটপুট 1 এর তত কাছাকাছি হবে। sigmoid ফাংশনের ইকুয়েশন নিম্নরূপ।

এবার চলুন আরেকটা ফাংশন দেখি। Rectified linear units সংক্ষেপে relu। বলতে পারেন এই ফাংশনের ব্যবহার সব থেকে বেশি। তবে এই ফাংশন 0 এবং ১ এর মধ্যে আউটপুট জেনারেট করে না। চলুন এর ম্যাথমেটিকাল ইকুয়েশন আগে দেখে নেই।

উপরের ফাংশনটি দেখেই বোঝা যাচ্ছে এটা কি করে আসলে। যদি ইনপুট নেগাটিভ হয় তাহলে আউটপুট হবে 0। অন্যথায় যেটা ইনপুট দিবেন সেটাই আউটপুট হিসেবে থাকবে। দেখে অনেক সাধারণ মনে হলেও এই ফাংশনটির ব্যবহার সর্বাধিক।

activation ফাংশন সম্পর্কে তো আমরা জানলাম। কিভাবে কাজ করে সেটাও জানলাম। এখন মনে প্রশ্ন আসতে পারে যে আমরা কেন করছি এটা। ওয়েল, ভালো প্রশ্ন।

আমরা যেহেতু এই ধরনের মডেলকে আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক বলে জানি, আর এটাও জানি যে মানুষের ব্রেইনের নিউরালের নেটওয়ার্ক থেকে উদ্বুদ্ধ হয়ে এটা বানানো হয়েছে। তাই আমরা মানুষের ব্রেইন থেকেই এই টার্ম টা বোঝার চেষ্টা করব।

ধরুন আপনি সাইকেল চালাতে গিয়ে কোথাও পড়ে গেছেন। পড়ে গিয়ে কোথাও ব্যথাও পেয়েছেন। এই ব্যথাটা আসলে কিভাবে অনুভব করলেন? যখন আপনি পড়ে গেছেন, সাথে সাথে আপনার ব্রেইনের কিছু নিউরন activate হয়ে ব্যথার সিগনাল পাঠাচ্ছে। আবার ধরুন আপনি কোন সুসংবাদ পেলেন। সাথে সাথে হ্যাপি হয়ে যাচ্ছেন। এইসময়ে আপনার ব্রেইনের ভিন্ন কিছু নিউরন activate হয়ে যাচ্ছে। এই নিউরনগুলো stimuli এর মাধ্যমে activate হয়ে থাকে। এখন আমরা ধরে নিতে পারি যেই নিউরনগুলো activate হচ্ছে সেটা 1 স্টেটে আছে, অন্যথায় 0 স্টেটে আছে।

আর্টিফিশিয়াল নিউরাল নেটওয়ার্কে একই কাজ হচ্ছে। Activation ফাংশনের আউটপুট যত বেশি পজিটিভ, ঐ নিউরনটি তত বেশি একটিভ।

সিম্পল, রাইট? কোথাও না বুঝলে অথবা কোন প্রশ্ন থাকলে অবশ্যই জানাবেন।


Leave a Reply

Your email address will not be published. Required fields are marked *