پرسپترون (Perceptron) چیست؟ مطمئناً اگر به حوزهی هوش مصنوعی (Artificial Intelligence) علاقهمند باشید، بارها عبارت «شبکهی عصبی» را از منابع مختلف شنیدهاید و در ذهنتان این سؤال مطرح شده است که شبکهی عصبی یعنی چه و چگونه کار میکند؟ برای یافتن این سؤال لازم است از پرسپترون شروع کنیم؛ زیرا پرسپترون کوچکترین واحد یک شبکهی عصبی است؛ بهعبارت دیگر، بلاک اصلی برای ساخت یک شبکهی عصبی را پرسپترون تشکیل میدهد. درواقع پرسپترون یک شبکهی عصبی تکلایه (Single Layer Neural Network) است که بهعنوان یک طبقهبندیکنندهی باینری کار میکند؛ بنابراین اگر با ساختار و نحوهی کار پرسپترون (Perceptron) آشنا شویم، درواقع با سادهترین شکل شبکهی عصبی آشنا شدهایم. برای درک این موضوع در ادامهی این مطلب با هم همراه میشویم.
معرفی شبکههای عصبی مصنوعی یا ANNs
شبکههای عصبی مصنوعی (ANN) نوعی از مدلهای یادگیری ماشین هستند که در سالهای اخیر به دلیل توانایی در انجام وظایف پیچیده با دقت بالا، محبوبیت زیادی پیدا کردهاند. ANN ها از ساختار و عملکرد مغز انسان الهام گرفته اند که از میلیاردها نورون به هم پیوسته تشکیل شده است که برای پردازش اطلاعات و کنترل رفتار ما با هم کار می کنند. شبکه های عصبی مصنوعی از تعداد زیادی گره (نود) پردازشی به هم پیوسته به نام نورونها تشکیل شده اند که برای انجام محاسبات با هم کار میکنند.
هر نورون در یک ANN ورودیاش از نورونهای دیگر دریافت میکند و قبل از اینکه آن را به نورون بعدی در شبکه منتقل کند، یک تغییر بر آن ورودی اعمال میکند. قدرت اتصالات بین نورونها با مجموعهای از وزنها نشان داده میشود که در طول پردازش برای بهینه سازی عملکرد شبکه در یک کار معین تنظیم میشوند. این فرآیند تنظیم وزن اغلب به عنوان “یادگیری” یا “آموزش” شبکه شناخته میشود.
یکی از مزایای کلیدی شبکههای عصبی مصنوعی توانایی آنها در یادگیری و انطباق با اطلاعات جدید است. ANN ها را میتوان بر روی مقادیر زیادی از دادهها آموزش داد و از طریق این فرآیند، آنها میتوانند یاد بگیرند که الگوها را تشخیص دهند و خروجی را پیشبینی کنند. این باعث میشود این شبکهها برای طیف گستردهای از برنامهها، از جمله تشخیص تصاویر و گفتار، پردازش زبان طبیعی و تجزیه و تحلیل پیشبینی، مناسب باشند.
شبکههای عصبی انواع مختلفی دارند که پرسپترون پایه و اساس آنها محسوب میشود. یکی از اولین و پرکاربردترین انواع شبکههای عصبی مصنوعی شبکه عصبی پیشخور (Feed-Froward Neural Network) است. در یک شبکه پیشخور، نورونها در لایههایی مرتب میشوند که هر لایه خروجی لایه قبلی را پردازش میکند. یعنی درواقع پردازش در شبکه، در یک جهت از سمت لایه ورودی به سمت لایه خروجی است. لایه اول که لایه ورودی نام دارد، دادههای ورودی خام مانند یک تصویر یا یک قطعه متن را دریافت میکند. خروجی آخرین لایه که لایه خروجی نامیده میشود، خروجی نهایی شبکه مانند برچسب طبقهبندی یا مقداری عددی را ارائه میدهد.
در بین لایههای ورودی و خروجی، ممکن است یک یا چند لایه پنهان وجود داشته باشد که محاسبات میانی را روی دادههای ورودی انجام میدهند. تعداد لایههای پنهان و تعداد نورونها در هر لایه بسته به پیچیدگی کار و میزان دادههای موجود برای آموزش میتواند متفاوت باشد.
نوع دیگری از ANN شبکه عصبی بازگشتی (RNN) است که برای پردازش دادههای متوالی مانند دادههای سری زمانی یا متن زبان طبیعی طراحی شده است. در یک RNN، خروجی هر نورون به عنوان ورودی برای مرحله بعدی به شبکه بازگردانده میشود و به شبکه اجازه میدهد تا حافظه ورودیهای گذشته را حفظ کند.
ساختار پرسپترون (Perceptron) چیست؟
بهطور کلی یک پرسپترون از چهار بخش تشکیل شده است:
- لایهی ورودی یا همان مقادیر ورودی؛
- وزنها و مقدار بایاس (Bias)؛
- جمع وزنی شبکه؛
- تابع فعالساز (Activation Function).
در این شکل نمایی از یک پرسپترون را مشاهده میکنید:
نحوهی کار پرسپترون چگونه است؟
پرسپترون در سه گام بسیار ساده کار میکند:
- در ابتدا مقادیری با عنوان ورودی که در شکل با عنوان x1 تا xn مشخص شده است در وزنهای متناظرشان (w1 … wn) ضرب میشوند؛ همچنین یک ورودی با مقدار ۱ در مقدار بایاس (b) ضرب میشود.
- سپس حاصل همهی این مقادیر ضربشده با هم جمع میشوند؛ نتیجهی این جمع یک جمع وزنی را به ما خواهد داد.
- در مرحلهی بعد این جمع وزنی به یک تابع فعالساز وارد میشود. در این مرحله تابع فعالساز براساس ورودیها تصمیم میگیرد تا خروجی پرسپترون به چه شکلی باشد. توابع فعالساز متفاوتی وجود دارد که میتوانیم در ساختار یک پرسپترون با توجه به خروجی که مد نظر داریم از آنها استفاده کنیم.
پرسشهای بنیادی دربارهی پرسپترون
حال که با نحوهی کار پرسپترون (Perceptron) آشنا شدیم، احتمالاً این سؤالها، در ذهنمان ایجاد شده است:
- وزنها به چه دلیل استفاده میشوند؟
وزنها قدرت هر نود را نشان میدهند. نودی که وزن بیشتری دارد قدرت بیشتری دارد و در خروجی تأثیر بیشتری خواهد گذاشت.
- چرا از مقدار ثابت بایاس استفاده میکنیم؟
بایاس دقیقاً مانند یک مقدار ثابت در یک تابع خطی عمل میکند که خط با آن مقدار ثابت جابهجا میشود. بایاس در اینجا منحنی تابع فعالساز را حرکت میدهد. درواقع مقدار بایاس به مدل کمک میکند بهتر با دادههای ورودی تناسب پیدا و خروجی بهتری را ارائه کند.
- تابع فعالساز چه کاری انجام میدهد؟
تابع فعالساز کمک میکند درنهایت بازهی خروجی مدنظر را قرار دهیم. از پرسپترون معمولاً برای طبقهبندی، بهویژه طبقهبندیهای باینری، استفاده میشود؛ برای مثال، در سادهترین حالت یک پرسپترون میتواند براساس یک تعداد ورودی تصمیم بگیرد که خروجی پرسپترون صفر یا یک باشد. در این حالت از تابع فعالساز Unit Step استفاده میشود. این تابع تمامی مقادیر کمتر از صفر را صفر و تمامی مقادیر بزرگتر مساوی با صفر را ۱ در نظر میگیرد.
از مشهورترین توابع فعالساز دیگر میتوان به Randomized ReLU ،ArcTan ،Sigmoid ،Tanh ،ReLU ،Leaky ReLU ،ELU ،Softmax اشاره کرد.
چرا پرسپترون را جزوی از شبکهی عصبی مینامیم؟
همانطور که گفته شد پرسپترون کوچکترین واحد یک شبکهی عصبی است، اما چرا به آن شبکهی عصبی گفته میشود؟
لازم است بدانید که در طراحی پرسپترون از عملکرد نورونهای عصبی الهام گرفته شده است. برای درک بهتر عملکرد پرسپترون بهتر است به رفتار یک نورون عصبی نگاهی بیندازیم.
یک مثال: لمس سطح داغ، شبکهی عصبی و پرسپترون (Perceptron)
فرض کنید شما سطح داغی را با دست خود لمس میکنید. در این وضعیت نورونهای عصبی پوست دست شما ازطریق شاخکهایی بهنام دندریت (Dendrite) سیگنالهایی مبنی بر لمس یک سطح داغ را دریافت میکنند و آن را به هستهی نورون (Nucleus) انتقال میدهند. درواقع دندریتها همان نودهای ورودی در پرسپترون (Perceptron) هستند و تابع فعالساز و تابع جمع در پرسپترون در مجموع همان هستهی نورون را شبیهسازی میکنند.
پس از بررسی این سیگنالها این نورون این اطلاعات را ازطریق پایانههای عصبی خود که در انتهای آکسون وجود دارد به نورونهای مجاور انتقال میدهیم؛ پایانههای آکسون را میتوان همان خروجی پرسپترون در نظر گرفت. این فرایند میان نورونهای کنار هم تکرار میشود تا به مغز برسد و درنهایت مغز بتواند فرمان کشیدن دست از روی آن سطح را بهصورت بازگشتی ازطریق نورونهای عصبی به دست منتقل کند.
پیشنهاد میکنیم با شبکه عصبی کانولوشنی (CNN) بیشتر آشنا شوید.
آموزش یادگیری ماشین و علم داده در کلاسهای آنلاین آموزش علم داده کافهتدریس
کافهتدریس کلاسهای جامع آموزش آنلاین علم داده را در دورههای مقدماتی و پیشرفته برگزار میکند. این کلاسها بهصورت کارگاهی و پویا و تعاملی، مبتنی بر کار روی پروژههای واقعی دیتا ساینس برگزار میشود.
شرکت در این کلاسهای آنلاین آموزش علم داده کافهتدریس به شما کمک میکند از هر نقطهی جغرافیایی به بهروزترین و جامعترین آموزش دیتا ساینس دسترسی داشته باشید.
برای آشنایی با کلاسهای آنلاین آموزش علم داده کافهتدریس و مشاورهی رایگان برای شروع یادگیری دیتا ساینس روی این لینک کلیک کنید: