400 likes | 536 Views
کار برد شبکه های عصبی در پردازش سریهای زمانی. فیروزمنش ، کیایی Email جهت طرح سوالات: amirhf@gmail.com. میانگین متحرک.
E N D
کار برد شبکه های عصبی در پردازش سریهای زمانی فیروزمنش ، کیایی Email جهت طرح سوالات: amirhf@gmail.com
میانگین متحرک • در آمار میانگین متحرک یکی از تکنیکهای مورد استفاده جهت تحلیل سریهای زمانی می باشد. این تکنیک جهت کم رنگ کردن نوسانات کوتاه مدت سری زمانی و نمایان کردن رفتار بلند مدت تر سری زمانی استفاده می شود. • از لحاظ ریاضی میانگین متحرک مثالی از یک کانولوشن می باشد و از دیدگاه پردازش سیگنال به عنوان یک فیلتر قابل به کار گیری است. (در ادامه این موضوع را با جزئیات بیشتر بررسی می کنیم)
میانگین متحرک وزندار • میانگین متحرک وزندار را می توان به صورت یک فیلتر گسسته در زمان به شکل زیر نمایش داد: • بنا بر این پاسخ ضربه برابر خواهد بود با :
پاسخ فرکانسی • پاسخ فرکانسی برابر خواهد بود با : • در ادامه نمودار به لگاریتم دامنه این فیلتر را به ازای برخی مقادیر b مشاهده می کنیم.
اثر فیلتر پایین گذر میانگین متحرک بر شاخص هفتگی بازار سهام داو جونز در یک دوره 10 ساله الف)شاخص هفتگی ب) میانگین متحرک 51 روزه اعمال شده به الف ج) میانگین متحرک 201 روزه
مدلهایی برای سریهای زمانی • جهت پردازش سریهای زمانی لازم است که مدلی از این سریها داشته باشیم تا بتوانیم عملیاتی چون پیش بینی آینده سری و یا دسته بندی آن را بر اساس آن مدل انجام دهیم. در اینجا به معرفی سه مدل رایج برای این منظور می پردازیم: • مدل Auto-regressive (AR) • مدل Moving Average (MA) • مدل ARMA که ترکیب دو مدل بالاست.
Auto-regressive Model • در این مدل فرض می شود مقدار کنونی سری را می توان به صورت تابعی (خطی یا غیر خطی ) از پنجره ای از مقادیر گذشته سری به دست آورد: • یا
Auto-regressive Model • مدل خطی دارای دو محدودیت مهم است : اولا مستلزم فرض وجود رابطه حطی بین عناصر پیشین سری می باشند و ثانیا فرض می کنند سری Stationary می باشد. • در مقابل با استفاده از مدل غیر خطی می توان تخمین دقیقتری از ویزگیهای سری زمانی مورد نظر به دست آورد. البته در صورت استفاده از مدل غیر خطی نیاز به نمونه های بیشتری در مرحله آموزش می باشد .
Moving Average • می توان فرض کرد مقدار سری زمانی در یک مرحله را به صورت یک میانگین متحرک از نویزهای مراحل قبل قابل محاسبه است ، یعنی
Moving Average • سوالی که مطرح می شود آن است که چگونه مقدار سری در یک نقطه که یک مقدار غیر تصادفی است را می توان با مجموع تعدادی متغیر تصادفی مدل کرد. در پاسخ می توان گفت همانطور که در معرفی Moving Average توضیح دادیم این عملگر به صورت یک فیلتر عمل می کند و با توجه به اینکه عموما نویز فرآیندی است که شامل طیف گسترده ای از فرکانسها می گردد ، بنابراین فیلتر میانگین متحرک می تواند از این طیف ، فرکانسهای مطلوب را گزینش کند تا یک سری زمانی غیر تصادفی حاصل شود.
ARMA Model • همچنین می توان دو مدل قبلی را ترکیب کرده و مقدار سری در یک نقطه را بر اساس تابعی از مقادیر و نویزهای مراحل قبل بیان کرد ، یعنی
شبکه های عصبی جهت پردازش سریهای زمانی در این قسمت به بررسی برخی از مهمترین انواع شبکه های عصبی مورد استفاده جهت سریهای زمانی می پردازیم : • Multi Layer Perceptron • Jordan Network • Elman Netwrok • Multi Recurrent Network • Radial Basis Function Network
Multi Layer Perceptron • از یک شبکه Perceptron چند لایه می توان جهت پیش بینی سری زمانی استفاده کرد. معماری شبکه به شکل زیر است.
تابع نرونها می تواند انواع توابع Sigmoid باشد. • عملکرد این شبکه بر مبنای مدل Auto-Regressive می باشد. • در زمینه آموزش شبکه های چند لایه در جلسات آینده به طور کامل بحث خواهد شد.
Jordan Network • این شبکه از مدل ARMA جهت مدلسازی سریهای زمانی استفاده می کند. • در این شبکه از لایه خروجی به لایه ای به نام Context (که هم سطح با لایه ورودی است) ، feedback وجود دارد. • تابع فعالیت نرونهای می توان از انواع توابع Sigmoid باشد.
یک شبکه دارای Feed Back از لایه خروجی به لایه Context که بر مبنای مدل ARMA عمل می کند.
شبکه جردن در واقع تعمیمی از شبکه فوق به اضافه وجود Self recurrent loop در لایه Context می باشد.
Elman Network • می توان یک سری زمانی را به صورت حاصل ضرب یک ماتریس در یک بردار حالت وابسته زمان مدل کرد. یعنی : • که در آن
این مدل بر مبنای ARMA[1,1] می باشد . در واقع فرض می شود با دانستن وضعیت فعلی می توانیم مقدارسری در مرحله بعد و وضعیت بعدی را پیش بینی کنیم. • با فرض اینکه بردارهای وضعیت به مقدار قبلی سری نیز وابسته است ، و در نظر نگرفتن نویز، به معادله ای خواهیم رسید که بیانگر رفتار پایه شیکه Elman می باشد.
تابع Sigmoid مورد استفاده در لایه میانی شبکه های Elman به شکل 1/(1+exp(-ai)) می باشد. بنابراین بردار حالت به فضایی بین 0 و 1 با پراکندگی بیشتر در نزدیک 1 نگاشت می شود.
ویژگیهای این شبکه : • Feedback از هر دو لایه خروجی و میانی به ترتیب وارد لایه های Context و لایه State می شود. (در شکل کنار هم رسم شده اند) • می توان از با استفاده از تأخیر زمانی لایه های طبقه ورودی (شامل لایه ورودی ، لایه Context و لایه State) را به گونه گسترش داد که امکان دسترسی به پنجره زمانی از مقادیر قبلی در هر لایه وجود داشته باشد. • علاوه بر لایه State لایه Context نیز دارای Self recurrent loop می باشد.
با وجود آنکه این شبکه دارای پارامتر زیادی است ، در عمل این شبکه را می توان به گونه ای طراحی کرد که کارایی مناسبتری نسبت به سایر شبکه های معرفی شده داشته باشد.
Radial Basis Function • یک تابع Radial basis تابعی حقیقی است که مقادیر آن تنها به فاصله از مبدأ وابسته است. این توابع در تخمین ، پیش بینی سریهای زمانی و کنترل مورد استفاده قرار می گیرند. در شبکه عصبی مصنوعی از این توابع می توان به عنوان تابع فعالیت نرون استفاده کرد. • هر تابع مانند ρ که رابطه ( | | x | | ) ρ =(x) ρ را ارضا کند. نرم مورد استفاده معمولا فاصله اقلیدسی می باشد.
همچنین به غیر از مبدأ می توان فاصله را نسبت به یک نقطه دیگر در نظر گرفت. ρ(x,c) =ρ( | | x − c | | ) • در این صورت نقطه c را مرکز می نامند.
انواع توابع Radial Basis • برخی از انواع معمول این توابع عبارتند از: • تابع گاوسی • ρ(r) =exp( − βr2) for some β>0 • تابع Multiquadratic: • Thin Plate Spline • ρ(r) =r2log(r)
درونیابی • یک ترکیب خطی از توابع Radial Basis یعنی را می توان جهت درونیابی هرتابع پیوسته در یک بازه ، با دقت دلخواه استفاده کرد.
شبکه های عصبی RBF • به طور معمول شبکه های عصبی RBF از سه لایه تشکیل می شوند: لایه ورودی ، یک لایه پنهان که نرونهای آن دارای تابع RBF هستند و لایه خروجی.
خروجی هر یک نرونهای لایه آخر را می توان به شکل کلی زیر نمایش داد. • که در آن x بردار ورودی ، N تعداد نرونها در لایه پنهان ، ciبردار مرکز تابع RBF در هر یک از نرونهای لایه پنهان و aiوزنهای ورودی به نرون لایه خروجی می باشند.
نکته : بعد بردار C هر نرون با بعد بردار X برابر است. بنا براین : که در آن k تعداد نرونهای لایه ورودی است.
آموزش • در یک شبکه RBF سه پارامتر را جهت تطبیق شبکه با کاربرد مورد نظر می توان تنظیم کرد. بردار های مرکز تابع RBF ، وزنهای لایه خروجی wiو پارامتر وزن تابع RBF یعنی βi. • در برخی موارد ، استفاده از یک تابع هدف ایده مناسبی است. در این موارد در مرحله آموزش بر اساس تأثیر تغییر هر یک از پارامتر ها بر تابع هدف نسبت به کاهش یا افزایش آن پارامتر در هر مرحله اقدام می شود.
Least Square Function که درآن کمینه کردن تابع Least Squares از طریق تغییر متناسب وزنها در هر مرحله از فازآموزش صورت می گیرد .
آموزش مراکز توابع Basis • مراکز توابع Basis را می توان به طور تصادفی از مقادیر ممکن برای ورودی نمونه برداری کرد . همچنین می توان پس از خوشه بندی (Cluster) نمونه ها میاینگین هر نمونه به عنوان مرکز تابع انتخاب کرد.
آموزش وزنهای لایه خروجی • یکی از روشهای آموزش وزنهای لایه خروجی الگوریتم Gradient Descent است. در این الگوریتم وزنها در هر مرحله با انتقال در خلاف جهت گرادیان تابع هدف تصحیح می شوند.یعنی : که در آن ν”ضریب یادگیری“ می باشد.
RBFN • از شبکه عصبی RBF نیز می توان جهت پیش بینی سریهای زمانی استفاده کرد. • توضیحات مربوط به این شبکه در صفحات قبل ارائه شد. • معادله عملکرد این شبکه به شکل زیر است: که در آن V ها بردارهای مرکز RBF نرونهای لایه میانی و w ها وزنهای لایه آخر می باشند.