شبکههای عصبی مصنوعی یا شبکههای عصبی صناعی (Artificial Neural Networks – ANN) یا به زبان سادهتر شبکههای عصبی سیستمها و روشهای محاسباتی نوین برای یادگیری ماشینی، نمایش دانش و در انتها اعمال دانش به دست آمده در جهت بیشبینی پاسخهای خروجی از سامانههای پیچیده هستند. ایدهٔ اصلی این گونه شبکهها تا حدودی الهامگرفته از شیوهٔ کارکرد سیستم عصبی زیستی برای پردازش دادهها و اطلاعات به منظور یادگیری و ایجاد دانش میباشد. عنصر کلیدی این ایده، ایجاد ساختارهایی جدید برای سامانهٔ پردازش اطلاعات است.
این سیستم از شمار زیادی عناصر پردازشی فوقالعاده بهمپیوسته با نام نورون تشکیل شده که برای حل یک مسئله با هم هماهنگ عمل میکنند و توسط سیناپسها (ارتباطات الکترومغناطیسی) اطلاعات را منتقل میکنند. در این شبکهها اگر یک سلول آسیب ببیند بقیه سلولها میتوانند نبود آن را جبران کرده، و نیز در بازسازی آن سهیم باشند. این شبکهها قادر به یادگیریاند. مثلاً با اعمال سوزش به سلولهای عصبی لامسه، سلولها یادمیگیرند که به طرف جسم داغ نروند و با این الگوریتم سیستم میآموزد که خطای خود را اصلاح کند. یادگیری در این سیستمها به صورت تطبیقی صورت میگیرد، یعنی با استفاده از مثالها وزن سیناپسها به گونهای تغییر میکند که در صورت دادن ورودیهای جدید، سیستم پاسخ درستی تولید کند.
زمینه
فلسفهٔ اصلی شبکهٔ عصبی مصنوعی، مدل کردن ویژگیهای پردازشی مغز انسان برای تقریب زدن روشهای معمول محاسباتی با روش پردازش زیستی است. به بیان دیگر، شبکهٔ عصبی مصنوعی روشی است که دانش ارتباط بین چند مجموعهٔ داده را از طریق آموزش فراگرفته و برای استفاده در موارد مشابه ذخیره میکند. این پردازنده از دو جهت مشابه مغز انسان عمل میکند:
- یادگیری شبکهٔ عصبی از طریق آموزش صورت میگیرد.
- وزندهی مشابه با سیستم ذخیرهسازی اطلاعات، در شبکهٔ عصبی مغز انسان انجام میگیرد.
تعریف شبکه عصبی
یک شبکهٔ عصبی مصنوعی، از سه لایهٔ ورودی، خروجی و پردازش تشکیل میشود. هر لایه شامل گروهی از سلولهای عصبی (نورون) است که عموماً با کلیهٔ نورونهای لایههای دیگر در ارتباط هستند، مگر این که کاربر ارتباط بین نورونها را محدود کند؛ ولی نورونهای هر لایه با سایر نورونهای همان لایه، ارتباطی ندارند.
نورون کوچکترین واحد پردازشگر اطلاعات است که اساس عملکرد شبکههای عصبی را تشکیل میدهد. یک شبکهٔ عصبی مجموعهای از نورونهاست که با قرار گرفتن در لایههای مختلف، معماری خاصی را بر مبنای ارتباطات بین نورونها در لایههای مختلف تشکیل میدهند. نورون میتواند یک تابع ریاضی غیرخطی باشد، در نتیجه یک شبکهٔ عصبی که از اجتماع این نورونها تشکیل میشود، نیز میتواند یک سامانهٔ کاملاً پیچیده و غیرخطی باشد. در شبکهٔ عصبی هر نورون بهطور مستقل عمل میکند و رفتار کلی شبکه، برآیند رفتار نورونهای متعدد است. به عبارت دیگر، نورونها در یک روند همکاری، یکدیگر را تصحیح میکنند.
کارکرد
با استفاده از دانش برنامهنویسی رایانه میتوان ساختار دادهای طراحی کرد که همانند یک نورون عمل نماید. سپس با ایجاد شبکهای از این نورونهای مصنوعی به هم پیوسته، ایجاد یک الگوریتم آموزشی برای شبکه و اعمال این الگوریتم به شبکه آن را آموزش داد.
این شبکهها برای تخمین و تقریب، کارایی بسیار بالایی از خود نشان دادهاند. گستره کاربرد این مدلهای ریاضی بر گرفته از عملکرد مغز انسان، بسیار وسیع میباشد که به عنوان چند نمونه کوچک میتوان استفاده از این ابزار ریاضی در پردازش سیگنالهای بیولوژیکی، مخابراتی و الکترونیکی تا کمک در نجوم و فضانوردی را نام برد.
اگر یک شبکه را همارز با یک گراف بدانیم، فرایند آموزش شبکه تعیین نمودن وزن هر یال و base اولیهٔ خواهد بود.
یادگیری
یادگیری ماشینی با نظارت (supervised learning) به دنبال تابعی از میان یک سری توابع هست که تابع هزینه (loss function) دادهها را بهینه سازد. به عنوان مثال در مسئله رگرسیون تابع هزینه میتواند اختلاف بین پیشبینی و مقدار واقعی خروجی به توان دو باشد، یا در مسئله طبقهبندی ضرر منفی لگاریتم احتمال خروجی باشد. مشکلی که در یادگیری شبکههای عصبی وجود دارد این است که این مسئله بهینهسازی دیگر محدب (convex) نیست.[۱] ازین رو با مشکل کمینههای محلی روبرو هستیم. یکی از روشهای متداول حل مسئله بهینهسازی در شبکههای عصبی بازگشت به عقب یا همان back propagation است.[۱] روش بازگشت به عقب گرادیانِ تابع هزینه را برای تمام وزنهای شبکه عصبی محاسبه میکند و بعد از روشهای گرادیان کاهشی (gradient descent) برای پیدا کردن مجموعه وزنهای بهینه استفاده میکند.[۲] روشهای گرادیان کاهشی سعی میکنند به صورت متناوب در خلاف جهت گرادیان حرکت کنند و با این کار تابع هزینه را به حداقل برسانند.[۲] پیدا کردن گرادیانِ لایه آخر ساده است و با استفاده از مشتق جزئی بدست میآید. گرادیانِ لایههای میانی اما به صورت مستقیم بدست نمیآید و باید از روشهایی مانند قاعده زنجیری در مشتقگیری استفاده کرد.[۲] روش بازگشت به عقب از قاعده زنجیری برای محاسبه گرادیانها استفاده میکند و همانطور که در پایین خواهیم دید، این روش به صورت متناوب گرادیانها را از بالاترین لایه شروع کرده آنها را در لایههای پایینتر «پخش» میکند. منبع: ویکی پدیا