شبکه عصبی یک سیستم ارگانی شامل نورونها میباشد که اعمال و واکنش جانداران را هماهنگ میسازد و سیگنالها را به بخشهای متفاوت بدن میفرستد. در بیشتر جانداران سیستم عصبی شامل دو بخش مرکزی و بخش جانبی است. در استفادههای جدیدتر این عبارت به شبکه عصبی مصنوعی که از نورونهایی مصنوعی ساخته شدهاست هم اشاره دارد. بنابراین عبارت 'شبکه عصبی' در حالت کلی به دو مفهوم مختلف شبکه عصبی زیستی و شبکه عصبی مصنوعی مختلف اشاره دارد.نام سیستم عصبی از اعصاب گرفته میشود. در حالت کلی، یک شبکه عصبی زیستی از مجموعه یا مجموعهای از نورونهای به صورت فیزیکی به هم متصل یا از لحاظ عملکردی به هم وابسته تشکیل شدهاست. هر نورون میتواند
به تعداد بسیار زیادی از نورونها وصل باشد و تعداد کل نورونها و اتصالات بین آنها میتواند بسیار زیاد باشد. اتصالات، که به آنها سیناپس گفته میشود، معمولاً از آکسونهاو دندریتهاتشکلیل شدهاند.
هوش مصنوعی و مدل سازی شناختی سعی بر این دارند که بعضی از خصوصیات شبکههای عصبی را شبیه سازی کنند. این دو اگرچه در روشهاشان به هم شبیه هستند اما هدف هوش مصنوعی حل مسائل مشخصی است در حالی که هدف مدل سازی شناختی ساخت مدلهای ریاضی سامانههای نورونی زیستی است.
شبکههای عصبی زیستی
شبکههای عصبی زیستی مجموعهای بسیار عظیم از پردازشگرهای موازی به نام نورون اند که به صورت هماهنگ برای حل مسئله عمل میکنند و توسط سیناپسها(ارتباطهای الکترومغناطیسی) اطلاعات را منتقل میکنند. در این شبکهها اگر یک سلول آسیب ببیند بقیه سلولها میتوانند نبود آنرا جبران کرده و نیز در بازسازی آن سهیم باشند. این شبکهها قادر به یادگیری اند. مثلا با اعمال سوزش به سلولهای عصبی لامسه، سلولها یاد میگیرند که به طرف جسم داغ نروند و با این الگوریتم سامانه میآموزد که خطای خود را اصلاح کند. یادگیری در این سامانهها به صورت تطبیقی صورت میگیرد، یعنی با استفاده ازمثالها وزن سیناپسها به گونهای تغییر میکند که در صورت دادن ورودیهای تازه سامانه پاسخ درستی تولید کند.
معرفی شبکه عصبی مصنوعی
شبکه عصبی مصنوعی یک سامانه پردازشی دادهها است که از مغز انسان ایده گرفته و پردازش دادهها را به عهدهٔپردازندههای کوچک و بسیار زیادی سپرده که به صورت شبکهای به هم پیوسته و موازی با یکدیگر رفتار میکنند تا یک مسئله را حل نمایند. در این شبکهها به کمک دانش برنامه نویسی، ساختار دادهای طراحی میشود که میتواند همانند نورون عمل کند. که به این ساختارداده نورون گفته میشود. بعد باایجاد شبکهای بین این نورونها و اعمال یک الگوریتم آموزشی به آن، شبکه را آموزش میدهند.
در این حافظه یا شبکهٔ عصبی نورونها دارای دو حالت فعال (روشن یا ۱) و غیرفعال (خاموش یا ۰) اند و هر یال (سیناپس یا ارتباط بین گرهها) دارای یک وزن میباشد. یالهای با وزن مثبت، موجب تحریک یا فعال کردن گره غیر فعال بعدی میشوند و یالهای با وزن منفی، گره متصل بعدی را غیر فعال یا مهار (در صورتی که فعال بوده باشد) میکنند.
نورون مصنوعی
یک نورون مصنوعی سامانهای است با تعداد زیادی ورودی و تنها یک خروجی. نورون دارای دو حالت میباشد، حالت آموزش و حالت عملکرد. در حالت آموزش نورون یاد میگیرد که در مقابل الگوهای ورودی خاص برانگیخته شود و یا در اصطلاح آتش کند. در حالت عملکرد وقتی یک الگوی ورودی شناسایی شده وارد شود، خروجی متناظر با آن ارائه میشود. اگر ورودی جزء ورودیهای از پیش شناسایی شده نباشد، قوانین آتش برای بر انگیختگی یا عدم آن تصمیم گیری میکند.
از نورونهای انسان تا نورون مصنوعی
با کنار گذاشتن برخی از خواص حیاتی نورونها و ارتباطات درونی آنها میتوان یک مدل ابتدایی از نورون را به وسیله کامپیوتر شبیه سازی کرد.
ساختار شبکههای عصبی
یک شبکه عصبی شامل اجزای سازنده لایهها و وزنها میباشد. رفتار شبکه نیز وابسته به ارتباط بین اعضا است. در حالت کلی در شبکههای عصبی سه نوع لایه نورونی وجود دارد:
لایه ورودی: دریافت اطلاعات خامی که به شبکه تغذیه شدهاست.
لایههای پنهان: عملکرد این لایهها به وسیله ورودیها و وزن ارتباط بین آنها و لایههای پنهان تعیین میشود. وزنهای بین واحدهای ورودی و پنهان تعیین میکند که چه وقت یک واحد پنهان باید فعال شود.
لایه خروجی: عملکرد واحد خروجی بسته به فعالیت واحد پنهان و وزن ارتباط بین واحد پنهان و خروجی میباشد.
شبکههای تک لایه و چند لایهای نیز وجود دارند که سازماندهی تک لایه که در آن تمام واحدها به یک لایه اتصال دارند بیشترین مورد استفاده را دارد و پتانسیل محاسباتی بیشتری نسبت به سازماندهیهای چند لایه دارد. در شبکههای چند لایه واحدها به وسیله لایهها شماره گذاری میشوند (به جای دنبال کردن شماره گذاری سراسری.
هر دو لایه از یک شبکه به وسیله وزنها و در واقع اتصالات با هم ارتباط مییابند. در شبکههای عصبی چند نوع اتصال و یا پیوند وزنی وجود دارد: پیشرو: بیشترین پیوندها از این نوع است که در آن سیگنالها تنها در یک جهت حرکت میکنند. از ورودی به خروجی هیچ بازخوردی (حلقه) وجود ندارد. خروجی هر لایه بر همان لایه تاثیری ندارد.
پسرو: دادهها از گرههای لایه بالا به گرههای لایه پایین بازخورانده میشوند.
جانبی: خروجی گرههای هر لایه به عنوان ورودی گرههای همان لایه استفاده میشوند.
تقسیم بندی شبکههای عصبی
بر مبنای روش آموزش به چهار دسته تقسیم میشوند:
1. وزن ثابت: آموزشی در کار نیست و مقادیر وزنها به هنگام نمیشود. کاربرد: بهینه سازی اطلاعات (کاهش حجم، تفکیک پذیری و فشرده سازی) و حافظههای تناظری
2. آموزش بدون سرپرست: وزنها فقط بر اساس ورودیها اصلاح میشوند و خروجی مطلوب وجود ندارد تا با مقایسه خروجی شبکه با آن و تعیین مقدار خطا وزنها اصلاح شود. وزنها فقط بر اساس اطلاعات الگوهای ورودی به هنگام میشوند. هدف استخراج مشخصههای الگوهای ورودی بر اساس راهبرد خوشه یابی و یا دستهبندی و تشخیص شباهتها (تشکیل گروههایی با الگوی مشابه) میباشد، بدون اینکه خروجی یا کلاسهای متناظر با الگوهای ورودی از قبل مشخص باشد. این یاد گیری معمولاً بر پایه شیوه برترین هم خوانی انجام میگیرد. شبکه بدون سرپرست وزنهای خود را بر پایه خروجی حاصل شده از ورودی تغییر میدهد تا در برخورد بعدی پاسخ مناسبی را برای این ورودی داشته باشد. در نتیجه شبکه یاد میگیرد چگونه به ورودی پاسخ بدهد. اصولا هدف این است که با تکنیک نورون غالب نورونی که بیشترین تحریک آغازین را دارد برگزیده شود. بنابر این در شبکههای بدون سرپرست یافتن نورون غالب یکی از مهمترین کارها است.
3. آموزش با سرپرست: به ازای هر دسته از الگوهای ورودی خروجیهای متناظر نیز به شبکه نشان داده میشود و تغییر وزنها تا موقعی صورت میگیرد که اختلاف خروجی شبکه به ازای الگوهای آموزشی از خروجیهای مطلوب در حد خطای قابل قبولی باشد. در این روشها یا از خروجیها به وزنها ارتباط وجود دارد یا خلا به صورت پس انتشار از لایه خروجی به ورودی توزیع شدهاست و وزنها اصلاح میشوند. هدف طرح شبکهای است که ابتدا با استفاده از دادههای آموزشی موجود، آموزش ببیند و سپس با ارائه بردار ورودی به شبکه که ممکن است شبکه آن را قبلا فراگرفته یا نگرفته باشد کلاس آن را تشخیص دهد. چنین شبکهای به طور گسترده برای کارهای تشخیص الگو به کار گرفته میشود.
4. آموزش تقویتی: کیفیت عملکرد سامانه به صورت گام به گام نسبت به زمان بهبود مییابد. الگوهای آموزشی وجود ندارد اما با استفاده از سیگنالی به نام نقاد بیانی از خوب و یا بد بودن رفتار سامانه بدست میآید (حالتی بین یادگیری با سرپرست و بدون سرپرست).
کاربرد شبکههای عصبی
شبکههای عصبی مصنوعی دارای دامنه کاربرد وسیعی میباشند از جمله سامانههای آنالیز ریسک، کنترل هواپیما بدون خلبان، آنالیز کیفیت جوشکاری، آنالیز کیفیت کامپیوتر، آزمایش اتاق اورژانس، اکتشاف نفت و گاز، سامانههای تشخیص ترمز کامیون، تخمین ریسک وام، شناسایی طیفی، تشخیص دارو، فرآیندهای کنترل صنعتی، مدیریت خطا، تشخیص صدا، تشخیص هپاتیت، بازیابی اطلاعات راه دور، شناسایی مینهای زیردریایی، تشخیص اشیاء سه بعدی و دست نوشتهها و چهره و... در کل میتوان کاربردهای شبکههای عصبی را به صورت زیر دسته بندی کرد: تناظر (شبکه الگوهای مغشوش وبه هم ریختهرا بازشناسی میکند)، خوشه یابی، دسته بندی، شناسایی، بازسازی الگو، تعمیم دهی (به دست آوردن یک پاسخ صحیح برای محرک ورودی که قبلا به شبکه آموزش داده نشده)، بهینه سازی. امروزه شبکههای عصبی در کاربردهای مختلفی نظیر مسائل تشخیص الگو که خود شامل مسائلی مانند تشخیص خط، شناسایی گفتار، پردازش تصویر و مسائلی از این دست میشود و نیز مسائل دسته بندی مانند دسته بندی متون یا تصاویر، به کار میروند. در کنترل یا مدل سازی سامانههایی که ساختار داخلی ناشناخته یا بسیار پیچیدهای دارند نیز به صورت روز افزون از شبکههای عصبی مصنوعی استفاده میشود. به عنوان مثال میتوان در کنترل ورودی یک موتور از یک شبکه عصبی استفاده نمود که در این صورت شبکه عصبی خود تابع کنترل را یاد خواهد گرفت.