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

حاسبات در شبکه عصبي مصنوعي مي‌تواند به صورت موازي و به وسيله سخت‌افزارهاي مخصوصي که طراحي و ساخت آن براي دريافت نتايج بهينه قابليت‌هاي شبکه عصبي مصنوعي است انجام شود.
تحمل خطا: با ايجاد خرابي در شبکه مقداري از کارايي کاهش مي‌يابد ولي برخي امکانات آن با وجود مشکلات بزرگ همچنان حفظ مي‌شود.
دسته بندي52: شبکه‌هاي عصبي قادر به دسته بندي ورودي‌ها بر اي دريافت خروجي مناسب مي‌باشند.
تعميم دهي53: اين خاصيت شبکه را قادر مي‌سازد تا تنها با برخورد با تعداد محدودي نمونه، يک قانون کلي از آن را به دست آورده، نتايج اين آموخته‌ها را به موارد مشاهده از قبل نيز تعميم دهد. توانايي که در صورت نبود آن سامانه بايد بي نهايت واقعيت‌ها و روابط را به خاطر بسپارد.
پايداري-انعطاف پذيري: يک شبکه عصبي هم به حد کافي پايدار است تا اطلاعات فراگرفته خود را حفظ کند و هم قابليت انعطاف و تطبيق را دارد و بدون از دست دادن اطلاعات قبلي مي‌تواند موارد جديد را بپذيرد.

2-10-6- شبکه‌هاي عصبي در مقايسه با کامپيوترهاي سنتي
يک شبکه عصبي به طور کلي با يک کامپيوتر سنتي در موارد زير تفاوت دارد:
شبکه‌هاي عصبي دستورات را به صورت سري اجرا نکرده، شامل حافظه‌اي براي نگهداري داده و دستورالعمل نيستند.
به مجموعه‌اي از ورودي‌ها به صورت موازي پاسخ مي‌دهند.
بيشتر با تبديلات و نگاشت‌ها سروکار دارند تا الگوريتم‌ها و روش‌ها.
شامل ابزار محاسباتي پيچيده نبوده، از تعداد زيادي ابزارساده که اغلب کمي بيشتر از يک جمع وزن دار را انجام مي‌دهند تشکيل شده‌اند.
شبکه‌هاي عصبي شيوه‌اي متفاوت براي حل مسئله دارند. کامپيوترهاي سنتي از شيوه الگوريتمي براي حل مسئله استفاده مي‌کنند که براي حل مسئله مجموعه‌اي از دستورالعمل‌هاي بدون ابهام دنبال مي‌شود. اين دستورات به زبان سطح بالا و سپس به زبان ماشين که سامانه قادر به تشخيص آن مي‌باشد تبديل مي‌شوند. اگر مراحلي که کامپيوتر براي حل مسئله بايد طي کند از قبل شناخته شده نباشند و الگوريتم مشخصي وجود نداشته باشد، سامانه توانايي حل مسئله را ندارد. کامپيوترها مي‌توانند خيلي سودمندتر باشند اگر بتوانند کارهايي را که ما هيچ پيش زمينه‌اي از آنها نداريم انجام دهند. شبکه‌هاي عصبي و کامپيوترها نه تنها رقيب هم نيستند بلکه مي‌توانند مکمل هم باشند. کارهايي وجود دارند که بهتر است از روش الگوريتمي حل شوند و همين طور کارهايي وجود دارند که جز از طريق شبکه عصبي مصنوعي قابل حل نمي‌باشند و البته تعداد زيادي نيز براي بدست آوردن بازده حداکثر، از ترکيبي از روش‌هاي فوق استفاده مي‌کنند. به طور معمول يک کامپيوتر سنتي براي نظارت بر شبکه عصبي استفاده مي‌شود. شبکه‌هاي عصبي معجزه نمي‌کنند، اگر به طور محسوس استفاده شوند کارهاي عجيبي انجام مي‌دهند. ] 12[
نورون مصنوعي
يک نورون مصنوعي سامانه‌اي است با تعداد زيادي ورودي و تنها يک خروجي. نورون داراي دو حالت مي‌باشد، حالت آموزش و حالت عملکرد. در حالت آموزش نورون ياد مي‌گيرد که در مقابل الگوهاي ورودي خاص برانگيخته شود و يا در اصطلاح آتش کند. در حالت عملکرد وقتي يک الگوي ورودي شناسايي شده وارد شود، خروجي متناظر با آن ارائه مي‌شود. اگر ورودي جزء ورودي‌هاي از پيش شناسايي شده نباشد، قوانين آتش براي بر انگيختگي يا عدم آن تصميم گيري مي‌کند.
از نورون‌هاي انسان تا نورون مصنوعي54
با کنار گذاشتن برخي از خواص حياتي نورون‌ها و ارتباطات دروني آنها مي‌توان يک مدل ابتدايي از نورون را به وسيله کامپيوتر شبيه سازي کرد.
2-10-7- ساختار شبکه‌هاي عصبي
يک شبکه عصبي شامل اجزاي سازنده لايه‌ها و وزن‌ها مي‌باشد. رفتار شبکه نيز وابسته به ارتباط بين اعضا است. در حالت کلي در شبکه‌هاي عصبي سه نوع لايه نوروني وجود دارد:
لايه ورودي55: دريافت اطلاعات خامي که به شبکه تغذيه شده‌است.
لايه‌هاي پنهان56: عملکرد اين لايه‌ها به وسيله ورودي‌ها و وزن ارتباط بين آنها و لايه‌هاي پنهان تعيين مي‌شود. وزن‌هاي بين واحدهاي ورودي و پنهان تعيين مي‌کند که چه وقت يک واحد پنهان بايد فعال شود.
لايه خروجي57: عملکرد واحد خروجي بسته به فعاليت واحد پنهان و وزن ارتباط بين واحد پنهان و خروجي مي‌باشد.
شبکه‌هاي تک لايه و چند لايه‌اي نيز وجود دارند که سازماندهي تک لايه که در آن تمام واحدها به يک لايه اتصال دارند بيشترين مورد استفاده را دارد و پتانسيل محاسباتي بيشتري نسبت به سازماندهي‌هاي چند لايه دارد. در شبکه‌هاي چند لايه واحدها به وسيله لايه‌ها شماره گذاري مي‌شوند (به جاي دنبال کردن شماره گذاري سراسري).
هر دو لايه از يک شبکه به وسيله وزن‌ها و در واقع اتصالات با هم ارتباط مي‌يابند. در شبکه‌هاي عصبي چند نوع اتصال و يا پيوند وزني وجود دارد: پيشرو: بيشترين پيوندها از اين نوع است که در آن سيگنال‌ها تنها در يک جهت حرکت مي‌کنند. از ورودي به خروجي هيچ بازخوردي (حلقه) وجود ندارد. خروجي هر لايه بر همان لايه تاثيري ندارد.
پسرو: داده‌ها از گره‌هاي لايه بالا به گره‌هاي لايه پايين بازخورانده مي‌شوند.
جانبي: خروجي گره‌هاي هر لايه به عنوان ورودي گره‌هاي همان لايه استفاده مي‌شوند. ] 10[
2-10-8- تقسيم بندي شبکه‌هاي عصبي
بر مبناي روش آموزش به چهار دسته تقسيم مي‌شوند:
وزن ثابت: آموزشي در کار نيست و مقادير وزن‌ها به هنگام نمي‌شود. کاربرد: بهينه ساز
ي اطلاعات (کاهش حجم، تفکيک پذيري و فشرده سازي) و حافظه‌هاي تناظري
آموزش بدون سرپرست: وزن‌ها فقط بر اساس ورودي‌ها اصلاح مي‌شوند و خروجي مطلوب وجود ندارد تا با مقايسه خروجي شبکه با آن و تعيين مقدار خطا وزن‌ها اصلاح شود. وزن‌ها فقط بر اساس اطلاعات الگوهاي ورودي به هنگام مي‌شوند. هدف استخراج مشخصه‌هاي الگوهاي ورودي بر اساس راهبرد خوشه يابي و يا دسته‌بندي و تشخيص شباهت‌ها (تشکيل گروه‌هايي با الگوي مشابه) مي‌باشد، بدون اينکه خروجي يا کلاس‌هاي متناظر با الگوهاي ورودي از قبل مشخص باشد. اين ياد گيري معمولاً بر پايه شيوه برترين هم خواني انجام مي‌گيرد. شبکه بدون سرپرست وزن‌هاي خود را بر پايه خروجي حاصل شده از ورودي تغيير مي‌دهد تا در برخورد بعدي پاسخ مناسبي را براي اين ورودي داشته باشد. در نتيجه شبکه ياد مي‌گيرد چگونه به ورودي پاسخ بدهد. اصولاً هدف اين است که با تکنيک نورون غالب نوروني که بيشترين تحريک آغازين را دارد برگزيده شود. بنابر اين در شبکه‌هاي بدون سرپرست يافتن نورون غالب يکي از مهمترين کارها است.
آموزش با سرپرست: به ازاي هر دسته از الگوهاي ورودي خروجي‌هاي متناظر نيز به شبکه نشان داده مي‌شود و تغيير وزن‌ها تا موقعي صورت مي‌گيرد که اختلاف خروجي شبکه به ازاي الگوهاي آموزشي از خروجي‌هاي مطلوب در حد خطاي قابل قبولي باشد. در اين روش‌ها يا از خروجي‌ها به وزن‌ها ارتباط وجود دارد يا خطا به صورت پس انتشار از لايه خروجي به ورودي توزيع شده‌است و وزن‌ها اصلاح مي‌شوند. هدف طرح شبکه‌اي است که ابتدا با استفاده از داده‌هاي آموزشي موجود، آموزش ببيند و سپس با ارائه بردار ورودي به شبکه که ممکن است شبکه آن را قبلاً فراگرفته يا نگرفته باشد کلاس آن را تشخيص دهد. چنين شبکه‌اي به طور گسترده براي کارهاي تشخيص الگو به کار گرفته مي‌شود.
آموزش تقويتي: کيفيت عملکرد سامانه به صورت گام به گام نسبت به زمان بهبود مي‌يابد. الگوهاي آموزشي وجود ندارد اما با استفاده از سيگنالي به نام نقاد بياني از خوب و يا بد بودن رفتار سامانه بدست مي‌آيد (حالتي بين يادگيري با سرپرست و بدون سرپرست).
2-10-9- کاربرد شبکه‌هاي عصبي
شبکه‌هاي عصبي مصنوعي داراي دامنه کاربرد وسيعي مي‌باشند از جمله سامانه‌هاي آناليز ريسک، کنترل هواپيما بدون خلبان، آناليز کيفيت جوشکاري، آناليز کيفيت کامپيوتر، آزمايش اتاق اورژانس، اکتشاف نفت و گاز، سامانه‌هاي تشخيص ترمز کاميون، تخمين ريسک وام، شناسايي طيفي، تشخيص دارو، فرايندهاي کنترل صنعتي، مديريت خطا، تشخيص صدا، تشخيص هپاتيت، بازيابي اطلاعات راه دور، شناسايي مين‌هاي زيردريايي، تشخيص اشياء سه بعدي و دست نوشته‌ها و چهره و… در کل مي‌توان کاربردهاي شبکه‌هاي عصبي را به صورت زير دسته بندي کرد: تناظر (شبکه الگوهاي مغشوش وبه هم ريختهرا بازشناسي مي‌کند)، خوشه يابي، دسته بندي، شناسايي، بازسازي الگو، تعميم دهي (به دست آوردن يک پاسخ صحيح براي محرک ورودي که قبلاً به شبکه آموزش داده نشده)، بهينه سازي. امروزه شبکه‌هاي عصبي در کاربردهاي مختلفي نظير مسائل تشخيص الگو که خود شامل مسائلي مانند تشخيص خط، شناسايي گفتار، پردازش تصوير و مسائلي از اين دست مي‌شود و نيز مسائل دسته بندي مانند دسته بندي متون يا تصاوير، به کار مي‌روند. در کنترل يا مدل سازي سامانه‌هايي که ساختار داخلي ناشناخته يا بسيار پيچيده‌اي دارند نيز به صورت روز افزون از شبکه‌هاي عصبي مصنوعي استفاده مي‌شود. به عنوان مثال مي‌توان در کنترل ورودي يک موتور(کنترل‌کننده موتور) از يک شبکه عصبي استفاده نمود که در اين صورت شبکه عصبي خود تابع کنترل را ياد خواهد گرفت. کاربرد مناسب تر شبکه عصبي ( در مقايسه با روش هايي از قبيل PID )براي کنترل يک سيستم دور موتور در برابر تغييرات ناگهاني بار و زمان پاسخ دهي نيز مطرح شده است .
2-10-10- معايب شبکه‌هاي عصبي
با وجود برتري‌هايي که شبکه‌هاي عصبي نسبت به سامانه‌هاي مرسوم دارند، معايبي نيز دارند که پژوهشگران اين رشته تلاش دارند که آنها را به حداقل برسانند، از جمله:
قواعد يا دستورات مشخصي براي طراحي شبکه جهت يک کاربرد اختياري وجود ندارد.
در مورد مسائل مدل سازي، صرفاً نمي‌توان با استفاده از شبکه عصبي به فيزيک مساله پي برد. به عبارت ديگر مرتبط ساختن پارامترها يا ساختار شبکه به پارامترهاي فرايند معمولاً غير ممکن است.
دقت نتايج بستگي زيادي به اندازه مجموعه آموزش دارد.
آموزش شبکه ممکن است مشکل ويا حتي غير ممکن باشد.
پيش بيني عملکرد آينده شبکه (عموميت يافتن) آن به سادگي امکان پذير نيست. ]11[
2-10-11- مسائل مناسب براي يادگيري58 شبکه هاي عصبي
خطا در داده هاي آموزشي وجود داشته باشد. مثل مسائلي که داده هاي آموزشي داراي نويز حاصل از دادهاي سنسورها نظير دوربين و ميکروفن ها هستند.
مواردي که نمونه ها توسط مقادير زيادي زوج ويژگي-مقدار نشان داده شده باشند. نظير داده هاي حاصل از يک دوربين ويدئوئي.
تابع هدف داراي مقادير پيوسته باشد.
زمان کافي براي يادگيري وجود داشته باشد. اين روش در مقايسه با روشهاي ديگر نظير درخت تصميم نياز به زمان بيشتري براي يادگيري دارد.
نيازي به تعبير تابع هدف نباشد. زيرا به سختي ميتوان اوزان يادگرفته شده توسط شبکه را تعبير نمود. ]13[
پرسپترون 59
نوعي از شبکه عصبي برمبناي يک واحد محاسباتي به نام پرسپترون ساخته ميشود. يک پرسپترون برداري از ورود
يهاي با مقادير حقيقي را گرفته و يک ترکيب خطي از اين وروديها را محاسبه ميکند. اگر حاصل از يک مقدار آستانه بيشتر بود خروجي پرسپترون برابر با 1 و در غير اينصورت معادل -1 خواهد بود.

شکل 2-1- پرسپترون يک لايه
2-11- يادگيري يک پرسپترون60
خروجي پرسپترون توسط رابطه زير مشخص ميشود :

که براي سادگي آنرا ميتوان بصورت زير نشان داد:

يادگيري پرسپترون عبارت است از:
پيدا کردن مقاديردرستي براي W ، بنابراين فضاي فرضيه H در يادگيري پرسپترون عبارت است ازمجموعه تمام مقادير حقيقي ممکن براي بردارهاي وزن.

توانائي پرسپترون
پريسپترون را ميتوان بصورت يک سطح تصميم hyperplane در فضاي n بعدي نمونه ها در نظر گرفت. پرسپترون براي نمونه هاي يک طرف صفحه مقدار 1 و براي مقادير طرف ديگر مقدار -1 بوجود مياورد.

شکل 2-2- پرسپترون
توابعي که پرسپترون قادر به يادگيري آنها ميباشد
يک پرسپترون فقط قادر است مثالهائي را ياد بگيرد که بصورت خطي جداپذير باشند. اينگونه مثالها مواردي هستند که بطور کامل توسط يک hyperplaneقابل جدا سازي ميباشند.

شکل 2-3- توابعي که پرسپترون قادر به يادگيري آنها ميباشد

توابع بولي و پرسپترون
يک پرسپترون ميتواند بسياري از توابع بولي را نمايش دهد نظير AND, OR, NAND, NOR ، اما نميتواند XORرا نمايش دهد. در واقع هر تابع بولي را ميتوان با شبکه اي دوسطحي از پرسپترونها نشان داد.

اضافه کردن باياس
افزودن باياس موجب ميشود تا استفاده از شبکه پرسپترون با سهولت بيشتري انجام شود.
براي اينکه براي يادگيري باياس نيازي به استفاده از قانون ديگري نداشته باشيم باياس را بصورت يک ورودي با مقدار ثابت 1 در نظر گرفته و وزن W0 را به آن اختصاص ميدهيم. ]25[

2-11-1- آموزش پرسپترون61
چگونه وزنهاي يک پرسپترون واحد را ياد بگيريم به نحوي که پرسپترون براي مثالهاي آموزشي مقادير صحيح را ايجاد نمايد؟
دو راه مختلف :
قانون پرسپترون
قانون دلتا

2-11-2- الگوريتم يادگيري پرسپترون62
مقاديري تصادفي به وزنها نسبت ميدهيم
پريسپترون را به تک تک مثالهاي آموزشي اعمال ميکنيم. اگر مثال غلط ارزيابي شود مقادير وزنهاي پرسپترون را تصحيح ميکنيم.
آيا تمامي مثالهاي آموزشي درست ارزيابي ميشوند:
بله — پايان الگوريتم
خير–به مرحله 2 برميگرديم

محاسبه گراديان63
با مشتق گيري جزئي از رابطه خطا ميتوان بسادگي گراديان را محاسبه نمود:
E'(W)/ wi = ?i (ti – Oi) (-xi)
لذا وزنها طبق رابطه زير تغيير خواهند نمود.
?wi = ? ?i (ti – oi) xi
2-12- مقايسه آموزش 64يکجا و افزايشي

شکل 2-4 – مقايسه آموزش افزايشي و يکجا

2-13- شبکه هاي چند لايه65
بر خلاف پرسپترونها شبکه هاي چند لايه ميتوانند براي يادگيري مسائل غير خطي و همچنين مسائلي با تصميم گيري هاي متعدد بکار روند. ]29[

يک سلول واحد
براي اينکه بتوانيم فضاي تصميم گيري را بصورت غير خطي از هم جدا بکنيم، لازم است تا هر سلول واحد را بصورت يک تابع غير خطي تعريف نمائيم. مثالي از چنين سلولي ميتواند يک واحد سيگموئيد باشد:

تابع سيگموئيد66
خروجي اين سلول واحد را بصورت زير ميتوان بيان نمود:

تابع ? تابع سيگموئيد يا لجستيک ناميده ميشود. اين تابع داراي خاصيت زير است:

2-14- الگوريتم Back propagation
براي يادگيري وزن هاي يک شبکه چند لايه از روش Back Propagation استفاده ميشود. در اين روش با استفاده از gradient descent سعي ميشود تا مربع خطاي بين خروجي هاي شبکه و تابع هدف مينيمم شود.
خطا بصورت زير تعريف ميشود:

مراد ازoutputs


پاسخی بگذارید