شبکه عصبی پیشخور

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

مقدمه

در سال ۱۹۴۳ وارن مک کلاچ و والتر پیتز اولین نورون مصنوعی را طراحی کردند. خصوصیت اصلی مدل نورون طراحی شده این بود که مجموع سیگنال‌های ورودی وزن دار شده را با یک مقدار آستانه مقایسه می‌کرد و به این ترتیب در مورد خروجی تصمیم‌گیری می‌نمود. این نورون در صورتی که مجموع وزن‌دار شده سیگنال‌ها، کمتر از آستانه بود، خروجی صفر و در غیر اینصورت مقدار ۱ را به عنوان خروجی تولید می‌کرد. آن‌ها قصد داشتند، نشان دهند، یک نورون با چنین خصوصیاتی قادر به محاسبه هر تابع ریاضی و یا منطقی می‌باشد. در اواخر دهه ۱۹۵۰ میلادی، فرانک روزنبلات و چندین محقق دیگر، یک کلاس از شبکه‌های عصبی تحت عنوان شبکه‌های عصبی پرسپترون معرفی کردند. نورون‌ها در این شبکه مشابه نورون‌های طراحی شده توسط مک کلاچ و پیتز بودند. روزنبلات ثابت کرد که قاعده یادگیری طراحی شده توسط او در آموزش شبکه‌های پرسپترون همواره به وزن‌های صحیحی همگرا می‌شود. به این ترتیب این شبکه‌ها در صورت وجود پاسخ، حتماً مسئله را حل می‌کردند. روند یادگیری ساده و خودکار بود، همچنین شبکه‌های پرسپترون حتی با شروع از مقادیر تصادفی وزن‌ها و بایاس‌ها قادر به یادگیری و حل مسئله می‌باشند. شایان توجه است که شبکه‌های پرسپترون دارای محدودیت‌هایی نیز می‌باشند. امروزه شبکه‌های پرسپترون دارای اهمیت ویژه‌ای بوده و یک راه‌حل سریع و مطمئن برای حل مسائل طبقه‌بندی شده می‌باشند.

قواعد یادگیری

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

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

پرسپترون تک لایه ساده‌ترین نوع شبکه عصبی است، که از یک لایه از نورون‌های خروجی تشکیل شده‌است. ورودی‌های این شبکه به وسیله یک آرایه از وزن‌ها به صورت مستقیم به خروجی‌ها نسبت داده می‌شوند. در نتیجه این شبکه لایه پنهانی ندارد. این شبکه را می‌توان ساده‌ترین شبکه عصبی پیشخور دانست. در هر نورون مجموع ضرب هر وزن در ورودی با اندیس برابر خود محاسبه می‌شود. اگر مقدار مجموع محاسبه شده در بالا برای هر نورون بالاتر از یک مقدار آستانه باشد (به‌طور معمول ۰)، نورون فعال شده و مقدار فعال (به‌طور معمول ۱) را می‌پذیرد، در غیر این صورت مقدار غیر فعال (به‌طور معمول -۱) را می‌پذیرد. به نورون‌های با تابع فعال سازی از نوع بالا را نورون‌های مصنوعی یا واحدهای آستانه خطی می‌گوییم. اصطلاح پرسپترون اغلب اشاره به شبکه‌های متشکل از تنها یکی از این واحدها می‌کند.
یک پرسپترون را می‌توان با استفاده از هر مقداری برای حالات فعال و غیر فعال، تا زمانی که مقدار آستانه بین دو مقدار قرار دارد، ساخت. اکثر پرسپترون‌ها خروجی‌هایی از ۱ یا -۱ با مقدار آستانه ۰ دارند. شبکه‌های دارای ساختار بالا را با سرعت بیشتری نسبت به شبکه‌های متشکل از نورون‌های دارای مقادیر مختلف فعال و غیر فعال، می‌توان آموزش داد.
پرسپترون‌ها را می‌توان با یک الگوریتم یادگیری ساده که معمولاً به نام قانون دلتا آن را می‌شناسند، آموزش داد. این الگوریتم خطاهای میان خروجی محاسبه شده و خروجی نمونه را محاسبه کرده و  از آن برای بروزرسانی مقادیر وزن‌ها استفاده می‌کند. این الگوریتم نتیجه اجرای یک نمونه از گرادیان کاهشی می‌باشد.
پرسپترون‌های تک‌واحد تنها قادر به یادگیری الگوهای خطی جدا از هم می‌باشد. در سال ۱۹۶۹ در یک مقاله-که بعداً تبدیل به کتاب شد- معروف تحت عنوان "پرسپترون‌ها"، ماروین مینسکی و سیمور پاپرت، نشان دادند که برای یک شبکه پرسپترون تک‌لایه یادگیری تابع بولی XOR غیرممکن است. با این وجود، می‌دانیم است که پرسپترون‌های چند لایه قادر به تولید هر گونه تابع بولی می‌باشند.
اگر چه یک واحد آستانه کاملاً محدود به قدرت محاسباتی خود می‌باشد، اثبات شده‌است که شبکه‌هایی از واحدهای آستانه موازی می‌توانند هر تابع پیوسته از بازه فشرده اعداد حقیقی به بازه [-۱٬۱]. این نتیجه توسط پیتر آور، هارولد برگستینر و ولفگانگ ماس در مقاله‌ای در مورد قوانین و الگوریتم‌های یادگیری با عنوان  بدست آمده‌است.
شبکه عصبی چند لایه می‌تواند یک خروجی پیوسته را به جای یک تابع پله‌ای محاسبه کند. یک انتخاب رایج که تابع لجستیک (منطقی) نامیده می‌شود برابر است با: 
تابع لجیستیک(منطقی) با نام تابع سیگموئید نیز شناخته می‌شود. با این انتخاب، شبکه تک‌لایه با مدل رگرسیون لجستیک یکسان می‌شود. این مدل به صورت گسترده در مدل آماری کاربرد دارد. ضابطه این تابع، دارای مشتق پیوسته و همچنین ضابطه مشتق آن بر حسب خود تابع بدست می‌آید. این ویژگی باعث شده‌است که از این تابع در متد پس‌انتشار استفاده شود. رابطه مشتق این تابع با خود تابع برابر است با:
(این رابطه به راحتی با استفاده از قاعده زنجیری قابل اثبات است.)