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

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

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

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

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

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

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

نورون مصنوعی

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

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

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

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

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

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

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

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

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

تابع   به عنوان تابع فعالسازی Activation Function شناخته می شود. در واقع عملیات پردازشی یک پرسپترون، اعمال تابع فعالسازی Heaviside روی مجموع وزنی سیگنال های ورودی و ارائه خروجی صفر یا یک می باشد.

تابع فعال سازی (Activation Function)

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

در مسئله رده بندی، استفاده از تابع فعال سازی سیگموید (لجستیک) به عنوان یکی از توابع پرکاربرد در پرسپترون، مدل رگرسیون لجستیک را نتیجه می دهد.

همچنین در مسئله رگرسیون (پیش بینی) استفاده از تابع فعالسازی همانی در پرسپترون، منجر به مدل رگرسیون خطی می شود.

نکته مهم: استفاده از توابع فعال سازی خطی در شبکه عصبی، باعث می شود که شبکه عصبی فقط قادر به مدل سازی خطی باشد.

پرسپترون چند لایه (Multilayer Perceptron-MLP)

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

این توسعه، شامل اضافه کردن یک یا چند لایه پنهان به ساختار پرسپترون می باشد، به طوری که در هر لایه یک یا چند نرون محاسباتی قرار داده شده است.

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

ویژگی مهم دیگری که در ساختار شبکه عصبی MLP وجود دارد، ماهیت پیش رونده بودن (Feed Forward) می باشد.

این مفهوم به این معناست که جریان داده ها بصورت یک طرفه از سمت ورودی به سمت خروجی حرکت می کند.

●      لایه ورودی

هر یک از ویژگی های ورودی از طریق یک یال وزن دهی شده وارد شبکه عصبی می گردد. کلیه مقادیر ورودی قبل از ورود به شبکه، نیاز به نرمال سازی دارند که اغلب با روش Min-Max دامنه همه آنها در بازه (1و0) یا (1+، 1-) قرار می گیرد. کدگذاری فیلدهای کیفی نیز معمولا با روش One Hot انجام شده و برای هر کلاس از فیلد کیفی یک یال وزن دهی شده اختصاص داده می شود.

●      لایه های پنهان

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

●      لایه خروجی

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

Published by

ساره واحدی
svahedi72

ساره واحدی هستم؛ دانشجوی پانزدهمین دوره "علم داده" در آکادمی دایکه، دانشجوی کارشناسی ارشد فیزیک و علاقمند به کار کردن با دیتاها