شبکههای عصبی Artificial neural network [1] از تعداد زیادی عنصر پردازشی فوقالعاده بههمپیوسته به نام نرون تشکیلشده که برای حل یک مسئله با یکدیگر بهصورت هماهنگ عمل میکند. دستهبندی شبکههای عصبی شبکهای از لایههاست، معمولاً لایهای که اطلاعات ورودی به آنها داده میشود تحت عنوان لایهی ورودی و لایهای که دادههای خروجی از آن دریافت میشود تحت عنوان لایهی خروجی نامیده میشود و به لایههای دیگر بین این دولایه (در صورت وجود) لایههای پنهان گفته میشود.
شبکههای عصبی مصنوعی
جهت حرکتها سیگنالها همواره از سمت لایهی ورودی بهسوی لایهی خروجی است بنابراین در این روش واحدهای ورودی معمولاً کلمهها یا عبارات سند را نمایش میدهند و واحد (های) خروجی نشاندهنده دسته یا موضوع سند میباشند. برای دستهبندی یک سند تستی، وزن کلمهها برای واحدهای ورودی تعیین میشود و فعال کردن این واحدها از طریق لایههای مختلف روبهجلو در شبکه انجام میشود و مقدار واحد خروجی بهعنوان یک نتیجه در تصمیمگیری دستهها تعیین میشود. برخی از محققان از پرسپترون یک لایه استفاده میکنند چون پیادهسازی آن ساده است و پرسپترون چند لایه که بسیار پیچیده بوده و پیادهسازی گستردهای برای کار دستهبندی لازم دارد.
الگوریتم شبکه عصبی
شبکههای عصبی مصنوعی (ANN)، سیستم های محاسباتی هستند که توسط شبکههای عصبی زیستی الهام گرفته شده اند که مغز حیوانات را تشکیل می دهند. شبکه عصبی یک الگوریتم نیست بلکه یک چارچوب برای بسیاری از الگوریتم های مختلف از جمله یادگیری ماشین [3] برای همکاری و پردازش اطلاعات پیچیده است. چنین سیستم هایی برای انجام وظایف با در نظر گرفتن نمونه ها و به طور کلی بدون برنامه ریزی با هیچ قواعد خاصی، یاد می گیرند. برای مثال، در تشخیص تصاویر، شبکه های عصبی مصنوعی تصاویری را که حاوی گربه هستند را با تجزیه و تحلیل تصاویر نمونه یاد می گیرند یعنی به صورت دستی به عنوان تصاویر گربه نامگذاری شده اند را شناسایی کرده و با استفاده از نتایج برای شناسایی گربه ها در تصاویر دیگر آنها را پیدا می کنند. شبکه های عصبی این کار را بدون هیچ گونه دانش پیشین در مورد گربه ها انجام می دهند.
کاربردهای عمومی شبکه های عصبی
- تشخیص الگو (گروهبندی اشكالی كه مشابه هم هستند)
- ذخیره كردن و بازبینی دادهها
- تقریب تابع (رگرسیون غیر خطی، تخمین و پیشگویی)
- بهینه سازی و تعیین جواب با وجود قیود متعدد
- داده کاوی (استخراج دانش کلان ، قابل استناد و جدید از پایگاه داده ها ی بزرگ )
به طور کلی هر جا که سخن از تخمین، تشخیص الگو یا طبقه بندی باشد می توان از شبکههای عصبی مصنوعی استفاده کرد.
مدل ریاضی یک نرون
ساختار شبکههای عصبی
نرون ها به صورت طبیعی به روش خاصی اتصال می یابند تا یک شبکه عصبی را تشکیل دهند نحوه اتصال نرون ها می تواند به گونه ای باشد که شبکه تک لایه یا چند لایه باشد. شبکه های چند لایه از یک لایه ورودی، یک لایه خروجی و یک یا چند لایه بین آنها (لایه پنهان) که مستقیما به داده های ورودی و نتایج خروجی متصل نیستند تشکیل یافته اند.
واحدهای لایه ورودی صرفا وظیفه توزیع مقادیر ورودی را به لایه بعد برعهده دارند. و هیچ گونه تاثیری بر روی سیگنال های ورودی ندارند. به همین دلیل در شمارش تعداد لایه ها به حساب نیامده اند. شبکه شامل یک لایه خروجی است که پاسخ سیگنال های ورودی را ارائه می دهد. که تعداد نرون ها در لایه ورودی و لایه خروجی برابر با تعداد ورودی ها و خروجی ها می باشد و لایه یا لایه های پنهان وظیفه ارتباط دادن لایه ورودی به لایه خروجی را بر عهده دارند. شبکه با داشتن این لایه های پنهان قادر می گردد که روابط غیر خطی را از داده های ارائه شده به شبکه استخراج کند.
كار با هر شبکه عصبی شامل سه مرحله می باشد: آموزش، تعمیم و اجرا.
- در مرحله آموزش، شبکه الگوهای موجود در داده های ورودی را یاد می گیرد. هر شبکه عصبی برای یادگیری از قانون خاص استفاده می کند.
- تعمیم، قدرت شبکه عصبی در ایجاد پاسخ های قابل قبول برای ورودی هایی است که عضو مجموعه آموزشی نبوده اند.
- در مرحله اجرا نیز شبکه عصبی برای عملکردی که به آن منظور طراحی گردیده است، استفاده می شود.
یادگیری در شبكههای عصبی مصنوعی
هدف از آموزش شبکههای عصبی، رسیدن به شرایطی است كه شبكه قادر به پاسخگویی صحیح به دادههای ارائه شده در آموزش شبكه (به خاطر سپردن) و همچنین دادههای مشابه و متفاوت از ورودی هایی كه از آنها برای آموزش شبكه استفاده شده است(تعمیم دادن)،باشد. برتری عمدة شبكههای عصبی آموزش دادهشده بر محاسبات كلاسیك این است كه نتایج مورد نیاز با تلاش كمتر و در زمان كمتری قابل حصول است.در نتیجه این مزایا خصوصاً برای مسائلی كه مستلزم محاسبات طولانی هستند بسیار مفید و موثر واقع گردد.
دو نوع آموزش شبكه به شكل زیر است: الف ـ آموزش با ناظر ب ـ آموزش بدون ناظر
آموزش شبكههای عصبی مصنوعی
الف- آموزش با ناظر: آموزش اكثر شبكههای عصبی با استفاده از زوج بردارهای نمونه صورت میگیرد به طوری كه به هر بردار ورودی یك بردار خروجی مشخص نسبت داده میشود. با ارائه این مجموعه بردارها به شبكه، وزنها بر اساس الگوریتم یادگیری شبكه اصلاح میگردند. اینگونه آموزش را آموزش با ناظر مینامند. شبکه های دلتا، آدالاین ، مادالاین، تابع پایه شعاعی (RBF) و پس انتشار (BP) نمونه هایی از این نوع می باشد.
ب-آموزش بدون ناظر: در این نوع آموزش، بردارهای ورودی به شبكه ارائه گردیده بدون اینكه بردارهای خروجی مربوط به شبكه داده شوند، وزن های شبكه بصورتی اصلاح میشوند كه بردارهای ورودی مشابه در یك گروهبندی قرار گیرند. پاسخ شبكه بر اساس نزدیكترین بردار به بردار ورودی خواهد بود. یادگیری بدون ناظر را خود یادگیری هم میگویند. از شبکه های به کارگیرنده الگوریتم بدون ناظر میتوان به شبکه های هب، کوهونن و هاپفیلد اشاره کرد.
الگوریتم های یادگیری
منظور از یادگیری در شبکههای عصبی، تنظیم وزن ها و بایاس های شبكه می باشد. بر این اساس الگوریتم های متفاوتی بیان شده، كه معمول ترین آنها عبارتند از:
- یادگیری هب: در این روش وزن مربوط به ورودی یك نرون، زمانی افزایش می یابد كه سیگنال ورودی و خروجی هر دو بالا باشند که در واقع منظور تقویت كردن آن ورودی است.
- قانون یادگیری دلتا: این الگوریتم كه بعضاً میانگین مربع خطا (LMS) نیز نامیده می شود وقتی استفاده میگردد كه سیگنال خطا مینیمم شود كه به واقع اختلاف بین خروجی واقعی شبكه و خروجی مورد انتظار (مطلوب) مینیمم باشد. در این روش سیگنال خطا جهت اصلاح وزن ها و بایاسهای نرون ها به عقب منتشر میشود. الگوریتم پس انتشار خطا معمول ترین روش پیاده سازی از قانون یادگیری دلتا است كه دست كم در 75% از كاربردهای شبكه های عصبی مصنوعی استفاده میگردد.
- یادگیری رقابتی: در این روش عناصر پردازشی جهت اصلاح وزن ها و بایاس های خودشان با هم رقابت می كنند.