شبکه عصبی مصنوعی به زبان ساده
یک شبکه عصبی مصنوعی (Artificial Neural Network – ANN) ایده ای برای پردازش اطلاعات است که از سیستم عصبی زیستی الهام گرفته و مانند مغز به پردازش اطلاعات میپردازد. عنصر کلیدی این ایده، ساختار جدید سیستم پردازش اطلاعات است. این سیستم از شمار زیادی عناصر پردازشی فوق العاده بهم پیوسته به نام نورونها (neurons)تشکیل شده که برای حل یک مسئله با هم هماهنگ عمل میکنند.
شبکههای عصبی مصنوعی نیز مانند انسانها با مثال یاد می گیرند و یک شبکه عصبی برای انجام وظیفههای مشخص مانند شناسایی الگوها و دسته بندی اطلاعات، در طول یک پروسه یاد گیری تنظیم میشود. در سیستمهای زیستی، یاد گیری با تنظیماتی در اتصالات سیناپسی که بین اعصاب قرار دارد همراه است. از این روش در شبکههای عصبی نیز استفاده میشود.
شبکه های عصبی مصنوعی (ANN) که به اختصار به آن شبکه عصبی نیز گفته میشود، نوع خاصی از مدل یادگیری است که روش کارکرد سیناپسها در مغز انسان را تقلید میکند.
شبکه های عصبی مصنوعی با پردازش دادههای تجربی، دانش یا قانون نهفته در ورای دادهها را به ساختار شبکه منتقل میکند که به این عمل یادگیری میگویند. اصولاً توانایی یادگیری مهمترین ویژگی یک سیستم هوشمند است. سیستمی که قابلیت یادگیری داشته باشد، منعطف تر است وساده تر برنامهریزی میشود، بنابراین بهتر میتواند در مورد مسایل و معادلات جدید پاسخگو باشد.
ساختار شبکه عصبی
انسانها از زمانهای بسیار دور سعی بر آن داشتند که بیوفیزیولوژی مغز را دریابند زیرا که همواره مسئله هوشمندی انسان و قابلیت یادگیری، تعمیم، خلاقیت، انعطاف پذیری و پردازش موازی در مغز برای بشر جالب بوده و بکارگیری این قابلیتها در ماشینها بسیار مطلوب مینمود. روشهای الگوریتمیک برای پیاده سازی این خصایص در ماشینها مناسب نمیباشند، در نتیجه میبایست روشهایی مبتنی بر همان مدلهای بیولوژیکی ابداع شوند.به عبارت دیگر شبکهی عصبی یک سامانه پردازش دادهها است که از مغز انسان ایده گرفته و پردازش دادهها را به عهدهپردازندههای کوچک و بسیار زیادی میسپارد که به صورت شبکهای به هم پیوسته و موازی با یکدیگر برای حل یک مسئله رفتار میکنند. در این شبکهها به کمک دانش برنامه نویسی، ساختار دادهای طراحی میشود که میتواند همانندنورون عمل کند. به این ساختار داده گره گفته میشود.
در این ساختار با ایجاد شبکهای بین این گرهها و اعمال یک الگوریتم آموزشی به آن، شبکه را آموزش میدهند. در این حافظه یا شبکه عصبی گرهها دارای دو حالت فعال (روشن یا ۱) و غیرفعال (خاموش یا ۰) اند و هر یال (سیناپس یا ارتباط بین گرهها) دارای یک وزن میباشد. یالهای با وزن مثبت، موجب تحریک یا فعال کردن گره غیر فعال بعدی میشوند و یالهای با وزن منفی، گره متصل بعدی را غیر فعال یا مهار (در صورتی که فعال بوده باشد) میکنند.
مثالی برای شبکه عصبی
سپس خروجیها با دادههای معتبر مقایسه میگردند. مثلا فرض کنید میخواهید کامپیوتر خود را به گونهای آموزش دهید که تصویر گربه را تشخیص دهد. برای این کار میلیونها تصویر از گربههای مختلف را وارد شبکه کرده و آنهایی که از سوی سیستم به عنوان خروجی انتخاب میشوند را دریافت میکنید.
در این مرحله کاربر انسانی میتواند به سیستم بگوید که کدام یک از خروجیها دقیقا تصویر گربه هستند. بدین ترتیب مسیرهایی که به تشخیص موارد درست منجر شده، از طرف شبکه تقویت خواهند شد. با تکرار این فرایند در دفعات زیاد، شبکه نهایتا قادر است به دقت بسیار خوبی در اجرای وظیفه موردنظر دست یابد.
البته شبکههای عصبی را نمیتوان پاسخ تمام مسائل محاسباتی پیش روی انسان دانست، اما در مواجهه با دادههای پیچیده، بهترین گزینه به شمار میروند.
اخیرا گوگل و مایکروسافت هر دو اعلام کردند یادگیری مبتنی بر شبکه های عصبی را به نرمافزارهای مترجمشان افزودهاند.
گوگل و مایکروسافت از شبکههای عصبی برای تقویت اپلیکیشنهای ترجمه خود بهره گرفتهاند و به نتایج بسیار خوبی دست یافتهاند، زیرا عمل ترجمه از جمله فرایندهای بسیار پیچیده محسوب میگردد.
بدین ترتیب با استفاده از قابلیت یادگیری شبکههای عصبی، سیستم ترجمه میتواند ترجمههای صحیح را برای یادگیری به کار گرفته و به مرور زمان به دقت بیشتری دست یابد.
چنین وضعیتی در تشخیص گفتار نیز به وجود آمد. پس از افزودن یادگیری با شبکههای عصبی در Google Voice نرخ خطای این برنامه تا ۴۹% کاهش یافت. البته این قابلیت هیچوقت بدون نقص نخواهد بود، اما به مرور زمان شاهد پیشرفت آن هستیم.
شبکههای عصبی در مقابل کامپیوتر های معمولی
شبکههای عصبی نسبت به کامپیوترهای معمولی مسیر متفاوتی را برای حل مسئله طی میکنند. کامپیوترهای معمولی یکمسیر الگوریتمی را استفاده میکنند به این معنی که کامپیوتر یک مجموعه از دستورالعملها را به قصد حل مسئله پی میگیرد. اگر قدمهای خاصی که کامپیوتر باید بردارد، شناخته شده نباشند، کامپیوتر قادر به حل مسئله نخواهد بود. این حقیقت قابلیت حل مسئلهی کامپیوترهای معمولی را به مسائلی محدود میکند که ما قادر به درک آنها هستیم و می دانیم چگونه حل میشوند.
از طرف دیگر، کامپیوترهای معمولی از یک مسیر مشخص برای حل یک مسئله استفاده میکنند. راه حلی که مسئله از آن طریق حل میشود باید از قبل شناخته شده و به صورت دستورات کوتاه و غیر مبهمی شرح داده شده باشد. این دستورات به زبانهای برنامه نویسی سطح بالا برگردانده شده و سپس به کدهایی قابل درک و پردازش برای کامپیوترها تبدیل میشوند.
شبکههای عصبی اطلاعات را به روشی مشابه با کاری که مغز انسان انجام میدهد پردازش میکنند. آنها از تعداد زیادی ازعناصر پردازشی (سلول عصبی) که فوق العاده بهم پیوستهاند تشکیل شده است که این عناصر به صورت موازی باهم برای حل یک مسئله مشخص کار میکنند. شبکههای عصبی با مثال کار میکنند و نمیتوان آنها را برای انجام یک وظیفه خاص برنامه ریزی کرد. مثالها میبایست با دقت انتخاب شوند در غیر این صورت باعث اتلاف وقت و هزینه میشود و حتی بدتر از آن، ممکن است شبکه درست کار نکند.
امتیاز شبکه عصبی در آن است که چگونگی حل مسئله را خودش کشف میکند!
شبکههای عصبی و کامپیوترهای معمولی با هم در حال رقابت نیستند بلکه کامل کننده یکدیگرند. انجام بعضی وظایف مانند عملیاتهای محاسباتی بیشتر مناسب روشهای الگوریتمی است. همچنین انجام برخی دیگر از وظایف که بهیادگیری و آزمون و خطا نیاز دارند را بهتر است به شبکههای عصبی بسپاریم. فراتر که میرویم، مسائلی وجود دارد که به سیستمی ترکیبی از روش های الگوریتمی و شبکههای عصبی برای حل آنها مورد نیاز است (بطور معمول کامپیوتر های معمولی برای نظارت بر شبکههای عصبی به کار گرفته میشوند ) به این منظور که بیشترین کارایی بدست آید.
مزیتهای شبکه عصبی
شبکه عصبی با قابلیت قابل توجه آنها در جست و جو معانی از دادههای پیچیده یا مبهم، میتواند برای استخراج الگوها و شناسایی روشهایی که آگاهی از آنها برای انسان و دیگر تکنیکهای کامپیوتری بسیار پیچیده و دشوار است به کار گرفته شود. یک شبکه عصبی تربیت یافته میتواند به عنوان یک متخصص در مقوله اطلاعاتی که برای تجزیه تحلیل به آن داده شده به حساب آید.
شبکههای عصبی معجزه نمیکنند اما اگر خردمندانه به کار گرفته شوند نتایج شگفت آوری خلق میکنند.
مزیتهای دیگر شبکه های عصبی
یادگیری انطباق پذیر (Adaptive Learning)
یادگیری انطباق پذیر، قابلیت یادگیری و نحوه انجام وظایف بر پایه اطلاعات داده شده برای تمرین و تجربههای مقدماتی.
سازماندهی توسط خود (Self Organization)
سازماندهی توسط خود یعنی یک شبکه هوش مصنوعی سازماندهی یا ارائهاش را برای اطلاعاتی که در طول دوره یادگیری دریافت میکند، خودش ایجاد کند.
عملکرد بهنگام (Real Time Operation)
در عملکرد بهنگام محاسبات شبکه هوش مصنوعی میتواند بصورت موازی انجام شود و سخت افزارهای مخصوصی طراحی و ساخته شده که میتواند از این قابلیت استفاده کنند.
تحمل اشتباه بدون ایجاد وقفه در هنگام کد گذاری اطلاعات
خرابی جزئی یک شبکه منجر به تنزل کارایی متناظر با آن میشود، اگر چه تعدادی از قابلیتهای شبکه حتی با خسارت بزرگی هم به کار خود ادامه میدهند.
انواع شبکه عصبی مصنوعی
شبکههای پیش خور (FeedForward Neural Network)
شبکههای پیش خور، شبکههایی هستند که مسیر پاسخ در آنها همواره رو به جلو پردازش شده و به نرونهای لایههای قبل خود باز نمیگردد. در این نوع شبکه به سیگنالها تنها اجازه عبور از مسیر یکطرفه (از ورودی تا خروجی) داده میشود. بنابراین بازخورد یا فیدبک وجود ندارد به این معنی که خروجی هر لایه تنها بر لایه بعد اثر میگذارد و در لایهی خودش تغییری ایجاد نمیکند.
- ۹۶/۱۰/۱۵