تعریف پرسپترون(Perceptron) در شبکه های عصبی

پیش نیاز این درس:

درس قبلی را این مجموعه را حتما خوانده باشید.

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

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

فرمول زیر را برای دو رودی X1 و X2 به خاطر بیاورید:

W1*X1 + W2*X2 + θ = ۰

فرمول بالا زیاد سخت نیست. ابتدا X1 را در وزن W1 ضرب کرده ایم(برای X2 و W2 هم همینطور) سپس آن ها را با هم جمع کرده ایم. دقیقا مانند اتفاقی که در درس قبل افتاد. فقط اینجا دو ورودی X1 و X2 داریم(قبلا n تا داشتیم). این شما را یاد چه چیز می اندازد؟ معادله خط؟ فرض کنید که W1 و W2 دو عدد ثابت مثلا ۲ و ۱ هستند که همان طور که میدانید شیب خط نام دارند. θ هم که اگر یادتان باشد عرض از مبدا است. اجازه بدهید ببینیم این خط چگونه به یادگیری پرسپترون کمک میکند.

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

به شکل زیر نگاهی بیندازید:

همان طور که میبینید نمونه های مختلف را در یک جدول آوردیم. مثلا نمونه ۱ را نگاه کنید. این نمونه ۱ اتوبوس است که طول ۷متر و ارتفاع ۴متر دارد. نمونه ۵ نیز یک پراید است که طول ۳متر و ارتفاع ۱.۵ متر دارد. به همین صورت چندین اتوبوس را برچسب گذاری کرده ایم و ویژگی های مختلف آن(طول و ارتفاع) را اندازه گیری کرده و آماده ساخته ایم. پس نکته مهم این است که در اینجا ما دو ویژگی داریم. یکی طول و دیگری ارتفاع. این دو ویژگی باعث ایجاد دو بعد در ریاضیات مورد استفاده ما می شود. برای واضح تر شدن بحث تصویر را نگاهی بیندازید. در این تصویر ما جدول بالا را در دو بعد که محور افقی نشان دهنده طول و محور عمودی نشان دهنده ارتفاع است قرار داده و هر کدام از نمونه ها را به صورت یک نقطه در این فضای دو بعدی درج کرده ایم:

تحلیل تصویر بالا ساده است. نگاهی به جدول تصویر بالاتر بیندازید. در اینجا هر کدام از نمونه ها را با توجه به طول(محور افقی) و ارتفاع(محور عمودی) بر روی محور مختصات با شماره درج کرده ایم. رنگ قرمز اتوبوس ها و رنگ سبز پراید ها هستند. مثلا نمونه #۴ نشان دهنده اتوبوس است(که شماره آن در جدول ۴ بود) که طول آن ۹ و ارتفاع آن ۴.۵ متر بود. حال به معادله خط میرسیم. خط آبی را در تصویر زیر نگاه کنید:

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

در واقع پرسپترون ساده ترین تابع فعال سازی در شبکه عصبی است.(به درس قبل رجوع کنید و ببینید که یک قسمت به عنوان تابع فعال ساز داشتیم) که قادر است یک نمونه را به خروجی صفر یا یک تبدیل کند. در مثال ما پرسپترون اگر اتوبوس بیاد ۱ و اگر پراید بیاید عدد ۰ را در خروجی نمایش می دهد.

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

منابع این بحث و اطلاعات بیشتر

» وب سایت aass

» وب سایت medium

» وب سایت appliedgo

در صورت تمایل به یادگیری بیشتر، منابع بالا در نظر گرفته شده است. می توانید با خواندن این منابع، به یادگیری خود در این زمینه عمق ببخشید

پاسخ دهید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *