درنهایت، یک نورون مصنوعی، خروجی yk را بهعنوان یک تابع ویژه از مقدار netk محاسبه میکند:
(۲-۵)
Yk=f (netk)
تابع f، تابع فعالسازی نامیده میشود. هدف از استفاده یک تابع غیرخطی، محدود کردن خروجی در یک باند مشخص است. یعنی خروجی یک نرون در مقابل ورودی بسیار کوچک یا خیلی بزرگ از حدود معینی تجاوز نمیکند. برخی توابع فعالسازی که بهطورمعمول استفاده میشوند عبارتاند از محدودکننده شدید[۳۴]، محدودکننده شدید متقارن، خطی، اشباع سازی خطی، سیگموید[۳۵] و غیره. مراحل پردازش در سطح گره بسیار ساده هستند. در شبکههای بااتصال قوی مربوط به نر ونهای مصنوعی، وظایف محاسباتی با افزایش تعداد گرهها هستند و پیچیدگی پردازش وابسته به معماری شبکه عصبی است. (منهاج، ۱۳۷۷).
۲-۱۹٫ آموزش و یادگیری شبکه عصبی
آموزش فرآیندی است که بهوسیله آن، شبکه عصبی خود را برای یک محرک، سازگار می کند؛ بهنحویکه بعد از تعدیل مناسب پارامترهای شبکه، پاسخ مطلوب را ارائه دهد. درواقع شبکه، در فرایند آموزش، پارامترهای خود (یعنی وزنههای سیناپسی[۳۶]) را در پاسخ به ورودی محرک تنظیم میکند؛ بهنحویکه خروجی واقعی شبکه به خروجی مطلوب همگرا شود. هنگامیکه خروجی واقعی، همان خروجی مطلوب شود، آموزش شبکه خاتمه مییابد و بهاصطلاح شبکه، دانش را فراگرفته است. شیوه آموزش به نحوه اتصالات نر ونهای مصنوعی برای نمونههای مختلفی که تاکنون ارائهشده، بستگی دارد. همانطور که شیوه آموزش خاصی برای افراد معینی مناسب است، برای شبکه عصبی مصنوعی نیز روشهای خاصی مناسب است. بهطورکلی دو شیوه اصلی برای آموزش شبکههای عصبی وجود دارد.
۱- آموزش با نظارت: در این شیوه آموزش، ورودیهای شبکه و خروجیهای متناظر با آنها از قبل مشخص میباشند. خروجی واقعی با خروجی مطلوب که اصطلاحات خروجی هدف گفته میشود مقایسه میگردد. حال اگر خروجی واقعی با خروجی مطلوب مغایرت داشته باشد، شبکه یک سیگنال خطا تولید میکند که از این سیگنال خطا برای میزان تغییری که باید بر وزنههای سیناپسی اعمال شود استفاده میگردد. این روند حداقل نمودن خطا، به یک مدار ویژه به نام معلم یا ناظر نیاز دارد که عمل مقایسه بین خروجی واقعی و خروجی مطلوب را انجام دهد. به همین دلیل به این شیوه آموزش، آموزش با نظارت گفته میشود.
در شبکههای عصبی مصنوعی، میزان محاسبات لازم برای حداقل نمودن خطا، به شیوۀ آموزش، یا اصطلاحاً الگوریتم آموزش بهکاررفته، بستگی دارد که این الگوریتم، روش کاملاً ریاضی مشتق شده از تکنیکهای بهینهسازی است. هرچند، امروزه برای تعدیل وزنها از تکنیکهای کارآمدتر دیگر، همچون الگوریتم ژنتیک، نیز استفاده میشود.
۲- آموزش بدون نظارت: این شیوه آموزش نیاز به معلم ندارد؛ یعنی، خروجی هدف وجود ندارد. در خلال آموزش، شبکه الگوی آموزشی خود را از طریق ورودیهایش دریافت میکند و به شکل دلخواه آنها را تحت طبقههای مختلفی دستهبندی میکند. هنگامیکه شبکه، یک ورودی را دریافت میکند پاسخی در خروجی ظاهر میکند که نشاندهنده طبقهای است که آن ورودی بدان تعلق دارد. اگر طبقهای برای این ورودی یافت نشد، آنگاه یک طبقه جدید تشکیل میشود. )لورنس[۳۷]، ۱۹۹۷)
۲-۲۰٫ ساختار شبکه عصبی مصنوعی
نر ونها بهصورت طبیعی به روش خاصی به هم اتصال مییابند تا یک شبکه عصبی مصنوعی را تشکیل دهند. نحوه اتصالات نر ونها می تواند بهگونهای باشد که شبکه تک لایه و یا چندلایه را به وجود آورند. شبکههای چندلایه تشکیلشدهاند از لایه ورودی که الگوهای ورودی به آن اعمال میگردند؛ لایه خروجی که خروجی شبکه را تعیین میکند. میان لایه ورودی و خروجی، یک یا چندلایه به نام لایه پنهان[۳۸] وجود دارد که وظیفه این لایهها ارتباط دادن لایه ورودی با لایه خروجی است. شبکه با داشتن این لایههای پنهان، قادر میگردد که روابط غیرخطی را از دادههای عرضهشده به آن استخراج نماید. بهطور نمونه، معماری شبکه با تعداد ورودیهای شبکه به آن، تعداد خروجیها، تعداد کل گرههای اولیه که معمولاً عناصر پردازش یکسان برای کل شبکه است و ساماندهی و درون ارتباطی آنها مشخص میشود. شبکههای عصبی بهطورکلی به دو گروه بر پایه نوع درون ارتباطی طبقهبندی میشوند: پیشخور و بازگشتی.
یک شبکه، پیشخور نامیده میشود، اگر پردازش از طرف ورودی بهطرف خروجی بدون هر حلقه یا بازخوردی پخش شود. خروجیهای گرهها در یکلایه خاص همیشه بهعنوان ورودیهای گرهها در لایه بعدی میباشند. اگر یک ارتباط بازخوردی که یک مسیر دایرهای در یک شبکه را شکل میدهد، وجود داشته باشد (معمولاً با یک عنصر تأخیر بهعنوان یک جزء همزمانی) آنگاه، شبکه بازگشتی است. (بشیر و هجمیر[۳۹]، ۲۰۰۰).
۲-۲۱٫ مزایای شبکه عصبی
شبکههای عصبی مصنوعی باوجوداینکه با سیستم عصبی طبیعی قابلمقایسه نیستند، ویژگیهایی دارند که آنها را در هرجایی که نیاز بـه یادگیری یک نگـاشت خطی و یا غیرخطی باشد متمایز می کند. این ویژگیها به شرح زیر است عناوین مختلف قابلیتها با توجه به منابع متفاوت ذکرشده است:
۱-قابلیت یادگیری: استخراج یک نگاشت غیرخطی که با چند مثال مشخصشده است، کار سادهای نیست. پیادهسازی این نتایج با یک الگوریتم معمولـی و بدون قابلیت یادگیری، نیاز بهدقت و مراقـبت زیـادی دارد. در چنـین حالتی سیستمی که بتواند خود این رابطه را استخراج کند، بسیار سودمند به نظر میرسد. افزودن مثالهای احتمالی در آینده به یک سیستم باقابلیت یادگیری بهمراتب آسانتر از انجام آن بدون چنین قابلیتی است، زیرا در سیستم فاقد این قابلیت، افزودن یک مثال جدید بهمنزلهی تعویض کلیهی کارهای انجامشدهی قبلی است.
۲-پراکنـدگی اطلاعـات قابلـیت استفاده بهعنوان حافظهی شراکتـی یا انجمنی، حافظهی قابل آدرسدهی و ذخیره کنندگی آنچه شبکه فرامیگیرد اطلاعات یا دانش، در وزنهای سیناپسی واحـدهای ساختـاری کوچکی که ارتباط بیـن نر ونها را برقرار میسازند مـسـتتر است و اینطور نیست که رابطهی یکبهیک بین ورودیها و وزنهای سیناپتیکی وجود داشته باشد. بهعبارتیدیگر، هر وزن سیناپسی مربوط به همهی ورودیهاست ولی به هیچیک از آنها بهطور منفرد و مـجزا مربـوط نیست. بر ایـن اسـاس، چنانـچه بخشـی از سلولهای شبـکه حـذف شوند و یا عملکرد غلط داشته باشند، بازهم احتمـال رسیـدن به پاسخ صحیـح وجـود دارد، اگرچه این احتمال برای تمام ورودیها کاهشیافته، ولی برای هیچیک از بین نرفته است.
۳-قابلیت تعمیم: پسازآنکه مثالهای اولیه به شبـکه آمـوزش داده شد، شبکه میتواند در مقابل یک ورودی آموزش داده نشده قرار گیرد و یک خروجی مناسب ارائه نماید. این خروجی بر اساس مکانیزم تعـمیم که همان فرایند درونیابی است به دست میآید.
۴-پردازش موازی قابلیت بالا بودن سرعت: هنگامیکه شبکهی عصبی در قالب سختافزار پیـاده میشود، سلولهایی که در یک تـراز قـرار میگیرند، میتوانند بهطور همزمان به ورودیهای آن تـراز پاسخ دهند. این ویـژگی باعث افزایش سرعت پردازش میشود. درواقع وظیفهی کلی پردازش در چنین سیستمی بین پردازندههای کوچکتر مستقل از هم تقسیم میشود.
۵-مقاوم بودن قابلیت تحمل آسیب، قابلیت ترمیم، تحملپذیری خطاها: در یک شبکهی عصبی هر سلول بهطور مسـتقل عمل میکند و رفتار کلـی شبکه، برآیند رفتارهای محلی سلولهای متعدد است. این ویژگـی باعث میشود تا خطاهای محلی از چشم خروجی نهایی دور بمانند. بهعبارتیدیگر، سلولها در یکروند همکاری، خطاهای محلی یکدیگر را تصحیح میکنند. این خصوصیت باعث افزایش قابلیت مقاوم بودن در سیستم میشود (فضلاللهی و منهاج، ۱۳۷۹).
۲-۲۲٫ شبکه عصبی چندلایه پیشخور[۴۰]
شبکههای عصبی پیشخور گرهها در لایههای متـوالی قرار گرفتهاند و ارتباط آنها یکطرفه است و زمانی که یک الگوی ورودی به شبکه اعمال میشود، اولین لایه مقادیر خروجیاش را محاسبه کرده و در اختیار لایه بعدی قرار میدهد. لایه بعـدی این مقادیر را بهعنوان ورودی دریـافت کرده و مقادیر خروجیاش را به لایه بعـدی منتقل میکند. هرگاه به گر ه های لایه بعدی سیگـنال منتقل میکند. شبکههای پرسپتـرون چندلایه جزء ایـن نوع شبکهها هستند. تحقیقات روی شبکههای عصبی چندلایه پیشخور به کـارهای اولیه فرانک روزنبلات روی شبکه عصبی پرسپترون تک لایه و کارهای اولـیه برناردویدرو و ماریـان هوف[۴۱] برمیگردد (ارنون، لوراسچی[۴۲]، ۱۹۹۳).
کاربرد شبکههای عصبی در مباحث اقتصادی از اواخر دهه هشتاد بامطالعه وایت[۴۳] )شفیعی، ۱۳۸۴) آغاز شد. موفقـیت شبکههای عصـبی در بازارهای مالـی و پیشبینی قیمت سهـام شرکت در مطالعات مربوط به حوزههای مـالی، نظر متـخصصـان اقتصاد کـلان و اقتصادسنجی را به خود جلب کرد و مطالـعات متـعددی درزمینهٔ استفاده از شبکههای عصبی مصنوعی در پیشبینی متغیرهای مختلف اقتصاد صورت گرفت. بهطورکلی، کاربرد شبکه عصـبی د ر مطالعـات داخلی، مربوط بهپیش بینی دادههای مالی بوده است.
انواع مختلفی از شبکه های عصبی مصنوعی با توجه به اهداف تحقیق میتوانند مورداستفاده قرار گیرند که یکی از معروفترین آنها شبکه عصبی چندلایه پیشخور است. مطالعات اخیر نشان می دهند شبکه عصبی چندلایه پیشخور (MFNN) با قانون یادگیری پس انتشار خطا، سادهترین و پرکاربردترین نوع شبکه عصبی است که در خصوص تخمین پارامترهای مجهول مناسب ارزیابیشده است. این نوع شبکه دارای یکلایه ورودی، یک یا چندلایه مخفی و یکلایه خروجی است. برای شبکههای MFNN از قانون یادگیری پس انتشار خطا که مبتنی بر قانون یادگیری اصلاح خطا (حرکت در سوی منفی شیب لحظهای تابع عملکرد که سبب کاهش خطای مدل میشود (است، استفاده میشود. قانون پس انتشار خطا از دو مسیر اصلی تشکیل میشود. در مسیر اول، بردار ورودی به شبکه M اعمال میشود و تأثیراتش از طریق لایههای میانی به لایههای خروجی انتشار مییابد. بردار خروجی تشکیل یافته در لایه خروجی، پاسخ واقعی شبکه MFNN را تشکیل میدهد. در مسیر دوم که به مسیر برگشت موسوم است، پارامترهای شبکه MFNN تغییر و تنظیم میشوند. این تنظیم مطابق با قانون اصلاح خطا انجام میگیرد. بدین ترتیب که سیگنال خطا که برابر با اختلاف میان پاسخ مطلوب و پاسخ واقعی شبکه عصبی است، در لایه خروجی تشکیل و مقدار خطا پس از محاسبه، در مسیر برگشت از لایه خروجی و بهوسیله لایههای شبکه عصبی در کل شبکه پراکنده میشود. شکل ۳-۲ ساختار یک شبکه چندلایه پیشخور را نمایش میدهد. در این شکل بردار P معرف بردار ورودی شبکه عصبی است. همچنین ماتریس IW1,1 وزن بردار ورودی شبکه عصبی و b1 بایاس لایه اول هستند. n1 از مجموع بردار IW.P و بردار بایاس حاصل میشود. پس از نگاشت n1 بهوسیله تابع محرک لایه اول که یک تابع تانژانت سیگموئیدی است، a1 که همان ورودی لایه دوم است به دست میآید. LW2,1 معرف وزن میان لایه اول و دوم نورونها و b2 بایاس لایه دوم هستند a2 نشاندهنده خروجی شبکه عصبی است که پس از نگاشت n2 بهوسیله تابع محرک لایه دوم که یک تابع pureline است، حاصل میشود.) اورکچی و بال، ۲۰۱۱).
شکل ۲-۲ شبکه پرسپترون چندلایه پیشرو
-۲۳٫ الگوریتم کلونی زنبورعسل مصنوعی[۴۴]
انتخاب ویژگی فرآیندی است که معمولاً برای مسائلی که دادهها شامل ویژگیهای زیادی میباشند استفاده میشود. این فرایند منجر به کاهش ابعاد بردار ویژگیها گردیده که با حذف ویژگیهای غیرضروری و انتخاب ویژگیهای ضروری برای یادگیری مدل، بهبود دقت پیشبینی و افزایش قابلیت توضیحی مدلهای پیشبینی کننده را به همراه دارد (اورسکی و همکاران، ۲۰۱۲).
انتخاب ویژگی در حقیقت مسئلهی انتخاب یک زیرمجموعه از ویژگیها است که برای توضیح هدف موردنظر کافی و ضروری است (اورسکی و همکاران، ۲۰۱۲). وقتیکه بردار ویژگی دادهها شامل تعداد زیادی ویژگی باشد به دلیل وجود ویژگیهای اضافی و غیرضروری دقت بهدستآمده از مدل طبقهبندی کننده کمتر از دقتی خواهد بود که وقتی یک زیرمجموعه مناسب را برای یادگیری مدل انتخاب میکنیم. میتواند مشکل انتخاب یک زیرمجموعه از ویژگیها را برای رسیدن بهدقت بهینه یا دقت نزدیک بهدقت بهینه با بهره گرفتن از یک روش میتوان به مناسب انتخاب ویژگی حل کرد. ازجمله مزایای فرایند انتخاب ویژگی افزایش دقت و سرعت در اجرای تکنیکهای پیشبینی، حذف دادههای غیر مرتبط و اضافه و افزایش قابلیت فهمپذیری مدلهای مورداستفاده اشاره نمود (اورسکی و همکاران،۲۰۱۲).
بهطورکلی میتوان روشهای انتخاب ویژگی را به دودسته عمده تقسیم کرد: روشهای فیلتر کننده و روشهای پوششدهنده. روشهای فیلتر کننده انتخاب ویژگی اشاره به این دارند که یک الگوریتم به جستجو در میان فضای ممکن ویژگیها میپردازد و پس از انتخاب هر زیرمجموعه از ویژگیها و اجرای یک تابع فیلتر کننده ویژگیها را رتبهبندی میکند. این رویکرد در انتخاب کردن بهترین زیرمجموعه از ویژگیها توجهی به مدل طبقهبندی کننده ندارد (لی و همکاران، ۲۰۱۴). در حقیقت روشهای فیلتر کننده به ویژگی کلی بردار ویژگیها و ارزیابی و انتخاب زیرمجموعهها بدون ترکیب شدن با مدل طبقهبندی کننده اتکا دارد. روشهای فیلتر کننده به دلیل عدم استفاده از مدل طبقهبندی کننده سرعت بالایی دارند بنابراین این روش برای حل مسائلی که دادهها شامل تعداد زیادی ویژگی میباشند بسیار مناسب است. علاوه بر آن این روشها بهراحتی با انواع مختلف مدلهای طبقهبندی کننده قابلاجرا هستند. روشهای پوششدهنده ابتدا از یک الگوریتم بهینهسازی استفاده میکنند که در آن ویژگیهای مختلف را اضافه و یا کم میکنند تا زیرمجموعههای متفاوتی را تشکیل دهند، سپس از یک مدل طبقهبندی کننده برای ارزیابی این زیرمجموعههای ساختهشده، استفاده میکنند و چون بهطور مکرر مدل طبقهبندی کننده را فراخوانی میکنند، سرعت کمتری نسبت به روشهای فیلتر کننده دارند (لی و همکاران، ۲۰۱۴).
کلونی زنبور مصنوعی یک الگوریتم فرا مکاشفهای مبتنی بر، زندگی اجتماعی زنبورعسل است که در سال ۲۰۰۵ توسط کارابوگا جهت بهینهسازی مسائل عددی معرفی گردید. در این پژوهش به این روش نماد ABC اطلاق میگردد . الگوریتم کلونی زنبور مصنوعی شامل سه مؤلفه اساسی است: زنبورهای کارگر، غیر کارگر و منابع غذایی. در این مدل دو روش هدایتگر رفتار وجود دارد که شامل به خدمت گرفتن زنبور جدید کاوشگر برای منابع غذایی غنی، با دریافت بازخورد مثبت و ترک منابع غذایی ضعیف توسط زنبورها با دریافت بازخور منفی، است. در الگوریتم زنبور مصنوعی، کلونی شامل سه گروه از زنبورها است که عبارتاند از: زنبوران کارگر مرتبط به منابع غذایی مشخص، زنبوران ناظر که بر انتخاب منابع غذایی نظاره میکنند و زنبوران پیشاهنگ که بهصورت تصادفی به دنبال منابع غذایی میگردند. زنبوران ناظر و پیشآهنگ هر دو زنبورهای غیر کارگر نامیده میشوند. ابتدا مکان تمامی منابع غذایی توسط زنبوران پیشآهنگ کشف میگردد، سپس شهد منابع غذایی توسط زنبوران کارگر و ناظر استخراج میگردد. این بهرهبرداری پیوسته منجر به تهی شدن آن منبع میگردد. بعدازآن زنبوران کارگر به زنبوران پیشاهنگی تبدیل میگردند تا دوباره به جستوجوی منابع غذایی بیشتری بپردازند. در کلونی زنبور مصنوعی، موقعیت منبع غذایی یک جواب ممکن برای مسئله بهینهسازی است و میزان شهد منبع غذایی متناظر با برازش جواب مربوطه است. تعداد زنبورهای کارگر یا زنبورهای ناظر مساوی با تعداد راه حل های جمعیت است، ازاینرو هر زنبور فقط و فقط با یک منبع غذایی در ارتباط است. در گام اول، الگوریتم یک جمعیت تصادفی توزیعشده اولیه از SN جواب مکانهای منبع غذا ایجاد میکند. SN تعداد زنبورهای کارگر یا ناظر است. هر جواب یک بردار D بعدی است. در اینجا D تعداد پارامترهای بهینهسازی میباشد. در الگوریتم کلونی زنبور مصنوعی، هر دور حلقه اصلی شامل سهگام اصلی است:
در ابتدا زنبورهای کارگر به سمت منابع غذایی ارسال میشوند و میزان شهد منابع ارزیابی میگردند. بعد از به اشتراک گذاشتن اطلاعات منابع غذایی، انتخاب نواحی منابع غذایی توسط ناظرها انجام میشود و میزان شهد منابع غذایی جدید استخراج گردیده و مورد ارزیابی قرار میگیرد. سپس زنبورهای پیشآهنگ مشخص میگردند و بهصورت تصادفی به سمت منابع غذایی احتمالی ارسال میگردند. این گامها به زنبور ناظر تعداد معینی تکرار میگردند که این تعداد بیشترین تعداد دور حلقه (MCN) نامیده میشود. زنبور ناظر مصنوعی یک منبع غذایی را با توجه بهاحتمال مربوط به آن منبع انتخاب میکند. این احتمال توسط رابطه زیر بررسی میشود:
۲-۵) )
در این رابطه مقدار شایستگی جواب است که متناظر با میزان شهد منبع غذایی در مکان iاماست. تعداد منابع غذایی مساوی با تعداد کارگر یا ناظر است. بهمنظور ایجاد موقعیت غذای کاندید جدید ، با توجه به موقعیتی که در حافظه است، کلونی زنبور مصنوعی از عبارت زیر استفاده میکند:
(۲-۶)
=( − )+
J∈ {۱,۲,…,D} و K∈{ ۱,۲,..SN{
در رابطه فوق، شاخصهایی هستند که بهصورت تصادفی انتخاب میگردند: