شبکه عصبی پیشخور (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) چیست؟ را مطالعه کنید.
مرسی از سایتتون که انقدر خوبه همین طور عالی بمونید دمتون گرم
واقعا عالی معلومه روی این مقاله زحمت کشیده شده دمتون گرم موفق باشید
ممنون که نظرتون رو به اشتراک گذاشتین.
Excellent ⚡
سپاس.
لطفا درباره Machine Learning هم بگید
در مورد یادگیری ماشین یا همون Machine Learning مقالات زیادی داریم، میتونین از این مقاله شروع کنین: http://ctdrs.ir/ds0002
خیلی عالی بود. فقط بعضی جاها اصطلاحات انگلیسی رو متوجه نمیشدم وگرنه بقیش خیلی خوب بود.
تمام اصطلاحات انگلیسی فارسیش هم اومده، امیدواریم که کمککننده بوده باشه.
سلام کافه تدریسی ها
بازار کار دیتا ساینس توی ایران چجوریه؟
سلام، دیتاساینس در ایران هنوز اول راهه، و باید منتظر بود در آینده این حوزه مثل بقیه جاهای دنیا، در ایران هم پیشرفت کنه. چون به نوعی میشه گفت آینده با علم داده گره خورده. با این حال فرصتهای شغلی نسبتاً خوبی در حال حاضر وجود داره که قطعاً درسال های آینده بیشتر خواهد بود.
سلام خوبید من دکترای ریاضی کاربردی دارم و میخوام وارد مبحث بشم ممنونم از ویدیوتون
موفق باشید.
کاش در مورد مهندسی دادههم صحبت میکردین
به زودی به طور خاص درباره مهندس داده مطلب خواهیم داشت، با این حال مطالعه این مطلب هم کمکتون میکنه: ctdrs.ir/ds0082
میشه جاب های حوزه ای تی که زیاد به تحصیلات مرتبط نیاز نداشته باشه رو معرفی کنید؟
این سوال خیلی کلیه، به همین خاطر بنده هم کلی جواب میدم. معمولا تحصیلات مرتبط میتونه نکته مثبتی باشه و شرکتها از این موضوع استقبال میکنن. اما مهارت خیلی مهمه و افراد زیادی هستن که با داشتن مهارت خوب و ثابت کردن این موضوع که توانایی کار کردن در اون حوزه مورد نظر رو دارن، تونستن شغل مورد نظرشون رو به دست بیارن.