Dense লেয়ার এবং Activation Functions (ReLU, Sigmoid, Softmax)

CNTK তে বেসিক মডেল তৈরি - মাইক্রোসফট কগনিটিভ টুলকিট (Microsoft Cognitive Toolkit) - Machine Learning

312

Dense Layer এবং Activation Functions ডিপ লার্নিং মডেলগুলির অত্যন্ত গুরুত্বপূর্ণ উপাদান। Dense Layer মডেলের প্রতিটি নিউরনের মধ্যে সম্পূর্ণ সংযোগ প্রদান করে এবং Activation Functions মডেলের প্রতিটি নিউরনের আউটপুট নির্ধারণ করে। নিচে আমি Dense Layer এবং জনপ্রিয় Activation Functions যেমন ReLU, Sigmoid, এবং Softmax এর ব্যাখ্যা প্রদান করছি।


Dense Layer (Fully Connected Layer)

Dense Layer বা Fully Connected Layer (FC Layer) হল নিউরাল নেটওয়ার্কের একটি অন্যতম মৌলিক লেয়ার যেখানে প্রতিটি ইনপুট নিউরন পরবর্তী লেয়ারের প্রতিটি নিউরনের সাথে সংযুক্ত থাকে। এটি একটি মেট্রিক্স মাল্টিপ্লিকেশন অপারেশন করে, যেখানে ইনপুট ভেক্টর এবং লেয়ারের ওজন (weights) একটি ম্যাট্রিক্স মাল্টিপ্লিকেশন দ্বারা গুণিত হয়, তারপর একটি বায়াস (bias) যোগ করা হয়।

  • ওজন (Weights): Dense লেয়ারে প্রতিটি ইনপুট এবং আউটপুট নিউরনের মধ্যে একটি সম্পর্ক থাকে যা ওজন দ্বারা প্রতিনিধিত্ব করা হয়।
  • বায়াস (Bias): প্রতিটি আউটপুট নিউরনের জন্য একটি অতিরিক্ত প্যারামিটার হিসেবে বায়াস ব্যবহৃত হয়।

Dense Layer মডেলকে আরও জটিল এবং ক্ষমতাশালী করতে সাহায্য করে, কারণ এটি নিউরাল নেটওয়ার্কের প্রতিটি স্তরের মধ্যে সম্পর্কের গঠন করে।

Dense Layer উদাহরণ (Python / CNTK):

import cntk as c

# ইনপুট ভেরিয়েবল তৈরি করা
input_var = c.input_variable(2)

# Dense লেয়ার (3 আউটপুট নিউরন)
dense_layer = c.layers.Dense(3)(input_var)

Activation Functions (এ্যাকটিভেশন ফাংশন)

Activation Functions হল ফাংশনগুলি যা Dense Layer এর আউটপুটে অ্যাপ্লাই করা হয় এবং এটি নিউরাল নেটওয়ার্কের প্রতিটি নিউরনের জন্য আউটপুট নির্ধারণ করে। এটি একটি নির্দিষ্ট ইনপুটের উপর ভিত্তি করে আউটপুট তৈরি করতে ব্যবহৃত হয় এবং এটি মডেলটিকে non-linear করে তোলে, যার ফলে এটি জটিল ডেটা প্যাটার্ন শিখতে সক্ষম হয়।

১. ReLU (Rectified Linear Unit)

ReLU হল সবচেয়ে জনপ্রিয় অ্যাক্টিভেশন ফাংশনগুলির মধ্যে একটি। এটি ইনপুটের জন্য সরল লিনিয়ার ফাংশন ব্যবহার করে যা শূন্যের নিচে সমস্ত মানকে শূন্যে রূপান্তরিত করে এবং শূন্যের উপরে থাকা মানগুলো অপরিবর্তিত রাখে।

ReLU Formula:

ReLU(x)=max(0,x)\text{ReLU}(x) = \max(0, x)

  • পজিটিভ ইনপুট: ইনপুটটি পজিটিভ হলে আউটপুট ইনপুটের সমান থাকে।
  • নেগেটিভ ইনপুট: ইনপুটটি নেগেটিভ হলে আউটপুট শূন্য (0) হয়।

ReLU ফাংশন ব্যবহারের সুবিধা:

  • দ্রুত কনভার্জেন্স
  • সহজ এবং কার্যকর
  • গ্র্যাডিয়েন্ট বিলুপ্তি সমস্যা কমায়

ReLU উদাহরণ (Python / CNTK):

import cntk as c

# ইনপুট ভেরিয়েবল
input_var = c.input_variable(2)

# ReLU অ্যাকটিভেশন ফাংশন
relu_layer = c.relu(input_var)

২. Sigmoid Activation Function

Sigmoid ফাংশন একটি সিগময়েডাল আকারের গঠন প্রদান করে যা ইনপুটের উপর ভিত্তি করে ০ থেকে ১ এর মধ্যে আউটপুট প্রদান করে। এটি মূলত বাইনারি ক্লাসিফিকেশন সমস্যার জন্য ব্যবহৃত হয়। সিগময়েড ফাংশন মসৃণ এবং ডিফারেন্সিয়েবল, যা ব্যাকপ্রপাগেশন অ্যালগরিদমে সাহায্য করে।

Sigmoid Formula:

σ(x)=11+ex\sigma(x) = \frac{1}{1 + e^{-x}}

  • নেট পজিটিভ ইনপুট: সিগময়েডের আউটপুট ১ এর কাছে চলে আসে।
  • নেট নেগেটিভ ইনপুট: সিগময়েডের আউটপুট ০ এর কাছে চলে আসে।

Sigmoid ফাংশন ব্যবহারের সুবিধা:

  • ছোট এবং মাঝারি আকারের ডেটার জন্য কার্যকর।
  • আউটপুটকে ০ থেকে ১ এর মধ্যে সীমাবদ্ধ রাখে।

Sigmoid উদাহরণ (Python / CNTK):

import cntk as c

# ইনপুট ভেরিয়েবল
input_var = c.input_variable(2)

# Sigmoid অ্যাকটিভেশন ফাংশন
sigmoid_layer = c.sigmoid(input_var)

৩. Softmax Activation Function

Softmax ফাংশন একটি নরমাকৃত আউটপুট দেয় এবং এটি সাধারণত মাল্টি-ক্লাস ক্লাসিফিকেশন সমস্যায় ব্যবহৃত হয়। এটি ইনপুট ডেটার মানগুলোকে ০ থেকে ১ এর মধ্যে রূপান্তরিত করে, যাতে তাদের সমষ্টি ১ হয়। এটি প্রতিটি ক্লাসের জন্য প্রোবাবিলিটি প্রদান করে, যা পরবর্তী পর্যায়ে সর্বাধিক প্রোবাবিলিটির ক্লাস নির্বাচন করতে সহায়ক।

Softmax Formula:

Softmax(xi)=exij=1Kexj\text{Softmax}(x_i) = \frac{e^{x_i}}{\sum_{j=1}^K e^{x_j}}

এখানে, xix_i হল ইনপুটের ii-তম ভ্যালু এবং KK হল আউটপুট ক্লাসের সংখ্যা।

  • Softmax বিভিন্ন ক্লাসের মধ্যে সবচেয়ে সম্ভাব্য ক্লাসকে চিহ্নিত করে, যেখানে সকল আউটপুট যোগফলে ১ সমান থাকে।

Softmax উদাহরণ (Python / CNTK):

import cntk as c

# ইনপুট ভেরিয়েবল
input_var = c.input_variable(4)

# Softmax অ্যাকটিভেশন ফাংশন
softmax_layer = c.softmax(input_var)

সারাংশ

  • Dense Layer হল নিউরাল নেটওয়ার্কের একটি গুরুত্বপূর্ণ লেয়ার, যেখানে ইনপুট এবং আউটপুট নিউরনের মধ্যে সম্পূর্ণ সংযোগ থাকে। এটি গাণিতিক অপারেশন দ্বারা আউটপুট তৈরি করে এবং এটি নিউরাল নেটওয়ার্কের মূল অংশ।
  • Activation Functions (যেমন ReLU, Sigmoid, এবং Softmax) নিউরাল নেটওয়ার্কের আউটপুট নির্ধারণ করে।
    • ReLU আউটপুটকে ০ বা ইনপুটের মতো রাখে, যা দ্রুত শিখন নিশ্চিত করে।
    • Sigmoid বাইনারি আউটপুটে ব্যবহার করা হয় এবং এটি ০ থেকে ১ মধ্যে মান প্রদান করে।
    • Softmax মাল্টি-ক্লাস সমস্যার জন্য ব্যবহৃত হয় এবং এটি আউটপুটকে প্রোবাবিলিটি আকারে রূপান্তরিত করে।

এই Activation Functions গুলি একটি মডেলকে non-linear করে তোলে, যাতে এটি জটিল প্যাটার্ন এবং সম্পর্ক শিখতে সক্ষম হয়।

Content added By
Promotion

Are you sure to start over?

Loading...