مقاله رایگان با موضوع مقدار خطا، شبیه سازی

دانلود پایان نامه ارشد

بعدي به شبكه ارائه شده و روند بالا مشابهاً انجام مي پذيرد. چون در اين روش، در هر گام، اصلاح وزن ها بر اساس هر نمونه انجام مي پذيرد، الگوريتم همگرايي خوبي داشته و با توجه به ماهيت تصادفي موجود در ارائه تكي داده ها، خطر مینيمم هاي محلي منتفي است.
به منظور آموزش شبكه و اصلاح وزن ها تا رسيدن به يك خطاي معنادار، روش هاي بسيار زيادي وجود دارد. يكي از مشهورترين اين روش ها، الگوريتم پس انتشار خطا66 است كه در ادامه توضيح داده مي شود.

2-4-10- الگوريتم پس انتشار خطا
اين الگوريتم كه در سال 1986 توسط روملهارت67 و مك كليلاند68 پيشنهاد گرديد، در شبكه هاي عصبي پیش سو مورد استفاده قرار مي گيرد. پيش سو بودن به اين معناست كه نرون هاي مصنوعي در لايه هاي پیش خور متوالي قرار گرفته اند و خروجي(سيگنال) خود را رو به جلو مي فرستند. واژه پس انتشار نيز به معناي اين است كه خطاها به سمت عقب در شبكه تغذيه مي شوند تا وزنها را اصلاح كنند و پس از آن، مجدداً ورودي مسير پيش سوي خود تا خروجي را تكرار كند. روش پس انتشار خطا از روش هاي با سرپرست است به اين مفهوم كه نمونه هاي ورودي برچسب خورده اند و خروجي مورد انتظار هر يك از آنها از پيش دانسته است. لذا خروجي شبكه با اين خروجي هاي ايده آل مقايسه شده و خطاي شبكه محاسبه مي گردد. در اين الگوريتم ابتدا فرض بر اين است كه وزن هاي شبكه به طور تصادفي انتخاب شده اند. در هر گام خروجي شبكه محاسبه شده و بر حسب ميزان اختلاف آن با خروجي مطلوب، وزنها تصحيح مي گردند تا در نهايت اين خطا، مینيمم شود. در الگوريتم پس انتشار خطا، تابع تحريك هر عصب به صورت جمع وزن دار ورودي هاي مربوط به آن عصب درنظر گرفته مي شود. بدين ترتيب با فرض اين كه w وزن هاي متناظر بين لايه ورودي و لايه بعد باشد مي توان نوشت:
2-2)
به وضوح ميتوان ديدكه خروجي تابع نحريك عصب فقط به ورودي و وزنهاي متناظر بستگي دارد. با فرض اینكه تابع خروجي، سيگموئيد باشد مي توان خروجي عصب j ام را به صورت زير نوشت:
2-3)

تابع سيگموئيد به ازاي اعداد منفي بزرگ، بسيار نزديك به صفر است و براي اعداد مثبت بزرگ، مقداري بسيار نزديك به 1 دارد و در اين بين به طور هموار تغيير مي كند به نحوي كه در x=0 دقيقاً از حد واسط بازه [1،0] يعني 0.5 عبور مي كند. همچنين با دقت در رابطه (2-3) درمي يابيم كه خروجي فقط به مقدار تابع تحريك بستگي دارد كه به نوبه خود به ورودي و وز نها مرتبط مي شود. لذا براي تغيير خروجي بايد وزن ها تغيير كنند. آنچنان كه پيش از اين نيز بيان شد، هدف فرآيند آموزش، رسيدن به خروجي مطلوب (يا نزديك به مطلوب) است. بدين ترتيب ابتدا بايد تابع خطاي هر نرون را تعريف كنيم. اين خطا از اختلاف خروجي واقعي شبكه و خروجي مورد انتظار به صورت زير بدست مي آيد:
2-4)
انتخاب مربع تفاضل بين خروجي واقعيO j)) و خروجي مطلوب(d j) از چندين جنبه قابل بحث است؛ اولاً با استفاده از توان دوم، مقدار خطا همواره مثبت خواهد بود؛ ثانياً اگر اختلاف بين خروجي واقعي و مطلوب زياد باشد، توان دوم منجر به بزرگ تر شدن اين عدد مي شود و بالعكس اگر اختلاف بين خروجي واقعي و مطلوب كم باشد، توان دوم منجر به كوچك تر شدن آن مي گردد. بر اين اساس مي توان خطاي كلي شبكه را به فرم مجموع خطاي تك تك عصب هاي لايه خروجي نوشت. لذا داريم:

2-5)
حال بايستي به بررسي ارتباط خطا با ورودي ها، وزن ها و خروجي ها بپردازيم. براي اين كارروش هاي متفاوتي وجود دارد كه برخي از مهمترين آن ها عبارتند از:
روش گراديان شيب69
روش نيوتن
روش اندازه حركت70
روش آنتروپي متقابل71
روش مارکوارت-لونبرگ72
روش گراديان شيب ساده ترين و درعين حال پركاربردترين روش است كه در ادامه روابط آن بيان خواهد شد. در روش گراديان شيب، ابتدا يك تابع هزينه درجه دوم تعريف مي گردد كه عبارت است از:
2-6)
كه در آن Lo بعد خروجي (تعداد نرو نهاي لايه خروجي) است. هدف نهايي الگوريتم پس انتشار خطا، مينيمم كردن اين تابع هزينه است. بر اساس روش گراديان شيب، با توجه به درجه 2 و مثبت بودن تابع هزينه، فرض مي شود اين تابع رفتاري سهموي دارد. لذا براي رسيدن به مينيمم كلي آن بايستي در خلاف جهت شيب تابع حركت كنيم. بنابراين با فرض اين كه وزن ها در ابتداي كار به صورت تصادفي انتخاب شده باشند، بايد شيب تابع خطا را نسبت به وزنها محاسبه نموده و در جهت خلاف آن، وز نها را تغيير دهيم و اين روند را تا آن جا ادامه دهيم كه به مینيمم كلي يا يك خطاي قابل قبول برسيم. بنابراين ميزان تغيير وزن ها در هرگام عبارت است از:
2-7)

كه در آن η ثابت اصلاح وزن هاست و توسط كاربر انتخاب مي شود. اين ثابت نرخ همگرايي الگوريتم را تعيين مي كند. لذا به وضوح هر چه مقدار اين ثابت بيشتر باشد، ميزان تغييرات در هر گام بيشتر خواهد بود و بالعكس. طبق رابطه (2-7) به منظور يافتن ميزان اصلاح وزن ها در هر گام، بايد مشتق خطا را برحسب وزن ها بدست آوريم. بدين منظور با استفاده از قاعده زنجيره اي مي توان نوشت:
2-8)

با توجه به رابطه (2-5) مي توان نوشت:
2-9)

همچنين با استفاده مجدد از قاعده زنجيره اي و با توجه به روابط (2-2) و (2-3) مي توان نوشت:
2-10)
در رابطه بالا برای محاسبه ∂Oj / ∂Aj با توجه به رابطه (2-2) و با استناد به خاصيت زير براي تابع سيگموئيد استفاده شده است كه در آن مي توان مشتق تابع سيگموئيد را بر حسب خود تابع نوشت:

2-11)

با قرار دادن (2-9) و (2-10) و در رابطه (2-8) خواهيم داشت:
2-12)

اكنون با جايگزيني (2-12) در (2-7)، رابطه نهايي ميزان اصلاح وزن ها در هر گام از الگوريتم پس انتشار خطا به صورت زير بدست مي آيد:
2-13)

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

مجدداً با استفاده از ايده گراديان شيب مي توان نوشت:
2-14)

همچنين با توجه به اي نكه در حالتي كه شبكه عصبي داراي 3 لايه است، ورودي لايه خروجي در حقيقت خروجي لايه پنهان است، رابطه (2-12) به صورت زير تغيير مي يابد:
2-15)

اگر شبكه عصبي داراي تعداد لايه هاي بيشتري باشد، با استفاده از روندي مشابه با روند بالا مي توان ميزان اصلاح وزن هاي هر لايه را بدست آورد. در عمل ميتوان نشان داد كه يك شبكه عصبي با 3 لايه مي تواند راندماني مشابه با شبكه هاي با لايه هاي بيشتر داشته باشد، بنابراين از آنجا كه افزايش تعداد لایه ها، الگوريتم يادگيري را پيچيده تر مي كند، مرسوم است كه از شبكه هاي عصبي با 3 لايه (ورودي، نهان و خروجي) استفاده گردد(منهاج،1379).

2-4-11- روند شبیه سازی مسائل
به منظور شبيه سازي يك طبقه بندي مسأله با استفاده از شبکه هاي عصبي به روش با سرپرست (با فرض در اختيار داشتن داده هاي برچسب دار) اولين كار انتخاب ابعاد شبكه است. با توجه به بحث پيشين، انتخاب تعداد لايه ها محدود به 3 لايه مي شود. در لايه ورودي بايد به تعداد ابعاد هر الگوي ورودي، نورون قرار دهيم. بنابراين سايز لايه ورودي را بعد داده هاي ورودي تعيين ميكند. در لايه خروجي نيز به وضوح بايد به تعداد كلاسها، نرون داشته باشيم. در حالت ايده آل، با آمدن ورودي مربوط به يك كلاس انتظار داريم نرون مربوط به آن كلاس مقدار 1 و مابقي نرون ها مقدار 0 را به خود بگيرند. اما در عمل با توجه به تابع سيگموئيد مورد استفاده، مقدار خروجي شبكه عددي بين صفر و يك است. لذا در حالت عملي نوروني از لايه خروجي كه اصطلاحاً بيش از بقيه روشن شده باشد (مقدار آن بزر گتر از بقيه باشد) كلاس مربوط به آن داده را مشخص ميكند. در مورد تعداد نورو نهاي لايه مياني، مبناي خاصي وجود ندارد و معمولاً با صحيح و خطا به نحوي انتخاب مي گردد كه شبكه جواب معقولي در اختيار بگذارد. بايد دقت داشت كه اگر شبكه خيلي پيچيده باشد، دقيقاً رفتار الگوهاي ورودي را ياد خواهد گرفت و لذا اگر داده اي كمي نسبت به داده هاي آموزشي تغيير كند، شبكه به راحتي قادر به دنبال كردن آن نخواهد بود. در اين حالت اصطلاحاً گفته مي شود كه شبكه عصبي قابليت تعميم ندارد. اين چنين شبكه هايي را شبکه های اورلود73 گويند.
قدم بعدي در شبيه سازي، انتخاب نوع تابع خروجي نرون است كه در شبكه هاي MLP كه با الگوريتم پس انتشار خطا كار مي كنند، عمدتاً تابع سيگموئيد استفاده مي شود. دليل اين امر هم مشتق گيري ساده و ارتباط مستقيم تابع با خود تابع است (رابطه2-11).
پيش از شروع شبيه سازي، بايد داده هاي ورودي را به دو گروه تقسيم نمود:
1.داده هاي آموزش74: اين داده ها از ميان داده هاي برچسب دار و به منظور آموزش شبكه به كار ميروند. عمدتاً از ميان كل داده ها 60% تا 70% آن ها را (به طور تصادفي يا با يك پيش فرض) به عنوان داده هاي آموزش انتخاب مي كنند. پس از آنكه شبكه توسط اين داده ها آموزش ديد، وزنها مقدار نهايي خود را يافته اند به نحوي كه شبكه براي داده هاي آموزش، كمترين خطا را بدست مي دهد.
2. داده هاي تست75: پس از آن كه شبكه توسط داده هاي آموزش تا رسيدن به حداقل خطا آموزش يافت، مابقي داده ها (%30 تا 40% باقي مانده) كه در آموزش نقشي نداشته اند به عنوان ورودي به شبكه داده شده و پاسخ شبكه با پاسخ مطلوب (برچسب آن ها) مقايسه مي گردد و بدين ترتيب راندمان شبكه آموزش ديده محك زده مي شود.
شايان ذكر است كه اگر تعداد نمونه هاي آموزش به حد كافي زياد باشد، استفاده از روش ارائه الگو جواب هاي بهتري مي دهد اما در كاربردهايي كه تعداد نمونه هاي برچسب دار آموزش كم باشند، هر دو روش ارائه الگو و ارائه يك جا به يك جواب يكسان منجر خواهند شد. همچنين بايد توجه داشت كه در اولين گام اجراي الگوريتم، وزن تمامي لايه ها به طور تصادفي انتخاب مي شوند و در هر گام با استفاده از روش پس انتشار خطا، وزن ها تصحيح ميشوند.
اشاره به اين نكته حائز اهميت است كه پس از آ نكه تمام نمونه ها ي یكبار به شبكه ارائه شدند، در بار بعدي (اپوك بعد) ابتدا داده هاي آموزشي به طور تصادفي بر زده شوند. اين كار به ويژه سبب مي شود كه شبكه عصبي به ازاي نمونه هاي خاص باياس نشود و همچنين از گير كردن در مینيمم هاي محلي جلوگيري مي كند.
پس از اجراي الگوريتم تصحيح وزن ها تا رسيدن به مينيمم خطاي كلي، چندين معيار براي توقف الگوريتم پيشنهاد مي گردد كه مهمترين آن ها عبارتند از:
1. اگر خطا (تابع هزينه) كه قرار است مينيمم شود، از يك سطح آستانه كمتر شود، ميتوان پذيرفت كه شبكه با خطاي قابل قبولي آموزش ديده است. اين شرط چنين بيان مي شود:
2-16)
2. اگر ميزان تغييرات خطا در طي دو گام متوالي كمتر از يك سطح آستانه باشد يا به عبارت ديگر روند كاهش خطا با سرعت كند انجام شود، مي توان چنين برداشت كرد كه به حوالي مینيمم كلي رسيده ايم. لذا در اين حالت نيز تصميم به توقف الگوريتم آموزش گرفته مي شود. بيان رياضي اين شرط نيز چنين است:
2-17)

پایان نامه
Previous Entries مقاله رایگان با موضوع شبکه های عصبی مصنوعی، شبکه های عصبی، شبکه عصبی، مدل ریاضی Next Entries مقاله رایگان با موضوع شبکه های عصبی، شبکه عصبی، محدودیت ها، رتبه بندی