رشته مدیریت-دانلود پایان نامه درباره شبکه های عصبی

با ناظر
در این نوع آموزش، به الگوریتم یادگیری مجموعه ای از زوج داده که به داده های یادگیری موسوم هستند، داده می شود. هر داده یادگیری شامل ورودی به شبکه و خروجی هدف است. پس از اعمال ورودی به شبکه، خروجی شبکه با خروجی هدف مقایسه می گردد و سپس خطای یادگیری محاسبه شده و از آن جهت تنظیم پارامترهای شبکه (وزن ها)، استفاده می گردد به گونه ای که اگر دفعه بعد به شبکه همان ورودی را دادیم، خروجی شبکه به خروجی هدف نزدیک گردد. شکل (2-11) یادگیری با ناظر را نشان می دهد.
شکل (2-11): یادگیری با ناظر (حجازی زاده، 1389)
یادگیری تشدیدی حالت خاصی از یادگیری با ناظر است که در آن بجای فراهم نمودن خروجی هدف، به شبکه عددی که نشان دهنده میزان عملکرد شبکه است ارائه می گردد، در یادگیری با ناظر ، مقادیر خروجی هدف برای هر ورودی مفروض، کاملا معلوم است ولی در بعضی مواقع اطلاعات کمی موجود می باشد. مثلاً به شبکه می توان گفت که خروجی اش 50% درست است و غیره. در یادگیری با ناظر می گوییم جواب مطلوب برای ورودی x برابر t است ولی در این الگوریتم های یادگیری می گوییم که چقدر شبکه خوب به ورودی x جواب داده یا چقدر بد جواب داده است.
یادگیری نظارت نشده یا بدون ناظر:

 
 
در این نوع یادگیری هیچ سیگنالی که اطلاعات را در مورد مطلوبیت جواب شبکه به خود شبکه وارد نماید، وجود ندارد. به عبارت دیگر به شبکه گفته نمی شود که خروجی هدف چه است و یا اینکه جواب شبکه چقدر مطلوب است. در این حالت، شبکه با دریافت اطلاعات ورودی، باید طبقه بندی ای بین الگوهای ورودی، شاخص های موجود در ورودی ها و ارتباط موجود بین الگوهای ورودی را پیدا کند و در خروجی کد کند. شکل(2-12) یادگیری بدون ناظر را نشان می دهد. یک مثال بسیار متداول از این نوع یادگیری، شبکه های خوشه بندی الگوهای ورودی است، بدون اینکه بدانیم کدام الگو به کدام خوشه تعلق دارد. خوشه ها در نهایت از روی تشابهات و عدم تشابهات بین الگوها ایجاد می گردند.
شکل(2-12): یادگیری بدون ناظر (حجازی زاده، 1389)
2-4-8- پرسپترون چند لایه (MLP)
هرچند نحوه مدل کردن نرون جزء اساسی ترین نکات کلیدی در کارآیی شبکه عصبی می باشد اما نحوه برقراری اتصالات و چیدمان (توپولوژی) شبکه نیز فاکتور بسیار مهم و اثرگذاری است. باید توجه داشت که توپولوژی مغز انسان آنقدر پیچیده است که نمی توان از آن به عنوان مدلی برای اعمال به شبکه عصبی استفاده نمود، چرا که مدلی که ما استفاده می کنیم، یک مدل ساده شده است در حالی که چیدمان مغز از المانهای بسیار زیادی استفاده می کند.
یکی از ساده ترین و در عین حال کارآمدترین چیدمان های پیشنهادی برای استفاده در مدل سازی عصب های واقعی، مدل پرسپترون چندلایه یا به اختصار MLP می باشد که از یک لایه ورودی، یک یا چند لایه پنهان و یک لایه خروجی تشکیل یافته است. در این ساختار، تمام نرون های یک لایه به تمام نرون های لایه بعد متصلند. این چیدمان اصطلاحاً یک شبکه با اتصالات کامل را تشکیل می دهد (صیادی،1387).
شکل(2-13) شمای یک شبکه پرسپترون سه لایه را نشان می دهد. به سادگی می توان استنباط نمود که تعداد نرون های هر لایه، مستقل از تعداد نرون های دیگر لایه ها می باشد. توجه به این نکته حائز اهمیت است که در شکل(2-13)، هر دایره تجمیع شده عمل جمع و آستانه گذاری (عبور از تابع غیرخطی سیگموئید) است. در حقیقت هر دایره توپر در شکل(2-13)، مدلی است از جمع کننده و بلوک آستانه گذاری شکل (2-6) که به منظور سهولت نمایش به این فرم نشان داده شده است. با توجه به شکل، خروجی عصب i ام ( در لایه آخر) را می توان به صورت زیر نشان داد:
شکل(2-13): پرسپترون سه لایه با اتصالات کامل (صیادی، 1387)
2-1)

که در آن، o و h به ترتیب نشان دهنده لایه خروجی و لایه نهان بوده و منظور از w همان وزنهای لایه ها می باشد.
2-4-9- آموزش شبکه به روش پس انتشار خطا
با توجه به این که شبکه عصبی، مدل ساده شده اعصاب بدن است، درست به مانند آن ها قابلیت یادگیری دارد. به عبارت دیگر، شبکه با بهره گرفتن از اطلاعاتی که از ورودی و توسط سرپرست خود دریافت میکند، قادر به فراگیری روند موجود در الگوهاست. لذا به طور مشابه با انسان، روند یادگیری در شبکه عصبی نیز از مدل های انسانی الهام گرفته است بدین صورت که مثال های بسیاری را به دفعات بایستی به شبکه ارائه نمود تا بتواند با تغییر وز نهای شبکه، خروجی مورد نظر را دنبال کند. ارائه نمونه داده های ورودی به شبکه عصبی به دو روش امکان پذیر است:
Batch Mode) ): در این روش، تمام نمونه ها به شبکه ارائه می گردند و در آخر، خطای روش ارائه یک جا شبکه نسبت به کل نمونه ها محاسبه گشته و وزن ها بر اساس آن خطا تغییر می کنند. در مرحله بعد، مجدداً تمام داد ه ها یکبار دیگر به شبکه ارائه شده و روند فوق نظیر به نظیر انجام میپذیرد تا نهایتاً خطا به سطح قابل قبولی برسد. مسلماً این روش پیچیده و زمان بر بوده و نیاز به حافظه زیادی دارد. همچنین امکان گیرکردن الگوریتم در مینیمم های محلی وجود دارد.
(Pattern Mode) : در این روش، در هربار نمونه ها به صورت تک تک به شبکه داده شده و روش ارائه الگو خطای متناظر با همان داده بلافاصله محاسبه شده و بر اساس آن، وزنهای شبکه تغییر می کنند. سپس نمونه بعدی به شبکه ارائه شده و روند بالا مشابهاً انجام می پذیرد. چون در این روش، در هر گام، اصلاح وزن ها بر اساس هر نمونه انجام می پذیرد، الگوریتم همگرایی خوبی داشته و با توجه به ماهیت تصادفی موجود در ارائه تکی داده ها، خطر مینیمم های محلی منتفی است.
به منظور آموزش شبکه و اصلاح وزن ها تا رسیدن به یک خطای معنادار، روش های بسیار زیادی وجود دارد. یکی از مشهورترین این روش ها، الگوریتم پس انتشار خطا است که در ادامه توضیح داده می شود.
2-4-10- الگوریتم پس انتشار خطا
این الگوریتم که در سال 1986 توسط روملهارت و مک کلیلاند پیشنهاد گردید، در شبکه های عصبی پیش سو مورد استفاده قرار می گیرد. پیش سو بودن به این معناست که نرون های مصنوعی در لایه های پیش خور متوالی قرار گرفته اند و خروجی(سیگنال) خود را رو به جلو می فرستند. واژه پس انتشار نیز به معنای این است که خطاها به سمت عقب در شبکه تغذیه می شوند تا وزنها را اصلاح کنند و پس از آن، مجدداً ورودی مسیر پیش سوی خود تا خروجی را تکرار کند. روش پس انتشار خطا از روش های با سرپرست است به این مفهوم که نمونه های ورودی برچسب خورده اند و خروجی مورد انتظار هر یک از آنها از پیش دانسته است. لذا خروجی شبکه با این خروجی های ایده آل مقایسه شده و خطای شبکه محاسبه می گردد. در این الگوریتم ابتدا فرض بر این است که وزن های شبکه به طور تصادفی انتخاب شده اند. در هر گام خروجی شبکه محاسبه شده و بر حسب میزان اختلاف آن با خروجی مطلوب، وزنها تصحیح می گردند تا در نهایت این خطا، مینیمم شود. در الگوریتم پس انتشار خطا، تابع تحریک هر عصب به صورت جمع وزن دار ورودی های مربوط به آن عصب درنظر گرفته می شود. بدین ترتیب با فرض این که w وزن های متناظر بین لایه ورودی و لایه بعد باشد می توان نوشت:
2-2)
به وضوح میتوان دیدکه خروجی تابع نحریک عصب فقط به ورودی و وزنهای متناظر بستگی دارد. با فرض اینکه تابع خروجی، سیگموئید باشد می توان خروجی عصب j ام را به صورت زیر نوشت:
2-3)

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

پایان نامه
برای دانلود متن کامل پایان نامه ، مقاله ، تحقیق ، پروژه ، پروپوزال ،سمینار مقطع کارشناسی ، ارشد و دکتری در موضوعات مختلف با فرمت ورد می توانید به سایت  77u.ir  مراجعه نمایید
رشته مدیریت همه موضوعات و گرایش ها : صنعتی ، دولتی ، MBA ، مالی ، بازاریابی (تبلیغات – برند – مصرف کننده -مشتری ،نظام کیفیت فراگیر ، بازرگانی بین الملل ، صادرات و واردات ، اجرایی ، کارآفرینی ، بیمه ، تحول ، فناوری اطلاعات ، مدیریت دانش ،استراتژیک ، سیستم های اطلاعاتی ، مدیریت منابع انسانی و افزایش بهره وری کارکنان سازمان

در این سایت مجموعه بسیار بزرگی از مقالات و پایان نامه ها با منابع و ماخذ کامل درج شده که قسمتی از آنها به صورت رایگان و بقیه برای فروش و دانلود درج شده اند

که در آن η ثابت اصلاح وزن هاست و توسط کاربر انتخاب می شود. این ثابت نرخ همگرایی الگوریتم را تعیین می کند. لذا به وضوح هر چه مقدار این ثابت بیشتر باشد، میزان تغییرات در هر گام بیشتر خواهد بود و بالعکس. طبق رابطه (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 را به خود بگیرند. اما در عمل با توجه به تابع سیگموئید مورد استفاده، مقدار خروجی شبکه عددی بین صفر و یک است. لذا در حالت عملی نورونی از لایه خروجی که اصطلاحاً بیش از بقیه روشن شده باشد (مقدار آن بزر گتر از بقیه باشد) کلاس مربوط به آن داده را مشخص میکند. در مورد تعداد نورو نهای لایه میانی، مبنای خاصی وجود ندارد و معمولاً با صحیح و خطا به نحوی انتخاب می گردد که شبکه جواب معقولی در اختیار بگذارد. باید دقت داشت که اگر شبکه خیلی پیچیده باشد، دقیقاً رفتار الگوهای ورودی را یاد خواهد گرفت و لذا اگر داده ای کمی نسبت به داده های آموزشی تغییر کند، شبکه به راحتی قادر به دنبال کردن آن نخواهد بود. در این حالت اصطلاحاً گفته می شود که شبکه عصبی قابلیت تعمیم ندارد. این چنین شبکه هایی را شبکه های اورلود گویند.
قدم بعدی در شبیه سازی، انتخاب نوع تابع خروجی نرون است که در شبکه های MLP که با الگوریتم پس انتشار خطا کار می کنند، عمدتاً تابع سیگموئید استفاده می شود. دلیل این امر هم مشتق گیری ساده و ارتباط مستقیم تابع با خود تابع است (رابطه2-11).
پیش از شروع شبیه سازی، باید داده های ورودی

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

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *