شبکه عصبی پرسپترون perceptron neural network


شبکه عصبی پرسپترون perceptron neural network

شبکه عصبی پرسپترون یک الگوریتم طبقه بندی باینری یادگیری تحت نظارت است که در ابتدا توسط فرانک روزنبلات در سال 1957 توسعه یافت. پرسپترون یکی از اولین و ابتدایی ترین مدل های شبکه عصبی مصنوعی است و یک نورون مصنوعی یا یک واحد شبکه عصبی است که محاسبات خاصی را برای تشخیص قابلیت های داده ورودی یا هوش تجاری انجام می دهد. پرسپترون مدلی بسیار ساده است. با این حال مفاهیم مورد استفاده در طراحی آن به طور گسترده تری برای معماری های پیچیده شبکه عمیق کاربرد دارد. پرسپترون داده های ورودی را بر اساس یک روش آموزشی که بر روی داده های ورودی قبلی انجام شده است، به یکی از دو حالت جداگانه طبقه بندی می کند. در این مطلب به بررسی شبکه عصبی پرسپترون می پردازیم.

پرسپترون

نورون بیولوژیکی

مغز انسان میلیاردها نورون دارد. نورون ها سلول های عصبی متصل به هم در مغز انسان هستند که در پردازش و انتقال سیگنال های شیمیایی و الکتریکی نقش دارند. دندریت ها شاخه هایی هستند که اطلاعات را از سلول های عصبی دیگر دریافت می کنند. هسته سلول یا سوما اطلاعات دریافتی از دندریت ها را پردازش می کند. Axon یک کابل است که توسط نورون ها برای ارسال اطلاعات استفاده می شود. سیناپس ارتباط بین آکسون و سایر دندریت های عصبی است. شکل زیر نشان دهنده یک نرون مغزی است.

 

پرسپترون

نورون مصنوعی

یک نورون مصنوعی یک عملکرد ریاضی است که بر اساس یک مدل از نورون های بیولوژیکی ساخته شده است، جایی که هر نورون ورودی ها را می گیرد، آن ها را جداگانه وزن می کند، آن ها را جمع بندی می کند و این مجموع را از طریق یک تابع غیر خطی محاسبه می کند تا خروجی تولید کند.

پرسپترون

در بخش بعدی، نورون بیولوژیکی را با نورون مصنوعی مقایسه می کنیم.

پرسپترون

نورون مصنوعی دارای ویژگی های زیر است:

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

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

الگوریتم پرسپترون چیست ؟

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

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

فرانک روزنبلات که توسعه دهنده شبکه عصبی پرسپترون است این شبکه عصبی را مبتنی بر یک نورون متفاوت به نام TUL ساخته است. TUL مخفف عبارت threshold logic unit که معنای این عبارت واحد آستانه گذاری منطقی است.  در شبکه عصبی پرسپترون  ورودی ها اعداد هستند و  باینری نیستند. به هر یک از این نورون ها در هر ورودی یک وزن خاص تعلق دارد. این نرون ها حاصل جمع وزن ورودی های خود را محاسبه می کند و با استفاده از این اطلاعات پیش بینی ها و دسته بندی ها را ایجاد می کند.

پرسپترون

این الگوریتم به نورون ها اجازه می دهد تا عناصر را بیاموزند و آن ها را یک به یک در حین آماده سازی پردازش کنند.

انواع پرسپترون

انواع پرسپترون، دو نوع پرسپترون وجود دارد که عبارتند از:

پرسپترون تک لایه (Single Layer):

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

پرسپترون چند لایه (Multi Layer)

پرسپترون های چند لایه یا شبکه های عصبی پیشرو با دو یا چند لایه قدرت پردازش بیشتری دارند. ( توضیح بیشتر شبکه عصبی پرسپترون چند لایه در انتهای مقاله )

 

الگوریتم Perceptron وزن سیگنال های ورودی را به منظور ترسیم مرز تصمیم گیری خطی می آموزد. این به شما امکان می دهد بین دو کلاس جداگانه خطی +1 و -1 تمایز قائل شوید.

نکته: یادگیری تحت نظارت نوعی از یادگیری ماشین است که برای یادگیری مدل ها از داده های برچسب گذاری شده آموزش استفاده می شود. این پیش بینی خروجی را برای داده های آینده یا داده های دیده نشده امکان پذیر می کند.

قانون یادگیری پرسپترون

در ادامه بر روی قانون یادگیری پرسپترون تمرکز کنیم.

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

پرسپترون

پرسپترون تابعی است که ورودیx آن را با ضریب وزن آموخته شده ضرب می کند. مقدار خروجی f (x)  تولید می شود.

پرسپترون

در معادله بالا:

w =  بردار وزن ها با ارزش واقعی

b = بایاس

x = بردار مقادیر ورودی x

پرسپترون

m = تعداد ورودی های پرسپترون

خروجی را می توان به صورت “1” یا “0” نشان داد. بسته به نوع تابع فعال ساز، می توان آن را به صورت “1” یا “-1” نشان داد.

ورودی های پرسپترون

ورودی های پرسپترون : Perceptron ورودی ها را می پذیرد، آن ها را با مقادیر وزنی معینی تبدیل می کند، سپس تابع تبدیل را برای خروجی نتیجه نهایی اعمال می کند.

خروجی بولی بر مبنای ورودی هایی مانند حقوق، ازدواج ، سن ، مشخصات اعتبار قبلی و غیره است و فقط دو مقدار دارد: بله و خیر یا درست و غلط. تابع جمع “∑” تمام ورودی های “” x را در وزن “” w ضرب می کند و سپس آن ها را به صورت زیر جمع می کند:

پرسپترون

عملکردهای فعال ساز پرسپترون

عملکردهای فعال ساز پرسپترون : تابع فعال سازی یک قانون مرحله ای (تبدیل خروجی عددی به +1 یا -1) را اعمال می کند تا بررسی کند که آیا خروجی تابع وزنی بیشتر از صفر است یا خیر.

پرسپترون

مثال شبکه عصبی پرسپترون

مثال شبکه عصبی پرسپترون : تعیین اینکه وام بانکی در بین درخواست های متعدد مشتریان یک بانک به چه مشتری تعلق بگیرد و به چه مشتری تعلق نگیرد کار بسیار سختی است با استفاده از شبکه عصبی مصنوعی می توان مشتریان خوش حساب و مشتریانی که بدهی بانکی دارند را تفکیک کرد.   ویژگی در نظر گرفته شده از مشتریان است.

اگر  سپس خروجی نهایی برار یک است و صدور وام بانکی تایید می شود اگر خروجی صفر شود رد درخواست وام بانکی را خواهیم داشت.

خروجی پرسپترون

پرسپترون با خروجی بولی:

ورودی ها:  x1 …. xn

خروجی:  o(x1 …. xn)

پرسپترون

وزنها:  میزان اهمیت ورودی xi در خروجی پرسپترون.

w0   => بایاس یا آستانه

اگر   باشد، خروجی +1 و در غیر این صورت -1 است. نورون تنها زمانی فعال می شود که ورودی وزنی به مقدار آستانه مشخصی برسد.

شکل نشان می دهد که چگونه تابع تصمیم می گیرد که نمونه را در +1 یا -1 قرار می دهد و چگونه می توان از آن برای تمایز بین دو کلاس قابل تفکیک خطی استفاده کرد.

پرسپترون

کاربرد شبکه عصبی پرسپترون

کاربرد شبکه عصبی پرسپترون : پرسپترون در یک نگاه Perceptron دارای ویژگی های زیر است:

Perceptron یک الگوریتم برای یادگیری تحت نظارت طبقه بندی کننده های خطی است.

ضرایب بهینه وزن به طور خودکار آموخته می شود.

وزن ها با ویژگی های ورودی ضرب می شود و تصمیم می گیرد که آیا نورون فعال شود یا خیر.

تابع فعال سازی یک قانون مرحله ای را برای بررسی اینکه آیا خروجی تابع وزنی بیشتر از صفر است، اعمال می کند.

مرز تصمیم گیری خطی با تمایز بین دو کلاس قابل تفکیک خطی +1 و -1 ترسیم می شود.

اگر مجموع سیگنال های ورودی بیش از یک آستانه مشخص باشد، یک سیگنال را به عنوان خروجی می دهد. در غیر اینصورت خروجی وجود ندارد انواع توابع فعال سازی شامل توابع علامت، مرحله و سیگموئید است.

شبکه عصبی پرسپترون تک لایه

شبکه عصبی پرسپترون تک لایه (Single Layer Neural Network Perceptron) نوع ساده ای از شبکه پرسپترون است. این نوع از شبکه عصبی پرسپترون تعداد مشخصی داده ورودی را دریافت می کند. در هر مرحله یکی از داده های ورودی وارد شبکه عصبی می شود. با داشتن مجموعه ای از وزن ها() مقدار بایاس (Bias) شبکه عصبی پرسپترون تک لایه، خروجی متناسب با داده های ورودی و وزن ها تولید می کند. به داده های ورودی به شبکه عصبی پرسپترون تک لایه، در مرحله آموزش شبکه، داده های آموزشی گفته می شود.

پرسپترون

شبکه عصبی پرسپترون چند لایه

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

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

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

پرسپترون

مزایای پرسپترون چند لایه

مزایای پرسپترون چند لایه عبارتند از:

قابلیت یادگیری مدل های غیر خطی

قابلیت یادگیری مدل ها در زمان واقعی (آموزش آنلاین).

معایب پرسپترون چند لایه

معایب پرسپترون چند لایه عبارتند از:

پرسپترون چند لایه با لایه های پنهان دارای تابع زیان غیر محدب(non-convex loss function) است که در آن بیش از یک کمینه محلی وجود دارد. بنابراین مقداردهی های مختلف وزن تصادفی می تواند منجر به دقت اعتبارسنجی شود.

MLP نیاز به تنظیم تعدادی از پارامترهای فوق العاده مانند تعداد سلول های عصبی پنهان، لایه ها و تکرارها دارد.

MLP به مقیاس بندی ویژگی ها حساس است.

جمع بندی شبکه عصبی پرسپترون

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

نویسنده: تیم پژوهش راهبرد

منابع

www.simplilearn.com

www.scikit-learn.org

5/5 - (1 امتیاز)

دیدگاهتان را بنویسید

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