تحقیق رایگان درمورد رگرسیون، رگرسیون خطی، استاندارد، شبکه عصبی مصنوعی

تحقیق رایگان درمورد رگرسیون، رگرسیون خطی، استاندارد، شبکه عصبی مصنوعی

تحقیق رایگان درمورد رگرسیون، رگرسیون خطی، استاندارد، شبکه عصبی مصنوعی

اطلاعات مربوط به نرون دوم، اطلاعات بسیار ارزشمندی باشند. بدین منظور لازم است ورودیهای تمام نرونها نرمال شوند. معمولاً نرمال کردن الگوها به فرمی است که آنها را به بازه مشخصی مانند [۹/۰ و ۱/۰] و یا [۱ و ۰] نگاشت داده شده‌اند.
پس از نرمال کردن تمامی الگوها، نوبت به انتخاب الگوهای آموزش و آزمون رسیده است. با توجه به اینکه شبکه عصبی مصنوعی ذاتاً فاقد قدرت برونیابی بالاست و توانایی تعمیمدهی آن فقط در چارچوب درون‌یابی مطرح شده است، انتخاب دادههای آموزش بسیار مهم به نظر رسیده است.
ماتریسهای ورودی و هدف قبل از اینکه توسط شبکه مورد استفاده قرار گرفته شوند باید استاندارد و نرمالیزه شوند. نرمالیزه کردن یعنی اعدادی را که در یک بازه نامتناهی قرار دارند، در یک بازه متناهی قرار دهیم.
هر سطر در ماتریس ورودی و خروجی نشان دهنده یک متغیر بوده است. جهت نرمالیزه کردن ماتریس‌های صفات ورودی و خروجی، انحراف هر مشاهده از میانگین را بدست آورده و آنرا بر انحراف معیار تقسیم نموده، میانگین هر کدام از ستونهای استاندارد شده، برابر صفر و انحراف میانگین آنها برابر ۱ بوده است.
بنابراین برای نرمالیزه کردن ماتریسهای p,t، ابتدا با استفاده از یک عملگر رگرسیون خطی، هر یک از متغیرها را مستقل خطی نموده و سپس با استفاده از دستور prestd در Matlab میانگین هر کدام از ستونها را برابر صفر و انحراف از میانگین (Sd) آنها را برابر یک قرار داده و دادهها، استاندارد شده است.
[Pn, Meanp, Stdp ; tn, meant, stdt] = prestd (p,t)
Pn = ماتریس ورودی نرمالیز شده.
Meanp = دستوری که میانگین ماتریس p را برابر صفر قرار داده است.
Stdp = دستوری که sd (انحراف از میانگین) ماتریس p را برابر یک قرار داده است.
tn = ماتریس هدف نرمالیز شده.
Meant = دستوری که میانگین ماتریس t را برابر صفر قرار داده است.
Stdt = دستوری که sd (انحراف از میانگین) ماتریس t را برابر یک قرار داده است.
prestd (p,t) = دستور استاندارد کردن ماتریس ورودی و خروجی (کل داده‌ها)
سپس با استفاده از یک عملگر رگرسیون خطی، هر یک از متغیرها را مستقل خطی نموده (هنگامی‌ که یکی از ستونهای ماتریس، حاصلضرب ستون دیگری از همان ماتریس در یک عدد یا ستون دیگر باشد، گفته شده که ستون‌های ماتریس وابستگی خطی دارند).
در برخی مواقع ابعاد ماتریس ورودی خیلی بزرگ است و مؤلفههای بردار ماتریس ورودی با یکدیگر همبستگی بالایی دارند (تکراری بوده‌اند) و ممکن است همه مؤلفههای ورودی تأثیر زیادی بر مؤلفه پاسخ نداشته باشند. در چنین مواقعی برای کاهش ابعاد ماتریس ورودی و تنها استفاده از مؤلفههای مؤثر بر مؤلفه پاسخ، عمل آنالیز میزان اثر هر کدام از مؤلفهها انجام شده و مؤلفههایی که اثرشان از سطح معینی کمتر است و یا وابستگی خطی با هم دارند، بوسیله آنالیز مؤلفههای اصلی از دسته ماتریسهای ورودی حذف شده و به این منظور از دستور propca استفاده گردیده است. این روش دارای سه اثر بوده است:
۱) عناصر بردار ورودی را اورتوگونال کرده است (همبستگی بین آنها را از بین برده است).
۲) منجر به متعامد شدن مؤلفههای بنیادی در بردار ورودی گردیده است (استحکام در بردار ورودی).
۳) مؤلفههایی را که اثرشان واریانس کوچکی را در دسته داده‌‌ها شامل شده از معادله حذف کرده است.
[ptrans, transmit] = propca (pn, 0.001)
Ptrans = ماتریس ورودی pca شده.
transmit = ماتریس خروجی pca شده.
propca = دستور حذف مولفه‌های تکراری از ماتریس ورودی و حذف مولفه‌های با واریانس کوچک ۰.۰۰۱ = مؤلفههایی را که اثرشان، واریانس کوچکتر از ۰۰۱/۰ در دسته دادههای ورودی را شامل شده از ماتریس ورودی حذف کرده است.
۳-۳-۳ تفکیک ماتریس پیش‌بینی از ماتریس کل
به منظور انجام پیش‌بینی، یک دسته ماتریس مربوط به رکوردهای موجود را بصورت تصادفی از بین کل دادههای ورودی و متناظر آن در دادههای خروجی، جدا نموده و جهت اطمینان از اینکه این دادهها در مجموع دادههایی که برای آموزش و آزمون و برآورد ارزش شبکه بهکار رفته‌اند، وجود داشته باشند، مقادیر معادل آنها برابر تهی قرار داده شده است.
S = ptrans (, row column)
R= tn (, row : column)
ptrans (, row : column) = [ ]
tn (, row : column) = [ ]
بعد از این مرحله به جهت ساختن شبکه، نیاز داشته ابعاد ماتریس ورودی را مشخص ساخته که بدین منظور از دستور زیر در Matlab استفاده شده است:
[R, Q] = Size (Ptrans)
۳-۳-۴ تفکیک دادهها برای ارائه به ماتریس ورودی
از کل دادههای موجود، تعدادی برای آموزش شبکه و تعدادی مربوط به آزمون و رکورد شبکه و تعدادی نیز برای برآورد ارزش شبکه، مورد استفاده قرار گرفته شده است.
iitst = 2:4:Q
مفهوم: از تمام رکوردهای موجود در نمونه از سطر دوم تا انتها با گام چهارتایی برای آزمون شبکه (tst) جدا شود.
iival = 4:4:Q
مفهوم: از تمام رکوردهای موجود در نمونه از سطر چهارم تا انتها با گام چهارتایی برای برآورد ارزش شبکه (val) جدا شود.
iitr = [1:4:Q 3:4:Q]
مفهوم: از تمام رکوردهای موجود در نمونه از سطراول و سوم تا انتها با گام چهارتایی برای آموزش شبکه (tr) جدا شود.
۳-۳-۵ ساختن شبکه
پس از انجام کلیه مراحل بالا، شبکهای باید ساخته شود تا با دادههای موجود، آموزش، آزمون و برآورد ارزش گردیده و سپس این شبکه برای شبیهسازی مورد استفاده قرار گیرد.
می‌توان شبکه موردنظر را بادستور و مؤلفههای موصوف زیر ساخت:
Net = Newff (Minmax (ptr), [11 1], {‘tansig’, ‘purelin’}, ‘trainlim’)
Net= دستور ساختن شبکه را داده است.
Newff = ساختن یک شبکه پیشخور پس انتشار خطا (bpff)
Minmax= به معنی ماتریسی متشکل از کمینه و بیشینه بردار ورودی بوده است.
Ptr = دادههای آموزشی ورودی بوده است.
[۱۱ ۱] = به ترتیب تعداد نرونها در لایه خروجی و پنهان بوده است.
هر ورودی قبل از اینکه وارد هسته اصلی عنصر پردازشگر شود، وزندار گردیده است. پس از وارد شدن به هسته اصلی عنصر پردازشگر در یک وزن اولیه (w) که مقدار آن به طور معادل بین ۵/۰± در نظر گرفته شده و در یک مقدار اریب ضرب شده، سپس مجموع آنها در یک تابع انتقالی ضرب گردیده‌اند. معمولاً تابع انتقالی در نظر گرفته شده برای لایههای ورودی و مخفی (پنهان) از نوع tansig و برای لایه خروجی از نوع purelin است و تابع آموزشی شبکه از نوع trainlim بوده است.
Tansig= تابع انتقال لایه ورودی، یک تابع محاسباتی است که لایههای خروجی را از روی ورودی شبکه محاسبه کرده است. این تابع به تانژانت هیپربولیک نیز مشهور است. الگوریتم tansig بصورت زیر است:
Tansig= تابع انتقال لایه پنهان (مخفی).
Purelin= تابع انتقال لایه خروجی، در واقع یک تابع انتقال خطی است که لایههای خروجی را از روی ورودی شبکه محاسبه میکند.
Tarinlim= تابع آموزشی شبکه bp (شبکه پیش‌خور پس انتشار خطا) بوده که مقادیر وزنها و مقادیر اریب شبکه را بر طبق روش لیوینبرگ- مارکواردت۱۳۷ بهینهسازی کرده است.
[net, tr] = train (net, ptr, ttr, [ ], [ ], val, tst)
[net, tr] = این دستور شبکه ساخته را آموزش داده است.
Ptr = ورودی شبکه (داده‌های آموزشی ورودی)
ttr= هدف شبکه با پیش فرض صفر
[ ] = شرایط تأخیر ورودی و لایه آغازین با پیش فرض صفر
Val= ساختار بردار اعتبار سنجی شبکه با پیش فرض [ ]
tst= ساختار بردار آزمون شبکه با پیش فرض [ ]
جهت نمایش پیش‌بینی شبکه بصورت نمودار از دستور زیر استفاده شده است:
plot ( tr. Epoch, tr.pref, tr. Epoch, tr.pref) pref
دستور زیر گفته است نموداری رسم شود که در آن متغیرها هر کدام بر حسب قبلی رسم شده باشد.
legend (traninig, validation, test, -1)
دستور زیر برای قرار دادن فهرست و اسم خطوط در کنار یا درون صفحه‌ای که نمودار آن رسم شده بکار برده شده است.
Ylable (square err); Xlable (epoch)
این دستور نوع متغیرهای مورد نظر را روی بردار X و Y مشخص کرده است. روی بردار X متغیر epoch و روی بردار Y مربع خطا (square err) رسم شده است. برای آنالیز پاسخ شبکه روی مجموع داده‌های شبکه دستور زیر نوشته شده تا یک رگرسیون خطی بین خروجیهای شبکه و پاسخ هدف متناظر با آن را دهد، در واقع نشان دهنده این است که دادهها چقدر همگرا شدهاند.
دستور زیر شبکه را با یک ورودی شبیهسازی کرده و یک خروجی داده است.
an = sim (net, ptrans)
پس از شبیهسازی بایستی دادهها را از حالت نرمالیزه خارج کرده که این کار با دستور poststd صورت گرفته است.
a = poststd (an, meant, std)
[m,b,r] = postreg(a2,t)
دستور بالا یک رگرسیون خطی را بین پاسخ شبکه و پاسخ هدف انجام داده که در آن:
m = شیب خط رگرسیون
b = عرض از مبدأ
r = ارزش همبستگی رگرسیون (r=1 یعنی همبستگی خیلی خوب)
a = پاسخ شبکه
t = بردار هدف
با توجه به استفاده از version7.4 نرم‌افزار Matlab و قابلیتهای بیشتر آن نسبت به نسخه‌های قبلی در برنامه اصلی مربوط به پروژه حاضر که در ادامه آورده خواهد شد، از دستور mapstd جهت نرمالیزه کردن داده‌ها استفاده شده است.
پس از تعیین همگرایی شبکه، یک شبیه‌سازی مانند شبیهسازی قبلی برای دادههایی که قرار است پیش‌بینی روی آنها انجام شود صورت گرفته است. دستور این شبیهسازی مانند دستور قبلی است با این تفاوت که در دستور آخر به جای a و t به ترتیب دو ماتریس s و R را قرار داده شده است.
برای آنالیز پاسخ شبکه روی مجموع دادهها در شبکه، عملیاتی را انجام داده شد که یک رگرسیون خطی بین خروجیهای شبکه و پاسخ هدف متناظر با آنرا بدهد. در واقع نشان داده شده که دادههای پیش‌بینی با مقادیر واقعی چقدر همگرا شدهاند. برای این کار شبکه با یک ورودی شبیهسازی شده و یک خروجی حاصل شده است. پس از شبیهسازی، دادهها بایستی از حالت نرمالیزه خارج شده، که این کار با عکس عمل نرمالیزه کردن صورت گرفته شده است. و در آخر یک رگرسیون خطی بین پاسخ شبکه و بین پاسخ هدف بدست آورده شده است.
پس از تعیین همگرایی شبکه، یک شبیهسازی برای دادههایی که قرار است پیشبینی بر روی آنها انجام شود صورت گرفته و دادههای پیش‌بینی شده حاصل به صفحه گسترده Excel منتقل گردیده است.
۳-۳-۶ برنامه

مطلب مرتبط :   تحقیق رایگان درمورداستان اصفهان، زاینده رود، پوشش گیاهی، شهر اصفهان

admin2

No category

No description. Please update your profile.

You must be logged in to post a comment