شبکه عصبی مدل پرسپترون تک لایه (SLP)، ساده ترین شبکه عصبی است که پایه ای برای ساخت دیگر شبکه های عصبی است. در این شبکه لایه پنهان نیست و تنها لایه ورودی و خروجی هست. بنابراین این شبکه های برای مسئله ها با داده های پیچیده و رابطه غیر خطی میان آنها کاربردی و بهینه نیست. برای نمونه در تشخیص شماره های دست نویس، به هیچ عنوان SLP پسندیده و کاربردی نیست.

مدل پرسپترون چند لایه

MLP با این جنبه از SLP متمایز می شود که مدل MLP دارای یک یا چندین لایه پنهان (Hidden Layer) است که این لایه های پنهان بر خروجی شبکه تاثیرگذار هستند. هر نورون در این مدل یک ورودی را از یک نورون دریافت می کند و یا اینکه یک محیط از نقطه ظر نورون ورودی را شکل می دهد. در SLP و MLP به هر نورون یک سیناپس وصل شده و به هر سیناپس یک وزن انتساب داده شده است. در مفاهیم دانش اعصاب (پزشکی) و شبکه های عصبی مصنوعی (NNA)، یک وزن سیناپس (Synaptic Weight)، توانایی و نیروی (Strength) میان اتصال میان دو  گره را نشان می دهد. به گفته دیگر تاثیر یک نورون بر دیگری را نشان می دهد. در ادامه گفته ایم که هر دوتایی نورون و وزن، تاثیر بیشتری دارد که ارزش (مقدار) وزن بیشتر باشد.

بنابراین برای بالا بردن کارایی برای حل مسئله های پیچیده لایه های پنهان را به شکبه پرسپترون می افزییم تا MLP پدید آید. مدل هر نورون در شبکه MLP در برگیرنده یک تابع فعال سازی غیرخطی (Nonlinear) است که قابل تشخیص است. شبکه می تواند دارای یک یا چندین لایه پنهان میان دو لایه ورودی و لایه خروجی باشد. این شبکه از درجه بالایی از اتصال برخوردار است، که اندازه توان هر اتصال با وزن سیناپسی مشخص می شود.

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

بنابراین فرایند یادگیری دشوارتر می شود زیرا جستجو باید در یک فضای بسیار بزرگتر از توابع ممکن انجام شود. یک روش محبوب برای آموزش شبکه های چند لایه (MLP)، الگوریتم انتشار عقب (Back-Propagation) است که شامل الگوریتم LMS به عنوان یک مورد خاص است. این آموزش در دو مرحله انجام می شود:

۱ – در گام رو به جلو (Forward Phase) ، وزن سیناپسی شبکه ثابت شده و سیگنال ورودی از راه شبکه ، لایه به لایه پخش (Propagated) می شود، تا آن زمانی که به خروجی برسد. بنابراین، در این گام، تغییرات به پتانسیل های فعال سازی و خروجی سلول های عصبی در شبکه، محدود می شوند.

۲ – در مرحله عقب، با سنجش خروجی شبکه با یک پاسخ دلخواه، یک سیگنال خطا (Error Signal) تولید می شود. سیگنال خطای حاصل از طریق شبکه، دوباره لایه به لایه پخش می شود ، اما این بار انتشار در جهت عقب انجام می شود. در این مرحله دوم ، تنظیمات پی در پی بر روی وزن های سیناپسی شبکه انجام می شود. محاسبه تنظیمات برای لایه خروجی ساده است ، اما برای لایه های پنهان بسیار چالش برانگیز است.

شکل زیر معماری شبکه MLP را با دو لایه پنهان نشان می دهد. همانگونه که می بینید از هر نورون در یک لایه به همه نورون های لایه پَسین (بعدی) یک اتصال هست که این گونه را Fully Connected می گویند. در فاز رو به جلو (Forward)، سیگنال های ورودی (همان داده های ورودی) از سمت چپ به راست در راستای شبکه پیش می روند.

در لایه ورودی (Input Layer) نورون ها، داده ها را دریافت می کنند و نورونهای خروجی (Outcome Neurons) لایه خروجی (Output Layer) شبکه را شکل می دهند. نورون های باقی مانده لایه های پنهان شبکه را شکل می دهند. بنابراین لایه یا بایه های پنهان بخشی از ورودی یا خروجی نیستند و از این رو نورون های لایه پنهان را نورون های پنهان (Hidden Neurons) می گوییم.

در لایه ورودی (Input Layer) نورون ها، داده ها را دریافت می کنند و نورونهای خروجی (Outcome Neurons) لایه خروجی (Output Layer) شبکه را شکل می دهند. نورون های باقی مانده لایه های پنهان شبکه را شکل می دهند. بنابراین لایه یا بایه های پنهان بخشی از ورودی یا خروجی نیستند و از این رو نورون های لایه پنهان را نورون های پنهان (Hidden Neurons) می گوییم.

کاربرد نورون های پنهان

لایه یا لایه های پنهان درون شبکه عصبی، در میان دو لایه ورودی و خروجی قرار می گیرند. شاید شمارِ (تعداد) نورون های لایه پنهان با لایه ورودی یکسان باشد و یا نباشد. در شکل زیر شبکه عصبی SLP در چپ و شبکه عصبی MLP با دو لایه پنهان در راست نشان داده شده اند. همانگونه که می بینید نورون های ورودی با x از 1 تا m و نورون های لایه پنهان با h از 1 تا n نشان گذاری شده اند. نورون (h(1, 2 یعنی دمین نورون از نخستین لایه پنهان، بنابراین نورون (h(2,2 یعنی دومین نورون از دومین لایه پنهان.

اگر مجموعه داده دارای m ویژگی باشد بنابراین در شبکه های عصبی لایه ورودی نیز دارای m نورون است و از این رو نیاز به n تا وزن W نیز هست که درودی ها ضرب شوند. توجه کنید ویژگی های مجموعه داده متغیرهای مستقلی هستند که بر خروجی یا متغیر وابسته تاثیر می گذارند. همچنین با داشتن n نورون درون لایه پنهان، نیاز به n  تا مجموعه وزن های (W1, W2, .. Wn) دارید تا بتوان عملیات ضرب وزن ها در ورودی های X انجام شود.

همانگونه که گفته شد ورودی لایه پنهان نخستین، از لایه پیشین، لایه ورودی (Input Layer) است و همچنین گفتیم n تا مجموعه وزن ها داریم، بنابراین با m تا ورودی X به لایه پنهان، آنها در m تا از وزن های لایه پنهان نخست ضرب می شوند. بنابراین ورودی X1 در وزن (W(1,1 ضرب می شود که برابر است با نخستین وزن از نخستین لایه پنهان. در شکل زیر تابع مجموع حاصل ضرب های ورودی های Xi در Wi که i شماره ای است از 1 تا m نشان داده شده که m برابر با شمار (تعداد) ورودی ها به شبکه است.

در شکل بالا هر ورودی Xi در (W(i,1 ضرب می شود که برآیند (نتیجه) آن z نامگذاری شده است. اکنون این z به تابع فعال سازی فرستاده می شود که در این زمان ما به ازای هر نورون در لایه پنهان نخست یک خروجی داریم که اکنون این خروجی ها ورودی هایی برای لایه پنهان پَسین خواهند بود. بازهم این ورودی های تازه بدست آمده در وزن های لایه پنهان دوم ضرب شده و به تابع فعال سازی آن فرستاده می شوند و بازهم برای هر نورون لایه پنهان دوم، یک خروجی داریم که می توانند ورودی لایه پنهان دیگری باشند.

بنابراین می بینید که در MLP در کنار اینکه می تواند یک یا چندین لایه پنهان باشد، همچنین هر لایه پنهان تابع فعال سازی دارد که این تابع های فعال سازی نیز می تواند در لایه های پنهان، گوناگون و ناهمسان باشند. به هر روی ما از شبکه عصبی پاسخ دلخواه پایانی را می خواهیم که با ŷ در شکل های بالا نمایش داده شده است.

توجه کنید، معمولا، در یادگیری ماشین و یادگیری ژرف (و شبکه های عصبی) نشانه ŷ پاسخی است که مدل بدست می آورد ولی y پاسخ واقعی است که ما از مدل می خواستیم.

بنابراین می بینید که لایه های پنهان چیز شگفتی نیستند و آنها تنها وزن های بیشتری نسبت به مدل SLP را فراهم می کنند. هنگامی که می خواهید یک شبکه عصبی را با مجموعه داده بزرگ با شمار (تعداد) زیادی ویژگی آموزش دهید، این منبع پردازشی بسیار نیرمند و بالایی را مانند حافظه اصلی (RAM) می خواهد.

کاربرد لایه پنهان

نورون های پنهان به عنوان آشکار سازهای ویژگی (Feature Detector) به کار می روند. به این ترتیب، آنها نقش مهمی در عملکرد یک پرسپترون چند لایه بازی می کنند. با پیشرفت روند یادگیری در شبکه عصبی چند لایه، نورون های پنهان به تدریج ویژگی ها برجسته و مشخصه داده های آموزش را کشف می کنند.

آنها این کار را با انجام یک تبدیل غیر خطی روی داده های ورودی به یک فضای تازه با نام فضای ویژگی (Feature Space) انجام می دهند. تابع فعال سازی درون لایه پنهان است و هر لایه پنهان می تواند تابع فعال سازی خودش را داشته باشد. در نوشته دیگری درباره مفهوم های فضای ویژگی و یادگیری مفهوم (Concept Learning) گفته شده است.

  • شمار (تعداد) گره های لایه ورودی برابر با شمار ویژگی های مجموعه داده بعلاوه یک است زیرا یک ورودی نیز به عنوان بایاس خواهد بود.
  • شمار گره های لایه خروجی بستگی به مسئله دارد. اگر مسئله رگرسیون باشد، پس مقدار بازگشتی یک تک مقدار است و از این رو لایه خروجی تنها دارای یک نورون است. همچنین اگر مسئله طبقه بندی باشد، بازهم می توان یک نورون داشت که کلاس پیش بینی شده را برگشت می دهد. ولی اگر مسئله از تابع فعال سازی softmax کمک گرفته است، پس در لایه خروجی برای هر کلاس درون مسئله یک نورون باید باشد.
  • لایه پنهان میان دو لایه ورودی و خروجی است و می تواند هیچ لایه پنهانی نباشد که در این صورت شبکه SLP (پرتپسرون تک لایه) خواهد بود و یا می تواند یک تا چندین لایه پنهان باشد که شبکه MLP خواهد بود. اگر بیش از یک لایه پنهان باشد، پس یادگیری ژرف (Deep Learning) خواهیم گفت.
  • برای حل مسئله های پیچیده تر و بهبود کارایی، نیاز به لایه های پنهان است، زیرا مدل SLP برای داده هایی به کار می روند که به صورت خطی از یکدیگر جدا شده اند.
  • توجه کنید در شبکه های عصبی MLP، در خر لایه پنهان یک مجموعه از وزن ها است که یک از وزن های این مجموعه در یک نورون ضرب می شود.