নীচের ইন্টারেক্টিভ অনুশীলনে, আপনি নিউরাল নেটওয়ার্কগুলির অভ্যন্তরীণ কাজগুলি আরও অন্বেষণ করবেন। প্রথমে, আপনি দেখতে পাবেন কিভাবে প্যারামিটার এবং হাইপারপ্যারামিটার পরিবর্তন নেটওয়ার্কের পূর্বাভাসকে প্রভাবিত করে। তারপরে আপনি অরৈখিক ডেটা ফিট করার জন্য একটি নিউরাল নেটওয়ার্ককে প্রশিক্ষণ দিতে যা শিখেছেন তা ব্যবহার করবেন।
ব্যায়াম 1
নিম্নলিখিত উইজেট নিম্নলিখিত কনফিগারেশন সহ একটি নিউরাল নেটওয়ার্ক সেট আপ করে:
-
0.00
,0.00
এবং0.00
মান ধারণকারী 3টি নিউরন সহ ইনপুট স্তর - 4টি নিউরন সহ লুকানো স্তর
- 1 নিউরন সহ আউটপুট স্তর
- ReLU অ্যাক্টিভেশন ফাংশন সমস্ত লুকানো স্তর নোড এবং আউটপুট নোডে প্রয়োগ করা হয়
নেটওয়ার্কের প্রাথমিক সেটআপ পর্যালোচনা করুন (দ্রষ্টব্য: এখনও ▶️ বা >| বোতামগুলিতে ক্লিক করবেন না ), এবং তারপর উইজেটের নীচের কাজগুলি সম্পূর্ণ করুন৷
টাস্ক 1
নিউরাল নেটওয়ার্ক মডেলের তিনটি ইনপুট বৈশিষ্ট্যের মান সবই 0.00
। সমস্ত প্রারম্ভিক মান দেখতে নেটওয়ার্কের প্রতিটি নোড ক্লিক করুন. প্লে ( ▶️ ) বোতামে আঘাত করার আগে, এই প্রশ্নের উত্তর দিন:
এখন নেটওয়ার্কের উপরে প্লে (▶️) বোতামে ক্লিক করুন, এবং সমস্ত লুকানো-স্তর এবং আউটপুট নোডের মানগুলি পূরণ করা দেখুন। উপরে আপনার উত্তর সঠিক ছিল?
একটি ব্যাখ্যা জন্য এখানে ক্লিক করুন
ওজন এবং পক্ষপাতের পরামিতিগুলি এলোমেলোভাবে শুরু করার উপর ভিত্তি করে আপনি যে সঠিক আউটপুট মান পাবেন তা পরিবর্তিত হবে। যাইহোক, যেহেতু ইনপুট স্তরের প্রতিটি নিউরনের মান 0, তাই লুকানো-স্তর নোডের মানগুলি গণনা করতে ব্যবহৃত ওজনগুলি সবই শূন্য হয়ে যাবে। উদাহরণস্বরূপ, প্রথম লুকানো স্তর নোড গণনা হবে:
y = ReLU(w 11 * 0.00 + w 21 * 0.00 + w 31 * 0.00 + b)
y = ReLU(b)
সুতরাং প্রতিটি লুকানো-স্তর নোডের মান বায়াস (b) এর ReLU মানের সমান হবে, যা b ঋণাত্মক হলে 0 হবে এবং b 0 বা ধনাত্মক হলে b নিজেই হবে।
আউটপুট নোডের মান নিম্নলিখিত হিসাবে গণনা করা হবে:
y = ReLU(w 11 * x 11 + w 21 * x 21 + w 31 * x 31 + w 41 * x 41 + b)
টাস্ক 2
নিউরাল নেটওয়ার্ক পরিবর্তন করার আগে, নিম্নলিখিত প্রশ্নের উত্তর দাও:
নিম্নরূপ 3 নোড সহ একটি নতুন লুকানো স্তর যুক্ত করতে এখন নিউরাল নেটওয়ার্ক পরিবর্তন করুন:
- আউটপুট স্তরের আগে একটি নতুন লুকানো স্তর যোগ করতে পাঠ্য 1 লুকানো স্তরের বাম দিকে + বোতামে ক্লিক করুন।
- নতুন লুকানো স্তরের উপরে + বোতামটি লেয়ারে আরও 2টি নোড যোগ করতে দুবার ক্লিক করুন।
উপরে আপনার উত্তর সঠিক ছিল?
একটি ব্যাখ্যা জন্য এখানে ক্লিক করুন
শুধুমাত্র আউটপুট নোড পরিবর্তন. কারণ এই নিউরাল নেটওয়ার্কের জন্য অনুমান হল "ফিড-ফরোয়ার্ড" (শুরু থেকে শেষ পর্যন্ত গণনা অগ্রগতি), নেটওয়ার্কে একটি নতুন স্তর যোগ করা হলে তা শুধুমাত্র নতুন স্তরের পরে নোডগুলিকে প্রভাবিত করবে, এর আগেরগুলি নয়।
টাস্ক 3
নেটওয়ার্ক গ্রাফের প্রথম লুকানো স্তরের দ্বিতীয় নোড (উপর থেকে) ক্লিক করুন। নেটওয়ার্ক কনফিগারেশনে কোনো পরিবর্তন করার আগে, নিম্নলিখিত প্রশ্নের উত্তর দিন:
এখন, টেক্সট ফিল্ডে ক্লিক করুন ওজন w 12 (প্রথম ইনপুট নোডের নীচে প্রদর্শিত, x 1 ), এর মান পরিবর্তন করুন 5.00
, এবং এন্টার টিপুন। গ্রাফের আপডেটগুলি পর্যবেক্ষণ করুন।
আপনার উত্তর সঠিক ছিল? আপনার উত্তর যাচাই করার সময় সতর্কতা অবলম্বন করুন: যদি একটি নোড মান পরিবর্তন না হয়, তাহলে এর অর্থ কি অন্তর্নিহিত গণনা পরিবর্তন হয়নি?
একটি ব্যাখ্যা জন্য এখানে ক্লিক করুন
প্রথম লুকানো স্তরে প্রভাবিত একমাত্র নোড হল দ্বিতীয় নোড (যেটি আপনি ক্লিক করেছেন)। প্রথম লুকানো স্তরের অন্যান্য নোডগুলির জন্য মান গণনাগুলিতে প্যারামিটার হিসাবে w 12 থাকে না, তাই তারা প্রভাবিত হয় না। দ্বিতীয় লুকানো স্তরের সমস্ত নোডগুলি প্রভাবিত হয়, কারণ তাদের গণনাগুলি প্রথম লুকানো স্তরের দ্বিতীয় নোডের মানের উপর নির্ভর করে। একইভাবে, আউটপুট নোডের মান প্রভাবিত হয় কারণ এর গণনা দ্বিতীয় লুকানো স্তরের নোডের মানগুলির উপর নির্ভর করে।
আপনি কি মনে করেন যে উত্তরটি "কোনটিই নয়" কারণ আপনি ওজনের মান পরিবর্তন করার সময় নেটওয়ার্কে নোডের কোনো মান পরিবর্তিত হয়নি? মনে রাখবেন যে একটি নোডের জন্য একটি অন্তর্নিহিত গণনা নোডের মান পরিবর্তন না করে পরিবর্তিত হতে পারে (যেমন, ReLU(0) এবং ReLU(–5) উভয়ই 0 এর আউটপুট তৈরি করে)। নোডের মানগুলি দেখে নেটওয়ার্কটি কীভাবে প্রভাবিত হয়েছিল সে সম্পর্কে অনুমান করবেন না; পাশাপাশি গণনা পর্যালোচনা নিশ্চিত করুন.
ব্যায়াম 2
ক্যাটাগরিক্যাল ডেটা মডিউলের ফিচার ক্রস অনুশীলনে , আপনি ননলাইনার ডেটা ফিট করার জন্য ম্যানুয়ালি ফিচার ক্রস তৈরি করেছেন। এখন, আপনি দেখতে পাবেন যে আপনি একটি নিউরাল নেটওয়ার্ক তৈরি করতে পারেন যা প্রশিক্ষণের সময় অরৈখিক ডেটা কীভাবে ফিট করতে হয় তা স্বয়ংক্রিয়ভাবে শিখতে পারে।
আপনার কাজ: একটি নিউরাল নেটওয়ার্ক কনফিগার করুন যা নীচের চিত্রের নীল বিন্দু থেকে কমলা বিন্দুগুলিকে আলাদা করতে পারে, প্রশিক্ষণ এবং পরীক্ষা উভয় ডেটাতেই 0.2-এর কম ক্ষতি অর্জন করে৷
নির্দেশাবলী:
নীচের ইন্টারেক্টিভ উইজেটে:
- নিম্নলিখিত কিছু কনফিগারেশন সেটিংসের সাথে পরীক্ষা করে নিউরাল নেটওয়ার্ক হাইপারপ্যারামিটারগুলি পরিবর্তন করুন:
- নেটওয়ার্ক ডায়াগ্রামে লুকানো স্তরের শিরোনামের বাম দিকে + এবং - বোতামে ক্লিক করে লুকানো স্তরগুলি যোগ করুন বা সরান৷
- একটি লুকানো স্তর কলামের উপরে + এবং - বোতামে ক্লিক করে একটি লুকানো স্তর থেকে নিউরন যোগ করুন বা সরান৷
- ডায়াগ্রামের উপরে শেখার হার ড্রপ-ডাউন থেকে একটি নতুন মান বেছে নিয়ে শেখার হার পরিবর্তন করুন।
- ডায়াগ্রামের উপরে অ্যাক্টিভেশন ড্রপ-ডাউন থেকে একটি নতুন মান বেছে নিয়ে অ্যাক্টিভেশন ফাংশনটি পরিবর্তন করুন।
- নির্দিষ্ট প্যারামিটার ব্যবহার করে নিউরাল নেটওয়ার্ক মডেলকে প্রশিক্ষণ দিতে ডায়াগ্রামের উপরে প্লে (▶️) বোতামে ক্লিক করুন।
- প্রশিক্ষণের অগ্রগতির সাথে সাথে ডেটার সাথে মানানসই মডেলের ভিজ্যুয়ালাইজেশন, সেইসাথে আউটপুট বিভাগে পরীক্ষার ক্ষতি এবং প্রশিক্ষণের ক্ষতির মানগুলি পর্যবেক্ষণ করুন।
- যদি মডেলটি পরীক্ষা এবং প্রশিক্ষণের ডেটাতে 0.2-এর নিচে ক্ষতি অর্জন না করে, তাহলে রিসেট ক্লিক করুন এবং কনফিগারেশন সেটিংসের একটি ভিন্ন সেটের সাথে ধাপ 1-3 পুনরাবৃত্তি করুন। আপনি পছন্দসই ফলাফল অর্জন না হওয়া পর্যন্ত এই প্রক্রিয়াটি পুনরাবৃত্তি করুন।
আমাদের সমাধানের জন্য এখানে ক্লিক করুন
আমরা 0.2 এর নিচে পরীক্ষা এবং প্রশিক্ষণ উভয় ক্ষতি অর্জন করতে সক্ষম হয়েছি:
- 3টি নিউরন ধারণকারী 1টি লুকানো স্তর যোগ করা হচ্ছে।
- 0.01 শেখার হার বেছে নেওয়া।
- ReLU-এর একটি অ্যাক্টিভেশন ফাংশন বেছে নেওয়া।