پرسپترون
پرسپترون یک الگوریتم یادگیری ماشین است که در دسته یادگیری با نظارت قرار می‌گیرد. الگوریتم پرسپترون یک الگوریتم (نوعی از دسته‌بندی که می‌تواند با توجه به بردار ورودی تصمیم بگیرد که این ورودی متعلق به یک کلاس هست یا خیر) است. این الگوریتم یک است، به‌این معنا که پیش‌بینی‌هایش را باتوجه به ترکیب خطی وزن دار ورودی الگوریتم انجام می‌دهد. هم‌چنین این الگوریتم به دلیل اینکه ورودی‌هایش را به صورت تک تک در زمان بررسی می‌کند، یک الگوریتم برخط می‌باشد. الگوریتم پرسپترون در سال ۱۹۵۷ در به وسیلهٔ ابداع شد. در واقع این الگوریتم جزء اولین است که به‌کار گرفته شده‌است.
الگوریتم "پرسپترون" در سال ۱۹۵۷ در توسط  با سرمایه‌گذاری دفتر تحقیقات دریانوردی ایالات متحده ابداع شد. پرسپترون بیشتر به عنوان یک دستگاه مد نظر بوده‌است تا یک برنامه؛ و با این‌که اولین پیاده‌سازی آن به صورت یک نرم‌افزار برای ، که به صورت تصادفی به "نورون"‌ها متصل شده‌اند. وزن‌ها در ها کدگذاری شده بودند، و بروزرسانی وزن‌ها در طول یادگیری با موتورهای الکتریکی صورت می‌گرفت.
پرسپترون یک نوع است که ورودی خود formula_1 (یک بردار متشکل اعداد حقیقی) را به مقدار خروجی formula_2 (یک اسکالر با مقادیر باینری) که به صورت زیر حساب می‌شود، متناظر می‌کند:
وب سرور با استفاده از شبکه عصبی پرسپترون چند لایه ای مدلسازی می شود. به طور کلی یک الگوریتم عصبی است که با توجه به ازدحام وب سرویس در شبکه چند لایه ای پیشبینی هایی را صورت میدهد تا سرور از کار نیافتد. formula_4 یک بردار از وزن‌هایی با مقادیر حقیقی است و formula_5 بردار وزن و بردار ورودی است، که در آن formula_6 تعداد ورودی‌های پرسپترون است. در رابطه بالا formula_7 نشان‌دهنده بایاس است که وظیفه آن جابجا کردن مرز تصمیم‌گیری از مبدأ است و مقدار آن به ورودی‌ها بستگی ندارد.
در مسئله مقدار formula_2 برای دسته‌بندی formula_1 بین دو کلاس formula_10 و formula_11 استفاده می‌شود. اگر formula_7 عددی منفی باشد، جمع وزن‌دار ورودی‌ها باید عدد مثبتی بزرگتر از formula_13 باشد تا خروجی پرسپترون formula_14 شود. به عبارت دیگر دسته‌بند پرسپترون مانند یک ابرصفحه است که فضای formula_6 بعدی را به دو قسمت تقسیم می‌کند، در این صورت formula_4 نشان‌دهنده بردار عمود برصفحه و formula_7 نشان‌دهنده عرض از مبدأ صفحه جداکننده است. به ازای نقاط داده شده به همراه برچسب آن‌ها formula_18 الگوریتم پرسپترون مقادیر formula_4 و formula_7 را به گونه‌ای می‌یابد که تمام نمونه‌ها توسط تابع formula_21 به‌درستی برچسب گذاری شوند یعنی
formula_22 اگر داده‌های مثبت و منفی قابلیت جداشدن توسط یک ابرصفحه را نداشته باشند الگوریتم پرسپترون متوقف نمی‌شود اما اگر داده‌ها خطی تفکیک‌پذیر باشند الگوریتم پرسپترون در تعداد متناهی مرحله پایان می‌یابد. معروف‌ترین تابعی که الگوریتم پرسپترون قادر به یادگیری آن نیست؛ تابع است.
در زمینه پرسپترون یک نوع است که آن تابع پله‌ای هویساید می‌باشد.
الگوریتم پرسپترون یک الگوریتم تکرار شونده است، به این صورت که در ابتدا بردار وزن formula_4 و بایاس formula_7 به نحوی مقداردهی می‌شوند و سپس در هر مرحله، الگوریتم با توجه به نقاطی که درست دسته‌بندی نشده‌اند مقادیر وزن formula_4 و بایاس formula_7 را تغییر می‌دهد تا این نقاط به درستی دسته‌بندی شوند. اگر نقاط داده‌شده به صورت خطی تفکیک‌پذیر نباشند الگوریتم پرسپترون پایان نمی‌یابد اما در صورتی که نقاط خطی تفکیک‌پذیر باشند الگوریتم در تعداد متناهی مرحله پایان می‌یابد.
متغیرهای زیر را تعریف می‌کنیم: داده‌های آموزشی به صورت formula_27 است که formula_28 و formula_1 بردار ورودی تغییریافته‌است (برای سادگی الگوریتم formula_30 را عضو مجموعه formula_31 در نظرگرفته‌ایم، که formula_32 نشان‌دهنده نمونه‌های مثبت و formula_33 نشان‌دهنده نمونه‌های منفی است). formula_34 و formula_35نشان‌دهنده بردار ورودی و مقدار خروجی مدنظر برای formula_36 امین نمونه آموزشی است. formula_37 نشان‌دهنده formula_38 امین مؤلفه بردار formula_34 است. برای اینکه پارامترهای بایاس formula_7 و بردار وزن را به صورت یک بردار واحد در نظر بگیریم بردارهای ورودی formula_1 و بردار وزن formula_4 را به‌گونه‌ای تغییر می‌دهیم که formula_43 و formula_44 در این‌صورت
formula_45
تابع پرسپترون را نیز به صورت زیر تغییر می‌دهیم
formula_46 هدف پیدا کردن بردار وزن formula_4 به‌گونه‌ای است که برای نقاط داده‌شده formula_48 داشته باشیم
formula_49 الگوریتم در هر مرحله باتوجه به نقاطی که اشتباه دسته‌بندی شده‌اند بردار وزن را تغییر می‌دهد تا نقاط بیشتری را به درستی دسته‌بندی کند. الگوریتم در هر مرحله بردار وزن جدیدی را به‌دست می‌آورد. در ابتدا بردار وزن را برابر با صفر قرار می‌دهیم. بردار وزن را در مرحله formula_50 ام با formula_51 نشان می‌دهیم. اگر الگوریتم پس از formula_52 مرحله متوقف‌شود (تمام نقاط به درستی دسته‌بندی شوند)، formula_53 بردار وزن مورد نظر است. شبه‌کد الگوریتم پرسپترون در زیر نوشته‌شده‌است.
اگر formula_59 می‌توان گفت که تابع پرسپترون با بردار وزن formula_51 ورودی formula_34 را به اشتباه دسته‌بندی می‌کند. در این صورت بردار وزن به گونه‌ای تغییر می‌کند خطای کمتری روی formula_34 مرتکب شود و آن را به درستی دسته‌بندی کند. الگوریتم هنگامی پایان می‌یابد که برای تمامی نقاط داشته باشیم
formula_63
و در این‌صورت خواهیم داشت
formula_64
بنابراین formula_53 بردار وزن موردنظر است.