مراحل طراحی یک شبکه عصبی مصنوعی

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

مرحله 1. طراحی معماری شبکه

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

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

 

 

مرحله 2.  تعیین نوع تابع تبدیل

می توان برای اینکه خروجی خاصی تولید شود از یک تابع تبدیل استفاده کرد .این تابع رنج وسیعی از مقادیر ورودی را به مقدار خاصی نگاشت می کند. به عنوان مثال می توان هر مقدار خروجی را به مقدار باینری 0 و 1 نگاشت کرد. انواع مختلفی از این توابع در ANN ها مورد استفاده قرار می گیرد ولی پرکاربردترین آن ها، تابع تبدیل سیگموئید (مانند S ) است

مطلب مرتبط :   انتخاب رنگ آشپزخانه؛ کدوم رنگ ها هنگام آشپزی به شما آرامش میدن؟

ادعا شده است که فرکانس آتش نرون طبیعی به صورت تابعی شبیه به این تابع است .اما از دلایل عمده استفاده از این تابع این است که: غیر خطی، افزایشی و مشتق پذیر است، و در فرم بسته قابل نمایش است، مشتق گیری از آن ساده است و رنج ورودی (∞+،∞- ) را به خروجی [1،0] فشرده سازی می کند.

مرحله 3.  آموزش شبکه

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

تا کنون بیش از ١٠٠ نوع الگوریتم یادگیری بوجود آمده است. که می توان آن ها را به طور کلی به دو دسته وسیع تقسیم بندی کرد :

یادگیری نظارت شده یا با ناظر[1]

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

یادگیری تشدیدی[1] حالت خاصی از یادگیری با ناظر است که در آن بجای فراهم نمودن خروجی هدف، به شبکه عددی که نشان دهنده میزان عملکرد شبکه است ارائه می گردد، در یادگیری با ناظر ، مقادیر خروجی هدف برای هر ورودی مفروض، کاملا معلوم است ولی در بعضی مواقع اطلاعات کمی موجود می باشد. مثلاً به شبکه می توان گفت که خروجی اش 50% درست است و غیره. در یادگیری با ناظر می گوییم جواب مطلوب برای ورودی x برابر t است ولی در این الگوریتم های یادگیری می گوییم که چقدر شبکه خوب به ورودی x جواب داده یا چقدر بد جواب داده است.

مطلب مرتبط :   تجربیات آموزشی معلمان ابتدایی | کاملترین نمونه های رایگان سال تحصیلی 97-98

 

 

یادگیری نظارت نشده یا بدون ناظر[2]:

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

[1] – Reinforcement Learning

[2] – Unsupervised Learning

[1] – Supervised Learning

Written by