بخشی از مقاله

چکیده

امروزه با پیشرفت علم و تکنولوژی ،جمع آوری داده های مربوط به متغیر های موثر سالهای قبل، پیش بینی در محیط های رقابتی از اهمیت فراوانی برخوردار است .در دهه های گذشته که روش های ابتکاری و هوش مصنوعی متداول نشده بودند، برای پیش بینی معمولا از روش های آماری مانند رگرسیون ، نمو هموار، میانگین متحرک و حتی روش های فراطبیعی استفاده می شد اما در دهه اخیر روش های ابتکاری و هوشمند شبکه عصبی برای پیش بینی مورد استفاده قرار گرفته است.

در این مقاله سعی شده تا با استفاده از شبکه های عصبی مصنوعی پرسپترون و سری های زمانی که ترجیحا میزان مصرف برق طی 15 سال گذشته می باشد ، مقادیر آینده را پیش بینی نمود. این کار کمک شایانی در بخش مدیریت و حتی در سطح کلان خواهد نمود. بدین گونه که در آینده مثلا 10 روز آینده میزان مصرف برق چگونه است تا تعداد نیروگاههایی ک لازم است فعال و یا غیر فعال باشد ،مشخص شود و از این قبیل اقدامات. در ابتدا مروری بر چرایی و دلیل استفاده از شبکه عصبی را خواهیم داشت و در ادامه بعد از تشریح ساختار شبکه عصبی - ترجیحأ پرسپترون چندلایه - 1 ، اشاره ای خواهیم داشت به چگونگی تبدیل یک مساله پیش بینی سری زمانی2 به یک مساله تقریب تابعی3 کامل به گونه ای که بشود با شبکه عصبی آن را حل کرد.

بعد از آماده شدن زیر ساخت تئوریک بحث ، قدم بعدی پیاده سازی و نتیجه گیری با استفاده از تغییر نورون های شبکه عصبی و در نهایت انتخاب بهترین روش برای آموزش شبکه عصبی خواهد بود. خواهیم دید که شبکه عصبی پرسپترون با دو لایه و یک نورون و دو تابع اکتیویشن، میانگین خطا4ی آموزش و تست کمتری خواهد داشت.

-1 مقدمه

ابتدا برای جلوگیری از شاخ و برگهای اضافی و پیچیدگی بحث ابتدا یک شبکه عصبی استاندارد برای حل یک مساله تقریب تابعی ساده را پیاده سازی می کنیم و بعدا با تغییراتی آن را تبدیل می کنیم برای شبکه عصبی برای تخمین سری زمانی.

ابتدا بحث را با یک مساله شناخته شده شروع می کنیم.

شکل : 1 نمودار ساده با تعداد خطوط نزدیک به هم

مبحث تقریب تابعی که مدل ساده شده آن ، بهترین خط گذرنده از یک مجموعه نقاط با استفاده از یک نمودار دو بعدی است. فرض بر این است که N نقطه داریم . بنابراین دنبال خطی هستیم که در بهترین حالت و بیشترین تعداد نقاط عبور کند. می توان این رابطه را برای این خط تصور کرد

ما به دنبال بهترین ضریب برای x و y می باشیم که البته بهترین ها برمی گردد به معیارهای ارزیابی ما. همانطور که در نمودار مشخص شد نقاط نسبت به خطی که ما تعیین کردیم فاصله یا اختلاف دارد که همان خطای نمودار می باشد که معمولا مجموع ارورها را طبق فرمول زیر به عنوان تابع هزینه در نظر می گیریم .

a و b که در واقع پارامترهای ما هستند ، را به گونه ای پیدا می کنیم که تابع هزینه min گردد. یعنی حاصل پروسه مینیم سازی برای خطا پیدا کردن بهترین مقادیر a وb است .

خب حالا شاید بگیم که یک مساله سطح پایین و برارزش خطی چه ربطی به مسائل شبکه عصبی خواهد داشت ؟ ! فرض می کنیم که ما یک همچینین نقاطی را داریم :

شکل : 2 نمودار با تعداد خطوط پراکنده

برای پیدا کردن خطی ک از بیشترین نقاط بگذرد بایستی از یک معادله چند جمله ای استفاده کنیم که باز هم دارای ارور هست . با استفاده از مینیمم کردن خطاها، بهترین ضرایب را برای a و b و c و ... تعیین می کنیم .

خب اگر نقاط به صورت پراکنده تر باشد چه و یا بدتر اینکه نمودار دارای یک ناهماهنگی باشد. خب اینجا چه کار باید کرد. یعنی باید دنبال پارامترهای زیادی بگردیم که ما را به نتیجه برساند . خب این سیستم با اینگونه روش مشکل خواهد داشت. چون از حالت استاندارد خارج می شویم. اما مشکل اصلی زمانی رخ خواهد داد که بعد مساله افزایش پیدا کند. خب دو بعدی راحت است. اگر سه بعدی باشد و یا بیشتر چه؟

خب حالا ما می خواهیم این گفته ها را ربط بدهیم به مثال های خیلی خیلی پیچیده تر . این مسائل تازه مسائل پیش پا افتاده و ساده بودند. شبکه های عصبی مصنوعی راهی برای حل اینگونه مشکلات و در نهایت تقریب تابع می باشد . شبکه عصبی ابزاری برای تقریب تابع موجود است . یعنی هر کاربردی از شبکه عصبی منتج می شود به تقریب تابع . تا اینجا فهمیدیم که چرا باید از شبکه عصبی استفاده کرد. حال می خواهیم با ساختار شبکه های عصبی مصنوعی و ترجیحأ پرسپترون آشنا شویم و اینکه چطور وزن های شبکه عصبی را تعیین کنیم و با روش های مختلف بهینه سازی وزن ها آشنا می شویم.

شبکه عصبی پرسپترون چند لایه همانگونه که از اسم آن پیداست ساختاری از شبکه عصبی است که از چند لایه تشکیل شده که هر لایه از تعدادی پرسپترون تشکیل شده است. خب ابتدا ساختار یک نورون را نشان می دهیم . یک نورون که مستقل از هر گونه بحث دیگر، یک سری ورودی دارد.

شکل :3 ساختار یک نورون واقعی

در بخش اول نورون جمع می شوند و در قبال تابعی مثلا g خروجی بدست می آید.

شکل :4ساختار یک نورون مصنوعی

پس شبکه عصبی ساختاری هست که چند نمونه از این پرسپترون ها کنار هم قرار گرفته اند. فرض می کنیم یک مساله ای داریم با N ورودی . مثلا آب و هوای تهران را از روی آب و هوای تبریز، اصفهان ،شیراز و ... پیش بینی کنید. کاری نداریم که آیا این مساله درست تعریف شده باشد یا نه و فقط به عنوان ورودی آنها را در نظر می گیریم و یک خروجی . دو لایه هم در شبکه عصبی در نظر می گیریم با تعدادی نورون.

هر نورون از دو قسمت تشکیل شده. جمع کننده و تابع - توابع یا اکتیویشن که به صورت مثلا سیگنوئید نشان داده می شوند - . هر کدام از خط ها هم وزنی دارند که مجهول فرض می کنیم که اگر ورودیها مشخص باشد وزن ها هم مشخص باشد یک محاسبه ساده وجود دارد. یعنی هر کدام از ورودیها را ضرب در وزن آن می کنیم و یکی یکی را بدست آورده. لایه ها را یکی پس از دیگری و در نهایت خروجی بدست می آید. .[4] اقداماتی که در بالا گفته شد را در قالب یک باکس که همان شبکه عصبی هست خلاصه می کنیم. چون شبکه عصبی چیزی جز یک باکس نیست.

در متن اصلی مقاله به هم ریختگی وجود ندارد. برای مطالعه بیشتر مقاله آن را خریداری کنید