شبکه های عصبی مصنوعی
شبکه های عصبی مصنوعی پدیدهای جدید هستند که در بسیاری از علوم و مهندسی استفاده میشود. ساختار این شبکه ها به صورتی است که از عملکرد سیستم اعصاب انسان تقلید میکند و مشابه نرونهای عصبی انسان، داده ها را دریافت، پردازش و منتقل میکند. روش های یادگیری و آموزشی که برای شبکه های عصبی مصنوعی بکار میرود بر اساس سیستم یادگیری و اعصاب انسان است و در واقع کاملترین الگو برای ابداع روش های یادگیری انسان است. شبکه های عصبی مصنوعی برای اولین بار در سال ۱۹۶۵ میلادی توسط محققین علوم طبیعی معرفی گردید. در مدل بیولوژیکی که توسط آنها ارائه شد در هر نرون محاسبات ریاضی انجام میشود و در حین آموزش شبکه، مقادیر وزنهای ارتباطی یا پارامترهای محاسباتی تغییر میکنند بصورتی که نهایتا شبکه عصبی بتواند عمل مورد نظر را بطور صحیح انجام دهد.
در ادامه ابتدا شبکه عصبی و به طور خاص شبکه عصبی پروسپترون چند لایه و کاربردهای آن و همچنین چگونگی آموزش آن تشریح میشود.
ساختار کلی شبکه های عصبی
در حالت کلی یک شبکهعصبی ساختاری مشابه با شکل ۲-۳ دارد. در این شکل هر گره نماینده یک سلول عصبی مصنوعی است. اطلاعات از طریق گره های لایه ورودی به شبکه وارد میشود. این ورودیها از طریق رابطها به گره های لایه های پنهان منتقل شده و بعد از پردازش از طریق لایه های مختلف از گره های لایه خروجی خارج میشوند. یک شبکه عصبی مصنوعی، مجموعهای از نرونهای[۱۲] به هم متصل در لایه های مختلف است که اطلاعاتی را برای یکدیگر ارسال میکنند. اولین لایه در سمت چپ در شکل لایه ورودی است و لایه آخر نیز لایه خروجی نامیده میشود. داده ها در لایه ورودی وارد میشود.
تمام لایه های شبکه عصبی به جزء لایه ورودی کار پردازش را انجام داده و در نهایت خروجی بدست میآید.
شکل ۲-۳٫ ساختار شبکه های عصبی مصنوعی
لایه های بین لایه ورودی و لایه خروجی را لایه های میانی یا لایه های پنهان مینامند. سادهترین شکل شبکه فقط دو لایه دارد. لایه ورودی و لایه خروجی شبکه، شبیه یک سیستم ورودی خروجی عمل میکنند و ارزش نرونهای ورودی را برای محاسبه ارزش نرون خروجی مورد استفاده قرار میدهد. به طور کلی نقش نرونها در شبکه های عصبی، پردازش اطلاعات است و این امر در شبکه های عصبی مصنوعی به وسیله یک پردازشگر ریاضی که همان تابع فعالسازی است انجام میشود. تابع فعالسازی میتواند خطی یا غیرخطی باشد. یک تابع فعالسازی بر اساس نیاز خاص مسئلهای که قرار است به وسیله شبکه عصبی حل شود، از سوی طراح انتخاب میشود. برای مثال، زمانی که ارزشهای خروجی مسئله تنها صفر و یک است، دیگر استفاده از یک تابع فعال سازی خطی مناسب نیست و باید از توابع دیگری که بر اساس مقادی ورودی مختلف تنها مقادیر صفر و یک را نتیجه میدهد مثل تابع آستانهای استفاده کرد.
نمونهای که در بالا به آن اشاره شد برای نرون یا نرونهای خروجی یک تابع فعالسازی خطی را میپذیرد. برای بهرهبرداری واقعی از توانایی شبکه های عصبی، باید از توابع فعالسازی غیرخطی استفاده کرد. تقریبا تمام شبکه های عصبی در بخشهایی از شبکه از توابع فعالسازی غیرخطی استفاده میکنند (منهاج، ۲۰۰۸).
این مسئله اجازه میدهد که شبکه الگوهای غیرخطی مناسبی از مجموعه داده های پیچیده تولید کند. به صورت ایدهآل تابع فعالسازی باید پیوسته مشتق پذیر و یکنواخت باشد زیرا این مسئله عمل پیدا کردن ضرایب مقتضی الگوریتم بهینهیابی را تسهیل میکند (منهاج، ۱۳۸۷).
عملکرد شبکه های عصبی
شبکه های عصبی اطلاعات ورودی را دریافت میکنند و پس از پردازش آن خروجی ها را نتیجه میدهند. این فرایند مبتنی بر تجزیه موازی اطلاعات پیچیده به اجزای اصلی آن است. شبکه های عصبی در حالت کلی میتوانند به عنوان جعبههای سیاهی در نظر گرفته شوند که ورودی را دریافت نموده و خروجی ایجاد نمایند. در یک شبکه عصبی اطلاعات پیچیده به اجزای اصلی آن تجزیه شده و این اجزاء و رابطه های آنها با یکدیگر در وزنهای شبکه که مشابه حافظه شبکه عمل میکنند ذخیره میشوند.
برای حل مسائل، شبکه های عصبی ۳ مرحله را طی میکنند. آموزش، آزمایش و اجرا.
آموزش فرایندی است که در آن شبکه میآموزد تا الگوی موجود در ورودی را که بصورت مجموعه داده های آموزشی است را بشناسد. برای این منظور هر شبکه عصبی از مجموعه ای از قوانین یادگیری که نحوه یادگیری را تعریف میکنند، استفاده میکند. تعمیم یا آموزش، توانایی شبکه را برای ارائه جواب قابل قبول در قبال ورودیهایی که جزو مجموعه آموزشی نبودهاند مورد سنجش قرار میدهد.
در اثر آموزش دادن شبکه، وزنهای داخلی که بر روی ورودیهای هر سلول عمل میکند، تغییر میکند و به وضعیت مناسب میرسند. یکی از نقاط ضعف شبکه های عصبی در این است که نتایج آموزش شبکه یعنی وزنهای داخلی هیچ گونه تصویر روشنی از اعتبار جواب های مسئله بدست نمیدهد. این وزنها کاملا قابل درک نیستند با این وجود جوابهای تولید شده توسط شبکه اغلب صحیح هستند و این صحت جواب ها در اغلب اوقات مهم تر از توضیح پذیر بودن آن است. به همین خاطر است که به شبکه های عصبی مدلهای جعبه سیاه هم میگویند.
به طور خلاصه در هر لایه اطلاعات ورودی از طریق n گره لایه قبل در وزن W مربوطه ضرب شده و از طریق تابع شبکه وارد گره i میشود. تابع شبکه میتواند تابع جمع کننده خطی باشد. سپس خروجی تابع شبکه از تابع انتقال عبور کرده به گره های لایه بعدی ارسال میشود.
مزایای استفاده
از شبکه عصبی مصنوعی
شبکه های عصبی مصنوعی با وجود اینکه با سیستم عصبی طبیعی قابل مقایسه نیستند، ویژگیهایی دارند که آنها را در هر جایی که نیاز به یادگیری یک نگاشت خطی و یا غیر خطی باشد، متمایز مینماید. این ویژگی ها به شرح زیر است:
قابلیت یادگیری
استخراج یک نگاشت غیرخطی که با چند مثال مشخص شده است، کار سادهای نیست. پیادهسازی این نتایج با یک الگوریتم معمولی و بدون قابلیت یادگیری، نیاز به دقت و مراقبت زیادی دارد. در چنین حالتی سیستمی که بتواند خود این رابطه را استخراج کند، بسیار سودمند به نظر میرسد. افزودن مثالهای احتمالی در آینده به یک سیستم با قابلیت یادگیری به مراتب آسانتر از آنجام آن بدون چنین قابلیتی است، زیرا در سیستم فاقد این قابلیت، افزودن یک مثال جدید به منزله تعویض کلیهی کارهای انجام شدهی قبلی است.
قابلیت تعمیم
پس از آنکه مثالهای اولیه به شبکه آموزش داده شد، شبکه میتواند در مقابل یک ورودی آموزش داده نشده قرارگیرد و یک خروجی مناسب ارائه نماید. این خروجی بر اساس مکانیزم تعمیم که همان فرایند درونیابی است، به دست میآید.
پردازش موازی (قابلیت بالا بودن سرعت)
هنگامی که شبکه عصبی در قالب سختافزار پیاده میشود، سلولهایی که در یک تراز قرار میگیرند، میتوانند به طور همزمان به ورودیهای آن تراز پاسخ دهند. این ویژگی باعث افزایش سرعت پردازش میشود. در واقع وظیفهی کلی پردازش در چنین سیستمی بین پردازندههای کوچکتر مستقل از هم تقسیم میشود.
مقاوم بودن (قابلیت تحمل آسیب، تحملپذیری خطاها، قابلیت ترمیم)
در یک شبکه عصبی، هر سلول به طور مستقل عمل میکند و رفتار کلی شبکه، برآیند رفتارهای محلی سلولهای متعدد است. این ویژگی باعث میشود تا خطاهای محلی از چشم خروجی نهایی دور بماند. به عبارتی دیگر سلولها در یک روند همکاری، خطاهای محلی یکدیگر را تصحیح میکنند. این خصوصیت باعث افزایش قابلیت مقاوم بودن در سیستم میشود (منهاج،۱۳۷۹) (فضل الهی و آلیو، ۲۰۰۴) (ییم ، ۲۰۰۲) (ریفنز، زاپرانیس و فراندیس ،۱۹۹۴).
انواع توابع تبدیل
تابع تبدیل میتواند خطی یا غیرخطی باشد. تابع تبدیل بر اساس نیاز خاص حل مسأله موردنظر، یعنی مسأله که قرار است به وسیله شبکه عصبی حل شود، انتخاب میگردد . معمولاً تعداد معدودی از این نوع توابع مورد استفاده قرار میگیرند که در جدول ۲-۱ آورده شدهاند.
جدول (۲-۱) انواع توابع تبدیل
ردیف | نام | تعریف تابع | علائم قراردادی |
۱ | آستانهای دو مقداره |