دانلود مقالات و پایان نامه ها در مورد تشخیص نرخ عدم تشخیص خطای تغییر ناگهانی متغیرها در فرآیند تنسی ایستمن به ... |
(۳-۱۷)
-
- تابع متقارن آستانه
(۳-۱۸)
این توابع در شکل ۳-۲ آورده شده اند.
شکل ۳-۲- توابع محرک بهترتیب از راست به چپ: خطی، لگاریتمی، تانژانت هیپربولیک، تابع آستانه
از آنچه تا بهحال گفته شد میتوان گفت که یک تکنرون یک تابع را پیادهسازی مینماید؛ از دیدگاه ورودی-خروجی، خروجی تکنرون، ، تابعی غیر خطی از ورودیهای است. پارامترهای این تابع را وزنها و بایاس، ، تشکیل می دهند [۲۵]. معمولا تابع محرک به وسیله طراح انتخاب می شود و سپس وزنها و بایاس به وسیله یک الگوریتم آموزش، بهگونه ای تنظیم میشوند که رابطه ورودی-خروجی نرون یک هدف مشخص را ارضا کند.
تکنرون قادر است داده ها را به دو کلاس دستهبندی کند. برای این مساله دستهبندی، مجموعه ای از داده ها باید به دو کلاس و تقسیم شوند. یک شبکه عصبی قادر است از داده ها آموزش ببیند و در حین آموزش عملکردش را بهبود ببخشد. بعد از آموزش انتظار داریم که شبکه در برخورد با داده های جدید که در آموزش شبکه از آنها استفاده نشده است، نیز عملکرد مناسبی داشته باشد.
۳-۳-۲- آموزش پرسپترون
یکی از روشهای آموزش پرسپترون، الگوریتم همگرایی پرسپترون است. فرض کنید، در حالت کلی، پرسپترون دارای ورودی است. در این صورت بردار ورودی، به صورت میباشد و بردار وزنها و بایاس، به صورت است. که در آن ورودی با مقدار ثابت ۱ در بایاس ضرب می شود. از این پس برای راحتی به بردار ، بردار وزنها میگوییم. دو کلاس و به صورت خطی جداپذیر باشند (یعنی در دو طرف یک خط یا در حالت کلی یک ابر صفحه قرار گیرند)، در آن صورت بردار وزنی، ، وجود خواهد داشت که:
(۳-۱۹) برای همه ورودیهای که به کلاس تعلق دارند.
(۳-۲۰) برای همه ورودیهای که به کلاس تعلق دارند.
در این حالت رابطه در فضای بعدی با محورهای ، ، … و ، یک ابر صفحه را تعریف می کند که به عنوان جداکننده دو کلاس مختلف عمل می کند. پروسه آموزش، وزنها، ، را بهگونه ای تنظیم می کند که دو نامساوی رابطه (۳-۱۹) و (۳-۲۰) را بر آورده سازند. فرض میکنیم از مجموعه ای داده که برای طراحی در دست داریم، داده را به همراه کلاسی که هر داده به آن تعلق دارد (۰ یا ۱) برای آموزش انتخاب کنیم. بنابراین میتوانیم این مجموعه را به صورت نشان دهیم که در آن مقدار ها ۰ یا ۱ میباشند.
هسته الگوریتم همگرایی پرسپترون برای آموزش وزنهای یک پرسپترون دارای دو گام است:
گام ۱) اگر امین عضو داده های آموزشی، ، به وسیله وزن که در امین تکرار الگوریتم محاسبه شده اند، درست دستهبندی شود (یعنی خروجی پرسپترون به ازای ورودی ، شود)، هیچ تصحیحی بر روی انجام نمیگیرد:
(۳-۲۱) اگر و به کلاس تعلق داشته باشد.
(۳-۲۲) اگر و به کلاس تعلق داشته باشد.
گام ۲) در غیر اینصورت وزنها با رابطه زیر بهروز میشوند:
(۳-۲۳) اگر و به کلاس تعلق داشته باشد.
(۳-۲۴) اگر و به کلاس تعلق داشته باشد.
به عوض شدن کلاسها از گام ۱ به گام ۲ دقت نمایید. نرخ آموزش[۳۴] نام دارد و تنظیمی که در تکرار ام بر وزنها اعمال می شود را کنترل می کند. اگر را ثابت در نظر بگیریم ، مستقل از شماره تکرار، یک افزایش ثابت برای وزنها داریم. ثابت شده است که الگوریتم آموزش گفته شده همگراست [۲۶].
الگوریتم آموزش پیشگفته در شکل ۳-۴ آورده شده است. ورودی نقطهای را در فضای بعدی نشان میدهد که در اینجا با دایره (آبی) مشخص شده است. فرضکنید شماره کلاسها ( ها)، مقادیر ۱ و دارند و برای مشخص کردن آنها در نرون از تابع متقارن آستانه (تابع علامت) استفاده نمودهایم. قانون بهروز سازی به کمک ضرب نقطهای دو بردار و تعریف شده است که به زاویه بین دو بردار وابسته است:
(۳-۲۵)
شکل ۳-۳- بعد از دو تکرار (بهروز کردن وزنها) بزرگتر شدن از ۹۰ و تغییر علامت
شکل ۳-۳ حالتی را نشان میدهد که بردار وزن باید تغییر یابد (ورودی عضو کلاسی است که با نشان داده می شود اما شده است). زاویه کوچکتر از ۹۰ درجه است بنابراین مثبت میباشد، در این حالت قانون بهروز سازی، بردار وزن را به اندازه در جهت مثبت به تغییر میدهد. بردار وزن چرخیده است اما نه به اندازه کافی و بنابراین یک بار دیگر بهروزسازی تکرار می شود و بردار وزن به میرسد. حال زاویه بزرگتر از ۹۰ درجه شده است و بنابراین علامت صحیح است (). بردار برصفحهای که کلاسها را از هم جدا می کند عمود است. این موضوع در شکل ۳-۴ نشان داده شده است (البته برای حذف بایاس و نمایش دو بعدی، مرکز مختصات به اندازه بایاس شیفت داده شده و بر روی خط جداکننده قرار گرفته است). وقتی تغییر مییابد صفحه جداکننده نیز همراه با آن تغییر می کند و این تغییر در و صفحه جداکننده تا زمانی ادامه مییابد که صفحه جداکننده کلاسها را به درستی از هم جدا کند.
شکل ۳-۴- بردار وزنها در فضای دو بعدی خطی برای جدا کردن کلاس دایره از کلاس ضربدر
قوانین آموزش (۳-۲۱) تا (۳-۲۴) را میتوان به صورت سادهتری نشان داد تا شرطهایی که بر روی آنهاست به صورت خودکار اعمال شوند و بتوان همه قوانین را در یک عبارت خلاصه کرد. این قوانین خلاصه شده، فرمی از قانون آموزش تصحیح خطا [۳۵]هستند که به قانون دلتا معروف میباشند:
(۳-۲۶)
که در آن خروجی پرسپترون در تکرار ام میباشد. اختلاف نقش خطا را بازی می کند و مربوط به نمونه آموزشی فعلی است. پارامتر یک ثابت
مثبت در بازه میباشد. قانون آموزش وقتی خطای مثبت است، مقدار را با افزایش بردار افزایش میدهد تا خطا کاهش یابد.
۳-۳-۳- پرسپترون تکلایه
همانگونه که پیشتر گفته شد تکنرون برای جداسازی دو کلاس مورد استفاده قرار میگیرد؛ بنابراین اگر مسالهای با بیش از دو کلاس برای جداسازی داشته باشیم باید چند پرسپترون را در شبکه بکار گیریم. سادهترین شکل استفاده از پرسپترونها استفاده از آنها در یک لایه است. شکل ۳-۵ ساختار شبکه عصبی تکلایه را نشان میدهد. همانگونه که مشاهده می شود ساختار شبکه عصبی تکلایه، شامل تعدادی گره ورودی است که به ورودی تعدادی پرسپترون که در یک لایه (لایه خروجی) قرار گرفتهاند متصل شده اند. توابع محرک هر نرون را میتوان بسته به مساله به صورت دلخواه انتخاب کرد. اما معمولا توابع را یکسان در نظر میگیرند.
در این حالت هر نرون در لایه خروجی با وزنهایی که به آن متصل است ابر صفحهای را در فضای ورودی مشخص می کند و آن را به دو نیم فضا تقسیم می کند. شاید به نظر برسد که با دو نرون در لایه خروجی میتوان ۴ کلاس که به صورت خطی جداپذیرند را از هم جدا نمود.
ورودی
خروجی
لایه نرونها
شکل ۳-۵- ساختار کلی پرسپترون تکلایه
برای بررسی سادهتر فرض میکنیم در نرونها از توابع آستانهای با خروجی ۰ و ۱ استفاده شده باشد. در این حالت میتوان برای داده های کلاس اول تا چهارم، خروجی هدف را به ترتیب به صورت ، ، ، (کد باینری) تعریف نمود. در عمل این کار برای بعضی کلاسها با مشکل مواجه می شود. این موضوع در شکل ۳-۶ آورده شده است. همانطور که ملاحظه می شود داده های شکل سمت راست را با دو خط (و در نتیجه با دو نرون) از هم جدا میشوند اما داده های شکل سمت چپ برای جداسازی به سه خط (سه نرون) نیاز دارند. در حالت کلی میتوان گفت برای جداسازی کلاس جداپذیر خطی با شبکه پرسپترون تک لایه، حداقل به نرون نیازمندیم؛ اما اگر از نرون استفاده نماییم میتوان هر نرون را برای جداسازی داده های یک کلاس از کل بقیه داده ها تعبیر نمود. نکته قابل ذکر آن است که اگر به شکل سمت راست دقت شود، توزیع داده ها در جهت محور افقی بهتر از محور عمودی است (به عبارت دیگر اگر محور افقی داده ها حذف شود داده های کلاسهای مختلف بر روی هم میافتند. این مشکل با اعمال پیش پردازشهای غیرخطی بر روی داده های شکل دوم و سپس اعمال آن به شبکه عصبی قابل حل است.
شکل ۳-۶- دو حالت پراکندگی داده های چهار کلاس در فضای دو بعدی ورودی: حالتی که کلاسها را میتوان با دو نرون خروجی جدا نمود (سمت راست) و حالتی که نیاز به سه نرون در خروجی است (سمت چپ).
از دیگر مشکلات کدینگ باینری در پرسپترون تکلایه آن است که تعداد ماکزیمم زیر فضاهایی که نرونها در فضای ورودی ایجاد می کنند با تعداد کلاسهایی که میتوان با آن تعداد نرون و کد باینری
تعریف کرد یکسان نمی باشد. برای مثال، اگر شبکه ای با دو ورودی و سه نرون در خروجی داشته باشیم، تعداد کلاسهایی که در کد باینری میتوان تعریف کرد ۷ میباشد (،… و ) اما تعداد زیر فضاهایی که در حالت ماکزیمم با سه خط میتوان در فضای دو بعدی ایجاد نمود، ۷ میباشد. شکل ۳-۷ این موضوع را نشان میدهد همانطور که دیده می شود زیر فضایی با کد وجود ندارد.
با توسعه ماتریسی روشی که برای یادگیری تکنرون ارائه شد میتوان آن را برای پرسپترون تکلایه نیز استفاده نمود. برای آموزش حتی میتوان پرسپترون تکلایه را به شکل چند تکنرون به صورت موازی آموزش داد.
شکل ۳-۷- مرزهای جدا کننده یک پرسپترون تکلایه با دو ورودی و سه خروجی به همراه کد باینری که برای کلاسها در نظر گرفته شده است. هر خط بهوسیله یک نرون در فضای دو بعدی ورودی ایجاد شده است.
۳-۳-۴- پرسپترون چندلایه
همانگونه که گفته شد پرسپترون تکلایه تنها قادر به جداسازی کلاسهایی است که به صورت خطی جداپذیر باشند. برای جداسازی کلاسهایی که به صورت غیرخطی جدا میشوند (دارای مرزهای غیرخطی هستند) یا کلاسهایی که داده های آنها دارای همپوشانی است به لایه های بیشتری نیاز داریم. شکل ۳-۸ یک شبکه دولایه (یک لایه خروجی و یک لایه میانی) را نشان میدهد. لایه میانی به طور مستقیم از محیط خارج ورودی دریافت نکرده و به دنیای خارج نیز مستقیما خروجی نمیدهند، به همین دلیل به این لایه از دیدگاه خارج لایه پنهان [۳۶] نیز میگویند.
در این نوع شبکه ها معمولا هر گره به تمامی گرههای لایه بعدی متصل است که به این حالت اتصال کامل[۳۷] گفته می شود. همچنین همه مسیرها در جهت ورودی به خروجی است و مسیر برگشتی وجود ندارد به همین دلیل به این نوع شبکه ها پیشخور گفته می شود.
لایه خروجی
خروجی
ورودی
لایه پنهان
فرم در حال بارگذاری ...
[یکشنبه 1400-08-09] [ 10:27:00 ق.ظ ]
|