شبکه ­های پیش­خور[۸۷] شبکه­ هایی هستند که ارتباط تنها یک طرفه می­باشد و از هر سلول عصبی داده ­ها تنها به سلول عصبی بعدی منتقل می­ شود اما در شبکه ­های پس­خور[۸۸] ارتباط دوطرفه می­باشد.
۳-۱-۲) شبکه­ عصبی پرسپترون چند لایه
یکی از ساده ترین و در عین حال کارآمدترین چیدمان­[۸۹]های پیشنهادی برای استفاده در مد­ل سازی عصب­های واقعی، مدل پرسپترون چندلایه می­باشد که از یک لایه­ی ورودی، چند لایه­ی پنهان و یک لایه­ی خروجی تشکیل یافته است. در این ساختار، تمام گره­های یک لایه به تمام گره­های لایه­ی بعد متصلند. این چیدمان اصطلاحاً یک شبکه با اتصالات کامل را تشکیل می­دهد. تعداد نرون­های هر لایه، مستقل از تعداد نرون­های دیگر لایه ­ها می­باشد[۲۸].
پایان نامه - مقاله - پروژه

شکل۳-۲ ) ساختار کلی شبکه­ پرسپترون چند لایه[۳۰
شبکه­ پرسپترون چندلایه یک شبکه­ عصبی مصنوعی پیش­خور بوده و پردازنده­های شبکه به چند لایه­ی مختلف تقسیم می­شوند. این معماری را پرکاربردترین معماری شبکه ­های عصبی می­توان نامید. شکل ۳-۲ نمای عمومی پرسپترون چندلایه را نشان می­دهد[۳۰].
در بسیاری از مسائل پیچیده­ ریاضی که به حل معادلات بغرنج غیر خطی منجر می‌شود ، یک شبکه­ پرسپترون چند لایه می‌تواند به سادگی با تعریف اوزان و توابع مناسب مورد استفاده قرارگیرد . توابع فعالیت مختلفی به فراخور اسلوب مسئله در سلول­های عصبی مورد استفاده قرار می‌گیرد .
گره‌هایی که در لایه­ی ورودی هستند ، سلول­های عصبی حسی[۹۰] و گره‌های لایه­ی خروجی، سلول­های عصبی پاسخ ‌دهنده[۹۱] هستند. در لایه­ی پنهان نیز، سلول­های عصبی پنهان[۹۲] وجود دارند.
شبکه‌های پرسپترون چند لایه می‌توانند با هر تعداد لایه ساخته و به کار گرفته شوند ، ولی قضیه‌ای که بدون اثبات می­پذیریم، بیان می‌کند که یک شبکه­ پرسپترون سه لایه قادر است هر نوع فضایی را تفکیک کند. این قضیه که قضیه­ی کولموگوروف[۹۳] نامیده می‌شود، بیانگر مفهوم بسیار مهمی است که می‌توان در ساخت شبکه‌های عصبی از آن استفاده کرد[۳۱].
شبکه های چند لایه می­توانند برای یادگیری مسائل غیرخطی و همچنین مسائلی با تصمیم گیری­های متعدد به­کار روند. برای این­که بتوانیم فضای تصمیم ­گیری را به­ صورت غیرخطی از هم جدا کنیم، لازم است تا هر سلول واحد را به­ صورت یک تابع غیرخطی تعریف نماییم. مثالی از چنین سلولی می ­تواند یک واحد سیگموئید باشد[۳۰].
تابع سیگموئید: خروجی این سلول واحد را به­ صورت زیر می­توان بیان نمود:
O(x1,x2,…,xn) =σ ( WX )
where: σ ( WX ) = 1 / 1 + e -WX
تابع σ تابع سیگموئید نامیده می­ شود. این تابع دارای خاصیت زیر است:
d σ(y)/ dy = σ(y) (1 – σ(y))
از یک شبکه­ پرسپترون چند لایه می­توان جهت پیش ­بینی سری زمانی استفاده کرد. یک سری زمانی مجموعه­ مشاهداتی ست که بر اساس زمان مرتب شده باشند.در این روش هدف پیش­بیینی رویداد یا درخواست بعدی بر اساس چند رویداد یا درخواست قبلی است. معماری شبکه در شکل ۳-۳ نشات داده شده است[۳۲].

شکل۳-۳ ) ساختار شبکه­ پرسپترون چند لایه در پیش ­بینی سری زمانی[۳۳]
۳-۱-۳) الگوریتم یادگیری پس انتشار خطا
به منظور آموزش شبکه و اصلاح وزن­ها تا رسیدن به یک خطای معنادار، روش­های بسیار زیادی وجود دارد. یکی از مشهورترین این روش­ها، الگوریتم پس انتشار خطا است که در ادامه توضیح داده می­ شود.
این الگوریتم که در سال ۱۹۸۶ پیشنهاد گردید، در شبکه ­های عصبی پیش­خور مورد استفاده قرار می­گیرد. پیش­خور بودن به این معناست که سلول­های عصبی مصنوعی در لایه های متوالی قرار گرفته­اند و خروجی خود را رو به جلو می­فرستند. واژه­ی پس­انتشار نیز به معنای این است که خطاها به سمت عقب در شبکه تغذیه می­شوند تا وز ن­ها را اصلاح کنند و پس از آن، مجدداً ورودی مسیر پیش­خور خود تا خروجی را تکرار کند. روش پس­انتشار خطا از روش­های باسرپرست است به این مفهوم که نمونه­های ورودی برچسب خورده­اند و خروجی مورد انتظار هر یک از آ ن­ها از پیش مشخص است. لذا خروجی شبکه با این خروجی­های اید ه­آل مقایسه شده و خطای شبکه محاسبه می­گردد. در این الگوریتم ابتدا فرض بر این است که وزن­های شبکه به طور تصادفی انتخاب شده ­اند. در هر گام خروجی شبکه محاسبه شده و بر حسب میزان اختلاف آن با خروجی مطلوب، وز ن­ها تصحیح می­گردند تا در نهایت این خطا، حداقل شود. در الگوریتم پس انتشار خطا، تابع تحریک هر عصب به صورت جمع وز ن­دار ورودی­های مربوط به آن عصب درنظر گرفته می­ شود[۲۶]. به­ این ترتیب با فرض این که وزن­های متناظربین لایه­ی ورودی و لایه­ی بعد w باشد می­توان نوشت:

به وضوح می­توان دیدکه خروجی تابع تحریک عصب فقط به ورودی و وز ن­های متناظر بستگی دارد. با فرض این­که تابع خروجی، سیگموئید باشد، می­توان خروجی عصب jام را به صورت زیر نوشت:

همان­گونه که در رابطه­ بالا ملاحظه می­گردد، تابع سیگموئید به ازای اعداد منفی بزرگ، بسیار نزدیک به صفر است و برای اعداد مثبت بزرگ، مقداری بسیار نزدیک به ۱ دارد و در این بین به طور هموار تغییر می­ کند خروجی فقط به مقدار تابع تحریک بستگی دارد که به نوبه­ی خود به ورودی و وزن­ها مرتبط می­ شود. لذا برای تغییر خروجی باید وزن­ها تغییر کنند. آن­چنان که پیش از این نیز بیان شد، هدف فرایند آموزش، رسیدن به خروجی مطلوب یا نزدیک به مطلوب است. بدین ترتیب ابتدا باید تابع خطای هر سلول عصبی را تعریف کنیم[۲۶]. این خطا از اختلاف خروجی واقعی شبکه و خروجی مورد انتظار به صورت زیر بدست می ­آید:

برای بررسی ارتباط خطا با ورودی­ ها، وزن­ها و خروجی­ها روش­های متفاوتی وجود دارد که برخی از مهمترین آن­ها عبارتند از[۲۸]:

 

    1. روش گرادیان کاهشی[۹۴]

 

    1. روش نیوتن

 

    1. روش اندازه حرکت(گشتاور)[۹۵]

 

    1. روش آنتروپی متقابل[۹۶]

 

    1. روش Marquarlt-Levenberg

 

در ادامه روابط روش گرادیان کاهشی به دلیل این که ساده­ترین و درعین حال پرکاربردترین روش است، بیان خواهد شد[۲۹]. در این روش ، ابتدا یک تابع هزینه درجه دوم تعریف می­گردد که عبارت است از:

که در آن Lo ، بعد خروجی (تعداد گره­های لایه­ی خروجی) است. هدف نهایی الگوریتم پس­انتشار خطا، حداقل کردن این تابع هزینه است. بر اساس روش گرادیان کاهشی ، با توجه به درجه ۲ و مثبت بودن تابع هزینه، فرض می­ شود این تابع رفتاری سهموی دارد. لذا برای رسیدن به حداقل کلی آن بایستی در خلاف جهت شیب تابع حرکت کنیم. بنابراین با فرض این که وزن­ها در ابتدای کار به صورت تصادفی انتخاب شده باشند، باید شیب تابع خطا را نسبت به وزن­ها محاسبه نموده و در جهت خلاف آن، وز­ن­ها را تغییر دهیم و این روند را تا آن جا ادامه دهیم که به حداقل کلی یا یک خطای قابل قبول برسیم. بنابراین میزان تغییر وزن­ها در هرگام عبارت است از:

که در آن η ثابت اصلاح وزن­ها یا همان نرخ یادگیری است و توسط کاربر انتخاب می­ شود. این ثابت نرخ همگرایی الگوریتم را تعیین می­ کند. لذا به وضوح هر چه مقدار این ثابت بیشتر باشد، میزان تغییرات در هر گام بیشتر خواهد بود و بالعکس. البته معمولا این نرخ یادگیری در ابتدا با یک عدد ثابت شروع شده و سپس به صورت وفقی تغییر می­ کند. به این صورت که در صورت کاهش خطا نرخ یادگیری افزایش و در صورت افزایش خطا نرخ یادگیری کاهش می­یابد. پس به منظور یافتن میزان اصلاح وزن­ها در هر گام، باید مشتق خطا را برحسب وزن­ها بدست آوریم. بدین منظور با بهره گرفتن از قاعده زنجیره ای و با فرض تابع فعالیت سیگموئید می­توان نوشت:

و نهایتاً رابطه نهایی میزان اصلاح وزن­ها در هر گام از الگوریتم پس­انتشار خطا به صورت زیر بدست می ­آید:

از رابطه­ قبل در اصلاح وزن­های یک شبکه­ عصبی دو لایه (ورودی-خروجی)که فقط یک دسته وزن دارند می توان استفاده نمود. با فرض وجود لایه­ی پنهان باید دو دسته وزن در هر گام از اجرای الگوریتم پس­انتشار خطا، اصلاح شوند. و وزن های اتصالات لایه پنهان به لایه خروجی ( v ) وزن های اتصالات لایه ورودی به لایه پنهان( w ). مجدداً با بهره گرفتن از ایده­ گرادیان شیب می­توان نوشت:

همچنین با توجه به این­که در حالتی که شبکه­ عصبی دارای ۳ لایه است، ورودی لایه­ی خروجی در حقیقت خروجی لایه­ی پنهان است، داریم:

موضوعات: بدون موضوع  لینک ثابت


فرم در حال بارگذاری ...