Dense Layer এবং Activation Functions হল নিউরাল নেটওয়ার্কের দুটি গুরুত্বপূর্ণ উপাদান। Dense Layer হল একটি পূর্ণসংখ্যক সংযোগ (fully connected layer) যেখানে প্রতিটি ইনপুট নিউরন একটি করে আউটপুট নিউরনের সাথে সংযুক্ত থাকে। অন্যদিকে Activation Functions নেটওয়ার্কের প্রতিটি লেয়ারের আউটপুট পরবর্তী লেয়ারের জন্য নির্ধারণ করে।
নিচে Dense Layer এবং Activation Functions (ReLU, Sigmoid, Softmax) সম্পর্কে বিস্তারিত আলোচনা করা হয়েছে।
১. Dense Layer:
Dense Layer বা Fully Connected Layer একটি সাধারণ ন্যূনতম নিউরাল নেটওয়ার্ক লেয়ার যা ইনপুট এবং আউটপুট নিউরনের মধ্যে পুরোপুরি সংযুক্ত থাকে।
Dense Layer সাধারণভাবে Dense(units, activation) ফাংশন হিসেবে ব্যবহার করা হয়। এখানে:
- units: আউটপুট নিউরনের সংখ্যা (এটি লেয়ারের আউটপুটের আকার নির্ধারণ করে)।
- activation: ব্যবহার করা অ্যাক্টিভেশন ফাংশন।
উদাহরণ:
from tensorflow.keras.layers import Dense
# Dense Layer তৈরি করা
model.add(Dense(units=64, activation='relu', input_dim=8)) # ইনপুট ডাইমেনশন ৮ এবং ৬৪ আউটপুট
এখানে, units=64 বলে দিচ্ছে যে এই লেয়ারের ৬৪টি আউটপুট নিউরন থাকবে, এবং ReLU অ্যাক্টিভেশন ফাংশন ব্যবহার করা হবে।
২. Activation Functions:
Activation Functions হল সেগুলি যা নিউরাল নেটওয়ার্কের প্রতিটি লেয়ারের আউটপুট নির্ধারণ করে। এটি ইনপুট সিগন্যালের একটি ট্রান্সফরমেশন, যা নেটওয়ার্কের শিখন ক্ষমতা এবং কর্মক্ষমতাকে প্রভাবিত করে। অ্যাক্টিভেশন ফাংশনের বেশ কয়েকটি ধরন রয়েছে, যার মধ্যে ReLU, Sigmoid, এবং Softmax অন্যতম।
২.১ ReLU (Rectified Linear Unit):
ReLU হল সবচেয়ে জনপ্রিয় অ্যাক্টিভেশন ফাংশন যা সাধারণত হিডেন লেয়ারগুলিতে ব্যবহৃত হয়। এটি ইনপুট পজিটিভ হলে আউটপুট হিসাবে ইনপুটকে ফেরত দেয় এবং ইনপুট নেগেটিভ হলে আউটপুট ০ ফেরত দেয়।
ReLU ফাংশন:
ReLU এর সুবিধা:
- সহজ এবং দ্রুত গণনা করা যায়।
- পজিটিভ ইনপুটে লিনিয়ার আউটপুট প্রদান করে, যা দ্রুত শিখন প্রক্রিয়া নিশ্চিত করে।
ReLU এর অসুবিধা:
- Vanishing Gradient Problem: যদি ইনপুট খুব বেশি নেগেটিভ হয় তবে আউটপুট ০ হয়ে যায়, ফলে ব্যাকপ্রোপাগেশন প্রক্রিয়ায় গ্রেডিয়েন্ট (gradient) বিলুপ্ত হয়ে যেতে পারে।
উদাহরণ:
from tensorflow.keras.layers import Dense
model.add(Dense(units=64, activation='relu', input_dim=8)) # ReLU অ্যাক্টিভেশন ব্যবহার করা
২.২ Sigmoid:
Sigmoid হল একটি সিগময়েড ফাংশন যা আউটপুটকে ০ থেকে ১ এর মধ্যে স্কেল করে। এটি সাধারণত output layer এর জন্য ব্যবহৃত হয়, যেখানে আউটপুট দুটি ক্লাসে বিভক্ত করা হয় (যেমন বাইনারি শ্রেণীবিভাজন)।
Sigmoid ফাংশন:
Sigmoid এর সুবিধা:
- আউটপুট ০ থেকে ১ এর মধ্যে থাকে, যা প্রবণতা পেতে সহায়ক (যেমন, সম্ভাবনা বা প্রোবাবিলিটি হিসেবে ব্যবহার করা যেতে পারে)।
- বাইনারি শ্রেণীবিভাজন সমস্যার জন্য আদর্শ।
Sigmoid এর অসুবিধা:
- Vanishing Gradient Problem: ইনপুটের মান খুব বেশি হলে গ্রেডিয়েন্ট বিলুপ্ত হতে পারে।
- আউটপুটটি ০ বা ১ এর মধ্যে সীমাবদ্ধ হওয়ায়, উচ্চ মানের ইনপুটে কার্যকরী হতে পারে না।
উদাহরণ:
from tensorflow.keras.layers import Dense
model.add(Dense(units=1, activation='sigmoid')) # Sigmoid অ্যাক্টিভেশন ব্যবহার করা
২.৩ Softmax:
Softmax ফাংশন সাধারণত মাল্টিক্লাস শ্রেণীবিভাজন সমস্যায় আউটপুট লেয়ারে ব্যবহৃত হয়। এটি আউটপুটকে একটি প্রোবাবিলিটি ভেক্টরে পরিণত করে, যার মান ০ এবং ১ এর মধ্যে থাকে এবং সমস্ত আউটপুটের যোগফল ১ হয়। এই প্রোবাবিলিটি সবার জন্য শ্রেণী নির্বাচন করতে ব্যবহৃত হয়।
Softmax ফাংশন:
যেখানে হল ইনপুটের প্রতিটি ভ্যালু এবং হল আউটপুট নিউরনের সংখ্যা।
Softmax এর সুবিধা:
- মাল্টিক্লাস শ্রেণীবিভাজন সমস্যার জন্য আদর্শ।
- প্রোবাবিলিটি হিসাবে আউটপুট প্রদানে উপকারী।
Softmax এর অসুবিধা:
- কিছুটা ধীর গণনা হতে পারে যদি আউটপুট নিউরন সংখ্যা অনেক বেশি হয়।
উদাহরণ:
from tensorflow.keras.layers import Dense
model.add(Dense(units=3, activation='softmax')) # Softmax অ্যাক্টিভেশন ব্যবহার করা
এখানে units=3 নির্দেশ করছে যে ৩টি শ্রেণী রয়েছে এবং Softmax ফাংশন তাদের মধ্যে প্রোবাবিলিটি প্রদান করবে।
সারাংশ:
- Dense Layer:
- একটি পূর্ণসংখ্যক সংযোগিত লেয়ার, যেখানে প্রতিটি ইনপুট নিউরন প্রতিটি আউটপুট নিউরনের সাথে সংযুক্ত থাকে।
- এর জন্য
Dense(units, activation)ফাংশন ব্যবহার করা হয়।
- Activation Functions:
- ReLU (Rectified Linear Unit): ইনপুট পজিটিভ হলে ইনপুট ফেরত দেয় এবং নেগেটিভ হলে ০ ফেরত দেয়। এটি সাধারণত হিডেন লেয়ারগুলিতে ব্যবহৃত হয়।
- Sigmoid: আউটপুট ০ থেকে ১ এর মধ্যে স্কেল করে, সাধারণত বাইনারি শ্রেণীবিভাজন সমস্যায় ব্যবহৃত হয়।
- Softmax: মাল্টিক্লাস শ্রেণীবিভাজন সমস্যায় আউটপুটকে প্রোবাবিলিটিতে রূপান্তরিত করে, যেখানে সমস্ত আউটপুটের যোগফল ১ হয়।
Read more