شبکه عصبی پیشخور (FFN) را میتوان سادهترین نوع شبکهی عصبی در نظر گرفت؛ شبکههای عصبی پیچیدهتری مانند شبکهی عصبی بازگشتی (RNN / Recurrent Neural Network) و شبکهی عصبی پیچشی (CNN / Convolutional Neural network) هم وجود دارند که ممکن است بارها اسمشان را شنیده باشیم. در این مطلب ابتدا با سادهترین نوع شبکههای عصبی، یعنی شبکه عصبی پیشخور (FFN / Feed Forward Neural Network)، آشنا شویم.
شبکه عصبی پیشخور (FFN) چیست؟
شبکه عصبی پیشخور (FFN) نوعی شبکهی عصبی است که به آن پرسپترون چندلایه (Multi Layer Perceptron / MLP) هم گفته میشود؛ درواقع چندین لایه پرسپترون که به هم متصل هستند یک شبکهی عصبی پیشخور را تشکیل میدهند. یک شبکهي عصبی پیشخور لایهی ورودی، لایههای میانی یا نهان و لایهی خروجی دارد که به هم متصل هستند. این لایهها از چندین پرسپترون یا نورون تشکیل شدهاند؛ بنابراین برای درک بهتر شبکهی عصبی ابتدا لازم است تا با ساختار پرسپترون آشنا شویم.
پرسپترون کوچکترین واحد یک شبکهی عصبی است؛ بهعبارت دیگر بلاک اصلی برای ساخت یک شبکهی عصبی را پرسپترون تشکیل میدهد. درواقع پرسپترون یک شبکهی عصبی تکلایه (Single Layer Neural Network) است که بهعنوان یک طبقهبندیکننده باینری کار میکند. یک پرسپترون شبکهی عصبی است که فقط یک نورون دارد. در این شکل ساختار یک نورون را مشاهده میکنیم:
همین نورون ساختار کلی یک پرسپترون را تشکیل میدهد؛ زیرا همانطور که گفتیم، پرسپترون فقط از یک نورون تشکیل شده است؛ بهعبارتی دیگر، ساختار یک پرسپترون با ساختار نورون یکی است.
پیشنهاد میکنیم با شبکهی عصبی LSTM آشنا شوید.
اجزای پرسپترون
بهطور کلی، یک نورون یا همان پرسپترون از چهار بخش تشکیل شده است:
- لایهی ورودی یا همان مقادیر ورودی
- وزنها و مقدار بایاس (Bias)
- جمع وزنی شبکه
- تابع فعالساز (Activation Function)
طرز کار پرسپترون
نحوهی کار پرسپترون در سه گام خلاصه میشود:
- در ابتدا مقادیری با نام ورودی که در شکل با عنوان x1 تا xn مشخص شدهاند در وزنهای متناظرشان (w1 … wn) ضرب میشوند؛ همچنین یک ورودی با مقدار ۱ در مقدار بایاس (b) ضرب میشود.
- سپس حاصل همهی این مقادیر ضربشده با هم جمع میشوند که نتیجهی این جمع یک جمع وزنی را به ما خواهد داد.
- در مرحلهی بعد این جمع وزنی به یک تابع فعالساز وارد میشود. در این مرحله تابع فعالساز براساس ورودیها تصمیم میگیرد تا خروجی پرسپترون به چه شکلی باشد. توابع فعالساز متفاوتی وجود دارد که میتوانیم در ساختار یک پرسپترون با توجه به خروجی که مدنظر داریم از آنها استفاده کنیم.
وزنها قدرت هر نود را نشان میدهند. نودی که وزن بیشتری دارد یعنی قدرت بیشتری دارد و در خروجی تأثیر بیشتری خواهد گذاشت.
بایاس دقیقاً مانند یک مقدار ثابت در یک تابع خطی عمل میکند که خط با آن مقدار ثابت جابهجا میشود. بایاس در اینجا منحنی تابع فعالساز را حرکت میدهد. درواقع مقدار بایاس به مدل کمک میکند تا بهتر با دادههای ورودی تطبیق پیدا کند و خروجی بهتری را ارائه کند.
تابع فعالساز کمک میکند درنهایت بازهی خروجی مدنظر را داشته باشیم.
پیشنهاد میکنیم با توابع فعالساز (Activation Functions) بیشتر آشنا شوید.
کاربرد پرسپترون
از پرسپترون معمولاً برای طبقهبندی بهویژه طبقهبندیهای باینری استفاده میشود؛ برای مثال در سادهترین حالت یک پرسپترون میتواند براساس تعدادی ورودی تصمیم بگیرد که خروجی پرسپترون صفر یا ۱ باشد.
در یک شبکه عصبی پیشخور چندلایه از این نورونها یا پرسپترون وجود دارند که به هم متصل هستند و با هم کار میکنند. خروجی هر نورون ورودی نورون دیگری در شبکه است.
برای آشنایی بیشتر با پرسپترون مطلب پرسپترون (Perceptron) چیست و چگونه کار میکند؟ را مطالعه کنید.
نام شبکه عصبی پیشخور (FeedForward Neural Network) از کجاست؟
زیرا اطلاعات در طول این شبکه از ورودی بهسمت خروجی حرکت میکند و از لایههای مختلفی عبور میکند تا درنهایت خروجی مدنظر را در اختیارمان قرار دهد. در این شبکه حلقهای وجود ندارد که خروجی شبکه دوباره بهعنوان ورودی به خود شبکه بازگردد؛ بههمین دلیل، به این شبکه شبکهی پیشخور گفته میشود. نوع دیگری از شبکههای عصبی وجود دارد که حلقه دارد و خروجی بار دیگر به خود شبکه وارد میشود که به آن شبکه عصبی بازگشتی (RNN / Recurrent Neural Network) گفته میشود.
پیشنهاد میکنیم با شبکه عصبی بازگشتی (RNN) بیشتر آشنا شوید.
خلاصهی مطالب دربارهی شبکه عصبی پیشخور (FFN)
بهطور کلی یک شبکه عصبی پیشخور (FFN) از یک لایهی ورودی، یک یا چند لایهی نهان و یک لایهی خروجی تشکیل شده است. هر یک از این لایهها چندین نورون دارند. این نورونها به نورونهای لایهی بعدی متصل هستند و خروجی هر نورون به نورونهای لایهی بعد وارد میشود تا درنهایت نورون موجود در لایهی خروجی پیشبینی نهایی را به ما اعلام کند.
برای آشنایی بیشتر با شبکههای عصبی کانولوشنی مطلب شبکهی عصبی کانولوشنی (CNN) چیست؟ را مطالعه کنید.