«پرسپترون» (Perceptron) عبارتی بسیار رایج در یادگیری ماشین و هوش مصنوعی است. در حقیقت پرسپترون ابتدایی‌ترین جزء شبکه‌های عصبی مصنوعی به‌حساب می‌آید. در این مطلب از مجله فرادرس یاد می‌گیریم شبکه عصبی پرسپترون چیست، از چه بخش‌هایی تشکیل شده و طرز کار آن به چه شکل است. ساده‌ترین نوع از شبکه‌های عصبی که بر اساس ترکیب خطی ورودی‌ها تصمیم‌گیری و پیش‌بینی می‌کند.

فهرست مطالب این نوشته
997696

در این مطلب ابتدا به شرح تاریخچه پرسپترون می‌پردازیم و به پرسش شبکه عصبی پرسپترون چیست پاسخ می‌دهیم. سپس با اجزا سازنده و اصول یادگیری شبکه پرسپترون آشنا می‌شویم و از کاربرد آن در یادگیری ماشین و شبکه‌های عصبی می‌گوییم. در انتها این مطلب از مجله فرادرس، انواع مدل‌های پرسپترون را معرفی می‌کنیم و اشاره‌ای نیز به چند مورد از محدودیت‌های شبکه عصبی پرسپترون خواهیم داشت.

تاریخچه پرسپترون

اولین‌بار مفهوم «پرسپترون» توسط «فرانک روزنبلات» (Frank Rosenblatt) روان‌شناس آمریکایی در سال ۱۹۵۷ معرفی شد. در آن زمان روزنبلات بسیار تحت تاثیر نورون‌های زیستی و توانایی یادگیری آن‌ها قرار گرفته بود. پرسپترون ارائه شده توسط روزنبلات متشکل از یک یا چند ورودی، یک بخش پردازشگر و تنها یک خروجی است.

فرانک روزنبلات
فرانک روزنبلات

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

منظور از شبکه عصبی پرسپترون چیست؟

پرسپترون کوچک‌ترین جزء سازنده یک شبکه عصبی است. شبکه تک لایه یا الگوریتم یادگیری ماشینی که بیشترین کاربرد را در یادگیری نظارت شده و به‌طور خاص دسته‌بندی دودویی دارد. در حقیقت پرسپترون نوعی نورون مصنوعی است که ورودی‌ها را پردازش کرده، از آن‌ها یاد گرفته و محاسبات لازم را انجام می‌دهد. یک شبکه پرسپترون مجموعه‌ای از گزاره‌های منطقی ساده است که باعث شکل‌گیری آرایه‌ای از گزاره‌های پیچیده با عنوان شبکه عصبی می‌شوند.

ساختار شبکه عصبی پرسپترون
ساختار شبکه عصبی پرسپترون

مغز انسان شبکه‌ای پیچیده از میلیاردها سلول در هم تنیده به نام نورون است. این سلول‌ها وظیفه پردازش و جابه‌جایی سیگنال‌ها را بر عهده دارند. نورون‌های مغز انسان به‌منظور تشکیل «شبکه عصبی زیستی» (Biological Neural Network | BNN) به سیگنال‌های شیمیایی و الکتریکی واکنش نشان داده و سیگنال‌های ورودی و خروجی نیز احتمال فعال شدن نورون‌ها را افزایش یا کاهش می‌دهند. ساختار یک نورون زیستی شامل یک سیناپس، چند دندریت، بدنه سلول و آکسون می‌شود. همه این اجزا در پردازش عصبی اجرا شده توسط نورون‌ها نقش دارند.

وظیفه سیناپس، اتصال یک آکسون به نورون و همچنین پردازش ورودی‌ها است. از طرف دیگر، دندریت‌ها دریافت‌کننده سیگنال‌ها هستند و بدنه سلول نیز سیگنال‌های ورودی را با یک‌دگیر جمع می‌کند. انتقال این سیگنال‌ها به دیگر نورون‌ها توسط آکسون انجام می‌شود. در نهایت یک شبکه عصبی زیستی با سرعت کم اما به شکل موثری به پردازش موازی ورودی‌ها می‌پردازد. پس از آنکه یاد گرفتیم شبکه عصبی پرسپترون چیست و با ساختار نورون‌های زیستی آشنا شدیم، در ادامه این بخش به معرفی نورون‌های مصنوعی می‌پردازیم.

نورون مصنوعی

موجودیتی بر پایه نورون‌های زیستی که در حقیقت نوعی تابع ریاضیاتی است. ورودی نورون در قالب مقادیر دودویی مانند ۰ و ۱ خلاصه می‌شود. به این معنی که ممکن است فعال یا غیرفعال باشد. همچنین خروجی نورون مصنوعی، با اعمال یک «تابع آستانه» (Threshold Function) بر مجموع مقادیر ورودی تعیین می‌شود. تابع آستانه می‌تواند خطی یا غیرخطی باشد. در تابع خطی اگر مجموع مقادیر ورودی بیشتر یا مساوی حدآستانه مشخص شده باشد، خروجی برابر با ۱ و در غیر این‌صورت برابر با ۰ است. اما خروجی توابع غیرخطی، وابسته به ورودی بوده و ممکن است هر مقداری بین ۰ و ۱ را به خود بگیرد.

در همین راستا، یک شبکه عصبی عمیق را نورون‌های مصنوعی و یک استراتژی «پیش‌رونده» (Feed-Forward) شکل می‌دهند. شبکه‌هایی بسیار ساده از نظر ساختار که صرف‌نظر از نوع خطی یا غیرخطی داده‌ها به یادگیری ادامه می‌دهند. جریان اطلاعات میان نورون یا گره‌های شبکه عصبی پیوسته بوده و تنها پس از رسیدن به گره پایانی متوقف می‌شود. در ادامه این بخش، شبکه‌های عصبی زیستی و مصنوعی را با یک‌دیگر مقایسه می‌کنیم.

شبکه عصبی زیستی و شبکه عصبی مصنوعی

همان‌طور که پیش‌تر خواندیم، ساختار نورون‌ها و همچنین شبکه‌های مصنوعی از گونه زیستی الهام گرفته است. با این حال، تفاوت‌هایی میان این دو وجود دارد که در جدول زیر به چند مورد آن اشاره کرده‌ایم:

شبکه عصبی زیستی شبکه عصبی مصنوعی
سرعت پردازش پایین. سرعت پردازش بالا
تخصیص حافظه راحت با تغییر شدت اتصالات داخلی. عدم امکان تخصیص حافظه جدید
اجرا موازی و همزمان عملیات‌ها. اجرای ترتیبی عملیات‌ها
دریافت اطلاعات از گره‌های مجاور، حتی اگر با مشکل مواجه باشند. در صورت وقوع مشکل، استخراج اطلاعات ممکن نیست
نظارتی بر داده‌های انتقال یافته وجود ندارد. یک واحد کنترل وظیفه نظارت و بررسی تمام اطلاعات و فرایندهای شبکه را بر عهده دارد

پس از مقایسه شبکه‌های عصبی زیستی و مصنوعی، بخش بعدی را به بررسی تفاوت‌های میان پرسپترون و نورون اختصاص می‌دهیم.

پرسپترون و نورون

در واقع پرسپترون مدلی ریاضیاتی از نورون زیستی است که خروجی دودویی برای مقادیر ورودی تولید می‌کند. با این حال، پس از گذشت زمان و افزایش پیچیدگی پروژه‌های کاربردی، مدل‌های پیشرفته‌تری مانند شبکه‌های «پس‌انتشار» (Backpropagation) جایگزین مدل پرسپترون شده‌اند.

آموزش کاربردی شبکه های عصبی با فرادرس

فیلم آموزش کاربردی شبکه های عصبی فرادرس
برای دسترسی به فیلم آموزش کاربردی شبکه های عصبی مصنوعی، روی تصویر کلیک کنید.

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

امروزه، این شبکه‌های عصبی پیشرفته در طیف وسیعی از کاربردها مورد استفاده قرار می‌گیرند. در حوزه پردازش زبان طبیعی (NLP)، شبکه‌های RNN و مدل‌های «مبتنی‌بر توجه» (Attention-based) در مسائلی همچون ترجمه ماشینی، تحلیل احساسات و تولید متن به‌کار می‌روند. از طرف دیگر، کاربرد شبکه‌های CNN در تشخیص اشیاء، طبقه‌بندی تصاویر و تشخیص چهره است. همچنین می‌توان از پیش‌بینی قیمت سهام، آب و هوا و تحلیل داده‌های مالی به عنوان چند نمونه از مسائل قابل بررسی و حل با شبکه LSTM نام برد.

برای پیاده‌سازی این شبکه‌های عصبی، زبان‌های برنامه‌نویسی پایتون و متلب ابزارهای قدرتمندی هستند. در پایتون، با استفاده از کتابخانه‌هایی مانند TensorFlow ،PyTorch و Keras، شبکه‌های عصبی پیچیده به راحتی پیاده‌سازی می‌شوند. این کتابخانه‌ها امکانات گسترده‌ای برای طراحی، آموزش و ارزیابی مدل‌ها فراهم می‌کنند. از سوی دیگر، متلب نیز شامل ابزارهای متنوعی برای شبیه‌سازی شبکه‌های عصبی است.

اگر قصد دارید به طور جدی و حرفه‌ای در زمینه یادگیری ماشین و به‌ویژه شبکه‌های عصبی فعالیت کنید، استفاده از فیلم‌های آموزشی جامع فرادرس می‌تواند بسیار مفید باشد. این دوره‌ها که توسط اساتید مجرب تهیه شده‌اند، طیف وسیعی از مباحث را از مبانی شبکه‌های عصبی و پرسپترون گرفته تا شبکه‌های چند لایه و پیشرفته مانند CNN و RNN پوشش می‌دهند. در بخش زیر لینک‌های تهیه این دوره‌ها در اختیار شما قرار گرفته‌اند:

اجزا سازنده شبکه عصبی پرسپترون چیست؟

حالا که به‌خوبی می‌دانیم منظور از شبکه عصبی پرسپترون چیست، در این بخش و فهرست زیر، چهار بخش تشکیل‌دهنده پرسپترون را معرفی می‌کنیم:

مغزی با چند گره متصل اطراف آن که نشان دهنده اجزا سازنده شبکه عصبی پرسپترون است
  1. مقادیر ورودی: مجموعه‌ای از مقادیر که برای پیش‌بینی خروجی مورد استفاده قرار می‌گیرند و با عنوان «دیتاست» نیز شناخته می‌شوند.
  2. مقادیر وزنی: مقدار حقیقی هر ویژگی را وزن آن می‌نامند و تعیین کننده میزان اهمیت ویژگی در پیش‌بینی خروجی است.
  3. بایاس: جهت‌گیری تابع فعال‌سازی را مشخص می‌کند. در معادله خط به آن «عرض از مبدا» نیز می‌گویند.
  4. تابع مجموع: تابعی که مقادیر ورودی را با وزن‌ها مرتبط ساخته و حاصل جمع داده‌ها را به‌دست می‌آورد.
  5. تابع فعال‌سازی: خروجی هر مرحله از شبکه پرسپترون را به نوع غیرخطی آن تبدیل می‌کند.

شاید برای شما سوال شود که چرا در پرسپترون به مقادیر وزنی و بایاس نیاز داریم. پرسشی که در ادامه این بخش به آن پاسخ می‌دهیم.

کاربرد مقادیر وزنی و بایاس

مقادیر وزنی و همچنین بایاس دو جزء مهم از مدل پرسپترون هستند. پارامترهایی با توانایی یادگیری که همزمان با آموزش شبکه و برای رسیدن به خروجی دلخواه تغییر می‌یابند. از مقادیر وزنی برای سنجش اهمیت هر ویژگی در پیش‌بینی خروجی استفاده می‌شود. اگر مقدار ویژگی نزدیک به صفر باشد، یعنی وزن یا اهمیت کمتری نسبت به سایر ویژگی‌ها دارد. به‌طور کلی، هر چه فاصله ویژگی تا صفر بیشتر باشد، یعنی از اهمیت بالاتری در فرایند آموزش برخوردار است. علاوه‌بر این، مقادیر وزنی ممکن است مثبت یا منفی باشند. اگر علامت وزن مثبت باشد، یعنی با متغیر هدف ارتباط مستقیم داشته و در غیر این‌صورت معکوس یک‌دیگر هستند.

همان‌طور که پیش‌تر نیز به آن اشاره شد، مقدار بایاس مانند عرض از مبدا در معادله خط عمل می‌کند. به بیان ساده‌تر، پارامتر بایاس ثابتی است که برای تغییر خروجی و کمک به برازش مدل بر داده‌های ورودی مورد بهره‌برداری قرار می‌گیرد.

شبکه عصبی پرسپترون چگونه کار می کند؟

تا اینجا خواندیم که پرسپترون جزء سازنده شبکه‌های عصبی است و اغلب در یادگیری ماشین و به عنوان دسته‌بند دودویی کاربرد دارد. برای مثال، شبکه پرسپترونی با دو ورودی x x و y y را تصور کنید که در پارامترهای وزنی به شکل wx wx و wy wy ضرب شده و شامل پارامتر بایاس نیز می‌شود:

مثال ساختار شبکه پرسپترون که در آن، نورون و تابع فعال‌ساز و وزن‌ها، نشان داده شده‌اند.
مثال ساختار شبکه پرسپترون

گراف زیر دو گروه متفاوت از نمونه داده‌ها را با رنگ‌های آبی و قرمز نشان می‌دهد:

نمودار توزیع داده
نمودار توزیع داده

هدف ما در این مسئله، جداسازی این دو گروه با کمک شبکه پرسپترون و ایجاد مرز تصمیم برای دسته‌بندی دودویی است. مرز تصمیم به ناحیه‌ای در فضای ویژگی گفته می‌شود که میان نقاط داده گروه‌های مختلف فاصله می‌اندازد.

برای نمونه مقادیر ۰/۵-، ۰/۵ و ۰ را به wy wy ، wx wx و b b اختصاص می‌دهیم. سپس تابع پرسپترون عبارت است از:

0.5x+0.5y=0 -0.5x + 0.5y = 0

نمودار معادله فوق به شکل زیر است:

مرز تصمیم داده ها
مرز تصمیم داده‌ها

با در نظر گرفتن تابع فعال‌سازی ساده‌ای مانند تابع پله، خروجی برابر با ۰ یا ۱ خواهد بود. در ادامه، تابع پرسپترون نقاط آبی و قرمز رنگ را به ترتیب با برچسب‌های ۱ و ۰ علامت‌گذاری می‌کند. به‌طور خلاصه، نحوه عملکرد تابع پرسپترون به شرح زیر است:

if  0.5x+0.5y>=0,  then  1if  0.5x+0.5y<0,  then  0 if ; 0.5x + 0.5y >= 0, ; then ; 1\if ; 0.5x + 0.5y < 0, ; then ; 0

از همین جهت، تابع 0.5x+0.5y=0 -0.5x + 0.5y = 0

نتیجه دسته بندی دودویی
نتیجه دسته‌بندی دودویی

اصول یادگیری پرسپترون

از جمله مهم‌ترین مشارکت‌های فرانک روزنبلات می‌توان به نقش او در آموزش شبکه‌های عصبی با اصول یادگیری پرسپترون اشاره کرد. بر اساس این اصول و قواعد، پرسپترون می‌تواند به‌طور خودکار و به‌منظور تولید نتایج موردنظر از ضرایب وزنی بهینه برای یادگیری استفاده کند. برای آشنایی بیشتر با مفاهیم ریاضیاتی یادگیری ماشین، می‌توانید فیلم آموزش ریاضی برای یادگیری ماشین فرادرس را از طریق لینک زیر مشاهده کنید:

اصول یادگیری پرسپترون

روزنبلات اصول یادگیری پرسپترون را در چهار بخش تعریف می‌کند که دو مورد از آن‌ها یعنی «گرادیان کاهش» (Gradient Descent) و «تصادفی» (Stochastic) در گروه الگوریتم‌های یادگیری نظارت شده و قواعد «هِبیان» (Hebbian) و «رقابتی» (Competitive) در دسته الگوریتم‌های یادگیری نظارت نشده قرار می‌گیرند. ادامه این بخش را به توضیح این اصول اولیه اختصاص می‌دهیم.

گرادیان کاهشی

برای بهینه‌سازی وزن‌های شبکه پرسپترون در یادگیری ماشین، به نوعی تابع تغییرپذیر برای پیش‌بینی خروجی نیاز است. پارامترهای وزنی و توابع فعال‌سازی نقش مهمی در کاهش خطا ایفا می‌کنند. کاربرد توابع فعال‌سازی در تعیین مقدار وزنی است که در زمان پیش‌بینی خطا به هر ورودی اختصاص می‌یابد. زمانی دقت مدل پرسپترون بالا خواهد بود که وابستگی اندکی به مجموعه آموزشی داشته و قادر به تشخیص و پیش‌بینی مقادیر جدید باشد.

در طی فرایند گرادیان کاهشی، پارامترهای وزنی به‌روزرسانی می‌شوند. به عنوان مثالی از این نوع یادگیری می‌توان به قاعده پس‌انتشار اشاره داشت. مطلب مفصل‌تری درباره الگوریتم گرادیان کاهشی در مجله فرادرس نگارش شده است که لینک آن در بخش زیر و برای مطالعه در اختیار شما قرار گرفته است:

تصادفی

عبارت ریاضیاتی که به متغیر یا خروجی با ویژگی عدم قطعیت و تصادفی بودن اطلاق می‌شود. شبکه عصبی پرسپترون پارامترهای وزنی را بر همین اساس و به شیوه احتمالاتی تغییر می‌دهد.

هبیان

از جمله اصول یادگیری پرسپترون که در سال ۱۹۴۹ توسط «دونالد او. هِب» (Donald O. Hebb) معرفی شد. این رویکرد از ماتریس مقادیر وزنی برای به‌روزرسانی همبستگی میان آن‌ها استفاده می‌کند. لازم به ذکر است که برای تغییر وزن‌ها، خروجی باید ترانهاده شود.

رقابتی

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

پرسپترون در یادگیری ماشین و شبکه های عصبی

به‌طور خاص از پرسپترون در یادگیری ماشین و الگوریتم‌های یادگیری نظارت شده استفاده می‌شود. شبکه‌های عصبی پرسپترون این قابلیت را دارند تا از داده‌های ورودی یاد گرفته و محاسبات لازم را برای تولید خروجی انجام دهند. پرسپترون یکی از ساده‌ترین شبکه‌های عصبی مصنوعی است که از دسته‌بندهای دودویی برای تصمیم‌گیری و پیش‌بینی بهره می‌برد.

رباتی در حال یادگیری کدنویسی که بیانگر پرسپترون در یادگیری ماشین است

دسته‌بندهای دودویی در یادگیری ماشین، احتمال نمایش داده‌های ورودی را به شکل بردارهای عددی مشخص می‌کنند. از آنجا که مقادیر وزنی نیز همراه با ویژگی‌ها در نظر گرفته می‌شوند، دسته‌بندهای دودویی عملکرد خطی داشته و می‌توانند مقدار دسته‌بندی یا توزیع احتمال دیتاست را به‌دست آورند.

شبکه‌های عصبی در واقع الگوریتم‌های محاسباتی یا مدل‌هایی با قابلیت درک داده‌ها و پردازش اطلاعات هستند. نقش پرسپترون در شبکه‌های عصبی شبیه به نقش نورون‌های زیستی در مغز انسان است. مدل پرسپترون از جمله ابتدایی‌ترین الگوریتم‌های دسته‌بندی دودویی است که برای تقسیم داده‌ها به دو کلاس مجزا مورد استفاده قرار می‌گیرد و در جداسازی خطی کلاس‌ها و الگوها بر اساس داده‌های عددی یا بصری کاربرد دارد.

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

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

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

مدل پرسپترون یک لایه ساده‌ترین نوع شبکه عصبی مصنوعی است. شبکه‌ای «پیش‌خور» (Feed Forward) که قادر به تجزیه و تحلیل داده‌های خطی بوده و همزمان به نوعی تابع فعال‌سازی نیاز دارد. خروجی این مدل دودویی است.

پرسپترون یک لایه
پرسپترون یک لایه

الگوریتم به‌کار رفته در پرسپترون یک لایه فاقد هر گونه دسترسی به اطلاعات و دانش قبلی است. به همین خاطر، تخصیص وزن‌ها ترتیب مشخصی نداشته و تنها ورودی‌های وزن‌دار با هم جمع می‌شوند. اگر مقدار به‌دست آمده از حاصل جمع بیشتر از حدآستانه باشد، خروجی برابر با ۱ خواهد بود. شباهت بیشتر میان مقادیر حقیقی و پیش‌بینی شده، نشان‌دهنده عملکرد قابل قبول پرسپترون است. در غیر این‌صورت نیاز است تا پارامترهای وزنی تغییر یافته و خطا به حداقل برسد.

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

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

در مدل پرسپترون چند لایه از الگوریتم پس‌انتشار استفاده می‌شود. تفاوت ساختاری این مدل با پرسپترون تک لایه در تعداد یک یا چند لایه پنهان بیشتر است. الگوریتم پس‌انتشار در دو مرحله زیر اجرا می‌شود:

پرسپترون چند لایه
پرسپترون چند لایه
  • «مرحله پیش‌رو» (Forward Phase): توابع فعال‌سازی از لایه ورودی تا خروجی گسترده هستند. با بهره‌گیری از تابع «سیگموئید»، تمام ورودی‌های وزن‌دار با یک‌دیگر جمع شده و خروجی به‌دست می‌آید.
  • «مرحله پس‌رو» (Backward Phase): خطاهای حاصل از مقایسه مقادیر حقیقی و پیش‌بینی شده به سمت عقب یعنی از آخرین لایه تا اولین لایه بر پارامترهای وزنی تاثیر می‌گذارند. در نتیجه مطابق با تاثیر هر گره بر میزان خطا، وزن و بایاس متناسبی به آن تخصیص می‌یابد.

در معادله زیر نحوه محاسبه تابع پرسپترون را ملاحظه می‌کنید:

f(x)={1if  wx+b>00otherwise f(x) = begin{cases}1 & if;wcdot{x} + b > 0\0 & otherwiseend{cases}

در این معادله نماد w w بیانگر مقادیر وزنی، b b بایاس و x x برداری از مقادیر ورودی است.

محدودیت های شبکه عصبی پرسپترون

در کنار تمام مزایا و کاربردهای شبکه عصبی پرسپترون که تا اینجا مورد بررسی قرار دادیم، محدودیت‌هایی نیز وجود دارند. از جمله:

رباتی در حال فکر کردن به یک تصمیم دودویی که بیانگر محدودیت های شبکه عصبی پرسپترون است
  • بردارهای ورودی باید به شکل تکی یا در چند دسته به شبکه ارائه شوند. زیرا تنها در این حالت امکان برطرف کردن خطاها بر اساس خروجی وجود دارد.
  • خروجی شبکه پرسپترون همیشه در بازه مقادیر دودویی مانند ۰ و ۱ قرار می‌گیرد.
  • امکان دسته‌بندی داده‌های غیرخطی وجود نداشته و دیتاست ورودی از نوع داده‌های خطی است.

در حالی که پرسپترون نقطه شروع مناسبی در مسیر آموزش شبکه‌های عصبی است، اما تنها بخش کوچکی را از یک حوزه پویا و گسترده‌تر تشکیل می‌دهد. جهان شبکه‌های عصبی بسیار فراتر از پرسپترون گسترش یافته و امروزه شامل انواع متنوعی از الگوریتم‌ها چون GAN، RNN، CNN و شبکه‌های عصبی گراف می‌شود. هر کدام از این مدل‌ها کاربرد و پیچیدگی‌های خاص خود را داشته و یادگیری آن‌ها می‌تواند افق‌های جدیدی را در زمینه هوش مصنوعی و یادگیری ماشین به روی شما باز کند. به همین خاطر، برای شروع کار و آشنایی با انواع شبکه‌های عصبی، مشاهده مجموعه فیلم‌های آموزش شبکه عصبی فرادرس را که لینک آن در ادامه آورده شده است به شما پیشنهاد می‌کنیم:

جمع‌بندی

یادگیری ماشین تکنیکی در هوش مصنوعی است که رشد زیادی را در طی سال‌های اخیر تجربه کرده است. در این مطلب از مجله فرادرس یاد گرفتیم منظور از شبکه عصبی پرسپترون چیست و چگونه کار می‌کند. رویکردی که نقش مهمی در فراگیر شدن یادگیری ماشین داشته و همچنان نیز پایه و اساس بسیاری از الگوریتم‌های کاربردی روز است.

source

توسط expressjs.ir