شبکه عصبی چیست؟
شبکههای عصبی را میتوان با اغماض زیاد، مدلهای الکترونیکی از ساختار عصبی مغز انسان نامید. مکانیسم فراگیری و آموزش مغز اساساً بر تجربه استوار است. مدلهای الکترونیکی شبکههای عصبی طبیعی نیز بر اساس همین الگو بنا شدهاند و روش برخورد چنین مدلهایی با مسائل، با روشهای محاسباتی که بهطور معمول توسط سیستمهای کامپیوتری در پیش گرفته شدهاند، تفاوت دارد. میدانیم که حتی سادهترین مغزهای جانوری هم قادر به حل مسائلی هستند که اگر نگوییم که کامپیوترهای امروزی از حل آنها عاجز هستند، حداقل در حل آنها دچار مشکل میشوند. به عنوان مثال، مسائل مختلف شناسایی الگو، نمونهای از مواردی هستند که روشهای معمول محاسباتی برای حل آنها به نتیجه مطلوب نمیرسند. درحالیکه مغز سادهترین جانوران بهراحتی از عهده چنین مسائلی بر میآید. تصور عموم کارشناسان IT بر آن است که مدلهای جدید محاسباتی که بر اساس شبکههای عصبی بنا میشوند، جهش بعدی صنعت IT را شکل میدهند. تحقیقات در این زمینه نشان داده است که مغز، اطلاعات را همانند الگوها (pattern) ذخیره میکند. فرآیند ذخیرهسازی اطلاعات بهصورت الگو و تجزیه و تحلیل آن الگو، اساس روش نوین محاسباتی را تشکیل میدهند. این حوزه از دانش محاسباتی (computation) به هیچ وجه از روشهای برنامهنویسی سنتی استفاده نمیکند و بهجای آن از شبکههای بزرگی که بهصورت موازی آرایش شدهاند و تعلیم یافتهاند، بهره میجوید.
یک شبکه عصبی مصنوعی (Artificial Neural Network (ANN)) ایده ای است برای پردازش اطلاعات که از سیستم عصبی زیستی الهام گرفته شده و مانند مغز به پردازش اطلاعات می پردازد . عنصر کلیدی این ایده ، ساختار جدید سیستم پردازش اطلاعات است. این سیستم از شمار زیادی عناصر پردازشی فوق العاده بهم پیوسته تشکیل شده(neurons)که برای حل یک مسأله با هم هماهنگ عمل می کند.ANN ها ،نظیر انسانها ، با مثال یاد می گیرند . یک ANN برای انجام وظیفه ای مشخص ، مانند شناسایی الگو ها و دسته بندی اطلاعات ، در طول یک پروسه یاد گیری ، تنظیم می شود . در سیستم های زیستی یاد گیری با تنظیماتی در اتصالات سیناپسی که بین اعصاب قرار دارد همراه است . این روش ANN ها هم می باشد.
سابقه تاریخی
به نظر می آید شبیه سازی های شبکه عصبی یکی از پیشرفت های اخیر باشد . اگرچه این موضوع پیش از ظهور کامپیوتر ها بنیان گذاری شده و حداقل یک مانع بزرگ تاریخی و چندین دوره مختلف را پشت سر گذاشته است.
خیلی از پیشرفت های مهم با تقلید ها وشبه سازی های ساده و ارزان کامپیوتری بدست آمده است. در پی یک دوره ابتدائی اشتیاق و فعالیت در این زمینه ، یک دوره ی بی میلی و بدنامی راهم پشت سر گذاشته است . در طول این دوره سرمایه گذاری و پشتیبانی حرفه ای از این موضوع در پایین ترین حد خود بود ، پیشرفت های مهمی به نسبت تحقیقات محدود در این زمینه صورت گرفت . که بدین وسیله پیشگامان قادر شدند تا به گسترش تکنولوژی متقاعد کننده ای بپردازند که خیلی برجسته تر از محدودیت هایی بود که توسط Minsky وPapert شناسانده شد. Minsky وPapert ،کتابی را در سال 1969 منتشر کردند که در آن عقیده عمومی را جع به میزان محرومیت شبکه های عصبی را در میان محققان معین کرده بود و بدین صورت این عقیده بدون تجزیه و تحلیل های بیشتر پذیرفته شد. هم اکنون ، زمینه تحقیق شبکه های عصبی از تجدید حیات علایق و متناطر با آن افزایش سرمایه گذاری لذت می برد .
اولین سلول عصبی مصنوعی در سال 1943 بوسیله یک neurophysiologist به نلمWarren McCulloch ویک منطق دان به نام Walter Pits ساخته شد . اما محدودیتهای تکنولوژی در آن زمان اجازه کار بیشتر به آنها نداد.
شبکه های عصبی در مقابل کامپیوتر های معمولی
شبکه های عصبی نسبت به کامپیوتر های معمولی مسیر متفاوتی را برای حل مسئله طی می کنند. کامپیوتر های معمولی یک مسیر الگوریتمی را استفاده می کنند به این معنی که کامپیوتر یک مجموعه از دستور العمل ها را به قصد حل مسئله پی می گیرد. بدون اینکه، قدم های مخصوصی که کامپیوتر نیاز به طی کردن دارد، شناخته شده باشند کامپیوتر قادر به حل مسئله نیست. این حقیقت قابلیت حل مسئله ی کامپیوتر های معمولی را به مسائلی ،محدود می کند که ما قادر به درک آنها هستیم و می دانیم چگونه حل میشوند. اما اگر کامپیوتر ها می توانستند کار هایی را انجام دهند که ما دقیقا نمیدانیم چگونه انجام دهیم ، خیلی پر فایده تر بودند.
شبکه های عصبی اطلاعات را به روشی مشابه با کاری که مغز انسان انجام می دهد پردازش می کنند. آنها از تعداد زیادی از عناصر پردازشی(سلول عصبی) که فوق العاده بهم پیوسته اند تشکیل شده است که این عناصر به صورت مواز ی باهم برای حل یک مسئله مشخص کار می کنند .شبکه های عصبی با مثال کار می کنند و نمی توان آنها را برای انجام یک وظیفه خاص برنامه ریزی کرد مثال ها می بایست با دقت انتخاب شوند در غیر این صورت زمان سودمند، تلف می شود و یا حتی بدتر از این شبکه ممکن است نا درست کار کند. امتیاز شبکه عصبی این است که خودش کشف می کند که چگونه مسئله را حل کند ، عملکرد آن غیر قابل پیش گویی است.
از طرف دیگر ، کامپیوتر های معمولی از یک مسیر مشخص برای حل یک مسئله استفاده می کنند . راه حلی که مسئله از آن طریق حل می شود باید از قبل شناخته شود و به صورت دستورات کوتاه و غیر مبهمی شرح داده شود. این دستورات سپس به زبا ن های برنامه نویسی سطح بالا برگردانده می شود و بعد از آن به کدهایی که کامپیوتر قادر به درک آنها است تبدیل می شود. به طور کلی این ماشین ها قابل پیش گویی هستند و اگر چیزی به خطا انجام شود به یک اشتباه سخت افزاری یا نرم افزاری بر می گردد.
شبکه های عصبی و کامپیوتر های معمولی با هم در حال رقابت نیستند بلکه کامل کننده یکدیگرند . وظایفی وجود دارد که بیشتر مناسب روش های الگوریتمی هستند نظیر عملیات محاسباتی و وظایفی نیز وجود دارد که بیشتر مناسب شبکه های عصبی هستند . حتی فراتر از این ، مسائلی وجود دارد که نیازمند به سیستمی است که از تر کیب هر دو روش بدست می آید (بطور معمول کامپیوتر های معمولی برای نظارت بر شبکه های عصبی به کار گرفته می شوند ) به این قصد که بیشترین کارایی بدست آید.
شبکه های عصبی معجزه نمی کنند اما اگر خردمندانه به کار گرفته شوند نتایج شگفت آوری را خلق میکنند.
چرا از شبکه های عصبی استفاده می کنیم؟
شبکه های عصبی ، با قابلیت قابل توجه در استنتاج معانی از داده های پیچیده یا مبهم ، برای استخراج الگوها و شناسایی روشهایی که آگاهی از آنها برای انسان و دیگر تکنیک های کامپیوتری بسیار پیچیده و دشوار است به کار گرفته می شوند. یک شبکه عصبی تربیت یافته می تواند به عنوان یک متخصص در مقوله اطلاعاتی ای که برای تجزیه تحلیل به آن داده شده به حساب آید.از این متخصص می توان برای بر آورد وضعیت های دخواه جدید و جواب سؤال های " چه می شد اگر " استفاده کرد.
مزیتهای دیگر آن شامل موارد زیر می شود :
یادگیری انطباق پذیر: قابلیت یاد گیری نحوه انجام وظایف بر پایه اطلاعات داده شده برای تمرین وتجربه های مقدماتی .
سازماندهی توسط خود: یک ANN می تواند سازماندهی یا ارائه اش را ، برای اطلا عاتی که در طول دوره یادگیری در یافت می کند، خودش ایجاد کند.
عملکرد بهنگام(Real time ) : محاسبات ANN می تواند بصورت موازی انجام شود، و سخت افزارهای مخصوصی طراحی و ساخته شده است که می تواند از این قابلیت استفاده کند.
تحمل اشتباه بدون ایجاد وقفه در هنگام کد گذاری اطلاعات : خرابی جزئی یک شبکه منجر به تنزل کارایی متناظر با آن می شود اگر چه تعدادی از قابلیت های شبکه ممکن است حتی با خسارت بزرگی هم باقی بماند.
تفاوتهای شبکههای عصبی با روشهای محاسباتی متداول و سیستمهای خبره
گفتیم که شبکههای عصبی روش متفاوتی برای پردازش و آنالیز اطلاعات ارائه میدهند. اما نباید این گونه استنباط شود که شبکههای عصبی میتوانند برای حل تمام مسائل محاسباتی مورد استفاده واقع شوند. روشهای محاسباتی متداول همچنان برای حل گروه مشخصی از مسائل مانند امور حسابداری، انبارداری و محاسبات عددی مبتنی بر فرمولهای مشخص، بهترین گزینه محسوب میشوند. جدول 1، تفاوتهای بنیادی دو روش محاسباتی را نشان میدهد.
مشخصه
روش محاسباتی متداول
)شامل سیستمهای خبره(
شبکههای عصبی مصنوعی
روش پردازش
ترتیبی
موازی
توابع
منطقی (left brained)
estault (right brained)
روش فراگیری
به کمک قواعد (didactically)
با مثال (Socratically)
کاربرد
حسابداری، واژه پردازی، ریاضیات،
ارتباطات دیجیتال
پردازش حسگرها، تشخیص گفتار، نوشتار، الگو
تلاشهایی که برای اجرایی کردن سیستمهای خبره به کار گرفته شدهاند، با مشکلات مشترکی مواجه بودهاند. با افزایش سطح پیچیدگی سیستمها، منابع کامپیوتری مورد نیاز سیستم به شدت افزایش مییابند و سیستم با کندی بیش از حد روبرو میشود. در حقیقت تجربه نشان داده است که در وضعیت فعلی، سیستمهای خبره تنها میتوانند در مواقعی مفید واقع شوند که هدف محدود و مشخصی تعیین شده باشد.
شبکههای عصبی در مسیری گام برمیدارند که ابزارها توانایی فراگیری و برنامهریزی خود را داشته باشند. ساختارشبکههای عصبی به گونهای است که قابلیت حل مسئله را بدون کمک فرد متخصص و برنامهریزی خارجی داشته باشند. شبکههای عصبی قادر به یافتن الگوهایی در اطلاعات هستند که هیچکس، هیچگاه از وجود آنها اطلاع نداشته است.
درحالیکه سیستمهای خبره در عمل به موفقیتهای بسیاری دست یافتهاند، شبکههای عصبی در کاربردهایی همچون دید مصنوعی، تشخیص و تولید پیوسته گفتار، فراگیری ماشینی و نظایر آن با مشکلاتی روبرو بودهاند. در حال حاضر شبکههای عصبی کاملاً وابسته به سرعت پردازنده سیستم اجرا کننده هستند.
کاربردهای شبکه های عصبی :
سیستم آنالیز ریسک
کنترل هواپیما بدون خلبان
ردیابی انحراف هواپیما
شبیه سازی مسیر
سیستم راهنمایی اتوماتیک اتومبیل
سیستمهای بازرسی کیفیت
آنالیز کیفیت جوشکاری
پیش بینی کیفیت
آنالیز کیفیت کامپیوتر
آنالیز عملیاتهای آسیاب
آنالیز طراحی محصول شیمیایی
آنالیز نگهداری ماشین
پیشنهاد پروژه
مدیریت و برنامه ریزی
کنترل سیستم فرایند شیمیایی و دینامیکی
طراحی اعضای مصنوعی
بهینه سازی زمان پیوند اعضا
کاهش هزینه بیمارستان
بهبود کیفیت بیمارستان
آزمایش اتاق اورژانس
اکتشاف روغن و گاز
کنترل مسیر در دستگاههای خودکار , ربات , جراثقال
سیستمهای بصری
تشخیص صدا
اختصار سخن
کلاسه بندی صوتی
آنالیز بازار
سیستمهای مشاوره ای محاسبه هزینه موجودی
اختصار اطلاعات و تصاویر
خدمات اطلاعاتی اتوماتیک
مترجم لحظه ای زبان
سیستمهای پردازش وجه مشتری
سیستمهای تشخیص ترمز کامیون
زمانبندی وسیله نقلیه
سیستمهای مسیریابی
کلاسه بندی نمودارهای مشتری/بازار
تشخیص دارو
بازبینی امضا
تخمین ریسک وام
شناسایی طیفی
ارزیابی سرمایه
کلاسه بندی انواع سلولها , میکروبها و نمونه ها
پیش بینی فروشهای آینده
پیش بینی نیازهای محصول
پیش بینی وضعیت بازار
پیش بینی شاخصهای اقتصادی
پیش بینی ملزومات انرژی
پیش بینی واکنشهای دارویی
پیش بینی بازتاب محصولات شیمیایی
پیش بینی هوا
پیش بینی محصول
پیش بینی ریسک محیطی
پیش بینی جداول داوری
مدل کردن کنترل فرآیند
آنالیز فعالیت گارانتی
بازرسی اسناد
تشخیص هدف
تشخیص چهره
انواع جدید سنسورها
دستگاه کاشف زیر دریایی بوسیله امواج صوتی , رادار
پردازش سیگنالهای تصویری شامل مقایسه اطلاعات
پیگیری هدف
هدایت جنگ افزارها
تعیین قیمت وضعیت فعلی
جلوگیری از پارازیت
شناسایی تصویر /سیگنال
چیدمان یک مدار کامل
بینایی ماشین
مدل کردن غیر خطی
ترکیب صدا
کنترل فرآیند ساخت
آنالیز مالی
پیش بینی فرآیندهای تولید
ارزیابی بکارگیری یک سیاست
بهینه سازی محصول
تشخیص ماشین و فرآیند
مدل کردن کنترل سیستمها
مدل کردن ساختارهای شیمیایی
مدل کردن سیستمهای دینامیکی
مدل کردن سیگنال تراکم
مدل کردن قالبسازی پلاستیکی
مدیریت قراردادهای سهام
مدیریت وجوه بیمه
مدیریت سهام
تصویب چک بانکی
اکتشاف تقلب در کارت اعتباری
ثبت نسیه
بازبینی امضا از چکها
پیش بینی ارزش نسیه
مدیریت ریسک رهن
تشخیص حروف و اعداد
تشخیص بیماری
الگوریتم ژنتیک :
الگوریتم ژنتیک که بعنوان یکی از روشهای تصادفی بهینه یابی شناخته شده, توسط جان هالند در سال 1967 ابداع شده است. بعدها این روش با تلاشهای گلدبرگ 1989, مکان خویش را یافته و امروزه نیز بواسطه توانایی های خویش , جای مناسبی در میان دیگر روشها دارد. روال بهینه یابی در الگوریتم ژنتیک براساس یک روند تصادفی- هدایت شده استوار می باشد. این روش , بر مبنای نظریه تکامل تدریجی و ایده های بنیادین داروین پایه گذاری شده است.در این روش , ابتدا برای تعدادی ثابت که جمعیت نامیده می شود مجموعه ای از پارامترهای هدف بصورت اتفاقی تولید می شود , پس از اجرای برنامه شبیه ساز عددی را که معرف انحراف معیار و یا برازش آن مجموعه از اطلاعات است را به آن عضو از جمعیت مذکور نسبت می دهیم . این عمل را برای تک تک اعضای ایجاد شده تکرار می کنیم , سپس با فراخوانی عملگرهای الگوریتم ژنتیک از جمله لقاح , جهش و انتخاب نسل بعد را شکل می دهیم و این روال تا ارضای معیار همگرایی ادامه داده خواهد شد.(شکل 1)
بصورت متداول سه معیار بعنوان معیار توقف شمرده می شود:
زمان اجرای الگوریتم
تعداد نسلهایی که ایجاد می شوند
همگرایی معیار خطا