লেয়ারস – নিউরাল নেটওয়ার্ক
পূর্বের পোস্ট থেকে আমরা জানি যে নিউরাল নেটওয়ার্ক মূলত বিভিন্ন ধরনের লেয়ারে সাজানো থাকে। ইনপুট, আউটপুট লেয়ার ছাড়াও এর রয়েছে হিডেন লেয়ার। ইনপুট-আউটপুট লেয়ারের মধ্যবর্তী সবগুলো লেয়ারকেই মূলত হিডেন লেয়ার বলা যায়। হিডেন লেয়ারের আবার অনেক ধরনের প্রকারভেদ আছে। একেক ধরনের লেয়ার একেকটা কাজে এক্সপার্ট। বহুল ব্যবহৃত হিডেন লেয়ার নিম্নরূপঃ
- Dense Layer
- Convolutional Layer
- Recurrent Layer
- Pooling Layer
- Normalization Layer
এগুলা ছাড়াও আরো অনেক ধরনের লেয়ার আছে। তবে এগুলাকে ব্যাসিক এবং বেশিরভাগ মডেল এগুলা দিয়েই বানানো সম্ভব। উপরের ৫টি লেয়ার নিয়ে বিস্তারিত একটা পোস্টে লেখা সম্ভব না। এই পোস্ট অবশ্য প্রতিটা লেয়ার সম্পর্কে ধারণা দেয়ার জন্যও নয়। বরং আমরা জানবো লেয়ারগুলো কিভাবে কাজ করে।
তবে এটুকু জেনে রাখা ভালো যে Convolutional লেয়ার ইমেজ ডেটার জন্য খুবই ভালো কাজ করে থাকে। আবার আপনার ডেটা যদি টাইমসিরিজ হয়ে থাকে তাহলে Recurrent লেয়ার সবথেকে ভালো হবে। চলুন এবার দেখি লেয়ারগুলো আসলে কিভাবে কাজ করে।

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

আমরা উপরের ইমেজের শুধুমাত্র X নিউরনটি কিভাবে কাজ করে সেটা দেখব এখন। প্রথমে লক্ষ্য করে দেখুন, X এর সাথে কানেক্টেড প্রতিটা পথেই একটা করে ভেরিয়েবল দেয়া আছে। এখানে ৩টা পথে ৩টা ইনপুট আসবে আর ৩টা পথের ভেরিয়েবল গুলো যথাক্রমে W1, W2 এবং W3। এগুলো বলা হয় weights। এর ভ্যালুগুলো 0 থেকে 1 এর মাঝে হয়। এবার ধরুন ইনপুট লেয়ারের তিনটা নোড যথাক্রমে x1, x2 এবং x3 তিনটা আউটপুট পাঠাচ্ছে। এই তিনটা আউটপুট X নিউরনের কাছে ইনপুট হিসেবে যাবে।
ইনপুটগুলো এখন নিউরন X নিম্নোক্ত পদ্ধতিতে প্রসেস করবে।
- প্রথমেই প্রতিটা ইনপুট যে পথে আসবে, ঐ পথের weight ভ্যালু এর সাথে গুন করবে। খেয়াল করে দেখুন x1 আসবে যে পথে,ঐ পথের weight হচ্ছে W1। তাহলে এটা গুন হয়ে যাবে x1W1। বাকিগুলো যথাক্রমে হবে x2W2 এবং x2W3।
- এবার গুনফলগুলোকে যোগ করবে। তাহলে যোগফল দাড়াবেঃ S = x1W1+x2W2+x3W3।
- এরপর এই যোগফল S কে activation function এর মাধ্যমে X নিউরনের আউটপুট হিসাব করবে। Activation function মূলত যেকোন যোগফল S কে ইনপুট হিসেবে নিয়ে আউটপুট জেনারেট করবে।
- এবার এই আউটপুটকে X এরপরের লেয়ারের কাছে পাঠিয়ে দেবে।
এই প্রক্রিয়া আউটপুট লেয়ার পর্যন্ত চলতে থাকবে।
গত পর্বে আমরা activation function এর নামে শুনেছিলাম। এখানে আমরা দেখলাম activation function আসলে কি কাজ করে। অনেক ধরনের activation function আছে। আপনার মডেলের চাহিদা মত আপনি যেকোনটা ব্যবহার করতে পারেন। activation function এর বিস্তারিত আমরা পরবর্তী পোস্টে জানব।
ইতিমধ্যে আমরা জেনে গেছি ইনপুট ও হিডেন লেয়ার কি এবং এরা কিভাবে কাজ করে। বাকি থাকল আউটপুট লেয়ার। আউটপুট লেয়ার মূলত আপনার মডেলের আউটপুট জেনারেট করে থাকে। উপরের চিত্রে দেখুন আউটপুট লেয়ারে মাত্র ২ টা নিউরন রয়েছে। আপনি যদি বিড়াল এবং কুকুরের ছবি গুলো আলাদা করতে চান, তাহলে ক্লাস সংখ্যা মাত্র ২। এর মানে আপনার আউটপুট লেয়ারেও দুইটা নিউরন থাকতে হবে। আপনি যদি ১০ ধরনের প্রাণীকে ক্ল্যাসিফাই করতে চান, তাহলে আউটপুট লেয়ারে ১০টি নিউরন থাকতে হবে।
চলুন এবার আমরা উপরের চিত্রের মডেলটি কেরাসে লিখে ফেলি।
from keras.models import * from keras.layers import * model = Sequential() model.add(Dense(5, input_shape=(3,), activation='relu')) model.add(Dense(2, activation='softmax')) model.summary()
চার নম্বর লাইনে দেখুন আমরা ইনপুট লেয়ারের শেপ ৩ বলে দিয়েছি। এর মানে ইনপুট লেয়ারে ৩টি নিউরন বা ইনপুট ডেটাতে মাত্র ৩টা ফিচার দেয়া আছে। আর এই Dense লেয়ারের নিউরন সংখ্যা ৫ সেটাও বলে দিয়েছি। এটা হলো হিডেন লেয়ার। এর পরে আমরা আরেকটি লেয়ার যোগ করেছি যেটাতে মাত্র দুইটি নিউরন থাকবে। এটা হলো আউটপুট লেয়ার। এটার ইনপুট সরাসরি ডেটাসেট থেকে যাবে না। ডেটাসেট থেকে হিডেন লেয়ার প্রতিটি ডেটা প্রসেস করে তারপর আউটপুট লেয়ারকে পাঠাবে। প্রসেসটা আমরা ইতিমধ্যে জানি।

উপরের চিত্রে দেখুন মাঝের কলামে আউটপুট শেপ বলে দেয়া আছে। এর মানে ঐ লেয়ার থেকে কোন শেপের আউটপুট যাবে।
মডেলের সামারিতে আপনি param, trainable param সহ আরো অনেক কিছু দেখতে পাচ্ছেন। এগুলো নিয়ে ভাব্বার কিছু নেই। ইনশা আল্লাহ আমরা আস্তে আস্তে বাকি গুলোও শিখে নিবো।
আর্টিফিশিয়াল নিউরাল নেটওয়ার্ক (ANN)
