شبکه های عصبی: تمرین های تعاملی

در تمرین‌های تعاملی زیر، شما بیشتر با سازوکار درونی شبکه‌های عصبی آشنا خواهید شد. ابتدا، خواهید دید که چگونه تغییرات پارامتر و ابرپارامتر بر پیش‌بینی‌های شبکه تأثیر می‌گذارند. سپس از آموخته‌های خود برای آموزش یک شبکه عصبی جهت برازش داده‌های غیرخطی استفاده خواهید کرد.

تمرین ۱

ویجت زیر یک شبکه عصبی با پیکربندی زیر راه‌اندازی می‌کند:

  • لایه ورودی با ۳ نورون حاوی مقادیر 0.00 ، 0.00 و 0.00
  • لایه پنهان با ۴ نورون
  • لایه خروجی با ۱ نورون
  • تابع فعال‌سازی ReLU که برای تمام گره‌های لایه پنهان و گره خروجی اعمال می‌شود

تنظیمات اولیه شبکه را مرور کنید (توجه: هنوز روی دکمه‌های ▶️ یا >| کلیک نکنید ) و سپس وظایف زیر ویجت را انجام دهید.

وظیفه ۱

مقادیر سه ویژگی ورودی به مدل شبکه عصبی همگی 0.00 هستند. برای مشاهده تمام مقادیر اولیه، روی هر یک از گره‌های شبکه کلیک کنید. قبل از زدن دکمه پخش ( ▶️ )، به این سوال پاسخ دهید:

به نظر شما چه نوع مقدار خروجی تولید خواهد شد: مثبت، منفی یا 0؟
مقدار خروجی مثبت
مقدار خروجی منفی
مقدار خروجی ۰

حالا روی دکمه‌ی پخش (▶️) بالای شبکه کلیک کنید و مشاهده کنید که تمام مقادیر لایه‌ی پنهان و گره‌ی خروجی نمایش داده می‌شوند. آیا پاسخ شما در بالا درست بود؟

وظیفه ۲

قبل از اصلاح شبکه عصبی، به سوال زیر پاسخ دهید:

اگر بعد از لایه پنهان اول، یک لایه پنهان دیگر به شبکه عصبی اضافه کنید و به این لایه جدید ۳ گره بدهید و تمام پارامترهای ورودی و وزن/بایاس را یکسان نگه دارید، محاسبات کدام گره‌های دیگر تحت تأثیر قرار خواهد گرفت؟
تمام گره‌های شبکه، به جز گره‌های ورودی
فقط گره‌های موجود در اولین لایه پنهان
فقط گره خروجی

اکنون شبکه عصبی را اصلاح کنید تا یک لایه پنهان جدید با ۳ گره به صورت زیر اضافه شود:

  1. برای اضافه کردن یک لایه پنهان جدید قبل از لایه خروجی، روی دکمه + در سمت چپ لایه پنهان متن ۱ کلیک کنید.
  2. برای اضافه کردن دو گره دیگر به لایه، روی دکمه + بالای لایه پنهان جدید دو بار کلیک کنید.

آیا پاسخ بالا درست بود؟

وظیفه ۳

روی گره دوم (از بالا) در اولین لایه پنهان نمودار شبکه کلیک کنید. قبل از ایجاد هرگونه تغییر در پیکربندی شبکه، به سوال زیر پاسخ دهید:

اگر مقدار وزن w12 (که در زیر اولین گره ورودی، x1، نمایش داده می‌شود) را تغییر دهید، محاسبات کدام گره‌های دیگر می‌تواند برای برخی از مقادیر ورودی تحت تأثیر قرار گیرد؟
هیچکدام
گره دوم در لایه پنهان اول، تمام گره‌های لایه پنهان دوم و گره خروجی.
تمام گره‌های موجود در لایه پنهان اول، لایه پنهان دوم و لایه خروجی.

حالا، در فیلد متنی مربوط به وزن w 12 (که در زیر اولین گره ورودی، x 1 ، نمایش داده شده است) کلیک کنید، مقدار آن را به 5.00 تغییر دهید و Enter را بزنید. به‌روزرسانی‌های نمودار را مشاهده کنید.

آیا پاسخ شما درست بود؟ هنگام تأیید پاسخ خود مراقب باشید: اگر مقدار یک گره تغییر نکند، آیا این بدان معناست که محاسبه زیربنایی آن نیز تغییر نکرده است؟

تمرین ۲

در تمرین‌های مربوط به «تطبیق ویژگی‌ها» در ماژول داده‌های دسته‌بندی‌شده ، شما به صورت دستی تقاطع ویژگی‌ها را برای برازش داده‌های غیرخطی ایجاد کردید. اکنون، خواهید دید که آیا می‌توانید یک شبکه عصبی بسازید که بتواند به طور خودکار یاد بگیرد که چگونه داده‌های غیرخطی را در طول آموزش برازش دهد یا خیر.

وظیفه شما: یک شبکه عصبی پیکربندی کنید که بتواند نقاط نارنجی را از نقاط آبی در نمودار زیر جدا کند و به میزان خطای کمتر از 0.2 در هر دو داده آموزشی و آزمایشی دست یابد.

دستورالعمل‌ها:

در ویجت تعاملی زیر:

  1. با آزمایش برخی از تنظیمات پیکربندی زیر، ابرپارامترهای شبکه عصبی را تغییر دهید:
    • با کلیک روی دکمه‌های + و - در سمت چپ عنوان HIDDEN LAYERS در نمودار شبکه، لایه‌های پنهان را اضافه یا حذف کنید.
    • با کلیک روی دکمه‌های + و - بالای ستون لایه پنهان، نورون‌ها را از یک لایه پنهان اضافه یا حذف کنید.
    • با انتخاب یک مقدار جدید از منوی کشویی Learning rate در بالای نمودار، نرخ یادگیری را تغییر دهید.
    • با انتخاب یک مقدار جدید از منوی کشویی Activation در بالای نمودار، تابع فعال‌سازی را تغییر دهید.
  2. برای آموزش مدل شبکه عصبی با استفاده از پارامترهای مشخص شده، روی دکمه پخش (▶️) بالای نمودار کلیک کنید.
  3. تجسم مدل برازش داده را با پیشرفت آموزش، و همچنین مقادیر تلفات تست و تلفات آموزش را در بخش خروجی مشاهده کنید.
  4. اگر مدل در داده‌های تست و آموزش به میزان زیان کمتر از ۰.۲ دست نیافت، روی تنظیم مجدد کلیک کنید و مراحل ۱ تا ۳ را با مجموعه‌ای متفاوت از تنظیمات پیکربندی تکرار کنید. این فرآیند را تا زمانی که به نتایج دلخواه برسید، تکرار کنید.