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

اولین شبکه عصبی

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

وظیفه 1: مدلی که داده شد دو ویژگی ورودی ما را در یک نورون واحد ترکیب می کند. آیا این مدل غیرخطی‌ها را یاد می‌گیرد؟ برای تایید حدس خود آن را اجرا کنید.

وظیفه 2: سعی کنید تعداد نورون های لایه پنهان را از 1 به 2 افزایش دهید و همچنین سعی کنید از یک فعال سازی خطی به یک فعال سازی غیرخطی مانند ReLU تغییر دهید. آیا می توانید مدلی ایجاد کنید که بتواند غیرخطی ها را یاد بگیرد؟ آیا می تواند داده ها را به طور موثر مدل کند؟

وظیفه 3: سعی کنید با استفاده از یک فعال سازی غیرخطی مانند ReLU، تعداد نورون های لایه پنهان را از 2 به 3 افزایش دهید. آیا می تواند داده ها را به طور موثر مدل کند؟ چگونه کیفیت مدل از اجرا به اجرا متفاوت است؟

وظیفه 4: با افزودن یا حذف لایه های پنهان و نورون ها در هر لایه، آزمایش را ادامه دهید. همچنین می‌توانید نرخ‌های یادگیری، منظم‌سازی و سایر تنظیمات یادگیری را تغییر دهید. کمترین تعداد نورون‌ها و لایه‌هایی که می‌توانید استفاده کنید که از دست دادن تست 0.177 یا کمتر است، چقدر است؟

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

  • اولین لایه پنهان با 3 نورون.
  • لایه پنهان دوم با 3 نورون.
  • لایه پنهان سوم با 2 نورون.

(پاسخ ها درست در زیر تمرین ظاهر می شوند.)



راه اندازی شبکه عصبی

این تمرین دوباره از داده‌های XOR استفاده می‌کند، اما به تکرارپذیری شبکه‌های عصبی آموزشی و اهمیت مقداردهی اولیه می‌پردازد.

وظیفه 1: مدل را چهار یا پنج بار اجرا کنید. قبل از هر آزمایش، دکمه Reset the network را بزنید تا یک مقدار اولیه تصادفی جدید دریافت کنید. (دکمه Reset the network ، فلش دایره‌ای بازنشانی درست در سمت چپ دکمه Play است.) اجازه دهید هر آزمایش حداقل 500 مرحله اجرا شود تا از همگرایی اطمینان حاصل شود. خروجی هر مدل به چه شکلی همگرا می شود؟ این در مورد نقش مقداردهی اولیه در بهینه سازی غیر محدب چه می گوید؟

وظیفه 2: سعی کنید با افزودن یک لایه و چند گره اضافی، مدل را کمی پیچیده تر کنید. آزمایشات را از کار 1 تکرار کنید. آیا این ثبات اضافی به نتایج اضافه می کند؟

(پاسخ ها درست در زیر تمرین ظاهر می شوند.)



مارپیچ شبکه عصبی

این مجموعه داده یک مارپیچ نویزدار است. بدیهی است که یک مدل خطی در اینجا ناموفق خواهد بود، اما حتی ایجاد تلاقی ویژگی های تعریف شده به صورت دستی ممکن است سخت باشد.

وظیفه 1: بهترین مدلی را که می توانید آموزش دهید، فقط با استفاده از X 1 و X 2 . به راحتی می توانید لایه ها و نورون ها را اضافه یا حذف کنید، تنظیمات یادگیری مانند نرخ یادگیری، نرخ منظم سازی و اندازه دسته ای را تغییر دهید. بهترین ضرر آزمایشی که می توانید دریافت کنید چیست؟ سطح خروجی مدل چقدر صاف است؟

وظیفه 2: حتی با شبکه های عصبی، برای دستیابی به بهترین عملکرد اغلب مقداری از مهندسی ویژگی مورد نیاز است. ویژگی‌های محصول متقاطع یا تغییرات دیگری مانند sin (X 1 ) و sin (X 2 ) را اضافه کنید. مدل بهتری سراغ دارید؟ آیا سطح خروجی مدل صاف تر است؟

(پاسخ ها درست در زیر تمرین ظاهر می شوند.)