شبکه عصبی مصنوعی

از ویکی‌پدیا، دانشنامهٔ آزاد
پرش به: ناوبری، جستجو
یک شبکه عصبی مصنوعی متشکل از گره‌های متصل است مشابه شبکه نورون‌ها در مغز. اینجا هر گره که به شکل دایره ترسیم شده یک نورون مصنوعی را نشان می‌دهد و هر فلش بیانگر اتصال خروجی یک نورون به عنوان ورودی نورون دیگر است.

شبکه‌های عصبی مصنوعی (Artificial Neural Network - ANN) یا به زبان ساده‌تر شبکه‌های عصبی سیستم‌ها و روش‌های محاسباتی نوینی برای یادگیری ماشینی، نمایش دانش، و در انتها اعمال دانش به دست آمده در جهت پیش‌بینی پاسخ‌های خروجی از سامانه‌های پیچیده هستند. ایدهٔ اصلی این گونه شبکه‌ها (تا حدودی) الهام‌گرفته از شیوهٔ کارکرد سیستم عصبی زیستی، برای پردازش داده‌ها و اطلاعات برای یادگیری و ایجاد دانش است. عنصر کلیدی این ایده، ایجاد ساختارهایی جدید برای سامانهٔ پردازش اطلاعات است. این سیستم از شمار زیادی عناصر پردازشی فوق‌العاده به‌هم‌پیوسته با نام نورون تشکیل شده که برای حل یک مسئله با هم هماهنگ عمل می‌کنند و توسط سیناپس‌ها (ارتباطات الکترومغناطیسی) اطلاعات را منتقل می‌کنند. در این شبکه‌ها اگر یک سلول آسیب ببیند بقیه سلول‌ها می‌توانند نبود آنرا جبران کرده، و نیز در بازسازی آن سهیم باشند. این شبکه‌ها قادر به یادگیری‌اند. مثلاً با اعمال سوزش به سلول‌های عصبی لامسه، سلول‌ها یاد می‌گیرند که به طرف جسم داغ نروند و با این الگوریتم سیستم می‌آموزد که خطای خود را اصلاح کند. یادگیری در این سیستم‌ها به صورت تطبیقی صورت می‌گیرد، یعنی با استفاده از مثال‌ها وزن سیناپس‌ها به گونه‌ای تغییر می‌کند که در صورت دادن ورودی‌های جدید، سیستم پاسخ درستی تولید کند.

توافق دقیقی بر تعریف شبکه عصبی در میان محققان وجود ندارد؛ اما اغلب آنها موافقند که شبکه عصبی شامل شبکه‌ای از عناصر پردازش ساده (نورون‌ها) است که می‌تواند رفتار پیچیده کلی تعیین شده‌ای از ارتباط بین عناصر پردازش و پارامترهای عنصر را نمایش دهد. منبع اصلی و الهام بخش برای این تکنیک، از آزمایش سیستم مرکزی عصبی و نورونها (آکسون‌ها، شاخه‌های متعدد سلولهای عصبی و محلهای تماس دو عصب) نشأت گرفته‌است که یکی از قابل توجه‌ترین عناصر پردازش اطلاعات سیستم عصبی را تشکیل می‌دهد. در یک مدل شبکه عصبی، گره‌های ساده (بطور گسترده «نورون»)، «نورون‌ها»، «PEها» (عناصر پردازش) یا واحدها برای تشکیل شبکه‌ای از گره‌ها، به هم متصل شده‌اند. به همین دلیل به آن «شبکه‌های عصبی» اطلاق می‌شود. در حالی که یک شبکه عصبی نباید به خودی خود سازگاری‌پذیر باشد، استفاده عملی از آن بواسطه الگوریتم‌هایی امکان‌پذیر است، که جهت تغییر وزن ارتباطات در شبکه (به منظور تولید سیگنال موردنظر) طراحی شده باشد.

با استفاده از دانش برنامه‌نویسی رایانه می‌توان ساختار داده‌ای طراحی کرد که همانند یک نرون عمل نماید. سپس با ایجاد شبکه‌ای از این نورون‌های مصنوعی به هم پیوسته، ایجاد یک الگوریتم آموزشی برای شبکه و اعمال این الگوریتم به شبکه آن را آموزش داد.

این شبکه‌ها برای تخمین و تقریب کارایی بسیار بالایی از خود نشان داده‌اند. گستره کاربرد این مدل‌های ریاضی بر گرفته از عملکرد مغز انسان، بسیار وسیع می‌باشد که به عنوان چند نمونه کوچک می‌توان استفاده از این ابزار ریاضی در پردازش سیگنال‌های بیولوژیکی، مخابراتی و الکترونیکی تا کمک در نجوم و فضانوردی را نام برد.

اگر یک شبکه را هم‌ارز با یک گراف بدانیم، فرایند آموزش شبکه تعیین نمودن وزن هر یال و اریبی اولیه خواهد بود.

تاریخچه شبکه‌های عصبی مصنوعی[ویرایش]

از قرن نوزدهم به طور همزمان اما جداگانه از سویی نوروفیزیولوژیست‌ها سعی کردند سیستم یادگیری و تجزیه و تحلیل مغز را کشف کنند، و از سوی دیگر ریاضیدانان تلاش کردند تا مدل ریاضی بسازند، که قابلیت فراگیری و تجزیه و تحلیل عمومی مسائل را دارا باشد. اولین کوشش‌ها در شبیه‌سازی با استفاده از یک مدل منطقی توسط مک کلوک و والتر پیتز انجام شد که امروزه بلوک اصلی سازنده اکثر شبکه‌های عصبی مصنوعی است. این مدل فرضیه‌هایی در مورد عملکرد نورون‌ها ارائه می‌کند. عملکرد این مدل مبتنی بر جمع ورودی‌ها و ایجاد خروجی است. چنانچه حاصل جمع ورودی‌ها از مقدار آستانه بیشتر باشد اصطلاحاً نورون برانگیخته می‌شود. نتیجه این مدل اجرای توابع ساده مثل AND و OR بود.

نه تنها نوروفیزیولوژیست‌ها بلکه روان‌شناسان و مهندسان نیز در پیشرفت شبیه‌سازی شبکه‌های عصبی تأثیر داشتند. در سال ۱۹۵۸ شبکه پرسپترون توسط روزنبلات معرفی گردید. این شبکه نظیر واحدهای مدل شده قبلی بود. پرسپترون دارای سه لایه می‌باشد، به همراه یک لایه وسط که به عنوان لایه پیوند شناخته شده‌است. این سیستم می‌تواند یاد بگیرد که به ورودی داده شده خروجی تصادفی متناظر را اعمال کند. سیستم دیگر مدل خطی تطبیقی نورون می‌باشد که در سال ۱۹۶۰ توسط ویدرو و هاف (دانشگاه استنفورد) به وجود آمد که اولین شبکه‌های عصبی به کار گرفته شده در مسائل واقعی بودند. Adalaline یک دستگاه الکترونیکی بود که از اجزای ساده‌ای تشکیل شده بود، روشی که برای آموزش استفاده می‌شد با پرسپترون فرق داشت.

در سال ۱۹۶۹ میسکی و پاپرت کتابی نوشتند که محدودیت‌های سیستم‌های تک لایه و چند لایه پرسپترون را تشریح کردند. نتیجه این کتاب پیش داوری و قطع سرمایه‌گذاری برای تحقیقات در زمینه شبیه‌سازی شبکه‌های عصبی بود. آنها با طرح اینکه طرح پرسپترون قادر به حل هیچ مسئله جالبی نمی‌باشد، تحقیقات در این زمینه را برای مدت چندین سال متوقف کردند.

با وجود اینکه اشتیاق عمومی و سرمایه‌گذاری‌های موجود به حداقل خود رسیده بود، برخی محققان تحقیقات خود را برای ساخت ماشین‌هایی که توانایی حل مسائلی از قبیل تشخیص الگو را داشته باشند، ادامه دادند. از جمله گراسبگ که شبکه‌ای تحت عنوان Avalanch را برای تشخیص صحبت پیوسته و کنترل دست ربات مطرح کرد. همچنین او با همکاری کارپنتر شبکه‌های ART را بنا نهادند که با مدل‌های طبیعی تفاوت داشت. اندرسون و کوهونن نیز از اشخاصی بودند که تکنیک‌هایی برای یادگیری ایجاد کردند. ورباس در سال ۱۹۷۴ شیوه آموزش پس انتشار خطا را ایجاد کرد که یک شبکه پرسپترون چندلایه البته با قوانین نیرومندتر آموزشی بود.

پیشرفت‌هایی که در سال ۱۹۷۰ تا ۱۹۸۰ بدست آمد برای جلب توجه به شبکه‌های عصبی بسیار مهم بود. برخی فاکتورها نیز در تشدید این مسئله دخالت داشتند، از جمله کتاب‌ها و کنفرانس‌های وسیعی که برای مردم در رشته‌های متنوع ارائه شد. امروز نیز تحولات زیادی در تکنولوژی ANN ایجاد شده‌است.

زمینه[ویرایش]

فلسفهٔ اصلی شبکهٔ عصبی مصنوعی، مدل کردن ویژگی‌های پردازشی مغز انسان برای تقریب زدن روش‌های معمول محاسباتی با روش پردازش زیستی است. به بیان دیگر، شبکهٔ عصبی مصنوعی روشی است که دانش ارتباط بین چند مجموعهٔ داده را از طریق آموزش فراگرفته و برای استفاده در موارد مشابه ذخیره می‌کند. این پردازنده از دو جهت مشابه مغز انسان عمل می‌کند:

  • یادگیری شبکهٔ عصبی از طریق آموزش صورت می‌گیرد.
  • وزن‌دهی مشابه با سیستم ذخیره‌سازی اطلاعات، در شبکهٔ عصبی مغز انسان انجام می‌گیرد.

تعریف[ویرایش]

یک شبکه عصبی مصنوعی، از سه لایهٔ ورودی، خروجی و پردازش تشکیل می‌شود. هر لایه شامل گروهی از سلول‌های عصبی (نورون) است که عموماً با کلیهٔ نورون‌های لایه‌های دیگر در ارتباط هستند، مگر این که کاربر ارتباط بین نورون‌ها را محدود کند؛ ولی نورون‌های هر لایه با سایر نورون‌های همان لایه، ارتباطی ندارند.

نورون کوچک‌ترین واحد پردازشگر اطلاعات است که اساس عملکرد شبکه‌های عصبی را تشکیل می‌دهد. یک شبکهٔ عصبی مجموعه‌ای از نورون‌هاست که با قرار گرفتن در لایه‌های مختلف، معماری خاصی را بر مبنای ارتباطات بین نورون‌ها در لایه‌های مختلف تشکیل می‌دهند. نورون می‌تواند یک تابع ریاضی غیرخطی باشد، در نتیجه یک شبکهٔ عصبی که از اجتماع این نورون‌ها تشکیل می‌شود، نیز می‌تواند یک سامانهٔ کاملاً پیچیده و غیرخطی باشد. در شبکهٔ عصبی هر نورون به طور مستقل عمل می‌کند و رفتار کلی شبکه، برآیند رفتار نورون‌های متعدد است. به عبارت دیگر، نورون‌ها در یک روند همکاری، یکدیگر را تصحیح می‌کنند.

انواع شبکه عصبی[ویرایش]

شبکه عصبی پس انتشار[ویرایش]

این شبکه مجموعه ای از نورون ها است که در لایه مختلفی پشت سر هم قرار گرفته اند. مقادیر ورودی پس از ضرب در وزن های موجود در گذر گاه های بین لایه ها به نورون بعدی رسیده و در آن جا با هم جمع می شوند و پس از عبور از تابع شبکه مربوطه خروجی نورون ها را تشکیل می دهند. در پایان خروجی به دست آمده با خروجی مورد نظر مقایسه شده و خطای به دست آمده جهت اصلاح وزن های شبکه به کار می رود ، این امر اصطلاحاً آموزش شبکه عصبی نامیده می شود.

ماشین بولتزمن[ویرایش]

شبکه عصبی بولتزمن که در اواخر صده 1900 رو به فراموشی بود پس از احیای الگوریتم همگرایی و افزایش فوق العاده سرعت آموزش، سریع به یک مدل پرمخاطب تبدیل شد، تا جایی که مدل‌های پیچیده یادگیری عمقی(عمیق) یا deep learning براساس آن ابداع شدند. شبکه عصبی بولتزمن برخلاف شبکه پس انتشار دارای یک لایه است و وزن‌های میانی دارای معنی هستند. همین ویژگی بولتزمن باعث شد که شبکه‌های عمیق به وجود آمده و بتوان بر روی وزن‌های میانی یک شبکه بولتزمن دیگر آموزش داد. اساس کار این شبکه فراگیری توزیع داده‌های ورودی و ارتباط ان با خروجی نمونه‌هاست به نحوی که نمونه‌های جدید ورودی با توزیع استخراج شده با حداقل خطا بتوانند به تولید الگوی خروجی بپردازند.

حافظه انجمنی[ویرایش]

شبکه عصبی انجمنی به منظور ذخیره داده‌ها و به خصوص تصاویر متناظر یا هم معنی با محتوا طراحی شده اند. رفتار این شبکه عصبی که با نام انگلیسی associative memory شناخته می‌شود شبیه به حافظه انسان است. شما به فوتبال فکر می‌کنید و بلافاصله پرچم تیم دلخواهتان در ذهنتان نقش می‌بندد. شبکه عصبی انجمنی به ازای یک تصویر یا ورودی نظیر صدا باید یک تصویر هم معنی یا صدا یا هر چیز دیگر را به طور کامل شبیه سازی کرده و به خروجی ببرد. ابن شبکه عصبی در کاربردهای تداعی کردن اشیا و یا شبیه سازی حافظه بسیار پرکاربرد است. در سال‌های اخیر نسخه‌های بسیار قوی و با حافظه بالا(در تئوری بی‌نهایت) نیز به اسم MBAM طراحی و ساخته شده اند.

شبکه عصبی خود سازمان‌ده[ویرایش]

شبکه عصبی انجمنی به منظور ذخیره داده‌ها و به خصوص تصاویر متناظر یا هم معنی با محتوا طراحی شده اند. رفتار این شبکه عصبی که با نام انگلیسی associative memory شناخته می‌شود شبیه به حافظه انسان است. شما به فوتبال فکر می‌کنید و بلافاصله پرچم تیم دلخواهتان در ذهنتان نقش می‌بندد. شبکه عصبی انجمنی به ازای یک تصویر یا ورودی نظیر صدا باید یک تصویر هم معنی یا صدا یا هر چیز دیگر را به طور کامل شبیه سازی کرده و به خروجی ببرد. ابن شبکه عصبی در کاربردهای تداعی کردن اشیا و یا شبیه سازی حافظه بسیار پرکاربرد است. در سال‌های اخیر نسخه‌های بسیار قوی و با حافظه بالا(در تئوری بی‌نهایت) نیز به اسم MBAM طراحی و ساخته شده اند.

جستارهای وابسته[ویرایش]

منابع[ویرایش]

پانویس[ویرایش]

نگارخانه[ویرایش]

جستارهای وابسته[ویرایش]

پیوند به بیرون[ویرایش]