شبکه عصبی

از ویکیجو | دانشنامه آزاد پارسی
(تغییرمسیر از Neural Network)

شبکۀ عصبی (Neural Network)
در علم رایانه، شبکه‌ای از اجزاء پردازندۀ اطلاعات که اتصالات بسیار زیادی بین ‌آن‌ها برقرار است. شبکه‌های عصبی اتصالات و عملکرد مغز انسان را همانندسازی می‌کنند. یکی از مهمترین قابلیت‌های شبکه‌های عصبی توانایی آن‌ها در یادگیری از یک سری الگو‌های محدود است. تحقیقات شبکه‌های عصبی در دهه‌های ۱۹۵۰ و ۱۹۶۰ توسط دانشمندان رایانه و دانشمندان علوم ادراکی در تلاش برای مدل‌کردن درک احساسی در ارگانیسم‌های زنده، شروع شد. شبکه‌های عصبی به دو گروه عمدۀ شبکه‌های عصبی زیستی، و شبکه‌های عصبی مصنوعی تقسیم می‌شوند. شبکه‌های عصبی مصنوعی با الگوگیری از ساختار و عملکرد شبکه‌های عصبی زیستی ساخته می‌شوند. در شبکه‌های عصبی زیستی، مانند مغز انسان، سلول‌های عصبی به اسم نورون‌ها اطلاعات را پردازش می‌کنند، و بین نورون‌ها تعداد بسیار زیادی اتصال برقرار است. شبکه‌های عصبی مصنوعی هم ساختاری مشابه شبکه‌های عصبی زیستی دارند و عملکرد نورون‌های بیولوژیکی را شبیه‌سازی می‌کنند. به نورون‌های مصنوعی گره یا واحد می‌گویند. این نورون‌ها ممکن است به‌صورت مدارهای مجتمع ساده‌ای باشند که از طریق سیم‌ها به‌طور فیزیکی با هم ارتباط دارند. ولی شبکه‌های عصبی اکثراً به‌صورت نرم‌افزاری روی رایانه‌های معمولی مدل می‌شوند و ارتباط بین نورون‌ها مجازی است. به نحوۀ چیده‌شدن نورون‌ها و اتصالات بین ‌آن‌ها، معماری شبکه عصبی می‌گویند. یکی از متداول‌ترین انواع معماری در شبکه‌های عصبی از سه لایه تشکیل می‌شود: لایۀ اول که به آن لایه ورودی می‌گویند، تنها لایه‌ای است که سیگنال‌های خارجی (ورودی) به آن اعمال می‌شود. این لایه بعد از پردازش سیگنال‌ها، آن‌ها را به لایۀ بعدی، به اسم لایۀ پنهان، می‌دهد. لایۀ پنهان ویژگی‌ها یا الگوهای مناسب را در سیگنال دریافت‌شده تشخیص می‌دهد و آن‌هایی را که مهم هستند به لایۀ خروجی هدایت می‌کند. شبکه‌های عصبی پیچیده ممکن است چندین لایۀ پنهان داشته باشند. شبکه‌های عصبی در ساختار و عملکرد تفاوت‌های اساسی با رایانه‌های سنتی (مثلاً رایانه‌های شخصی) دارند. در شبکه‌های عصبی از تعداد زیادی واحد ‌پردازشگر ساده برای انجام محاسبات استفاده می‌شود، در‌حالی‌که در رایانه‌های معمولی از چند واحد پردازندۀ مرکزی پیچیده استفاده می‌شود. همچنین در شبکه‌های عصبی، حافظه به‌عنوان یک واحد متمرکز و جداگانه وجود ندارد. پردازش اطلاعات در قالب نورون‌ها و اتصالات آن‌ها در سطح شبکۀ عصبی توزیع می‌شود، و حافظه هم به‌صورت پارامتر وزن یا اهمیتی که بعضی از اتصالات دارند، در سطح شبکه توزیع می‌شود. توزیع توانایی پردازشی و حافظه در سطح شبکه‌ به این معناست که اگر آسیبی به یک قسمت شبکه برسد، لزوماً کار کل شبکه را مختل نخواهد کرد و موجب ازدست‌رفتن اطلاعات نخواهد شد. این ویژگی یکی از مهمترین قابلیت‌های شبکه‌های عصبی است. تفاوت دیگر شبکه‌های عصبی و رایانه‌های سنتی در نحوۀ برنامه‌دادن به آن‌هاست. در رایانه‌های معمولی برنامه به‌صورت مجموعه‌ای از دستورالعمل‌های متوالی به رایانه داده می‌شود، درحالی‌که شبکه‌های عصبی انجام یک عملیات را از طریق مجموعه‌ای از مثال‌های آموزشی، «فرا می‌گیرند» آموزش اولیۀ یک شبکۀ عصبی با استفاده از مجموعه‌های آموزشی (training set) انجام می‌شود که در آن آموزش‌دهنده مجموعه‌ای از الگوهای اطلاعاتی را به لایۀ ورودی یک شبکه عصبی که وزن اتصالات آن صفر و یا تصادفی است، می‌دهد. آموزش‌دهنده با تغییر‌دادن وزن اتصالات، شبکۀ عصبی را هدایت می‌کند که چطور خروجی درست را بسازد. این عمل چندین بار برای الگو‌های مختلف اطلاعات تکرار می‌شود و هربار وزن اتصالات اصلاح می‌شود. وقتی که شبکۀ عصبی بتواند بدون دخالت آموزش‌دهنده خروجی درست را تولید کند، آموزش آن کامل شده است. از آنجایی‌که شبکه‌های عصبی عملکرد مغز را همانندسازی می‌کنند، توانایی آن‌ها در کارهایی مثل تشخیص گفتار، تشخیص الگو‌ها، و تشخیص دست‌خط، که اصطلاحاً پردازش‌های حسی خوانده می‌شوند، خیلی خوب است. علاوه‌بر‌این، توانایی شبکه‌های عصبی در آموختن از طریق مجموعه‌ای از مثال‌ها و تعمیم این آموخته‌ها به شرایط جدید، آن‌ها را برای اموری که به سیستم‌های کنترلی سازگارشونده نیاز دارند، بسیار مناسب ساخته است. به‌همین سبب سازمان فضایی امریکا (ناسا) با هدف استفاده از شبکه‌های مصنوعی در کنترل ربات‌هایی که به مأموریت‌‌های فضایی می‌روند، تحقیقات زیادی را روی این حوزه انجام می‌دهد. قابلیت حفظ عملکرد در صورت بروز خرابی نیز شبکه‌های عصبی را برای سیستم‌های کنترلی، به‌خصوص در هواپیماهای جنگی، بسیار مناسب می‌سازد.