ANN
شبکههای عصبی مصنوعی (Artificial Neural Network – ANN) یا به زبان سادهتر شبکههای عصبی سیستمها و روشهای محاسباتی نوینی برای یادگیری ماشینی، نمایش دانش، و در انتها اعمال دانش به دست آمده در جهت پیشبینی پاسخهای خروجی ازسامانههای پیچیده هستند. ایدهٔ اصلی این گونه شبکهها (تا حدودی) الهامگرفته از شیوهٔ کارکرد سیستم عصبی زیستی، برای پردازش دادهها و اطلاعات برای یادگیری و ایجاد دانش است. عنصر کلیدی این ایده، ایجاد ساختارهایی جدید برای سامانهٔ پردازش اطلاعات است. این سیستم از شمار زیادی عناصر پردازشی فوقالعاده بههمپیوسته با نام نورون تشکیل شده که برای حل یک مسئله با هم هماهنگ عمل میکنند و توسط سیناپسها (ارتباطات الکترومغناطیسی) اطلاعات را منتقل میکنند. در این شبکهها اگر یک سلول آسیب ببیند بقیه سلولها میتوانند نبود آنرا جبران کرده، و نیز در بازسازی آن سهیم باشند. این شبکهها قادر به یادگیریاند. مثلاً با اعمال سوزش به سلولهای عصبی لامسه، سلولها یاد میگیرند که به طرف جسم داغ نروند و با این الگوریتم سیستم میآموزد که خطای خود را اصلاح کند. یادگیری در این سیستمها به صورت تطبیقی صورت میگیرد، یعنی با استفاده از مثالها وزن سیناپسها به گونهای تغییر میکند که در صورت دادن ورودیهای جدید، سیستم پاسخ درستی تولید کند.
توافق دقیقی بر تعریف شبکه عصبی در میان محققان وجود ندارد؛ اما اغلب آنها موافقند که شبکه عصبی شامل شبکهای از عناصر پردازش ساده (نورونها) است که میتواند رفتار پیچیده کلی تعیین شدهای از ارتباط بین عناصر پردازش و پارامترهای عنصر را نمایش دهد. منبع اصلی و الهام بخش برای این تکنیک، از آزمایش سیستم مرکزی عصبی و نورونها (آکسونها، شاخههای متعدد سلولهای عصبی و محلهای تماس دو عصب) نشأت گرفتهاست که یکی از قابل توجهترین عناصر پردازش اطلاعات سیستم عصبی را تشکیل میدهد. در یک مدل شبکه عصبی، گرههای ساده (بطور گسترده «نورون»)، «نورونها»، «PEها» (عناصر پردازش) یا واحدها برای تشکیل شبکهای از گرهها، به هم متصل شدهاند. به همین دلیل به آن «شبکههای عصبی» اطلاق میشود. در حالی که یک شبکه عصبی نباید به خودی خود سازگاریپذیر باشد، استفاده عملی از آن بواسطه الگوریتمهایی امکانپذیر است، که جهت تغییر وزن ارتباطات در شبکه (به منظور تولید سیگنال موردنظر) طراحی شده باشد.
با استفاده از دانش برنامهنویسی رایانه میتوان ساختار دادهای طراحی کرد که همانند یک نرون عمل نماید. سپس با ایجاد شبکهای از این نورونهای مصنوعی به هم پیوسته، ایجاد یک الگوریتم آموزشی برای شبکه و اعمال این الگوریتم به شبکه آن را آموزش داد.
این شبکهها برای تخمین و تقریب کارایی بسیار بالایی از خود نشان دادهاند. گستره کاربرد این مدلهای ریاضی بر گرفته از عملکرد مغز انسان، بسیار وسیع میباشد که به عنوان چند نمونه کوچک میتوان استفاده از این ابزار ریاضی در پردازش سیگنالهای بیولوژیکی، مخابراتی و الکترونیکی تا کمک در نجوم و فضانوردی را نام برد.
اگر یک شبکه را همارز با یک گراف بدانیم، فرایند آموزش شبکه تعیین نمودن وزن هر یال و اریبی اولیه خواهد بود.
تاریخچه شبکههای عصبی مصنوعی
از قرن نوزدهم به طور همزمان اما جداگانه از سویی نوروفیزیولوژیستها سعی کردند سیستم یادگیری و تجزیه و تحلیل مغز را کشف کنند، و از سوی دیگر ریاضیدانان تلاش کردند تا مدل ریاضی بسازند، که قابلیت فراگیری و تجزیه و تحلیل عمومی مسائل را دارا باشد. اولین کوششها در شبیهسازی با استفاده از یک مدل منطقی توسط مک کلوک و والتر پیتز انجام شد که امروزه بلوک اصلی سازنده اکثر شبکههای عصبی مصنوعی است. این مدل فرضیههایی در مورد عملکرد نورونها ارائه میکند. عملکرد این مدل مبتنی بر جمع ورودیها و ایجاد خروجی است. چنانچه حاصل جمع ورودیها از مقدار آستانه بیشتر باشد اصطلاحاً نورون برانگیخته میشود. نتیجه این مدل اجرای توابع ساده مثل AND و OR بود.
نه تنها نوروفیزیولوژیستها بلکه روانشناسان و مهندسان نیز در پیشرفت شبیهسازی شبکههای عصبی تأثیر داشتند. در سال ۱۹۵۸ شبکه پرسپترون توسط روزنبلات معرفی گردید. این شبکه نظیر واحدهای مدل شده قبلی بود. پرسپترون دارای سه لایه میباشد، به همراه یک لایه وسط که به عنوان لایه پیوند شناخته شدهاست. این سیستم میتواند یاد بگیرد که به ورودی داده شده خروجی تصادفی متناظر را اعمال کند. سیستم دیگر مدل خطی تطبیقی نورون میباشد که در سال ۱۹۶۰ توسط ویدرو و هاف (دانشگاه استنفورد) به وجود آمد که اولین شبکههای عصبی به کار گرفته شده در مسائل واقعی بودند. Adalaline یک دستگاه الکترونیکی بود که از اجزای سادهای تشکیل شده بود، روشی که برای آموزش استفاده میشد با پرسپترون فرق داشت.
در سال ۱۹۶۹ میسکی و پاپرت کتابی نوشتند که محدودیتهای سیستمهای تک لایه و چند لایه پرسپترون را تشریح کردند. نتیجه این کتاب پیش داوری و قطع سرمایهگذاری برای تحقیقات در زمینه شبیهسازی شبکههای عصبی بود. آنها با طرح اینکه طرح پرسپترون قادر به حل هیچ مسئله جالبی نمیباشد، تحقیقات در این زمینه را برای مدت چندین سال متوقف کردند.
با وجود اینکه اشتیاق عمومی و سرمایهگذاریهای موجود به حداقل خود رسیده بود، برخی محققان تحقیقات خود را برای ساخت ماشینهایی که توانایی حل مسائلی از قبیل تشخیص الگو را داشته باشند، ادامه دادند. از جمله گراسبگ که شبکهای تحت عنوان Avalanch را برای تشخیص صحبت پیوسته و کنترل دست ربات مطرح کرد. همچنین او با همکاری کارپنتر شبکههای ART را بنا نهادند که با مدلهای طبیعی تفاوت داشت. اندرسون و کوهونن نیز از اشخاصی بودند که تکنیکهایی برای یادگیری ایجاد کردند. ورباس در سال ۱۹۷۴ شیوه آموزش پس انتشار خطا را ایجاد کرد که یک شبکه پرسپترون چندلایه البته با قوانین نیرومندتر آموزشی بود.
پیشرفتهایی که در سال ۱۹۷۰ تا ۱۹۸۰ بدست آمد برای جلب توجه به شبکههای عصبی بسیار مهم بود. برخی فاکتورها نیز در تشدید این مسئله دخالت داشتند، از جمله کتابها و کنفرانسهای وسیعی که برای مردم در رشتههای متنوع ارائه شد. امروز نیز تحولات زیادی در تکنولوژی ANN ایجاد شدهاست.
زمینه
فلسفهٔ اصلی شبکهٔ عصبی مصنوعی، مدل کردن ویژگیهای پردازشی مغز انسان برای تقریب زدن روشهای معمول محاسباتی با روش پردازش زیستی است. به بیان دیگر، شبکهٔ عصبی مصنوعی روشی است که دانش ارتباط بین چند مجموعهٔ داده را از طریق آموزش فراگرفته و برای استفاده در موارد مشابه ذخیره میکند. این پردازنده از دو جهت مشابه مغز انسان عمل میکند:
یادگیری شبکهٔ عصبی از طریق آموزش صورت میگیرد.
وزندهی مشابه با سیستم ذخیرهسازی اطلاعات، در شبکهٔ عصبی مغز انسان انجام میگیرد.
تعریف
یک شبکه عصبی مصنوعی، از سه لایهٔ ورودی، خروجی و پردازش تشکیل میشود. هر لایه شامل گروهی از سلولهای عصبی (نورون) است که عموماً با کلیهٔ نورونهای لایههای دیگر در ارتباط هستند، مگر این که کاربر ارتباط بین نورونها را محدود کند؛ ولی نورونهای هر لایه با سایر نورونهای همان لایه، ارتباطی ندارند.
نورون کوچکترین واحد پردازشگر اطلاعات است که اساس عملکرد شبکههای عصبی را تشکیل میدهد. یک شبکهٔ عصبی مجموعهای از نورونهاست که با قرار گرفتن در لایههای مختلف، معماری خاصی را بر مبنای ارتباطات بین نورونها در لایههای مختلف تشکیل میدهند. نورون میتواند یک تابع ریاضی غیرخطی باشد، در نتیجه یک شبکهٔ عصبی که از اجتماع این نورونها تشکیل میشود، نیز میتواند یک سامانهٔ کاملاً پیچیده و غیرخطی باشد. در شبکهٔ عصبی هر نورون به طور مستقل عمل میکند و رفتار کلی شبکه، برآیند رفتار نورونهای متعدد است. به عبارت دیگر، نورونها در یک روند همکاری، یکدیگر را تصحیح میکنند.