الگوریتم پس انتشار خطا، قابلیت یادگیری، داده های ورودی

 

الگوریتم های یادگیری، روندهایی هستد که توسط آن ها وزن های شبکه تنظیم می گردد. هدف از آموزش شبکه این است که شبکه قانون کار را یاد بگیرد و پس از آموزش به ازای هر ورودی، خروجی مناسب را ارائه دهد.
تا کنون بیش از ١٠٠ نوع الگوریتم یادگیری بوجود آمده است. که می توان آن ها را به طور کلی به دو دسته وسیع تقسیم بندی کرد :
یادگیری نظارت شده یا با ناظر
در این نوع آموزش، به الگوریتم یادگیری مجموعه ای از زوج داده که به داده های یادگیری موسوم هستند، داده می شود. هر داده یادگیری شامل ورودی به شبکه و خروجی هدف است. پس از اعمال ورودی به شبکه، خروجی شبکه با خروجی هدف مقایسه می گردد و سپس خطای یادگیری محاسبه شده و از آن جهت تنظیم پارامترهای شبکه (وزن ها)، استفاده می گردد به گونه ای که اگر دفعه بعد به شبکه همان ورودی را دادیم، خروجی شبکه به خروجی هدف نزدیک گردد. شکل (۲-۱۱) یادگیری با ناظر را نشان می دهد.
شکل (۲-۱۱): یادگیری با ناظر (حجازی زاده، ۱۳۸۹)
یادگیری تشدیدی حالت خاصی از یادگیری با ناظر است که در آن بجای فراهم نمودن خروجی هدف، به شبکه عددی که نشان دهنده میزان عملکرد شبکه است ارائه می گردد، در یادگیری با ناظر ، مقادیر خروجی هدف برای هر ورودی مفروض، کاملا معلوم است ولی در بعضی مواقع اطلاعات کمی موجود می باشد. مثلاً به شبکه می توان گفت که خروجی اش ۵۰% درست است و غیره. در یادگیری با ناظر می گوییم جواب مطلوب برای ورودی x برابر t است ولی در این الگوریتم های یادگیری می گوییم که چقدر شبکه خوب به ورودی x جواب داده یا چقدر بد جواب داده است.
یادگیری نظارت نشده یا بدون ناظر:
در این نوع یادگیری هیچ سیگنالی که اطلاعات را در مورد مطلوبیت جواب شبکه به خود شبکه وارد نماید، وجود ندارد. به عبارت دیگر به شبکه گفته نمی شود که خروجی هدف چه است و یا اینکه جواب شبکه چقدر مطلوب است. در این حالت، شبکه با دریافت اطلاعات ورودی، باید طبقه بندی ای بین الگوهای ورودی، شاخص های موجود در ورودی ها و ارتباط موجود بین الگوهای ورودی را پیدا کند و در خروجی کد کند. شکل(۲-۱۲) یادگیری بدون ناظر را نشان می دهد. یک مثال بسیار متداول از این نوع یادگیری، شبکه های خوشه بندی الگوهای ورودی است، بدون اینکه بدانیم کدام الگو به کدام خوشه تعلق دارد. خوشه ها در نهایت از روی تشابهات و عدم تشابهات بین الگوها ایجاد می گردند.
شکل(۲-۱۲): یادگیری بدون ناظر (حجازی زاده، ۱۳۸۹)
۲-۴-۸- پرسپترون چند لایه (MLP)
هرچند نحوه مدل کردن نرون جزء اساسی ترین نکات کلیدی در کارآیی شبکه عصبی می باشد اما نحوه برقراری اتصالات و چیدمان (توپولوژی) شبکه نیز فاکتور بسیار مهم و اثرگذاری است. باید توجه داشت که توپولوژی مغز انسان آنقدر پیچیده است که نمی توان از آن به عنوان مدلی برای اعمال به شبکه عصبی استفاده نمود، چرا که مدلی که ما استفاده می کنیم، یک مدل ساده شده است در حالی که چیدمان مغز از المانهای بسیار زیادی استفاده می کند.
یکی از ساده ترین و در عین حال کارآمدترین چیدمان های پیشنهادی برای استفاده در مدل سازی عصب های واقعی، مدل پرسپترون چندلایه یا به اختصار MLP می باشد که از یک لایه ورودی، یک یا چند لایه پنهان و یک لایه خروجی تشکیل یافته است. در این ساختار، تمام نرون های یک لایه به تمام نرون های لایه بعد متصلند. این چیدمان اصطلاحاً یک شبکه با اتصالات کامل را تشکیل می دهد (صیادی،۱۳۸۷).
شکل(۲-۱۳) شمای یک شبکه پرسپترون سه لایه را نشان می دهد. به سادگی می توان استنباط نمود که تعداد نرون های هر لایه، مستقل از تعداد نرون های دیگر لایه ها می باشد. توجه به این نکته حائز اهمیت است که در شکل(۲-۱۳)، هر دایره تجمیع شده عمل جمع و آستانه گذاری (عبور از تابع غیرخطی سیگموئید) است. در حقیقت هر دایره توپر در شکل(۲-۱۳)، مدلی است از جمع کننده و بلوک آستانه گذاری شکل (۲-۶) که به منظور سهولت نمایش به این فرم نشان داده شده است. با توجه به شکل، خروجی عصب i ام ( در لایه آخر) را می توان به صورت زیر نشان داد:
شکل(۲-۱۳): پرسپترون سه لایه با اتصالات کامل (صیادی، ۱۳۸۷)
۲-۱)
که در آن، o و h به ترتیب نشان دهنده لایه خروجی و لایه نهان بوده و منظور از w همان وزنهای لایه ها می باشد.
۲-۴-۹- آموزش شبکه به روش پس انتشار خطا
با توجه به این که شبکه عصبی، مدل ساده شده اعصاب بدن است، درست به مانند آن ها قابلیت یادگیری دارد. به عبارت دیگر، شبکه با بهره گرفتن از اطلاعاتی که از ورودی و توسط سرپرست خود دریافت میکند، قادر به فراگیری روند موجود در الگوهاست. لذا به طور مشابه با انسان، روند یادگیری در شبکه عصبی نیز از مدل های انسانی الهام گرفته است بدین صورت که مثال های بسیاری را به دفعات بایستی به شبکه ارائه نمود تا بتواند با تغییر وز نهای شبکه، خروجی مورد نظر را دنبال کند. ارائه نمونه داده های ورودی به شبکه عصبی به دو روش امکان پذیر است:
Batch Mode) ): در این روش، تمام نمونه ها به شبکه ارائه می گردند و در آخر، خطای روش ارائه یک جا شبکه نسبت به کل نمونه ها محاسبه گشته و وزن ها بر اساس آن خطا تغییر می کنند. در مرحله بعد، مجدداً تمام داد ه ها یکبار دیگر به شبکه ارائه شده و روند فوق نظیر به نظیر انجام میپذیرد تا نهایتاً خطا به سطح قابل قبولی برسد. مسلماً این روش پیچیده و زمان بر بوده و نیاز به حافظه زیادی دارد. همچنین امکان گیرکردن الگوریتم در مینیمم های محلی وجود دارد.
(Pattern Mode) : در این روش، در هربار نمونه ها به صورت تک
تک به شبکه داده شده و روش ارائه الگو خ
طای متناظر با همان داده بلافاصله محاسبه شده و بر اساس آن، وزنهای شبکه تغییر می کنند. سپس نمونه بعدی به شبکه ارائه شده و روند بالا مشابهاً انجام می پذیرد. چون در این روش، در هر گام، اصلاح وزن ها بر اساس هر نمونه انجام می پذیرد، الگوریتم همگرایی خوبی داشته و با توجه به ماهیت تصادفی موجود در ارائه تکی داده ها، خطر مینیمم های محلی منتفی است.
به منظور آموزش شبکه و اصلاح وزن ها تا رسیدن به یک خطای معنادار، روش های بسیار زیادی وجود دارد. یکی از مشهورترین این روش ها، الگوریتم پس انتشار خطا است که در ادامه توضیح داده می شود.
۲-۴-۱۰- الگوریتم پس انتشار خطا