بخشی از مقاله
*** این فایل شامل تعدادی فرمول می باشد و در سایت قابل نمایش نیست ***
شبکه عصبی مصنوعی و کاربرد آن در حسابداری و مدیریت
چکیده
امروزه روشهای کمی، به یکی از مهمترین ابزار پیشبینی برای تصمیمگیریها و سرمایهگذاریهای کلان دربازارها تبدیل شدهاند. دقت پیشبینی، یکی از مهمترین عاملهای انتخاب روش پیشبینی است با توجه به اهمیت روز افزون نرم افزارهای کامپیوتری و استفاده گسترده از آنها در علـوم مختلف کهقبلاً بیشتر در علوم مهندسی کاربرد داشتند اما امروزه به علوم انسانی نیز راه یافتهاند که در این میان نرم افـزار متلـب و بخـش شـبکههای عصبی از اهمیت خاصی برخوردار است و با توجه به قدرت و توانایی شبکه عصبی مصنوعی در پیش بینی، این نرم افزار در مـدیریت و حسـابداری که پیش بینی از ضروریات اصلی آن میباشد کاربرد پیدا کرده است و در این مقاله به معرفی شـبکه عصـبی مصـنوعی و کـاربرد آن در مـدیریت و حسابداری میپردازیم.
کلمات کلیدی: شبکههای عصبی مصنوعی، مدیریت، حسابداری، پیش بینی
مقدمه
کار بر روی شبکههای عصبی مصنوعی به طور مشخص از سال 1943 توسط مک کلو و پیتـز آغـاز گردیـد. از آنجـا کـه هـدف هـوش مصـنوعی توسـعه پارادایمها یا الگوریتمهای مورد استفاده انسان جهت کاربرد در ماشین است، شبکههای عصبی مصنوعی نیز به عنوان یکی از روشهای هوش مصنوعی به دنبال تقلید از عملکرد مغز انسان است. به دنبال آن در سالیان اخیر شاهد حرکتی مستمر از تحقیقاتصرفاً تئوری به تحقیقات کاربردی بویژه در پـردازش اطلاعات برای مسایلی که یا برای آنها راه حلی موجود نیست و یا به راحتی قابل حل نیستند، بودهایم. با توجه به این واقعیت، علاقه فزاینـدهای در توسـعه نظری سیستمهای پویای هوشمند آزاد از مدل که مبتنی بر دادههای تجربی هستند، ایجاد شده است ؟شـبکههای عصـبی (محاسـبات نرونـی)، منطـق فـازی
1
(محاسبات تقریبی) و الگوریتم ژنتیک (محاسبات ژنتیکی) جزء مولفههای مهم و اساسی هوش محاسباتی میباشند که هر یک به نوعی مغـز را الگـو قـرار دادهاند. شبکههای عصبی ارتباطات سیناپسی و ساختار درونی، منطق فازی استنتاجات تقریبی و محاسبات ژنتیکی، محاسبات موتاسیونی را مدل میکنند.
-1شبکه عصبی مصنوعی
در شبکههای عصبی مصنوعی نیز بلوکهای ساختاری و یا نورونها، دسـتگاههای محاســباتی خیلــی ســاده ای هسـتند و ارتبـاط بـین نورونهـا عملکـرد شبکه را تعیین میکند و هدف از آموزش شـبکههـای عصـبی مصـنوعی تعیین ارتباط مناسب، جهت حل مسائل مختلف است. در واقع شبکههـای عصـبی مصنوعی نیز با ایده گـرفتن از رفتار شبکه عصـبی بیولـوژیکی شـکل یافتـه اسـت.در ایـن شـبکههانیـز عمومـاً لایـههای مـوازی نورونهـا را مـیبینیم کـه نورونهای هر لایه نقش خاصـی را ایفـا مـیکنند.معمولاً ورودیهایی که از خارج به شبکه عصبی داده میشـوند، بـه دسـتهای از نورونهـا کـه در یـک لایـه مرتب شدهاند، اعمال میشود. این ورودیها با وزنهای خاص جمع شده به تابع تحریک هـر نـورون فرسـتاده میشـوند کـه ایـن اقـدام بـه پـردازش جمع وزندار ورودیهای اعمال شده به نورون میکند و خروجی نورون را بـه لایههای بعدیو نهایتاً به لایه خروجی میفرستد که جواب شبکه نسبت بـه ورودیهـای اعمـال شـده بـه آن است؟ اگر چه نورونهای بیولوژیکی از نورونهـای مصـنوعی کـه توسـط مـدارهای الکتریکـی سـاخته میشـوند، بسـیار کنـدتر هستند (یک میلون بار)، اما عملکرد مغز خیلی سریعتر از عملکرد یک کامپیوتر معمولی است. علـت اصـلی ایــن پدیـده بیشـتر بـه خـاطر سـاختار کاملاً موازی نورونهای عصبی مغز است و این بدان معنی اسـت کـه همـه نورونهـامعمولاً به طور همزمـان کـار میکننـد و پاسـخ میدهنـد. شـبکههای
عصبی مصنوعی با وجود اینکه با سیستم عصبی طبیعی قابل مقایسه نیستند، ویژگیهایی دارند کــه آنهـا را در بعضـی از کاربردهـا ماننـد تفکیـک الگـو، رباتیک، کنترل و به طور کلی در هر جا که نیاز به یـادگیری یک نگاشـت خطـی و یـا غیـر خطـی باشـد ممتـاز مینمایـد (منهـاج، .(1381 بـه بیـان دیگـر شبکههای عصبی مصنوعی، در واقع نوعی سیستم پردازش اطلاعات هستند که از تعمیم یـافتن مدلهای ریاضی شبکههای عصبی انسان بر مبنای فرضـیات زیر توسعه یافتهاند.
داده پردازی در اجزای سادهای به نام نورون صورت میگیرد.
اطلاعات از طریق ارتباط بین نورونها منتقل میشود؟
هر ارتباط دارای وزن مخصوص به خودش است.
هر نورون برای محاسبه خروجیاش، یک تابع تحریـک دارد کـه بـه مجمـوع وزندار ورودیهـایش اعمال میشود.
خروجی هر پردازشگر (نورون) ممکن است به تعداد زیادی واحد پردازشگر دیگر منتقل شود؟
2
شکل :1 مدل ریاضی یک نورون این مدل ریاضی تعریف شده که مشابه دستگاه عصبی مغز کار میکند ساختار یک شبکه عصـبی مصـنوعی را تشکیل میدهـد.پـس یـک شـبکه عصـبی
تشکیل شده از چندین نورون عصبی است که به هنگام نیاز فعال شده و محاسـبات روی آن انجام میگیرد. به عبارت دیگر این نورونهـا تشـکیل شـده از گرهها و پاره خطهای جهـتداری هسـتند کـه فرآیند حل مسئله در مسیر آنها صورت میگیرد.گرههایی که در لایه ورودی هستند نورونهـایی هسـتند که هیچ عملیاتی بر روی آنها صورت نمـیگیـرد و در محاسبه تعداد لایهها نیز قرار نمیگیرند. گرههای لایه خروجی نورونهـای پاسـخ دهنــده هســتند کـه پاسـخ حل مسئله در آنها نمایان میشود. بین نورونهای ورودی و خروجی نیز نورونهای پنهان قرار دارنـد. بـرای حل یک مسئله با چنـدین ورودی و خروجی از یک نورون به تنهایی نمیتوان استفاده کرد. در این حال بایـد از چندین نورون به صورت موازی بهره جست کـه بتواننـد بردارهـای ورودی را همزمان پـردازش کننـد و بـه بـردار خروجی لایه آخرمنتقل کنند.درون هر نورون یک وزن به خصوصی است که بـا اعمـال آن بـه مقـادیر ورودی بـه نورون روی آنان تأثیر گذاشـته و بردارهای وزندار را به توابع تحریک هدایت میکنند. ممکن است نیاز باشـد یـک بــردار عــلاوه بــر آن کــه وزن آن تغییرکند در فضای برداری جابجا شود که این عمل با اضافه کردن یک بایـاس بــه مــاتریس وزن دار صـورت میگیـرد. حـال مقـادیر وزندار بـه توابـع تحریک برده میشوند و تابع خروجی مقدار اصلی را به خود میگیرد و بـا توجـه به اینکه آیا جواب مناسب بدست آمده است یا خیر این مقادیر با بـردار هـدف مقایسـه مـیشـوند و در صـورت اختلاف با بردار هدف به عقب برگشت داده میشوند تا وزنهای مناسـبتری بـرای آن بردارهـا انتخـاب گــردد (کاوه، ایرانمنش، .(1387
3
-1-1 توابع محرک
تابع محرک که به آن تابع فعالسازی یا تابع تبدیل نیز گفته میشود، ورودی خالص را به خروجی تبدیل میکند و بر اساس نیاز خاص مسالهای کـه قـرار
است بوسیلهی شبکه عصبی حل شود، میتواند خطی یا غیرخطی انتخاب شود. در حقیقت تابع محرک ارتباط بین ورودی و خروجـی گرههـا و شـبکه را برآورد مینماید. اما در عمل تعداد محدودی از توابع محرک مورد استفاده قرار میگیرند (منهاج، .(1377 تابع تحریک بر اساس نیـاز خـاص حـل مسـئله انتخاب میشود که در عمل تعداد محـدودی از ایـن توابـع مـورد استفاده قرار میگیرند. توابعی که مـورد اسـتفاده بیشـتری قـرار میگیرنـد، عبارتانـد از توابع تحریک خطی، تابع حدی دو مقداره (باینری)، تابع محرک زیگموئیـدی و یـا ازتــابع محــرک تانژانـت هیپربولیـک کـه در زیرنشـان داده شـدهاند
Zhang, 1998). (Hu and
1؛1؛-1 تابع محرک خطی
این تابع به صورت زیر تعریف میشود تابع :1-1 تابع محرک خطی (n)=n
این بدان معنی است که خروجی این تابع برابر ورودی آن است. این تابع بیشتر در شـبکههـای آدلایـن مورد استفاده قرار میگیرند. بایـد توجـه شـود کـه جمله بایاس b موجب جابجایی منحنـی در فضـای ورودی میگردد که اهمیت آن را در شکل زیر میبینید (منهاج، (1377
شکل :2 یک تابع محرک خطی
2؛1؛-1 تابع حدی دو مقداری
خروجی این تابع معمولاً 0) یا (1 و یا +1) یا (-1 است اگر مقـدار ورودی وزن دار بزرگتر از –b/W باشد مقدار تابع +1 و در غیر ایـن صـورت مقـدار آن -1 و یا صفر (بسته بـه خواسـته مسأله) میباشد. این تابع چون مقادیر ورودی را بین دو مقدار محدود میکنند در مسائلی بـه کــار بــرده میشـوند کـه بخواهیم دادهها را به طور خطی از هم جدا کنیم (مانند تابع متحرک خطی :2-1 تابع متحرک خطی
4
شکل :3 نمودار تابع باینری
3؛1؛-1 تابع محرک سیگموئیدی
این تابع نیز مقادیر ورودی را بین صفر و یک محدود میکند با ایـن تفاوت که میزان تغییرات آن غیـر خطـی اسـت. مزیـت ایـن تـابع در عملکـرد آن بـا ورودیهای بزرگ و یـا کوچک است. هنگامی که مقادیر ورودی به سمت اعداد منفی بزرگ میل کند مقـدار صـفر و هنگـامی کـه مقــادیر ورودی بـه سمت صفر میل کند مقدار تابع به سمت 0,5 و هنگامی که مقادیر ورودی به سمت مقادیر مثبت بزرگ میل کند مقدار تـابع بـه سـمت یـک میـل خواهـد کرد. فرم این تابع مطابق شکل زیر بوده و به صورت رابطـه (3-1) تعریف میشود.
1(؛)1
شکل :4 نمودار تابع سیگموئیدی
4؛1؛-1 تابع تحریک تانژانت هیپربولیک
تابع تحریک دیگر که اغلب توسط بیولوژیسـتها بـه عنـوان مدل ریاضی از تحریک سلول عصبی مورد استفاده قرار میگیرد، تـابع تانژانـت هیپربولیـک اسـت کـه از نظر شکل شبیه تابع منطقی است.
5
-2-1 آموزش شبکههای عصبی
هدف استفاده از شبکه عصبی مصنوعی برای حل یک مسئله، بدست آوردن خروجـی مناسـب بـا توجــه بــه دادههـای ورودی اسـت. حـال اینکـه مقـدار خروجی بدست آمده چقدر با مقدار واقعـی آن اخـتلاف دارد، بسـتگی بـه آموزش شبکه و انتخاب وزنها و بایاسهای مناسـب بـرای لایـهها دارد نحـوه یادگیری در شبکههـای عصـبی به دو صورت انجام میگیرد.
1؛2؛-1 آموزش با ناظر
معمولاً برای آموزش شـبکه مجموعـه زوج نیروهـای ورودی و خروجـی بـه آن اعمال میشود. هر کدام از این دستههای ورودی و خروجـی را میتـوان به صـورت یـک بـردار در نظـر گرفت. سپس شبکه با اعمال تنظیم وزنهای شبکه آموزش میبیند. طی آمـوزش شـبکه، وزنهـای شـبکه بـه تــدریج بــه مقادیری همگرا میشوند که به ازای آنها با اعمال یک بردار ورودی، بردار خروجـی دلخـواه تولیـد میگــردد ایـن گونـه آمـوزش را آمـوزش بـا نـاظر
مینامیم. برخی شبکههای عصبی آموزش میبینند که بردارهای ورودی را گروه بندی کنند در این صـورت اگـر بـردار ورودی به گـروه A تعلـق داشـته باشد خروجی برابر یک و در غیر این صورت مقدار صـفر بـه خـود مـیگیـرد. درمـواردی دیگـر بـا ارائـه بـردار ورودی، پاسـخ شـبکه بـر اسـاس شـبکه آموزش دیده بـه صـورت نزدیکترین بـردار خروجی مطلوب بدست میآید. شبکههای چنـد لایـه قادرنـد کـه بـا اعمــال نگاشــتهای غیــر خطــی از
بردارهـای ورودی بـا n بعـد، بردارهـای خروجی m بعدی را نتیجه دهند (محرمی، مدنی،.(2010
2؛2؛-1 آموزش بدون ناظر
در این نوع آموزش فقط بردارهای ورودی به شبکه داده میشود و جواب مطلوب بر شبکه اعمال نمیشود. در این حالـت شـبکه رابطـه بـین ورودیهـا را پیدا میکند و گروه بنـدی کـرده در خروجی کد میکند و از اقلام یادگیری بدون ناظر، میتوان از قانون یادگیری شبکههای عصـبی رقـابتی نـام بـرد. در این نوع شبکهها خروجیها با هم به رقابت پرداختـه تـا کـدامیک موفـق بـه قرارگیـری در الگـوی مناسب و تعیین شده در شبکه قرار بگیرند. به این گونـه الگوریتم یادگیری، الگوریتم خـود سـازمانده نیـز مـی گویند. به علت سرعت قابل توجهی که این نوع شبکه در هنگام آموزش نسبت به آموزش بـا نـاظر دارند این شبکههـا را برای حل مسائل عملی متمایز کرده است (محرمی، مدنی،.(2010
-3-1 شبکههای عصبی پرسپترون
این شبکهها قادرند با انتخاب مناسب تعداد لایهها و سلولهای عصبی، یک نگاشت غیر خطی را به دقت انجام دهند کـه ایـن همــان خواســته بســیاری از مسـائل فنـی مهندسی است که میتواند توسط این شبکهها مطرح شود. پرسپترون یک شبکه غیر بازگشتی است کـه از یـک الگـوریتم آمـوزش بـا نــاظر بهـره میگیرد. بنـابراین، دستههای آموزشی آن شامل مجموعهای از بردارهای ورودی همراه با بردارهای هدف دلخواهشان است. در این شبکه بردارهـای ورودی شامل حدود پیوستهای از مقادیر است اما بردارهـای هـدف شـامل اعـداد بـاینری یعنی صفر و یک هستند که بعد از آموزش تولید میشوند.
6
شبکههای تک لایه از ایـن مشـکل اساسی برخوردارند که تنها توانایی حل آن دسته از مسائل طبقه بندی را دارند که به طور خطـی از هـم مسـتقلاند و از حل بسیاری از مسائل و طبقه بندی الگوهایی که در فضای ورودی به طور خطـی از هـم جـدا ناپذیرنـد نـاتوان میباشـد. ایـن ناتوانیهـا توسـط الگـوریتم
یادگیری پس از انتشار خطا (BP) برای شـبکههـای عصـبی پرسـپترون چنـد لایه مرتفع میشود (محرمی، مدنی،.(2010
-4-1 پرسپترون چند لایه1
در شبکههای چند لایه، لایهها به ترتیب به هم متصل میشوند به گونه ای که خروجـیهـای لایـه اول، ورودیهای لایه دوم و به همین ترتیب تا آخـر کـه خروجیهای لایه آخر خروجیهای اصلی و پاسخ واقعی شبکه را تشکیل میدهنـد. بـه عبـارتی دیگـر جریـان سـیگنال شـبکه در یـک مسـیر پـیش خـور
صـورت میگیرد کـه از لایه ورودی شروع شده و به لایه خروجی ختم میگرددعمومـاً. در شـبکههای چنـد لایـه پرسـپترون ( MLP)دو نـوع سـیگنال استفاده میشود که با هم متفاوتاند. دسـته اول سیگنالهای تابعی که بر اساس ورودیهای هر نورون و پارامترهای وزن و تـابع محـرک نظیـرش محاسـبه
مـیشوند و دسته دوم سیگنالهای خطا که با برگشت از لایه خروجی و منشعب شدن به لایههای پنهـان دیگـر محاسـبه میشـوند. تعـداد نورونهـای لایـه پنهان بستگی به نظر طراح شبکه دارد و با سعی وخطا بدست میآید. در صورت کافی نبودن تعداد نورونها، شبکه قادر نخواهد بـود نگاشـت دقیقـی بـین
بردارهای ورودی وخروجی ایجاد کند. در خروجی هر نورون از شبکه MLP یک تابع خطی قرار دارد و فرایند یاد گیری در تمـام نورونهـا و لایـههــا صورت میگیرد. همه وزنها و بایاسهایی که در شبکه قرار دارند در طول فرایند یادگیری قابل تغییر هستند (محرمی، مدنی،.(2010
شکل :5 ساختار شبکه MLP
-1-4-1 الگوریتمهای آموزش شبکههای عصبی مصنوعی
الف- روش پس انتشار ب- روش دلتا بار پ-روش انتشار سریع
ت- روش لونبرگ مارکوارت (دلاور، .(1384
1 Multi Layer Perceptron
7
2؛4؛-1 الگوریتم لونبرگ - مارکوارت
روش لونبرگ - مارکوارت، روشی استاندارد برای کم کردن خطای مربعات میانگین، در نتیجه قوت و سرعت از ویژگیهای آن اسـت. نسـخهای از ایـن روش توسط فلچر در سال 1987 ارائه شد. تفاوت بین این روش با روش اصلی ارائه شده توسط مارکوارت در سـال 1963، ایـن اسـت کـه انـدازه عناصـر
ماتریس قطری اضافه شده به گوس- نیوتن1، طبق اندازه نرخ موجود بین کاهش واقعی و کاهش پیشبینی شده تنظیم میشوند.
الگوریتم لونبرگ- مارکوارت یکی از متداولترین الگوریتمهای استفاده شده برای بهینهسازی اسـت. ایـن الگـوریتم روش کـاهش شـیب سـاده و دیگـر روشهای شیب توأم را در گستره وسیعی از مسائل اعمال مینماید. روشی را که این الگوریتم بکار میگیرد کاهش حداقل مربعات به صـورت غیرخطـی است. تابعی که برای این منظور بکار میرود به شکل زیر میباشد:
-3-4-1 الگوریتم رقابت استعماری
الگوریتم رقابت استعماری برای اولین بار در سال 2007 توسط آتش پز و کارلوکس مطرح شد. الگوریتم رقابـت اسـتعماری روشـی در حـوزه محاسـبات تکاملی است که به یافتن پاسخ بهینه مسائل مختلف بهینه سازی میپردازد. این الگوریتم با مدلسازی ریاضی فرایند تکامل اجتماعی - سیاسی، الگـوریتمی