مقدمه
پرسپترون یک الگوریتم یادگیری ماشین است که در دسته یادگیری با نظارت قرار میگیرد. الگوریتم پرسپترون یک الگوریتم دستهبندی دودویی (نوعی از دستهبندی که میتواند با توجه به بردار ورودی تصمیم بگیرد که این ورودی متعلق به یک کلاس هست یا خیر) است. این الگوریتم یک دستهبند خطی است، بهاین معنا که پیشبینیهایش را باتوجه به ترکیب خطی وزن دار ورودی الگوریتم انجام میدهد. همچنین این الگوریتم به دلیل اینکه ورودیهایش را به صورت تک تک در زمان بررسی میکند، یک الگوریتم برخط میباشد. الگوریتم پرسپترون در سال ۱۹۵۷ در لابراتوار کرنل آرونوتیکال به وسیلهٔ فرانک روزنبلت ابداع شد. در واقع این الگوریتم جزء اولین شبکههای عصبی مصنوعی است که بهکار گرفته شدهاست.
پرسپترون چیست؟
در واقع، پرسپترون یک الگوریتم یادگیری ماشین است که (مانند ماشین بردار پشتیبان) در حوزه یادگیری بانظارت قرار می گیرد. این الگوریتم را از اولین الگوریتم های شبکه عصبی مصنوعی می دانند که در این حوزه مورد استفاده قرار گرفته است. پرسپترن یک نوع الگوریتم دسته بندی دو-دویی تلقی می شود و این به این معناست که این الگوریتم می تواند تصمیم بگیرد که یک عضو متعلق به یک دسته و کلاس خاص می باشد یا خیر.
این الگوریتم را همچنین یک الگوریتم بر خط هم به می دانند و این به این خاطر است که بررسی هایش را به صورت ترتیبی و یک به یک در واحد زمان انجام می دهد. به علاوه، پرسپترون را یک دسته بند خطی (Linear Classifier) به شمار می آورند. زیر این الگوریتم پیش بینی های خود را بر اساس ترکیب خطی وزن دار داده های ورودی به الگوریتم انجام می دهد.
تاریخچه
الگوریتم پرسپترون در سال 1957 در لابراتوار کرنل آرونوتیکال توسط فرانک روزنبلت با سرمایهگذاری دفتر تحقیقات دریانوردی ایالات متحده ابداع شد. پرسپترون بیشتر به عنوان یک دستگاه مد نظر بودهاست تا یک برنامه؛ و با اینکه اولین پیادهسازی آن به صورت یک نرمافزار برای آی بی ام 704 بود؛ پس از آن به صورت سختافزار اختصاصی “پرسپترون مارک 1” پیادهسازی شد. این دستگاه برای تشخیص تصویر طراحی شده بود: مجموعهای از 400 حسگر نور، که به صورت تصادفی به “نورون”ها متصل شدهاند. وزنها در پتانسیومترها کدگذاری شده بودند، و بروزرسانی وزنها در طول یادگیری با موتورهای الکتریکی صورت میگرفت.
انواع شبکه عصبی پرسپترون
شبکه های عصبی مصنوعی پرسپترون به طور کلی به دو نوع اصلی قابل تقسیم هستند:
الف. شبکه های عصبی پرسپترون تک لایه
شبکه عصبی پرسپترون تک لایه نوع ساده ای از شبکه پرسپترون می باشد (Single Layer Neural Network Perceptron). این نوع از شبکه عصبی پرسپترون تعداد مشخصی داده ورودی را دریافت می کند. در هر مرحله یکی از داده های ورودی وارد شبکه عصبی می شود. با داشتن مجموعه ای از وزن ها (WW) و مقدار بایاس (Bias)، شبکه عصبی پرسپترون تک لایه، خروجی متناسب با داده های ورودی و وزن ها تولید می کند. به داده های ورودی به شبکه عصبی پرسپترون تک لایه، در مرحله آموزش شبکه، داده های آموزشی گفته می شود.
ب. شبکه های عصبی پرسپترون چند لایه
شبکه عصبی پرسپترون چند لایه، دسته ای از شبکه های عصبی مصنوعی پیشخور محسوب می شوند. در یک شبکه عصبی پرسپترون چند لایه، حداقل سه لایه (Layer) از نودها (Nodes) وجود خواهند داشت که این لایه ها عبارتند از:
1- یک لایه ورودی (Input Layer)
2- یک لایه نهان (Hidden Layer)
3- یک لایه خروجی (Output layer)
در این نوع از شبکه عصبی مصنوعی، از خروجی های لایه اول (ورودی)، به عنوان ورودی های لایه بعدی (نهان) استفاده می شود؛ این کار به همین شکل ادامه پیدا می کند تا زمانی که، پس از تعداد خاصی از لایه ها، خروجی های آخرین لایه نهان به عنوان ورودی های لایه خروجی مورد استفاده قرار می گیرد. همه لایه هایی که بین لایه ورودی و لایه خروجی قرار می گیرند، «لایه های نهان» (Hidden Layers) نامیده می شوند. شبکه های پرسپترون چند لایه، مانند شبکه های عصبی پرسپترون تک لایه، حاوی مجموعه ای از وزن ها نیز هستند که باید برای آموزش و یادگیری شبکه عصبی تنظیم شوند.
به خروجی در لایه آخر، خروجی پیش بینی شده (Predicted Output) گفته می شود. در تمام الگوریتم های یادگیری نظارت شده (Supervised Learning)، خروجی واقعی داده های آموزشی از قبل مشخص شده است. به این خروجی ها، خروجی مورد انتظار (Expected Output) گفته می شود