**پرسپترون چند لایه**، (به انگلیسی: Multilayer perceptron) دسته ای از شبکه‌های عصبی مصنوعی پیشخور است. یک MLP شامل حداقل سه لایه گره است: یک لایه ورودی، یک لایه پنهان و یک لایه خروجی. به جز گره‌های ورودی، هر گره یک نورون است که از یک تابع فعال‌سازی غیر خطی استفاده می‌کند.MLP از تکنیک یادگیری نظارت شده به نام بازپرداخت برای آموزش استفاده می‌کند. لایه‌های متعدد آن و فعال‌سازی غیر خطی آن MLP را از یک پرسپترون خطی متمایز می‌کند. در واقع می‌تواند داده‌هایی را متمایز کند که به صورت خطی قابل‌تفکیک نیستند.

نظریه
-----

### تابع فعالسازی

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

دو تابع فعال، که هردو تابع سیگمویید هستند، توسط عبارت زیر توصیف می‌شوند:

{\displaystyle y(v\_{i})=\tanh(v\_{i})~~{\textrm {and}}~~y(v\_{i})=(1+e^{-v\_{i}})^{-1}}

اولین جمله، تابع تانژانت هایپربولیک است که بین منفی یک تا یک تغییر می‌کند و بقیه تابع لجستیک هستند که متغیر بین ۰ تا یک است. y\_iخروجی i-امین نورون است و {\displaystyle v\_{i}}مجموع وزنی اتصالات ورودی است. توابع فعال‌سازی جایگزین، از جمله توابع یکسوساز (شبکه عصبی)پیشنهاد شده‌است. توابع فعال سازی بیشتر تخصصی شامل توابع پایه شعاعی هستند.

### لایه‌ها

MLP شامل سه یا تعداد بیشتری از لایه‌ها است که از گره‌های غیرخطی فعال کننده هستند. از آنجا که MLPها به‌طور کامل متصل شده‌اند، هر گره در یک لایه با وزن مشخص {\displaystyle w\_{ij}} درهر نود در لایه بعدی متصل می‌شود.

### یادگیری

یادگیری در شبکه عصبی با تغییر وزن اتصال پس از پردازش هر قطعه از داده‌ها، براساس میزان خطا در خروجی در مقایسه با نتیجه مورد انتظار رخ می‌دهد. این نمونه که از یادگیری با نظارت و از طریق بازگشت به عقب و تعمیم الگوریتم حداقل مربعات در پرسپترون خطی انجام می‌شود. خطای موجود در گره خروجی jرا در n-امین نقطه داده به صورت {\displaystyle e\_{j}(n)=d\_{j}(n)-y\_{j}(n)}نشان می‌دهیم که در آن dمقدار هدف و yمقدار تولید شده توسط پرسپترون می‌باشد. مقادیر گره براساس تصحیحات تنظیم می‌شوند که میزان خطا در کل خروجی را به حداقل می‌رساند و به صورت زیر است:

{\displaystyle {\mathcal {E}}(n)={\frac {1}{2}}\sum \_{j}e\_{j}^{2}(n)}

با استفاده از گرادیان، تغییر در وزن به صورت زیر است:

{\displaystyle \Delta w\_{ji}(n)=-\eta {\frac {\partial {\mathcal {E}}(n)}{\partial v\_{j}(n)}}y\_{i}(n)}

که در آن y\_iخروجی نورون پیشین و \eta «میزان یادگیری» است که انتخاب شده تا اطمینان حاصل شود که وزن‌ها به سرعت به واکنش بدون نوسان همگرا می‌شوند. مشتق محاسبه شده بستگی به میدان محلی القا شده {\displaystyle v\_{j}}است که خودش تغییر می‌کند. اثبات این که برای گره خروجی این مشتق می‌تواند ساده شود، آسان است.

{\displaystyle -{\frac {\partial {\mathcal {E}}(n)}{\partial v\_{j}(n)}}=e\_{j}(n)\phi ^{\prime }(v\_{j}(n))}

که در آن {\displaystyle \phi ^{\prime }}مشتق تابع فعال‌سازی است که در بالا توضیح داده شده و خودش هم تغییر نمی‌کند. تجزیه و تحلیل برای تغییر وزن‌ها به یک‌گره پنهان سخت‌تر است، اما می‌توان نشان داد که مشتق مربوطه به صورت زیر است:

{\displaystyle -{\frac {\partial {\mathcal {E}}(n)}{\partial v\_{j}(n)}}=\phi ^{\prime }(v\_{j}(n))\sum \_{k}-{\frac {\partial {\mathcal {E}}(n)}{\partial v\_{k}(n)}}w\_{kj}(n)}

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

اصطلاحات
--------

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

برنامه‌ها
---------

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

منابع
-----