برای ساختن یک شبکه عصبی که غیرخطیها را یاد میگیرد، با ساختار مدل آشنا زیر شروع کنید: یک مدل خطی به شکل $y' = b + w_1x_1 + w_2x_2 + w_3x_3$.
میتوانیم این معادله را مطابق شکل زیر تجسم کنیم، که در آن $x_1$، $x_2$، و $x_3$ سه گره ورودی ما (به رنگ آبی) و $y'$ گره خروجی ما (به رنگ سبز) هستند.
تمرین 1
در مدل بالا، مقادیر وزن و بایاس به طور تصادفی مقداردهی اولیه شده اند. برای آشنایی با رابط و بررسی مدل خطی، کارهای زیر را انجام دهید. فعلاً میتوانید از منوی کشویی تابع فعالسازی چشمپوشی کنید. بعداً در ماژول در مورد این موضوع بحث خواهیم کرد.
روی دکمه Play (▶️) در بالای شبکه کلیک کنید تا مقدار گره خروجی برای مقادیر ورودی $x_1 = 1.00$، $x_2 = 2.00$، و $x_3 = 3.00$ محاسبه شود.
روی گره دوم در لایه ورودی کلیک کنید و مقدار را از 2.00 به 2.50 افزایش دهید. توجه داشته باشید که مقدار گره خروجی تغییر می کند. گره های خروجی را انتخاب کنید (به رنگ سبز) و پنل محاسبات را بررسی کنید تا ببینید مقدار خروجی چگونه محاسبه شده است.
روی گره خروجی (به رنگ سبز) کلیک کنید تا مقادیر پارامتر وزن ($w_1$، $w_2$، $w_3$) و بایاس ($b$) را ببینید. مقدار وزن را برای $w_3$ کاهش دهید (دوباره توجه داشته باشید که مقدار گره خروجی و محاسبات زیر تغییر کرده است). سپس، مقدار بایاس را افزایش دهید. بررسی کنید که این تغییرات چگونه بر خروجی مدل تاثیر گذاشته است.
افزودن لایه ها به شبکه
توجه داشته باشید که وقتی وزن و مقادیر بایاس شبکه را در تمرین 1 تنظیم کردید، رابطه ریاضی کلی بین ورودی و خروجی را تغییر نداد. مدل ما هنوز یک مدل خطی است.
اما اگر لایه دیگری را بین لایه ورودی و خروجی به شبکه اضافه کنیم چه می شود؟ در اصطلاح شبکه های عصبی، لایه های اضافی بین لایه ورودی و خروجی را لایه های پنهان و گره های این لایه ها را نورون می نامند.
مقدار هر نورون در لایه پنهان مانند خروجی یک مدل خطی محاسبه میشود: مجموع حاصلضرب هر یک از ورودیهای آن (نرونهای لایه شبکه قبلی) و یک پارامتر وزن منحصربهفرد را به علاوه تعصب به طور مشابه، نورون های لایه بعدی (در اینجا، لایه خروجی) با استفاده از مقادیر نورون لایه پنهان به عنوان ورودی محاسبه می شوند.
این لایه پنهان جدید به مدل ما اجازه می دهد تا داده های ورودی را با استفاده از مجموعه ای از پارامترهای دیگر ترکیب کند. آیا این می تواند به مدل ما در یادگیری روابط غیرخطی کمک کند؟
تمرین 2
ما یک لایه پنهان حاوی چهار نورون به مدل اضافه کرده ایم.
روی دکمه Play (▶️) بالای شبکه کلیک کنید تا مقدار چهار گره لایه پنهان و گره خروجی برای مقادیر ورودی $x_1 = 1.00$، $x_2 = 2.00$، و $x_3 = 3.00$ محاسبه شود.
سپس مدل را بررسی کنید و از آن برای پاسخ به سوالات زیر استفاده کنید.
سعی کنید پارامترهای مدل را تغییر دهید و تأثیر آن را بر روی مقادیر گره لایه پنهان و مقدار خروجی مشاهده کنید (برای مشاهده نحوه محاسبه این مقادیر می توانید پانل محاسبات زیر را بررسی کنید).
آیا این مدل می تواند غیرخطی ها را یاد بگیرد؟
اگر روی هر یک از گره های لایه پنهان کلیک کنید و محاسبات زیر را مرور کنید، خواهید دید که همه آنها خطی هستند (شامل عملیات ضرب و جمع هستند).
اگر سپس روی گره خروجی کلیک کنید و محاسبه زیر را مرور کنید، خواهید دید که این محاسبه نیز خطی است. محاسبات خطی انجام شده بر روی خروجی محاسبات خطی نیز خطی هستند، به این معنی که این مدل نمی تواند غیرخطی ها را یاد بگیرد.