شبکه های عصبی مصنوعی
فهرست مطالب
فصل اول
مقدمه…………………………………………………………………………………………………………………………………7
هوش مصنوعی………………………………………………………………………………………………………………….7
به سوی آینده…………………………………………………………………………………………………………………….8
تاریخچه…………………………………………………………………………………………………………………………….9
تعریف………………………………………………………………………………………………………………………………..9
تاریخچه و تعاریف سیستم های خبره……………………………………………………………………………….13
بعضی از تعاریف سیستم های خبره………………………………………………………………………………..14
تاریخچه سیستم های خبره………………………………………………………………………………………………14
الگوریتم ژنتیک…………………………………………………………………………………………………………………16
تابع سازگاری(FitnessFunction)………………………………………………………………………………20
Mutation(جهش ژنتیکی)………………………………………………………………………………………………21
مقدمه ای بر سیستم های فازی وکنترل فازی…………………………………………………………………..25
سیستم های فازی چگونه سیستم هایی هستند؟…………………………………………………………………..26
سیستم های فازی کجا و چگونه استفاده می شوند؟…………………………………………………………….27
زمینه های تحقیق عمده در تئوری فازی……………………………………………………………………………..27
تاریخچه مختصری از تئوری و کاربردهای فازی………………………………………………………………28
فصل دوم
شبکه های عصبی……………………………………………………………………………………………………………32
مقدمه…………………………………………………………………………………………………………………………….. 32
ساختار مغز…………………………………………………………………………………………………………………….33
ساختار نرون…………………………………………………………………………………………………………………34
چگونه مغز انسان می آموزد ؟………………………………………………………………………………………..37
معنای شبکه های عصبی…………………………………………………………………………………………………38
قوانین هب………………………………………………………………………………………………………………………40
از سلول های عصبی انسانی تا سلول های عصبی مصنوعی………………………………………….41
رویای جایگزینی ویژگی های مغز در یک سیستم مصنوعی چقدر ممکن گردیده؟…………………………….41
تاریخچه شبکه های عصبی………………………………………………………………………………………………42
چرا از شبکه های عصبی استفاده می کنیم؟…………………………………………………………………….44
شبکه های عصبی در مقابل کامپیوتر های معمولی…………………………………………………………..46
مزایا و محدودیت های شبکه عصبی………………………………………………………………………………..45
چه کسانی به شبکه عصبی علاقه مند هستند؟……………………………………………………………………45
نرمافزارها و سخت افزارهای شبکههای عصبی………………………………………………………………..47
کاربرد شبکه های عصبی…………………………………………………………………………………………………49
یکپارچگی منطق فازی و شبکه های عصبی………………………………………………………………………52
مدل ریاضی یک نرون……………………………………………………………………………………………………. 55
یک نرون ساده…………………………………………………………………………………………………………………56
قوانین برانگیختگی……………………………………………………………………………………………………………57
یک نرون پیچیده تر………………………………………………………………………………………………………..59
ساختار شبکه های عصبی……………………………………………………………………………………………..60
مراحل طراحی شبکه………………………………………………………………………………………………………..61
اهداف شبکه های عصبی………………………………………………………………………………………………..62
تقسیم بندی شبکه های عصبی…………………………………………………………………………………………63
انواع یادگیری برای شبکه های عصبی……………………………………………………………………………..65
توپولوژی شبکه های عصبی…………………………………………………………………………………………67
شبکههای پیشخور (Feed Forward)………………………………………………………………………….67
شبکههای برگشتی(Recurrent)……………………………………………………………………………………67
پرسپترون چند لایه………………………………………………………………………………………………………….68
Perceptronهای ساده………………………………………………………………………………………………….69
قدرت Perceptron……………………………………………………………………………………………………….69
دنباله های Perceptron………………………………………………………………………………………………..70
آموزش پر سپترون………………………………………………………………………………………………………..72
الگوریتم یادگیری پرسپترون………………………………………………………………………………………..72
قانون پرسپترون……………………………………………………………………………………………………………..72
قانون دلتا………………………………………………………………………………………………………………………..73
روشهای دیگر…………………………………………………………………………………………………………………73
شبکه های هاپفید……………………………………………………………………………………………………………74
شبکه های دارای پس خور………………………………………………………………………………………………..76
شبکه عصبی ترکیبی المن- جردن…………………………………………………………………………………..81
پس انتشار خطا………………………………………………………………………………………………………………85
چند بررسی از کاربرد های شبکه های عصبی………………………………………………………………..87
فصل سوم
نتیجه گیری……………………………………………………………………………………………………………………110
منابع وماخذ…………………………………………………………………………………………………………………112
فصل اول
مقدمه
هوش محاسباتی یا (Computational-Intelligence) CI به معنای استخراج هوش، دانش، الگوریتم یا نگاشت از دل محاسبات عددی براساس ارائه به روز داده های عددی است. سیستم هایCI در اصل سیستم های دینامیکی مدل آزاد (Model-free) را برای تقریب توابع و نگاشتها ارائه می کند. در کنار این ویژگی بسیار مهم باید از ویژگی مهم دیگری در ارتباط با خصوصیات محاسباتی سیستم های CI نام برد، که در آن دقت، وجه المصالحه مقاوم بودن، منعطف بودن و سهولت پیاده سازی قرار می گیرد.
مولفه های مهم و اساسی CI ، شبکه های عصبی )محاسبات نورونی(، منطق فازی) محاسبات تقریبی( و الگوریتم ژنتیک) محاسبات ژنتیکی(است، که هر یک به نوعی مغز را الگو قرار داده اند. شبکه های عصبی ارتباطات سیناپسی و ساختار نورونی، منطق فازی استنتاجات تقریبی و محاسبات ژنتیکی محاسبات موتاسیونی مغز را مدل می کنند.
هوش مصنوعی
در شبکه ارتباطی مغز انسانها سیگنالهای ارتباطی به صورت پالسهای الکتریکی هستند.جزء اصلی مغز نرون است که از یک ساختمان سلولی و مجموعه ای از شیارها و خطوط تشکیل شده و شیارها محل ورود اطلاعات به نرون هستند وخطوط محل خروج اطلاعات از نرون اند . نقطه اتصال یک نرون به نرون دیگر را سیناپس می نامند که مانند دروازه یا کلید عمل می کنند. اگر واکنشهایی که میلیونها نرون مختلف به پالسهای متفاوت نشان میدهند با یکدیگر هماهنگ باشند ممکن است پدیده های مهمی در مغز رخ دهد.
آن دسته از پژوهشگران هوش مصنوعی که رویکرد مدل مغزی را دنبال می کنند گونه ای از مدارهای الکتریکی را طراحی کرده اند که تا حدی شبکه مغز را شبیه سازی میکند در این روش هر گره (نرون)به تنهایی یک پردازنده است ولی رایانه های معمولی حداکثر چند cpuدارند هدف عمده کامپیوتر شبکه عصبی این است که مکانیسمی طراحی کند که همانند مغز انسان بازخورد مثبت یاد بگیرد پاسخهای درست و نادرست کدامند.
سیستم شبکه عصبی این کار را از طریق ارزشگذاری کمی برای ارتباطات سیگنالها بین نرونها انجام میدهد مکانیسم ارزشگذاری توسط مقاومتها با تقویت یا تضعیف پالسها انجام میشود.چون شبکه های عصبی میلیونها نرون دارند خرابی تعدادی از آنها تاثیر چندانی برعملکرد سیستم نمی گذارد تا کنون چند سیستم آزمایشی با استفاده از این اصول طراحی و ساخته شده اند مثلاًدر بررسی های زیست محیطی، شبکه های عصبی برای جمع آوری و تحلیل اطلاعاتی که از راه دور حس شده اند مورد استفاده قرار می گیرند اطلاعاتی که اغلب سفینه ها مخابره می کنند بسیار حجیم است.شبکه های عصبی این اطلاعات را به راحتی دسته بندی کرده وپس از جمع آوری اطلاعات ذهنی و تجسمی نتایج جالبی به دست می آورند (مثلاًتشخیص انواع خاصی از ابرها) البته این فرایند با آنچه سیستم های خبره انجام می دهند متفاوت است زیرا این سیستم ها ابزارهای تصمیم سازی هستند و می توانند حجم زیادی از اطلاعات را به سرعت تحلیل کنند شبکه های عصبی برای مدل سازی فرایندهای فکری-مغزی که زمینه ی دیگری برای مطالعات حساس به اطلاعات و پیچیدگی است مورد استفاده قرار گرفته است .
به سوی آینده
هوش مصنوعی هنوز راه درازی در پیش دارد؛شبکه سازی عصبی (که با اغماض ارتباط گرایی هم نامیده می شود)در سالهای اخیر تغییرات عمده ای را شاهد بوده است .به عنوان نمونه برخی پژوهشگران پیش بینی میکنند به کمک تکنولوژی نرم افزاری جدید شبکه های عصبی با کامپیوترهای شخصی ترتیب داده خواهند شد و پیش بینی بازار سهام را ممکن خواهند کرد افرادی که درباره ی هوش مصنوعی وتوانایی های آن مرددند اظهار می دارند اگر هوش مصنوعی محقق شود ناچار است از دنیای منطقی،قانونمند ونمادین کامپیوترهای دیجیتال خارج شوند و به دنیای مبهم (حاصل از منطق فازی)شبکه های عصبی که مبتنی بر سیستم گسترده ی یاد گیری بازخوردی هستند پا بگذارد .
امروزه نگرش تازه ای نسبت به هوش مصنوعی ایجاد شده است که در بسیاری از آزمایشگاهها تحت بررسی است :دانشمندان سعی می کنند دریابند آیا مجموعه ای از روباتهای نیمه هوشمندمی توان یک هوش جمعی ایجاد کنند به گونه ای که از اعضای تشکیل دهنده اش باهوش تر باشد.
هوش مصنوعی (artificial intelligence) را باید عرصهٔ پهناور تلاقی و ملاقات بسیاری از دانشها، علوم، و فنون قدیم و جدید دانست. ریشه ها و ایده های اصلی آن را باید در فلسفه، زبان شناسی، ریاضیات، روان شناسی، نورولوژی، و فیزیولوژی نشان گرفت و شاخه ها، فروع، و کاربردهای گونه گونه و فراوان آن را در علوم رایانه، علوم مهندسی، علوم زیست شناسی و پزشکی، علوم ارتباطات و زمینه های بسیار دیگر.
این شاخه از علوم بسیار گسترده و متنوع است و از موضوعات و رشته های مختلف علوم و فناوری، مانند سازوکارهای ساده در ماشینها شروع شده، و به سیستمای خبره ختم می شود. هدف هوش مصنوعی بطور کلی ساخت ماشینی است که بتواند "فکر" کند. اما برای دسته بندی و تعریف ماشینهای متفکر، می بایست به تعریف "هوش" پرداخت. همچنین به تعاریفی برای "آگاهی" و "درک " نیز نیازمندیم و در نهایت به معیاری برای سنجش هوش یک ماشین نیازمندیم.
تاریخچه
نام هوش مصنوعی در سال ۱۹۶۵ میلادی به عنوان یک دانش جدید ابداع گردید. البته فعالیت درزمینه این علم از سال ۱۹۶۰ میلادی شروع شده بود
تعریف
هنوز تعریف دقیقی که مورد قبول همه دانشمندان این علم باشد برای هوش مصنوعی ارائه شده است.اما اکثر تعریف هایی که در این زمینه ارایه شده اند بر پایه یکی از ۴ باور زیر قرار می گیرند:
1. سیستم هایی که به طور منطقی فکر می کنند .
2. سیستم هایی که به طور منطقی عمل می کنند .
3. سیستم هایی که مانند انسان فکر می کنند.
4. سیستم هایی که مانند انسان عمل می کنند.
شاید بتوان هوش مصنوعی را این گونه توصیف کرد:"هوش مصنوعی عبارت است از مطالعه این که چگونه کامپیوترها را می توان وادار به کارهایی کرد که در حال حاضر انسان ها آنها رابهتر انجام می دهند"
به یاری پژوهش های گسترده دانشمندان علوم مرتبط، هوش مصنوعی از آغاز پیدایش تاکنون راه بسیاری پیموده است. در این راستا، تحقیقاتی که بر روی توانایی آموختن زبانها انجام گرفت و همچنین درک عمیق از احساسات، دانشمندان را در پیشبرد این علم، یاری کرده است. یکی از اهداف متخصصین، تولید ماشینهایی است که دارای احساسات بوده و دست کم نسبت به وجود خود و احساسات خود آگاه باشند. این ماشین باید توانایی تعمیم تجربیات قدیمی خود در شرایط مشابه جدید را داشته و به این ترتیب اقدام به گسترش دامنه دانش و تجربیاتش کند.
برای نمونه به رباتی هوشمند بیاندیشید که بتواند اعضای بدن خود را به حرکت درآورد، او نسبت به این حرکت خود آگاه بوده و با سعی و خطا، دامنه حرکت خود را گسترش می دهد، و با هر حرکت موفقیت آمیز یا اشتباه، دامنه تجربیات خود را وسعت بخشیده و سر انجام راه رفته و یا حتی می دود و یا به روشی برای جابجا شدن، دست می یابد، که سازندگانش، برای او، متصور نبوده اند.
هر چند مثال ما در تولید ماشینهای هوشمند، کمی آرمانی است، ولی به هیچ عنوان دور از دسترس نیست. دانشمندان، عموما برای تولید چنین ماشینهایی، از تنها مدلی که در طبیعت وجود دارد، یعنی توانایی یادگیری در موجودات زنده بخصوص انسان، بهره می برند.
آنها بدنبال ساخت ماشینی مقلد هستند، که بتواند با شبیه سازی رفتارهای میلیونها یاخته مغز انسان، همچون یک موجود متفکر به اندیشیدن بپردازد.
مباحث هوش مصنوعی پیش از بوجود آمدن علوم الکترونیک، توسط فلاسفه و ریاضی دانانی نظیر بول (Boole) که اقدام به ارائه قوانین و نظریه هایی در باب منطق نمودند، مطرح شده بود. در سال ۱۹۴۳، با اختراع رایانه های الکترونیکی، هوش مصنوعی، دانشمندان را به چالشی بزرگ فراخواند. بنظر می رسید، فناوری در نهایت قادر به شبیه سازی رفتارهای هوشمندانه خواهد بود.
با وجود مخالفت گروهی از متفکرین با هوش مصنوعی که با دیده تردید به کارآمدی آن می نگریستند تنها پس از چهار دهه، شاهد تولد ماشینهای شطرنج باز و دیگر سامانه های هوشمند در صنایع گوناگون هستیم.
هوش مصنوعی که همواره هدف نهایی دانش رایانه بوده است، اکنون در خدمت توسعه علوم رایانه نیز می باشد. زبانهای برنامه نویسی پیشرفته، که توسعه ابزارهای هوشمند را ممکن می سازند، پایگاههای داده ای پیشرفته، موتورهای جستجو، و بسیاری نرم افزارها و ماشینها از نتایج پژوهش های هوش مصنوعی بهره می برند.
در سال ۱۹۵۰ آلن تورینگ) َAlain (Turing، ریاضی دان انگلیسی، معیار سنجش رفتار یک ماشین هوشمند را چنین بیان داشت: "سزاوارترین معیار برای هوشمند شمردن یک ماشین، اینست که آن ماشین بتواند انسانی را( و حتی یک محقق) توسط یک پایانه (تله تایپ) به گونه ای بفریبد که آن فرد ( و حتی یک محقق) متقاعد گردد با یک انسان روبروست."
در این آزمایش شخصی از طریق ۲ عدد پایانه (رایانه یا تله تایپ) که امکان برقراری ارتباط و گپ زنی را برای وی فراهم می کنند با یک انسان و یک ماشین هوشمند، بطور همزمان به پرسش و پاسخ می پردازد. در صورتی که وی نتواند ماشین را از انسان تشخیص دهد، آن ماشین، هوشمند است. خلاصه ابنکه مورد تحقیق قرار گیرد و محقق نتواند دریابد در آن طرف انسان قرار دارد یا کامپیوتر.
آزمایش تورینگ از قرار دادن انسان و ماشین بطور مستقیم در برابر یکدیگر اجتناب می کند و بدین ترتیب، چهره و فیریک انسانی مد نظر آزمایش کنندگان نمی باشد. ماشینی که بتواند از پس آزمون تورینگ برآید، از تفکری انسانی برخوردار است.
آزمایش تورینگ مدل سازی نحوه تفکر انسان، تنها راه تولید ماشینهای هوشمند نیست. هم اکنون دو هدف برای تولید ماشینهای هوشمند، متصور است، که تنها یکی از آن دو از الگوی انسانی جهت فکر کردن بهره می برد:
* سیستمی که مانند انسان فکر کند. این سیستم با مدل کردن مغز انسان و نحوه اندیشیدن انسان تولید خواهد شد و لذا از آزمون تورینگ سر بلند بیرون می آید. از این سیستم ممکن است اعمال انسانی سر بزند.
* سیستمی که عاقلانه فکر کند. سامانه ای عاقل است که بتواند کارها را درست انجام دهد. در تولید این سیستمها نحوه اندیشیدن انسان مد نظر نیست. این سیستمها متکی به قوانین و منطقی هستند که پایه تفکر آنها را تشکیل داده و آنها را قادر به استنتاج و تصمیم گیری می نماید. آنها با وجودی که مانند انسان نمی اندیشند، تصمیماتی عاقلانه گرفته و اشتباه نمی کنند. این ماشینها لزوما درکی از احساسات ندارند. هم اکنون از این سیستمها در تولید عامل ها در نرم افزارهای رایانه ای، بهره گیری می شود. عامل تنها مشاهده کرده و سپس عمل می کند.
Agent قادر به شناسایی الگوها، و تصمیم گیری بر اساس قوانین فکر کردن خود است. قوانین و چگونگی فکر کردن هر Agent در راستای دستیابی به هدفش، تعریف می شود. این سیستمها بر اساس قوانین خاص خود فکر کرده و کار خودرا به درستی انجام می دهند. پس عاقلانه رفتار می کنند، هر چند الزاما مانند انسان فکر نمی کنند.
با وجودی که برآورده سازی نیازهای صنایع نظامی، مهمترین عامل توسعه و رشد هوش مصنوعی بوده است، هم اکنون از فراورده های این شاخه از علوم در صنایع پزشکی، رباتیک، پیش بینی وضع هوا، نقشه برداری و شناسایی عوارض، تشخیص صدا، تشخیص گفتار و دست خط و بازی ها و نرم افزارهای رایانه ای استفاده می شود.
حال در اینجا برای آشنایی، مطالبی در مورد سیستم های خبره،الگوریتم ژنتیک ومنطق فازی مطرح می کنیم وسپس به بررسی شبکه های عصبی می پردازیم.
تاریخچه و تعاریف سیستم های خبره
ریشه اصلی سیستم های خبره یا سیستم های مبتنی بر دانش (KBS) به حوزه مطالعاتی به نام هوش مصنوعی (AI) برمیگردد وسیستم های خبره موجودیت خود را مدیون هوش مصنوعی هستند یکی از بزرگان هوش مصنوعی- ماروین مینسکی- آن را چنین تعریف می کند:
"هوش مصنوعی ،حوزه مطالعاتی است که سعی در ایجاد سیستم هایی دارد که به نظر افراد هوشمند هستند."
سیستم مبتنی بردانش (knowledge base system ) شامل عملگرهایی است که مشخص می کنند چطور یک سیستم از یک وضعیت می تواند به وضعیت بعد ونهایتاً بسوی وضعیت هدف پیش رود . در این راستا برای ایجاد یک برنامه هوشمند ، آن برنامه باید با کیفیت بالا به نحوی که دانش خاص در حوزه آن مساله ومرتبط با آن باشد طراحی گردد.
یکی از پر استفاده ترین برنامه های کاربردی هوش مصنوعی، سیستمهای خبره میباشد. یک KBIS یک پایگاه دانش را به اجزای اصلی شناخته شده در انواع دیگر سیستمهای اطلاعاتی کامپیوتری اضافه میکند. یک ES یک سیستم اطلاعاتی مبتنی بر دانش(KBIS) است که دانش خود را در یک حوزه کاربردی پیچیده و خاص بکار میبرد و به عنوان یک مشاور متخصص برای کاربر نهایی عمل میکند. سیستمهای خبره به سوالاتی در زمینه مشکلات و مسائل خاص بوسیله استنباطی نظیر استنباط انسان در حوزه دانشی که در آن متخصص است، جواب میدهد. سیستمهای خبره باید قادر باشند که فرایند استدلال و نتیجه گیری خود را برای کاربر نهایی توضیح دهند.( O`Brien, 2000 ).
زمانی که سازمان با مشکلات پیچیده مواجه است، غالبا از خبره ها برای مشاوره استفاده میکند. این خبره ها ، دانشی خاص و تجربه ای خاص در یک حوزه خاص دارند . آنها گزینه ها ، میزان شانس موفقیت، و منافع و مضار تجاری را می شناسند . سازمانها افراد خبره را برای موقعیتهای غیر ساختارمند جمع میکنند. در واقع سیستم خبره سعی دارد تا از متخصصین انسانی تقلید کند . نوعا سیستم خبره عبارت است از یک پکیج نرم افزاری برای تصمیم گیری که میتواند به سطح یک متخصص (حتی جلوتر) در حل مسایل در حوزه خاص برسد(.Turban, 2000)
سیستم خبره یک برنامه کامپیوتری مبتنی بر دانش است که تخصص انسانی را در حوزه ای محدود کسب میکند.(Lauden & Lauden,2000 ).
بعضی از تعاریف سیستم های خبره
سیستم خبره یک سیستم رایانه ای است که با استفاده از دانش،حقایق وروش های استدلالی ، مسائلی را حل می کند که نیاز به توانایی افراد خبره دارند.
یک سیستم خبره یک سیستم رایانه ای است که توانایی تصمیم گیری یک فرد خبره را "تقلید" میکند. اصطلاح تقلید یعنی انجام کارهایی که یک فرد خبره انجام میدهد واین امر با شبیه سازی اعمال یک خبره تفاوت زیادی دارد.
سیستم خبره یک برنامه هوش مصنوعی است که برای حل مسائل ومشکلات مربوط به یک حوزه خاص تهیه شده باشد.
سیستم خبره یک برنامه رایانه ای است که بااستفاده از دانش و رویه ها در حل مسائل مشکل ، همانند یک انسان متخصص وخبره عمل میکند.
تاریخچه سیستم های خبره
بعد از سال های 1950 میلادی ، محققین هوش مصنوعی سعی نمودند روش هایی برای حل مسئله بر اساس استدلال های بشر،ارائه نمایند . چنین پروژه ای در سال 1976به وسیله نوول و سایمون توسعه یافت که به عنوان الگوریتم های حل مسائل عمومی یا GPS شناخته شد.
یکی از کمبودهای راه حل مسائل عمومی این بود که اندازه مسئله بزرگ شد . بنابراین فضای جستجو به وجود آمده به طور قابل توجهی رشد کرد بنابراین تنها با ساخت برنامه هایی که کمتر عمومی هستند و تمرکز روی دانش خاص مسئله ، می توانیم این قبیل فضای جستجو را کاهش دهیم .
از این رو یک عرصه جدید برای تحقیق در سال 1970پدیدار شد و واترمن(1986)یک برنامه هوشمند به عالیترین کیفیت و دانش مشخص در دامنه مسئله ایجاد نمود که لنات و گودها بعداً در سال 1991 آن را اصل دانش نامیدند . آن ها این مسئله را به شرح زیر بیان کردند: اگر برنامه ای کار پیچیده ای را به خوبی اجرا کند،آن برنامه می بایست راجع به محیطی که در آن عمل می کند ، دانسته هایی داشته باشد . نبود دانش،همه آنچه که مشخص می شود بر اساس جستجو و استدلال است که کافی نیست. از زمانیکه اولین محصول پایگاه دانش پدیدار شد ، یک شاخص در محدوده های زندگی واقعی به حساب می آمد . مانند تشخیص بیماری های عفونی و یا پیشگویی ذخایر معدنی در مناطق جغرافیایی مختلف دنیا ، این تاریخچه ای از آزمایش بر روی مسائل زندگی واقعی بود تا بفهمیم که آیا تصورات با سعی و تلاش قابل دسترس هستند یا خیر؟
سیستم DENDRAL اولین سیستم در این دسته بود که ساخته شد . کار روی این سیستم در سال 1965 میلادی با مدیریت ادوارد فیگن باوم شروع شد.این سیستم به این دلیل به کار گرفته شد تا ساختارهای شیمیایی ذرات ناشناخته را معین کند.این سیستم ها برای حل مسائلی به کار برده شدند که نیاز به سرویس دهی یک خبره داشتند بنابراین به عنوان سیستم های خبره شناخته شدند.همچنین این سیستم ها به عنوان سیستم های مبتنی بر دانش یا سیستم های دانش، شناخته می شوند.
الگوریتم ژنتیک
همانطور که میدانید، یکی از زیر شاخه های Soft computing، الگوریتم ژنتیک (GA) است که تکامل طبیعی موجودات را الگو قرار می دهد. Genetic algorithm مانند دیگر شاخه های Soft computing ریشه در طبیعت دارد. این روش تقلیدی از فرایند تکامل با استفاده از الگوریتم های کامپیوتری است. اساسی ترین اصل تکامل، وراثت است. هر نسل، خصوصیات نسل قبلی را به ارث می برد و به نسل بعد انتقال می دهد. این انتقال خصوصیات از نسلی به نسل بعد توسط ژنها صورت می گیرد. درطبیعت، فرایند تکامل زمانی اتفاق می افتد که شرایط زیر موجود باشد:
An entity has the ability to reproduce 1.
There is a population of such self- reprodcing entities 2.
3.There is some variety among Self-reproducing entities
جهانی که در آن زندگی می کنیم دائماً در حال تغییر است. برای بقا در این سیستم پویا، افراد باید توانایی داشته باشند که خود را با محیط، سازگار کنند. Fitness یا سازگاری یک موجود زنده به عنوان درجه ی سازگاری آن با محیط تعریف می شود.
Fitness یک موجود تعیین می کند که آن موجود چه مقدار زنده خواهد ماند و چقدر شانس دارد تا ژن های خود را به نسل بعد انتقال دهد. در تکامل بیولوژیکی، فقط برنده ها هستند که می توانند در فرایند تکامل شرکت کنند. خصوصیات هرموجود زنده، در ژن هایش، کدگذاری شده است و طی فرایند وراثت، این ژن ها به فرزندان (یا همان offspring) منتقل می شوند. یک مثال جالب در نظریه ی تکامل، تکامل تدریجی زرافه ها در طول تاریخ می باشد. میلیونها سال پیش، زرافه های ابتدایی قد نسبتاً کوتاهی داشتند؛ همانطور که می دانیم غذای زرافه ها برگ درختان است. زرافه هایی که قد کوتاهتری داشتند غذای کمتری بدست می آورند. از این رو به مرور توانایی بقا و تولید مثل خود را از دست دادند و نتوانستند ژنهای خود را به نسل های بعدی منتقل کنند. در عوض زرافه های بلندتر، بقا یافتند و توانستند ژنهای خود را در طول فرایند تولید مثل به نسل های بعد منتقل کنند. بنابراین زرافه های هر نسل، از نسل قبل بلندتر شدند. با تقلید از فرایند تکامل طبیعی با استفاده از الگوریتم های کامپیوتری، محققین توانستند از توانایی بالای فرایند تکامل در حل مسائل، الگو برداری کنند. بهترین این روشها، ژنتیک الگوریتم (Genetic Algorithm) است.
الگوریتم ژنتیک، روشی برای حل مسائل بهینه سازی است. الگوریتم ژنتیک (GA) ابتدا یک جمعیت اولیه از جوابها را به صورت تصادفی در نظر می گیرد و مرتباً جمعیت جوابها را اصلاح می کند و در هر مرحله ما جوابهای بهتری نسبت به مرحله ی قبل داریم. با گذشت نسل های متمادی، جمعیت جوابها به سمت یک جواب بهینه میل می کند.
Genetic Algorithm در حالت کلی از ساختار زیر پیروی می کند:
1ـ یک جمیعت اولیه (یا همان initial population) از جوابها به صورت تصادفی (random) انتخاب می شوند.
2ـ برای هریک از جوابها، یک تابع سازگاری (Fitness function) تعریف می شود.
3ـ نسل بعدی از جوابها با روش های خاص پدید می آید که این روش ها را در ادامه توضیح می دهیم. تا زمانی که جواب ها، به یک جواب بهینه همگرا نشود این پروسه ادامه پیدا می کند.
حالا با یک مثال با روش کار Genetie Algorithm بیشتر آشنا می شویم. فرض کنید می خواهیم مینیمم تابع زیر را دربازه ی زیر بدست آوریم.
این تابع مینیمم های محلی زیادی دارد ولی با این حال فقط یک مینیمم مطلق دارد که در نقطه ی [0,0] قرار دارد. همانطور که مشاهده می کنیم مقدار تابع در این نقطه صفر است. هر چه مینیمم محلی از مرکز دورتر باشد مقدار تابع در آنجا بیشتر است.
برای حل این مسئله توسط Genetic Algorithm ابتدا ما باید یک جمعیت اولیه (Initial population) را تهیه کنیم. معمولترین روش برای تهیه این جمعیت اولیه روش random است. مثلاً در این مثال 20 زوج مرتب x2,x1 را به صورت تصادفی در فضای جستجو انتخاب می کنیم. که این نقاط در واقع جمعیت اولیه را تشکیل می دهند.
به نمایش هر یک از جواب های مسئله کروموزوم (Chromosome) می گویند. هر کروموزوم یک نقطه را در فضای جستجو نشان می دهد. برای مثال مینیمم، می توان هر کروموزوم را به صورت زیر نشان داد. در این مثال هر کروموزوم به دو قسمت تقسیم شده است که قسمت اول مربوط به متغیر x1 و قسمت دوم مربوط به متغیر x2 می باشد. برای استفاده ی کامپیوتری باید هر یک از متغیرهای x2,x1 را به صورت binary نشان دهیم. که در شکل برای هر کدام یک array8 بیتی در نظر گرفته شده است. به هر یک از این بیت ها، ژن گویند.
X2
X1
تابع سازگاری(FitnessFunction)
Fitness Function معیاری است برای درجه ی سازگاری یک کروموزم. یعنی هر چه درجه ی سازگاری یک کروموزوم بهتر باشد، آن کروموزوم شانس بیشتری برای بقا و تولید مثل دارد. در این مثال ساده Fitness Function خود تابع است و هر چه مقدار آن برای یک کروموزوم کمتر باشد، آن کروموزوم شانس بیشتری برای بقا و تولید مثل دارد. پس از اینکه Fitness هر کروموزوم مشخص شده، باید تعدادی از جواب ها را به عنوان والدین (parents) برای تولید نسل بعد انتخاب کرد. این انتخاب با روش های مختلفی انجام می شود. یکی ازمعمولترین روش ها آن است که در آن، شانس انتخاب شدن هر کروموزوم به عنوان parent متناسب است با درجه ی Fitness آن کروموزوم. یعنی کروموزوم هایی که Fitness بهتری دارند به همان نسبت شانس بیشتری برای انتخاب شدن به عنوان parent دارند. پس ازآنکه parentها انتخاب شدند با اپراتورهای زیر نسل بعدی ایجاد می شوند.
1) Elitism(نخبه گزینی): بهترین های هر نسل با توجه به درجه Fitnessشان مستقیماً به نسل بعدی منتقل می شوند. این کار برای آن است که مطمئن باشیم بهترین جواب ما در نسل بعدی نسبت به نسل قبل بدتر نشود.
2)Corss-over: هدف از Cross-over تولید فرزندان (Offspring) از دو parent است در طی این فرایند بعضی از ژن های دو parent با هم عوض می شوند. تضمینی نیست که درجه ی Fitness فرزندان بهتر از والدین باشد. در واقع هدف از Cross-over فقط تغییر دادن جوابها و حرکت در فضای جستجو است.
بعضی از نمونه های مختلف Cross-over را در شکل بالا مشاهده می کنید.
Mutation(جهش ژنتیکی)
در mutation بعضی از ژن های یک کروموزوم عوض می شود. در واقع با این کار گوناگونی ژنتیکی یک جمعیت افزایش پیدا می کند و از همگرایی به جواب های نادرست جلوگیری می شود. Mutation معمولاً در کروموزوم هایی اتفاق می افتد که درجه Fitness خوبی ندارند. چون اگر در جواب های خوب اتفاق بیافتد ممکن است درجه ی Fitness آنها را کاهش دهد. بعضی از نمونه های مختلف mutation را در شکل می بینید.
به همین صورت نسل های بعدی با استفاده از اپراتورهای Mutation, Cross-over ,Elitism از نسل قبل ایجاد می شود و در نهایت جواب ما به یک جواب بهینه میل می کند.
Genetic Algorithm کاربردهای زیادی درمهندسی نفت و بخصوص در حل مسائل بهینه سازی دارد. که یک مثال ساده را بررسی می کنیم.
این میدان نفتی را در نظر بگیرید. فرض کنید 5 تا چاه داریم که با دایره های سیاه مشخص شده اند. نقاط x1تا x5 نشان دهنده ی مکان های منتخب برای water injection می باشند.
مسئله ی بهینه سازی که در اینجا مطرح است این است که injection rate در هر یک از نقاط x1 تا x5 چقدر باشد تا در نهایت ماکزیمم تولید از کل میدان را داشته باشیم. به مقدار تولید کل میدان NPV (یا Net present value) نیز گویند. برای هر یک از چاههای تزریقی، (یعنی نقاط x1 تا x5) می توانیم rateای بین 0 تا یک مقدار ماکزیمم (مثلاً Day/bbl 20000) در نظر بگیریم. در این صورت متغیرها روی یک فضای پیوسته تعریف می شوند که می توان مسئله را با روشها Classical optimization حل نمود. ولی اگر چاهها، حالت تزریق یا عدم تزریق داشته باشند یا آنکه فقط بتوان با چند rate مشخص تزریق کرد؛ مثلاً (0, 5000, 10000, 15000, 20000 Day/bbl) در اینصورت متغیرها روی یک فضای گسته قرار می گیرند. این فضای گسسته نه تنها مسئله را ساده نمی کند بلکه بر عکس کاملاً مسئله را پیچیده می کند. زیرا نمی توان آن را با روشهای موثر Classical Optimization حل نمود. از ریاضیات گسسته به یاد داریم که برای مسئله ی تزریق با عدم تزریق 5 چاه تعداد کل تعداد حالات ممکن 25 حالت است. در این Case تعداد حالات، محدود است و می توان مسئله را به سادگی با محاسبه ی N.P.V درتمام حالات ممکن حل نمود. ولی این حالت را در نظر بگیرید. فرض کنید 25 نقطه دارای پتانسیل انتخاب شدن برای تزریق وجود دارد و ما حداکثر می توانیم 4 تا از این نقاط را به عنوان چاه تزریقی انتخاب کنیم. در این حالت، باید 15276 حالت را بررسی کنیم. و اگر تعداد ماکزیمم چاههایی را که می توانیم برای تزریق انتخاب کنیم، از 4 به 6 افزایش دهیم، تعداد حالات موجود به 245506 حالت می رسد. حتی در این حالت هم با روش های مدرن محاسباتی می توان مسئله را حل کرد. البته به شرطی که برای هر یک از حالات، بتوان NPV را به راحتی بدست آورد. اما در عمل برای بدست آوردن NPV باید از 3D-Simulator ها استفاده کنیم که بسیار زمان براست.
پس به کارگیری روشهای جدیدتر مانند Genetic Algorithm امری ضروری به نظر می رسد. حالا یک حالت ساده از مثال قبل را در نظر بگیرید. فرض کنید دو نقطه برای injection داریم که هر یک از این نقاط می تواند با 20 rate مختلف تزریق شود. (,3000,2000,1000,0 … تا 20000 Day/bbl)
در این شکل مقدار NPV را به ازای rateهای مختلف تزریق در نقاط 1و 2 می بینیم. ارتفاع هر نقطه روی صفحه، از صفحه ی x1-x2 میزان NPV میدان را نشان می دهد. توجه کنید که افزایش rateهای چاههای 1و 2 اثر بسیار پیچیده و غیر قابل پیش بینی روی NPV دارند. این سطح Multimodal است، یعنی برآمدگی ها یا Peakهای زیادی دارد. مثلاً Peak B, Peak A
که البته همانطور که می بینید Peak A جواب بهینه ی مسئله است زیرا مقدار NPV در این نقطه ماکزیمم است.
هیچ روش بهینه سازی وجود ندارد که تضمین کند Peak A به عنوان جواب مسئله یافته شود. بجز آنکه تمام حالات مختلف بررسی شود که عملاً همانطور که گفتیم امکان پذیر نیست. روش بسیار قدرتمندی که در این گونه مسائل موفقیت زیادی را کسب کرده، الگوریتم ژنتیک است. Genetic Algorithm با انتخاب N نقطه برای جستجو روی این سطح، شروع به کار می کند. که هر نقطه به صورت موثری در محدوده خود، عملیات جستجو را انجام می دهد.
می توانیم این جمعیت از نقاط را به صورت براده های آهن در نظر بگیریم که روی یک صفحه پخش شده اند. Peakهای روی سطح مانند آهنربا عمل می کنند. هر چه ارتفاع Peak بیشتر باشد، قدرت جذب آن بیشتر است. در طول فرایند جستجو، هر یک از براده ها به نزدیکترین Peak، که آن را جذب می کند، جذب می شود. اگر تعدادی Peak با قدرت جذب یکسان داشته باشیم، حداقل چند تا از براده ها به سمت هر Peak جذب می شوند. اما اگر یکی از Peak ها به نسبت بقیه، قدرت جذب بسیار بیشتری داشته باشد، (مثلاً در اینجا Peak A) تمام نقاط را به سمت خود جذب می کند و جواب بهینه برای مسئله بدست می آید.
مقدمه ای بر سیستم های فازی وکنترل فازی
چرا سیستم های فازی
واژه "فازی" در فرهنگ لغت آکسفورد بصورت "مبهم، گنگ، نادقیق، گیچ، مغشوش، درهم و نامشخص" تعریف شده است. که در اینجا از همان واژه "فازی" استفاده می کنیم. سیستم های فازی، سیستم هایی هستند با تعریف دقیق و کنترل فازی نیز نوع خاصی از کنترل غیرخطی می باشد که آن هم دقیقاً تعریف می گردد. این مطلب مشابه کنترل و سیستم های خطی می باشد که واژه خطی یک صفت فنی بوده که حالت و وضعیت سیستم و کنترل را مشخص می کند. چنین چیزی در مورد واژه فازی نیز وجود دارد. اساساً گرچه سیستم های فازی پدیده های غیرقطعی و نامشخص را توصیف می کنند، با این حال خود تئوری فازی یک تئوری دقیق می باشد. در این متن، دو نوع توجیه برای تئوری سیستم های فازی وجود دارد:
1)دنیای واقعی ما بسیار پیچیده تر از آن است که بتوان یک توصیف و تعریف دقیق برای آن بدست آورد، بنابراین باید یک توصیف تقریبی یا همان فازی که قابل قبول و قابل تجزیه و تحلیل باشد، برای یک مدل معرفی شود.
2)با حرکت ما بسوی عصر اطلاعات، دانش و معرفت بشری بسیار اهمیت پیدا می کند. بنابراین ما به فرضیه ای نیاز داریم که بتواند دانش بشری را به شکلی سیستماتیک فرموله کرده و آن را به همراه سایر مدلهای ریاضی در سیستم های مهندسی قرار دهد.
توجیه اول گرچه درست است، با این حال طبیعت واحدی را برای تئوری سیستم های فازی مشخص نمی کند. در حقیقت تمامی نظریه های علوم مهندسی، دنیای واقعی را به شکلی تقریبی، توصیف می کنند. بعنوان مثال در عالم واقعی تمامی سیستم ها بصورت غیرخطی می باشند ولی تقریباً تمامی مطالعات و بررسی ها بر روی سیستم های خطی می باشد. یک تئوری مهندسی خوب از یکسو باید بتواند مشخصه های اصلی و کلیدی دنیای واقعی را توصیف کرده و از سویی دیگر قابل تجزیه تحلیل ریاضی باشد. بنابراین از این جنبه، تئوری فازی تفاوتی با سایر تئوری های علوم مهندسی ندارد.
توجیه دوم مشخصه واحدی از سیستم های فازی را توصیف کرده و وجود تئوری سیستم های فازی را به عنوان یک شاخه مستقل در علوم مهندسی توجیه می کند. بعنوان یک قاعده کلی یک تئوری مهندسی خوب باید قادر باشد از تمامی اطلاعات موجود به نحو موثری استفاده کند.
در سیستم های عملی اطلاعات مهم از دو منبع سرچشمه می گیرند. یکی از منابع افراد خبره می باشند که دانش و آگاهیشان را در مورد سیستم های با زبان طبیعی تعریف می کنند. منبع دیگر اندازه گیری ها و مدل های ریاضی هستند که از قواعد فیزیکی مشتق شده اند. بنابراین یک مسئله مهم ترکیب این دو نوع اطلاعات در طراحی سیستم ها است. برای انجام این ترکیب سوال کلیدی این است که چگونه می توان دانش بشری را در چهارچوبی مشابه مدلهای ریاضی فرموله کرد. به عبارت دیگر سوال اساسی این است که چگونه می توان دانش بشری را به یک فرمول ریاضی تبدیل کرد. اساساً آنچه که یک سیستم فازی انجام می دهد، همین تبدیل است. برای اینکه بدانیم این تبدیل چگونه صورت می گیرد، ابتدا باید بدانیم سیستم های فازی، چگونه سیستم هایی هستند.
سیستم های فازی چگونه سیستم هایی هستند؟
سیستم های فازی، سـستم های مبتنی بر دانش یا قواعد می باشند. قلب یک سیستم فازی یک پایگاه دانش بوده که از قواعد اگر ـ آنگاه فازی تشکیل شده است. یک قاعده اگر ـ آنگاه فازی یک عبارت اگر ـ آنگاه بوده که بعضی کلمات آن بوسیله توابع تعلق پیوسته مشخص شده اند.یک سیستم فازی از مجموعه ای از قواعد اگرـ آنگاه فازی ساخته می شود.
بطور خلاصه، نقطه شروع ساخت یک سیستم فازی بدست آوردن مجموعه ای از قواعد اگرـ آنگاه فازی از دانش افراد خبره یا دانش حوزه مورد بررسی می باشد. مرحله بعدی ترکیب این قواعد در یک سیستم واحد است. سیستم های فازی مختلف از اصول و روشهای متفاوتی برای ترکیب این قواعد استفاده می کنند.
بنابراین سوال اساسی این است، چه نوع سیستم های فازی معمولاً استفاده می شود؟
در کتب و مقالات معمولاً از سه نوع سیستم فازی صحبت به میان می آید:
1ـ سیستم های فازی خالص،
2ـ سیستم های فازی تاکاگی ـ سوگنو و کانگ (TSK)
3ـ سیستم های با فازی ساز و غیرفازی ساز
سیستم های فازی کجا و چگونه استفاده می شوند؟
سیستم های فازی امروزه در طیف وسیعی از علوم و فنون کاربرد پیدا کرده اند، از کنترل، پردازش سیگنال، ارتباطات، ساخت مدارهای مجتمع و سیستم های خبره گرفته تا بازرگای، پزشکی، دانش اجتماعی و… با این حال بعنوان یکی از مهمترین کاربردهای آن حل مسائل و مشکلات کنترل را می توان بیان کرد. بنابراین، خود را بر روی تعدادی از مسائل کنترل که سیستم های فازی نقش عمده ای را در آن بازی می کنند، متمرکز می نماییم. سیستم های فازی را می توان بعنوان کنترل کننده حلقه باز و کنترل کننده حلقه بسته مورد استفاده قرار داد. هنگامی که بعنوان کنترل کننده حلقه باز استفاده می شود، سیستم فازی معمولاً بعضی پارامترهای کنترل را معین کرده و آنگاه سیستم مطابق با این پارامترهای کنترل کار می کند. بسیاری از کاربردهای سیستم فازی در الکترونیک به این دسته تعلق دارند. هنگامی که سیستم فازی بعنوان یک کنترل کننده حلقه بسته استفاده می شود، در این حالت خروجی های فرایند را اندازه گیری کرده و بطور همزمان عملیات کنترل را انجام می دهد. کاربردهای سیستم فازی در فرایندهای صنعتی به این دسته تعلق دارند.
زمینه های تحقیق عمده در تئوری فازی
منظور ما از تئوری فازی، تمام تئوری هایی است که از مفاهیم اساسی مجموعه های فازی یا توابع تعلق استفاده می کنند. تئوری فازی را به پنج شاخه عمده می توان تقسیم کرد.
1ـ ریاضیات فازی، که در آن مفاهیم ریاضیات کلاسیک با جایگزینی مجموعه های فازی یا کلاسیک توسعه پیدا کرده است.
2ـ منطق فازی و هوش مصنوعی، که در آن منطق کلاسیک تقریب هایی یافته و سیستم های خبره براساس اطلاعات و استنتاج تقریبی توسعه پیدا کرده است.
3ـ سیستم های فازی که شامل کنترل فازی و راه حل هایی در زمینه پردازش سیگنال و مخابرات می باشند.
4ـ عدم قطعیت و اطلاعات، که انواع دیگری از عدم قطعیت را مورد تجزیه و تحلیل قرار می دهد
5ـ تصمیم گیری های فازی که مسائل بهینه سازی را با محدودیت های ملایم در نظر می گیرد.
البته این پنج شاخه مستقل از یکدیگر نبوده و به شدت به هم ارتباط دارند.
بعنوان مثال کنترل فازی از مفاهیم ریاضیات فازی و منطق فازی استفاده می کند.
از نقطه نظر عملی، عمده کاربردهای تئوری فازی بر روی کنترل فازی متمرکز شده است. گرچه سیستم های خبره فازی نیز در زمینه تشخیص پزشکی وجود دارند. بدلیل اینکه تئوری فازی هنوز چه از نظر تئوری و چه از نظر کاربرد در ابتدای راه بسر می برد، انتظار داریم کاربردهای عملی بسیاری در آینده پیدا کند. تئوری فازی زمینه گسترده ای داشته که موضوعات تحقیق زیادی را در اختیار ما قرار می دهد.
تاریخچه مختصری از تئوری و کاربردهای فازی
دهه 1960: آغاز تئوری فازی
تئوری فازی بوسیله پروفسور لطفی زاده در سال 1965 در مقاله ای به نام
"مجموعه های فازی" معرفی گردید. قبل از کار بر روی تئوری فازی لطفی زاده یک شخص برجسته در تئوری کنترل بود. او مفهوم حالت که اساس تئوری کنترل مدرن را شکل می دهد، توسعه داد. در اوایل دهه 60 او فکر کرد که تئوری کنترل کلاسیک پیش از حد بر روی دقت تاکید داشته و از این رو با سیستم های پیچیده نمی تواند کار کند. در سال 1962 چیزی را بدین مضمون برای سیستم های بیولوژیک نوشت : "ما اساساًَ به نوع جدیدی ریاضیات نیازمندیم، ریاضیات مقادیر مبهم یا فازی که توسط توزیع های احتمالات قابل توصیف نیستند". پس از آن وی ایده اش را در مقاله "مجموعه های فازی" تجسم بخشید. با پیدایش تئوری فازی، بحث و جدل ها پیرامون آن نیز آغاز گردید. بعضی ها آن را تائید کرده و کار روی این زمینه جدید را شروع کردند و برخی دیگر نیز این ایراد را وارد می کردند که این ایده برخلاف اصول علمی موجود می باشد. با این حال بزرگترین چالش از ناحیه ریاضیدانانی بود که معتقد بودند تئوری احتمالات برای حل مسائلی که تئوری فازی ادعای حل بهتر آن را دارد، کفایت می کند. بدلیل اینکه کاربردهای علمی تئوری فازی در ابتدای پیدایش آن مشخص نبود، تفهیم آن از جهت فلسفی کار مشکلی بود و تقریباً هیچیک از مراکز تحقیقاتی تئوری فازی را بعنوان یک زمینه تحقیق جدی نگرفتند.
با وجودی که تئوری فازی جایگاه واقعی خود را پیدا نکرد، با این حال هنوز محققینی بودند که در گوشه و کنار دنیا، خود را وقف این زمینه جدید نمودند و در اواخر دهه 1960 روشهای جدید فازی نظیر الگوریتم های فازی، تصمیم گیری های فازی و… مطرح گردید.
دهه 1970: تئوری فازی رشد پیداکرد و کاربردهای عملی ظاهر گردید
اگر بگوییم پذیرفته شدن تئوری فازی بعنوان یک زمینه مستقل بواسطه کارهای برجسته پروفسور لطفی زاده بوده، سخن به گزاف نگفته ایم. بسیاری از مفاهیم بنیادی تئوری فازی بوسیله زاده در اواخر دهه 60 و اوایل دهه 70 مطرح گردید. پس از معرفی مجموعه ای فازی در سال 1965، او مفاهیم الگوریتم های فازی در سال 1968، تصمیم گیری فازی در سال 1970، و ترتیب فازی را در سال 1971 مطرح نمود. در سال 1973 او مقاله دیگری را منتشر کرد به نام"طرح یک راه حل جدید برای تجزیه و تحلیل سیستم های پیچیده و فرایندهای تصمیم گیری". این مقاله اساس کنترل فازی را بنا کرد. او دراین مقاله مفهوم متغیرهای زبانی و استفاده از قواعد اگرـ آنگاه را برای فرموله کردن دانش بشری معرفی نمود.
رخداد بزرگ در دهه 1970، تولد کنترل کننده های فازی برای سیستم های واقعی بود. در سال 1975، ممدانی و آسیلیان چهارچوب اولیه ای را برای کنترل کننده فازی مشخص کردند و کنترل کننده فازی را به یک موتور بخار اعمال نمودند. نتایج در مقاله ای تحت عنوان "آزمایش در سنتز زبانی با استفاده از یک کنترل کننده فازی "منتشر گردید. آنها دریافتند که ساخت کنترل کننده فازی بسیار ساده بوده و به خوبی نیز کار می کند.در سال 1978 هولمبلاد و اوسترگارد اولین کنترل کننده فازی را برای کنترل یک فرآیند صنعتی کامل بکار بردند، کنترل فازی کوره سیمان.
در مجموع، پایه گذاری تئوری فازی در دهه 1970 صورت گرفت. با معرفی مفاهیم جدید، تصویر تئوری فازی بعنوان یک زمینه جدید، هر چه بیشتر شفاف گردید. کاربردهای اولیه ای نظیر کنترل موتور بخار و کنترل کوره سیمان نیز تئوری فازی را بعنوان یک زمینه جدید مطرح کرد. معمولاً زمینه های تحقیق جدید باید بوسیله مراکز تحقیقاتی و دانشگاهها حمایت گردد. این امر متاسفانه در مورد تئوری فازی اتفاق نیفتاد. ضمن اینکه بسیاری از محققین، زمینه کاری خود را بدلیل عدم پشتیبانی تغییر دادند. این مطالب بویژه در ایالات متحده واقعیت داشت.
دهه 1980: کاربردهای بزرگ
در اوایل دهه 1980 این زمینه از نقطه نظر تئوریک پیشرفت کندی داشت. دراین مدت راه حل ها و مفاهیم جدید اندکی معرفی گردید، چرا که هنوز افراد کمی داشتند روی آن کار می کردند. در واقع کاربردهای کنترل فازی بود که هنوز تئوری فازی را سرپا نگاه داشته بود.
مهندسان ژاپنی (باحساسیتی که نسبت به فناوری های جدید دارند) به سرعت دریافتند که کنترل کننده های فازی بسهولت قابل طراحی بوده و در مورد بسیاری مسائل می توان از آنها استفاده کرد. بدلیل اینکه کنترل فازی به یک مدل ریاضی نیاز ندارد، آن را می توان در مورد خیلی از سیستم هایی که بوسیله تئوری کنترل متعارف قابل پیاده سازی نیستند، بکار برد. در سال 1980 سوگنو شروع به ساخت اولین کاربرد ژاپنی فازی نمود، (کنترل سیستم تصفیه آب فوجی) در سال 1983 او مشغول کار بر روی یک ربات فازی شد. ماشینی که از راه دور کنترل شده و خودش به تنهایی عمل پارک را انجام می داد. در این سالها یاشانوبو و میاموتو از شرکت هیتاچی کار روی سیستم کنترل قطار زیرزمینی سندایی را آغاز کردند. بالاخره در سال 1987 پروژه به ثمر نشست. و یکی از پیشرفته ترین سیستم های قطار زیرزمینی را در جهان بوجود آورد. در جولای 1987، دومین کنفرانس سیستم های فازی در توکیو برگزار گردید. این کنفرانس درست سه روز پس از افتتاح قطار زیرزمینی سندایی آغاز بکار کرد. در این کنفرانس هیروتا یک روبات فلزی را به نمایش گذارد که پینگ پنگ بازی می کرد، یاماکاوا نیز سیستم فازی ای را نشان داد که یک پاندول معکوس را در حالت تعادل قرار می داد. قبل از این رویدادها، تئوری فازی چندان در ژاپن شناخته شده نبود ولی پس از آن موجی از توجه مهندسان، دولتمردان و تجار را فرا گرفت به نحوی که دراوایل دهه 90 تعداد زیادی از لوازم و وسایلی که براساس تئوری فازی کار می کردند، در فروشگاهها به چشم می خورد.
دهه 1990: چالشها کماکان باقی است
موفقیت سیستم های فازی در ژاپن، تعجب محققان را در آمریکا و اروپا برانگیخت. عده ای هنوز به آن خرده می گرفتند. ولی عده ای دیگر از عقیده خود دست برداشته و بعنوان موضوع جدی در دستور کار خود قرار دادند. در فوریه 1992 اولین کنفرانس بین المللی IEEE در زمینه سیستم های فازی در سان دیه گو برگزار گردید. این یک اقدام سمبلیک در مورد پذیرفتن سیستم های فازی بوسیله بزرگترین سازمان مهندسی یعنی IEEE بود. در سال 1993 بخش سیستم های فازی IEEE گشایش یافت. از نقطه نظر تئوری سیستم های فازی و کنترل در اواخر دهه 80 و اوایل دهه 90 رشد چشمگیری پیدا کرد و پیشرفتهایی در زمینه برخی مشکلات اساسی سیستم های فازی صورت گرفت. بعنوان مثال تکنیک های شبکه عصبی برای تعیین و تنظیم توابع تعلق استفاده شدند. با وجودی که تصویر سیستم های فازی شفاف تر شده، با این حال کارهای زیادی هنوز باید انجام شود و بسیاری از راه حل ها و روشها در ابتدای راه قرار دارد. ما اعتقاد داریم که تنها سرمایه گذاری مراکز تحقیقاتی معتبر بر روی افراد مستعد و خلاق می تواند باعث پیشرفت های عمده در زمینه تئوری فازی شود.
فصل دوم
شبکه های عصبی
مقدمه
در سالیان اخیر شاهد حرکتی مستمر، از تحقیقات صرفاً تئوری به تحقیقات کاربردی به خصوص در زمینه پردازش اطلاعات، برای مسایلی که برای آنها راه حلی موجود نیست و یا به راحتی قابل حل نیستند، بوده ایم. با عنایت به این امر علاقه فزاینده ای در توسعه تئوریک سیستم های دینامیکی هوشمند مدل ـ آزاد که مبتنی بر داده های تجربی هستندـ ایجاد شده است. "شبکه های عصبی مصنوعی" جز این دسته از سیستم های دینامیکی قرار دارند که با پردازش روی داده های تجربی، دانش یا قانون نهفته در ورای داده ها را به ساختار شبکه منتقل می کنند به همین خاطر به این سیستم ها هوشمند گویند. چرا که براساس محاسبات روی داده های عددی یا مثالها،قوانینکلی را فرا می گیرند. این سیستم ها در مدلسازی ساختار نروـ سیناپتیکی مغز بشر می کوشند.
پیاده سازی ویژگیهای شگفت انگیز مغز در یک سیستم مصنوعی (سیستم دینامیکی ساخته دست بشر) همیشه وسوسه انگیز و مطلوب بوده است. محققینی که طی سالها در این زمینه فعالیت کرده اند بسیاراند؛ لیکن نتیجه این تلاشها، صرفنظر از یافته های ارزشمند باور هر چه بیشتر این اصل بوده است که "مغز بشر دست نیافتنی است". با تاکید بر این نکته که گذشته از متافیزیک، دور از دسترس بودن ایده ال "هوش طبیعی" را می توان با عدم کفایت دانش موجود بشر از فیزیولوژی عصبی پذیرفت. باید اذعان داشت که عالی بودن هدف و کافی نبودن دانش موجود خود سبب انگیزش پژوهشهای بیشتر و بیشتر در این زمینه بوده و خواهد بود. همچنان که امروزه شاهد بروز چنین فعالیت هایی در قالب شبکه های عصبی مصنوعی هستیم. اغلب آنهایی که با چنین سیستم هایی آشنایی دارند، اغراق آمیز بودن نام آنها معترف اند، اگر چه این اغراق بیانگر مطلوبیت و نیز بعضی شباهت های اینگونه سیستم ها با سیستم های طبیعی است، ولی می تواند تا حدی بین آنچه که سیستم های عصبی مصنوعی در اختیار قرار می دهد و آنچه که از نامشان برمی آید تناقض ایجاد نماید. بنابراین هنگام صحبت در مورد شبکه های عصبی، باید حدود انتظارات، برداشت ها، امکانات، و شباهتها را مشخص کرد. قبل از آنکه این حدود را مشخص کنیم، ابتدا ببینیم شبکه های عصبی به چه معنایی هستند.
ساختار مغز
هر چند مغز یک ساختار پردازشی توزیع شده است٬ لیکن این ساختار به مرور زمان انجام وظایف را تقسیم نموده و هر قسمت آن وظیفه ای را بر عهده گرفته است. در شکل وظیفه بعضی از قسمتهای مختلف آن آمده است.
قسمت نارنجی مربوط به اطلاعات بصری٬ قسمت زرد اعمال صوتی٬ قسمت نیلی و قرمز برای اعمال حسی و حرکتی و …
البته این تقسیم کار لطمه ای به اینکه این سیستم یک ساختار پردازش موازی بزرگ است نمی زند و همچنان این ویژگی و سایر خواص بر آن مترتب است.
مغز انسان حاوی بیش از ۱۰ بیلیون سلول عصبی (nerve cells) یا نورون (neuron) است. بطور متوسط هر نورون بوسیله حدود ۱۰.۰۰۰ سیناپس به نورونهای اطراف خود متصل شده است. این ساختار شبکه ای نورونهای مغز یک ساختار پردازش موازی اطلاعات بسیار گسترده را ایجاد می کند. (در برابر یک کامپیوتر شخصی که با استفاده از یک پردازنده تکی می خواهد همه چیز را پردازش کند.)
در مجموع با اینکه هر یک از سلولهای مغز انسان با فرکانسی در حدود ۱۰۰هرتز کار می کنند و پردازنده های کامپیوتری با سرعتهایی در حدود مگاهرتز کار می کنند٬ بازهم پردازنده های ساخت بشر در مقایسه با مغز انسان از توانایی های پایینی برخوردازند.
از ویژگی های چشمگیر شبکه عصبی مغز می توان به موارد ذیل اشاره نمود:
۱- خرابی آبرومندانه: در این سیستمها میزان خرابی خروجی سیستم بستگی مستقیم به میزان آسیب وارده به سیستم عصبی دارد و آسیب به قسمتی از مغز مانع از اشکال در عملکرد کل آن نمی شود.
۲- امکان یادگیری و تجربه کردن: بهبود عملکرد خودش با استفاده از تجربیات بدست آمده.
۳- انجام محاسبات سنگین بسیار زیاد بصورت موازی
۴- پشتیبان هوشمندی و خودآگاهی فرد است.
در نهایت شبکه های عصبی مصنوعی با تقلید از شبکه های عصبی واقعی سعی در تقلید از عملکرد مغز انسان دارد.
ساختار نرون:
البته این سخن که " ANN ها (Artificial Neural Network )در مدلسازی مغز بشر میکوشند " اغراق آمیز می باشد. دانشمندان هر چه بیشتر در مورد مغز بشر تحقیق می کنند و می آموزند ، بیشتر در می یابند که مغز بشر دست نیافتنی است. در حقیقت در مورد مغز و ساختار سیستم عصبی انسان اطلاعات زیادی بدست آمده است. ولی پیاده سازی ساختاری با پیچیدگی مغز انسان بر اساس اطلاعاتی و تکنولوژی که امروزه وجود دارد غیر ممکن می باشد.
ما می توانیم یک نرون عصبی انسان و عملکرد آنرا توسط مدل های ریاضی، مدلسازی کنیم. اشکال زیر ساختار یک نرون طبیعی را نشان می دهد.
هر نرون طبیعی از سه قسمت اصلی تشکیل شده است:
1. (soma) بدنه سلول
2. (Dendrite) دندریت
3. (Axon) اکسون
اجزای تشکیل دهنده نرون های بیولوژیکی
نرون McCulloch-Pitts
دندریت ها به عنوان مناطق دریافت سیگنالهای الکتریکی، شبکه هایی تشکیل یافته از فیبرهای سلولی هستند که دارای سطح نا منظم و شاخه های انشعابی بیشمار میباشند. دندریت ها سیگنال های الکتریکی را به هسته سلول منتقل می کنند. بدنه سلول انرژی لازم را برای فعالیت نرون فراهم کرده و برروی سیگنالهای دریافتی عمل میکند، که با یک عمل ساده جمع و مقایسه با یک سطح آستانه مدل میگردد. اکسون بر خلاف دندریت ها از سطحی هموارتر و تعداد شاخه های کمتری برخوردار می باشد. اکسون طول بیشتری دارد و سیگنالهای الکتروشیمیایی دریافتی از هسته سلول را به نرون های دیگر منتقل میکند. محل تلاقی یک اکسون از یک سلول به دندریتهای سلولهای دیگر را سیناپس میگویند. توسط سیناپسها ارتباطات ما بین نرون ها برقرار میشود. به فضای ما بین اکسون و دندریت ها فضای سیناپسی میگویند.
در حقیقت دندریتها به عنوان ورودی نرون و اکسون به عنوان خروجی و فضای سیناپسی محل اتصال این دو میباشد. زمانیکه سیگنال عصبی از اکسون به نرون ها و یا عناصر دیگر بدن مثل ماهیچه ها میرسد، باعث تحریک آنها میشود.
نرون ها از هر یک از اتصالات ورودی خود یک ولتاژ کم دریافت می کند ( توسط سیگنال عصبی ورودی ) و آنها را با هم جمع میزند. اگر این حاصل جمع به یک مقدار آستانه رسید اصطلاحا نرون آتش می کند و روی اکسون خود یک ولتاژ خروجی ارسال میکند که این ولتاژ به دندریتهایی که به این اکسون متصل اند رسیده و باعث یکسری فعل و انفعالهای شیمیایی در اتصالات سیناپسی میشود و می تواند باعث آتش کردن نرون های دیگر شود. تمامی فعالیتهای مغزی انسان توسط همین آتش کردنها انجام میشود.
حافظه کوتاه مدت انسان جرقه های لحظه ای الکتریکی میباشند و حافظه بلند مدت به صورت تغییرات الکتروشیمیایی در اتصالات سیناپسی دخیره میشود که عمدتا منجر به تغییر یونها می شود.
همانطور که گفته شد ما میتوانیم توسط مفاهیم ریاضی یک نرون طبیعی را مدل کنیم. شکل زیر یک نرون عصبی مصنوعی را نشان میدهد.
نمایی از یک شبکه عصبی مصنوعی
چگونه مغز انسان می آموزد ؟
مسائل زیادی راجع به این که مغز چگونه خود را برای پردازش اطلاعات آموزش می دهد، نا شناخته باقی مانده است بنابر این تئوری های فراوانی وجود دارد. در مغز انسان یک سلول سیگنال ها را از دیگران از طریق یک گروه از ساختار های ریز به نام dendrites جمع آوری می کند سلول عصبی جهش سریع فعالیت الکتریکی را در طول یک پایه بلند و نازک که axon نامیده میشود ، می فرستد که به داخل هزاران شاخه گسترش می یابد و کشیده می شود . در انتهای هر شاخه ، ساختاری که synapse نامیده می شود این فعالیت را از axon به اثرات الکتریکی تبدیل می کند که فعالیت یک axon به صورت اثرات الکتریکی فعال کننده یا غیر فعال کننده تبدیل می شود که این کار باعث برانگیخته شدن یا آرام شدن سلول های عصبی مرتبط می شود. وقتی یک سلول عصبی پیام های فعال کننده را در یافت می کند، که بطور قانع کننده و وسیعی با پیام های ورودی غیر فعال کننده اش مقایسه شده باشد ،در این زمان این سلول نیز یک جهش از فعالیت الکتریکی را به داخل axon خودش می فرستد.
یاد گیر ی با تغییر تاثیر synapses اتفاق می افتد در نتیجه تاثیر یک سلول بر دیگران تغییر میکند.
معنای شبکه های عصبی
شبکه های عصبی را می توان با اغماض زیاد، مدل های الکترونیکی از ساختار عصبی مغز انسان نامید. مکانیسم فراگیری و آموزش مغز اساساً بر تجربه استوار است. مدل های الکترونیکی شبکه های عصبی طبیعی نیز بر اساس همین الگو بنا شده اند و روش برخورد چنین مدل هایی با مسائل، با روش های محاسباتی که به طور معمول توسط سیستم های کامپیوتری در پیش گرفته شده اند، تفاوت دارد. می دانیم که حتی ساده ترین مغز های جانوری هم قادر به حل مسائلی هستند که اگر نگوییم که کامپیوترهای امروزی از حل آنها عاجز هستند، حداقل در حل آنها دچار مشکل می شوند. به عنوان مثال، مسائل مختلف شناسایی الگو، نمونه ای از مواردی هستند که روش های معمول محاسباتی برای حل آنها به نتیجه مطلوب نمی رسند. درحالی که مغز ساده ترین جانوران به راحتی از عهده چنین مسائلی بر می آید. تصور عموم کارشناسان IT بر آن است که مدل های جدید محاسباتی که بر اساس شبکه های عصبی بنا می شوند، جهش بعدی صنعت IT را شکل می دهند. تحقیقات در این زمینه نشان داده است که مغز، اطلاعات را همانند الگو ها (pattern) ذخیره می کند. فرآیند ذخیره سازی اطلاعات به صورت الگو و تجزیه و تحلیل آن الگو ، اساس روش نوین محاسباتی را تشکیل می دهند. این حوزه از دانش محاسباتی (computation) به هیچ وجه از روش های برنامه نویسی سنتی استفاده نمی کند و به جای آن از شبکه های بزرگی که به صورت موازی آرایش شده اند و تعلیم یافته اند، بهره می جوید.
یک شبکه عصبی مصنوعی) (Artificial Neural Network (ANN) ایده ای است برای پردازش اطلاعات که از سیستم عصبی زیستی الهام گرفته شده و مانند مغز به پردازش اطلاعات می پردازد . عنصر کلیدی این ایده ، ساختار جدید سیستم پردازش اطلاعات است. این سیستم از شمار زیادی عناصر پردازشی فوق العاده بهم پیوسته تشکیل شده (neurons)که برای حل یک مساله با هم هماهنگ عمل می کند.ANN ها ،نظیر انسانها ، با مثال یاد می گیرند . یک ANN برای انجام وظیفه ای مشخص ، مانند شناسایی الگو ها و دسته بندی اطلاعات ، در طول یک پروسه یاد گیری ، تنظیم می شود . در سیستم های زیستی یاد گیری با تنظیماتی در اتصالات سیناپسی که بین اعصاب قرار دارد همراه است . این روش ANN ها هم می باشد.
شبکه های عصبی چه در بعد آنالیز و توسعه ساختاری و چه در بعد پیاده سازی سخت افزاری، از نظر کمی، کیفی و توانایی، در حال رشد پیشرفت می باشد و تکنیک های مختلف محاسبات عصبی از لحاظ تعداد همچنان در حال افزایش است. فعالیت علمی و کاربردی در مسایل فنی ـ مهندسی از قبیل سیستم های کنترلی، پردازش سیگنال ها، و شناسایی الگو گسترش یافته است. با اذعان به این مسایل، در این بخش قصد داریم به معنای شبکه های عصبی مصنوعی، حدود انتظارات ما از این شبکه ها و شباهت های آنها با شبکه های واقعی بپردازیم.
هنگامی که این جملات را مطالعه می کنید در عمل از یک سیستم شبکه های عصبی بیولوژیکی پیچیده، جهت فهم مطالب کتاب استفاده می نمایید. از مغز به عنوان یک سیستم پردازش اطلاعات با ساختار موازی و کاملاً پیچیده که دو درصد وزن بدن را تشکیل می دهد و بیش از 20 درصد کل اکسیژن بدن را مصرف می کنند برای خواندن، نفس کشیدن، حرکت، تفکر و تفحص کلیه اعمال آگاهانه و بسیاری از رفتارهای ناخودآگاه استفاده می شود. جهت واضح شدن توانایی مغز یک بازی تنیس را در نظر بگیرید. بازیکن اول به توپ ضربه می زند و توپ با سرعتی بیش از 130 کیلومتر درساعت به زمین حریف می رسد. حریف مقابل نیز با سرعتی معادل 60 کیلومتر درساعت به توپ ارسالی پاسخ می دهد. تصور نمایید که چه حجم غظیمی از اطلاعات و سیگنالها جهت این کار و درطی زمانی کمتر از چند صدم ثانیه بایستی جمع آوری و محاسبه شوند. اینکه چگونه مغز این کارها را انجام می دهد از زمانی مطرح شد که دریافتند، مغز برای محاسبات خود، از ساختاری کاملاً مغایر با ساختاری کامپیوترهای متداول برخوردار می باشد. تلاش برای فهم این موضوع خصوصاً از سال 1911 قوت گرفت، زمای که برای نخستین بار شخصی به نام سگال اعلام کرد که مغز از عناصر اصلی ساختاری به نام نرون تشکیل یافته است.
هر نرون بیولوژیکی به عنوان اجتماعی از مواد آلی، اگر چه دارای پیچیدگی یک میکروپروسسور می باشد ولی دارای سرعت محاسباتی برابر با یک میکروپروسسور نیست. بعضی از ساختارهای نرونی در هنگام تولد ساخته می شوند و قسمت های دیگر در طول مسیر حیات، مخصوصاً در اوایل زندگی بوجود می آیند وقوام می گیرند. دانشمندان علم بیولوژیکی به تازگی دریافته اند که عملکرد نرونهای بیولوژیکی از قبیل ذخیره سازی و حفظ اطلاعات در خود نرونها و ارتباطات بین نرونها نهفته است. به عبارت فنی تر، یادگیری به عنوان ایجاد ارتباطات جدید بین نرونها و تنظیم مجدد ارتباطات موجود استنباط می شود.
ANN شاخه ای از فیلد هوش مصنوعی و یا سیستمهای خبره می باشد که با منطق فازی مرتبط می باشد . یک شبکه عصبی مصنوعی می تواند به عنوان یک جعبه سیاه در نظر گرفته شود که قادر است الگوهای خروجی را پس از تشخیص الگوهای ورودی گزارش دهد .
شبکه های عصبی در واقع مثلثی هستند که سه ضلع مفهومی دارند :
1- سیستم تجزیه و تحلیل داده ها
2- نورون یا سلول عصبی
3- شبکه یا قانون کار گروهی نورونها
قوانین هب:
در 1949 دونالد هب کارهای زیادی در شناخت و یادگیریانجام داد با انتشار کتاب سازماندهی رفتار ارتباط بین روانشناسی و فیزیولوژی را بیان کرد. قدیمی ترین و مشهورترین اصول یادگیری نرونها وقوانین شبکه های عصبی توسط هب ایجاد شد از جمله:
در یکی از اصول هب برای یادگیری وزنهای سیناپس در هر گام با فعالیتهای سیناپس افزایش می یابد . اگر اکسون A به اندازه کافی برای تحریک به سلول B نزدیک باشد و متناوب و مداوم در تحریک آن شرکت داشته باشد ،رشد یا تغییرهای متابولیکی در یک یا دو سلول رخ خواهد داد به گونه ای که کارایی سلول A در تحریک B افزایش می یابد.مسیرهای عصبی هر بار که مورد استفاده قرار گیرند تقویت می شوند.هب فرض کرد یک پروسه ی یادگیری اتصال بین دو نرون را فعال سازد چنانچه سیناپسهای بعدی و قبلی نرون در یک زمان فعال شوند .
از سلول های عصبی انسانی تا سلول های عصبی مصنوعی
با کنار گذاشتن برخی خواص حیاتی نرونها و ارتباطات درونی آنها می توان یک مدل ابتدایی از نرون را به وسیله کامپیوتر شبیه سازی کرد.
شبکه های عصبی با تلاش اولیه در جهت یافتن خصوصیات اساسی سلول های عصبی و اتصالات آنها ، هدایت می شوند. سپس بطور معمول یک کامپیوتر را برای شبیه سازی این خصوصیات برنامه ریزی می کنند .اگر چه بدلیل اینکه دانش انسانی از سلول های عصبی ناقص است و قدرت محاسبات محدود است ، مدل های ارائه شده لزوما آرمان های خام و ناقصی از شبکه های واقعی سلول های عصبی است .
رویای جایگزینی ویژگی های مغز در یک سیستم مصنوعی چقدر ممکن گردیده ؟
در حال حاضر بسیاری از سیستمها در قالب هوش مصنوعی و شبکههای عصبی شبیهسازی شدهاند اما مانع اصلی آنست که گرچه هریک از نرونهای بیولوژیکی به تنهایی در مقایسه با نرونهای مصنوعی که توسط مدارهای الکتریکی ساخته میشوند بسیار کندتر هستند، اما از آنجا که در نرون های بیولوژیکی دسته یا دسته هایی از نرون ها بطور همزمان بکار مافتند، عملکرد مغز بسیار سریعتر است. امروزه مدارهای خاصی با ساختار عملکرد موازی طراحی میگردد که سرعت آن ها ده ها برابر بیش از رایانه های پیشرفته فعلی است. اما هنوز از نظر سرعت با عملکرد مغز فاصله بسیاری وجود دارد. سایر خصوصیاتی که در بند سوم ذکر گردید تا حدود زیادی برآورده شده است.
تاریخچه شبکه های عصبی
بعضی از پیش زمینه های شبکه عصبی را می توان به اوایل قرن بیستم و اواخر قرن نوزدهم برگرداند. در این دوره کارهای اساسی در فیزیک، روانشناسی و نروفیزیولوژیک توسط علمایی چون هرمان فون هلمهلتز، ارنست ماخ و ایوان پاولف صورت پذیرفت. این کارهای اولیه عموماً بر تئوری های کلی یادگیری، بینایی وشرطی تاکید داشتند و اصلاً به مدلهای مشخص ریاضی عملکرد نرونها اشاره ای نداشته اند.
دیدگاه جدید شبکه های عصبی در دهه 40 قرن بیستم آغاز شد زمانی که والن مک کروث و والتر پیتز نشان دادند که شبکه های عصبی می توانند هر تابع حسابی منطقی را محاسبه نمایند. کار این افراد را می توان نقطه شروع حوزه علمی شبکه های عصبی مصنوعی نامید. و این موضوع با دونالد هب ادامه یافت؛ شخصی که عمل شرط گذاری کلاسیک را که توسط پاولف مطرح شده بود به عنوان خواص نرونها معرفی نمود و سپس مکانیزمی را جهت یادگیری نرونهای بیولوژیکی ارائه داد.
نخستین کاربرد عملی شبکه های عصبی در اواخر دهه 50 قرن بیستم مطرح شد، زمانی که فرانک روزنبلات در سال 1958 شبکه پرسپترون را معرفی نمود. روزنبلات و همکارانش شبکه ای ساختند که قادر بود الگوها را از هم شناسایی نماید. در همین زمان بود که برنارد ویدرو در سال 1960 شبکه عصبی تطبیقی خطی آلادین را با قانون یادگیری جدید مطرح نمود که از لحاظ ساختار، شبیه شبکه پرسپترون بود.
هر دوی این شبکه ها، پرسپترون و آدالاین، دارای این محدودیت بودند که توانایی طبقه بندی الگوهایی را داشتند، که به طور خطی از هم متمایز می شدند. ویدرو و روزنبلات هر دو از این امر آگاه بودند، چون آنها قانون یادگیری را برای شبکه های عصبی تک لایه مطرح نموده بودند که توانایی محدودی جهت تخمین توابع داشتند. هر چند آنها توانستند شبکه های چندلایه را مطرح نمایند، لکن نتوانستند الگوریتمهای یادگیری شبکه های تک لایه را بهبود بخشند.
پیشرفت شبکه های عصبی تا دهه 70 قرن بیستم ادامه یافت. در 1972 ئوکوهونن و جیمز اندرسون به طور مستقل و بدون اطلاع از هم، شبکه های عصبی جدیدی را معرفی نمودند که قادر بودند به عنوان "عناصر ذخیره ساز" عمل نمایند. استفان گروسبرگ در این دهه روی شبکه های خود سازمانده فعالیت می کرد. فعالیت در زمینه شبکه های عصبی در دهه 60 قرن بیستم در قیاس با دهه 80 به علت عدم بروز ایده های جدید و نبود کامپیوترهای سریع جهت پیاده سازی کمرنگ می نمود . لکن در خلال دهه 80، رشد تکنولوژی میکروپروسسورها روند صعودی داشت و تحقیقات روی شبکه های عصبی فزونی یافت و ایده های بسیار جدیدی مطرح شدند. ایده های نو و تکنولوژی بالا برای رونسانس دوباره در شبکه های عصبی کافی به نظر می رسید. در این زایش دوباره شبکه های عصبی دو نگرش جدید قابل تامل می باشد. استفاده از مکانیسم تصادفی جهت توضیح عملکرد یک طبقه وسیع از شبکه های برگشتی که می توان آنها را جهت توضیح عملکر یک طبقه وسیع از شبکه های برگشتی که می توان آن ها را جهت ذخیره سازی اطلاعات استفاده نمود. این ایده توسط جان هاپفیلد، فیزیکدان آمریکایی، در سال 1982 مطرح شد. دومین ایده مهم که کلید توسعه شبکه های عصبی در دهه 80 شد، الگوریتم "پس انتشار خطا " می باشد که توسط دیوید راملهارت و جیمز مکلند در سال 1986 مطرح گردید. با بروز این دو ایده، شبکه های عصبی متحول شدند. در ده سال اخیر هزاران مقاله نوشته شده است و شبکه های عصبی کاربردهای زیادی در رشته های مختلف علوم پیدا کرده اند. شبکه های عصبی در هر دو جهت توسعه تئوریک وعملی در حال رشد می باشند، اما این روند رشد، آهسته ومطمئن نبوده، دوره هایی بسیار سریع و دوره هایی کند مشاهده شده است. بیشتر پیشرفتها در شبکه های عصبی به ساختارهای نوین و روشهای یادگیری جدید مربوط می شود.
آنچه که در این جا ممکن است مورد سوال باشد این است که در آینده چه اتفاقی رخ خواهد داد. مثلاً آیا در ده سال آینده شبکه های عصبی جایگاه خاصی به عنوان یک ابزار علمی – مهندسی خواهند یافت، یا بالعکس دچار کمرنگی شده و کمتر مطرح خواهند شد؟ آنچه که می توان در حال حاضر به طور قاطع گفت آن است که شبکه های عصبی جایگاه مهمی خواهند داشت. نه به عنوان یک جواب و راه حل برای هر مسئله، بلکه به عنوان یک ابزار علمی که بتواند برای راه حلهای خاص و مناسب مور استفاده قرار گیرد. باید توجه داشت که در حال حاضر اطلاعات موجود درباره نحوه عملکرد مغز بسیار محدود است و مهمترین پیشرفتها در شبکه های عصبی، در آینده مطرح خواهند شد. زمانی که اطلاعات بیشتری از چگونگی عملکرد مغز و نرونهای بیولوژیک در دست باشد
چرا از شبکه های عصبی استفاده می کنیم؟
شبکه های عصبی ، با قابلیت قابل توجه در استنتاج معانی از داده های پیچیده یا مبهم ، برای استخراج الگوها و شناسایی روشهایی که آگاهی از آنها برای انسان و دیگر تکنیک های کامپیوتری بسیار پیچیده و دشوار است به کار گرفته می شوند. یک شبکه عصبی تربیت یافته می تواند به عنوان یک متخصص در مقوله اطلاعاتی ای که برای تجزیه تحلیل به آن داده شده به حساب آید.از این متخصص می توان برای بر آورد وضعیت های دخواه جدید و جواب سوال های " چه می شد اگر " استفاده کرد.
مزیتهای دیگر آن شامل موارد زیر می شود :
1. یادگیری انطباق پذیر:
قابلیت یاد گیری نحوه انجام وظایف بر پایه اطلاعات داده شده برای تمرین وتجربه های مقدماتی .
2. سازماندهی توسط خود:
یک ANN می تواند سازماندهی یا ارائه اش را ، برای اطلا عاتی که در طول دوره یادگیری در یافت می کند، خودش ایجاد کند.
3. عملکرد بهنگام(Real time ) :
محاسبات ANN می تواند بصورت موازی انجام شود، و سخت افزارهای مخصوصی طراحی و ساخته شده است که می تواند از این قابلیت استفاده کند.
4. تحمل اشتباه بدون ایجاد وقفه در هنگام کد گذاری اطلاعات :
خرابی جزئی یک شبکه منجر به تنزل کارایی متناظر با آن می شود اگر چه تعدادی از قابلیت های شبکه ممکن است حتی با خسارت بزرگی هم باقی بماند.
مزایا و محدودیت های شبکه عصبی
* شبکه های عصبی توان بالقوهای برای حل مسائلی دارد که شبیه سازی آنها از طریق منطقی، تکنیکهای تحلیلی سیستمهای خبره و تکنولوژیهای استاندارد نرم افزاری مشکل است.
* این تکنیک قادر است در مواقعی که داده ها در شرایط عدم اطمینان اعم از آنکه دادههافازی باشند ویا به طور ناقص و توام با نویز دریافت شده باشند جواب منطقی ارائه دهد .
* به دلیل پیشرفتهای تکنیکی از سرعت پردازش بالایی برخوردار شده است.
* محاسبهگرهای عصبی در مواقعی که شرایط تغییرمیکند بسیار منعطف هستند. همچنین نگهداری آنها بسیار ساده است.
* سیستمهای شبکههای عصبی قادر به توضیح منطق و قاعده کار نیستند و اثبات درستی نتایج بسیار دشوار است چرا که در بسیاری از مسائل وزنهای تعدیل شده قابل تفسیر نیستند. بنابراین منطقی که پشت تصمیم نهفته است را نمیتوان روشن نموده و اثبات کرد.
* محاسبات شبکههای عصبی معمولا محتاج مقادیر زیادی داده برای آموزش و تست مدل است.
* در حالت کلی شبکههای عصبی برای برخی مسائل کارایی ندارند. به طور مثال ANN برای حل مسائل و پردازش دادهها با روش مستدل مناسب نیست.
چه کسانی به شبکه عصبی علاقه مند هستند؟
· مهندسان کامپیوتر: کسانی که بر روی روبات ها کار می کنند.
· مهندسان برق: کسانی که بر روی سیگنال ها کار می کنند.
· دانشمندان کامپیوتر: کسانی که بر روی متن کار می کنند.
· ریاضی دانان: کسانی که بر روی مدل ها کار می کنند.
شبکه های عصبی در مقابل کامپیوتر های معمولی
شبکه های عصبی نسبت به کامپیوتر های معمولی مسیر متفاوتی را برای حل مسئله طی می کنند. کامپیوتر های معمولی یک مسیر الگوریتمی را استفاده می کنند به این معنی که کامپیوتر یک مجموعه از دستور العمل ها را به قصد حل مسئله پی می گیرد. بدون اینکه، قدم های مخصوصی که کامپیوتر نیاز به طی کردن دارد، شناخته شده باشند کامپیوتر قادر به حل مسئله نیست. این حقیقت قابلیت حل مسئله ی کامپیوتر های معمولی را به مسائلی ،محدود می کند که ما قادر به درک آنها هستیم و می دانیم چگونه حل میشوند. اما اگر کامپیوتر ها می توانستند کار هایی را انجام دهند که ما دقیقا نمیدانیم چگونه انجام دهیم ، خیلی پر فایده تر بودند.
شبکه های عصبی اطلاعات را به روشی مشابه با کاری که مغز انسان انجام می دهد پردازش می کنند. آنها از تعداد زیادی از عناصر پردازشی(سلول عصبی) که فوق العاده بهم پیوسته اند تشکیل شده است که این عناصر به صورت مواز ی باهم برای حل یک مسئله مشخص کار می کنند .شبکه های عصبی با مثال کار می کنند و نمی توان آنها را برای انجام یک وظیفه خاص برنامه ریزی کرد مثال ها می بایست با دقت انتخاب شوند در غیر این صورت زمان سودمند، تلف می شود و یا حتی بدتر از این شبکه ممکن است نا درست کار کند. امتیاز شبکه عصبی این است که خودش کشف می کند که چگونه مسئله را حل کند ، عملکرد آن غیر قابل پیش گویی است.
از طرف دیگر ، کامپیوتر های معمولی از یک مسیر مشخص برای حل یک مسئله استفاده می کنند . راه حلی که مسئله از آن طریق حل می شود باید از قبل شناخته شود و به صورت دستورات کوتاه و غیر مبهمی شرح داده شود. این دستورات سپس به زبا ن های برنامه نویسی سطح بالا برگردانده می شود و بعد از آن به کدهایی که کامپیوتر قادر به درک آنها است تبدیل می شود. به طور کلی این ماشین ها قابل پیش گویی هستند و اگر چیزی به خطا انجام شود به یک اشتباه سخت افزاری یا نرم افزاری بر می گردد.
شبکه های عصبی و کامپیوتر های معمولی با هم در حال رقابت نیستند بلکه کامل کننده یکدیگرند . وظایفی وجود دارد که بیشتر مناسب روش های الگوریتمی هستند نظیر عملیات محاسباتی و وظایفی نیز وجود دارد که بیشتر مناسب شبکه های عصبی هستند . حتی فراتر از این ، مسائلی وجود دارد که نیازمند به سیستمی است که از تر کیب هر دو روش بدست می آید (بطور معمول کامپیوتر های معمولی برای نظارت بر شبکه های عصبی به کار گرفته می شوند ) به این قصد که بیشترین کارایی بدست آید.
شبکه های عصبی معجزه نمی کنند اما اگر خردمندانه به کار گرفته شوند نتایج شگفت آوری را خلق میکنند.
نرمافزارها و سخت افزارهای شبکههای عصبی
معرفی نرم افزارهایی برای شبیه سازی ،مطالعه و تحقیق سیستمهای عصبی زیستی و گسترش شبکه های عصبی مصنوعی وAdaptive system ها :
شبیه سازها: نرم افزارهایی برای شبیه سازی رفتار شبکه های عصبی زیستی و مصنوعی که به صورت مستقل عمل می کنند و قادرند فرآیند آموزش شبکه ی عصبی را به شکل تصویری نمایش دهند.
شبیه سازهای تحقیقاتی :برای مطالعه ی الگوریتم ها و ساختارهای شبکه ی عصبی که به فهم بهتر رفتارها و خصوصیات شبکه ی عصبی کمک می کنند.(مطالعه ی ویژگی های شیمیایی و زیستی بافتهای عصبی و پالس های الکترومغناطیسی بین نورونها).
رایجترین شبیه سازهای ANN ها :
SNNS(stuttgart neural network simulator),PDP++(parallel distribution processing),JavaNNS
رایجترین شبیه سازهای شبکه های زیستی:
XNBC,BNN ToolBox
شبیه سازهای آنالیز داده :علی رغم دسته ی اول ،کاربردهای عملی شبکه های عصبی را مطالعه می کنند.استفا ده از آنها نسبتا ساده است در عوض تواناییهاشان محدود است . بر روی Data miningوپیش بینی ها کار می کنند.
بعضی از آنها عبارتند از:
Microsoft Excel,Matlab
Development Environment ها:برای گسترش و آرایش شبکه های عصبی به کار می روند.
رایج ترین نرم افزارهای این دسته عبارتند از:
MathWorks NN ToolBox,GBlearn2
ANN ها عمدتا به صورت نرمافزارهای کاربردی ارائه میشوند و همانند هر Application یک ANN میتواند با یک زبان برنامه نویسی یا ابزار برنامه نویسی و یا هر دو برنامه نویسی شود. قسمت اعظم فعالیتهای برنامه نویسی به الگوریتمهای آموزشی توابع تبدیل و توابع جمع در شبکه های عصبی احتصاص دارد. برخی برنامه های نرمافزاری نیز وجود دارند که برایایجاد استقرار ANN ها میتوانند مفید باشند همانند: Neuralyst , Nnet sheet
پیشرفتهایی که در تکنولوژیهای مربوط به سختافزاری حاصل شده است از مزایای پردازش موازی بزرگ استفاده میکند، به عبارت دیگر عمل پردازش به طور همزمان در نرونها انجام میشود. برای افزایش سرعت محاسبات، یکی از 4 روش ذیل را میتوان به کاربرد:
* کامپیوترهای عمومی مثل PC ها
* پردازشگر های موازی IBMSP _2
* چیپهای عصبی، چیپهای خاصی که توانایی محاسبات خیلی سریعی را دارد و در برد دستگاه نصب میشوند، نظیر intel 80 170 NX یا ETANN
* بردهای شتاب دار
کاربرد شبکه های عصبی
با عنایت به اینکه شبکه های عصبی از دو ویژگی اساسی یادگیری یا نگاشت پذیری بر اساس ارائه داده های تجربی (قدرت و توانایی تعمیم پذیری) و ساختار پذیری موازی برخوردار می باشند این شبکه ها برای مسائل کنترل، علی الخصوص سیستمهای پیچیده که مدلسازی این سیستمها یا میسر نیست و یا به سختی انجام می شود بسیار مناسب می باشند. لازم به توضیح است که آنالیز پایداری و آنالیز همگرایی پارامترهای کنترل کننده سیستمهای حلقه بسته هنوز بحث روز می باشد.
نخستین کاربرد شبکه های عصبی در کنترل سیستم ها توسط ویدرو در سال 1963 ارائه شده است. یک شبکه عصبی ساده خطی آموزش می بیند آنگونه که یک پاندول معکوس را کنترل نماید (پایدار سازد) . در خلال 1970 تا 1980 شبکه های عصبی به نام CMAC وسط آلبوس (Albus)برای کنترل بلادرنگ بازوهای ربات معرفی و مورد استفاده قرار گرفت. در خلال 1980 تا 1990، بسیاری دیگر از شبکه های عصبی استاتیکی و دینامیکی و معماریIC آنها پیشنهاد و پیاده سازی شدند. شبکه های عصبی MLPبا کاربردهای بسیار وسیع در مسائل فنی ومهندسی ارائه شدند. در همین راستا یادگیری تشدیدی و روندهای نقادی تطبیقی همراه با کاربردهای صنعتی مطرح گشت. شبکه های برگشتی (فیدبک) همراه با کاربردهای وسیعشان برای مسائل مدلسازی وتخمین پارامترهای سیستم توسعه یافتند.
در دهه اخیر بیش از پیش، شبکه های عصبی تاثیرات زیادی روی مسائل صنعتی با کاربردهای وسیعشان در فرآیندهای غیرخطی و مدلسازی فرد خبره، ردیابی ومونیتور نمودن خطا، فرآیند کنترل و بهینه سازی داشته اند. مثلاً در صنایع شیمیایی و راکتورهای اتمی از شبکه های عصبی برای سیستم CSTR ، کنترل PH هیدروکسید سدیم، جایی که محدوده PH حداقل می گردد مورد استفاده قرار گرفت. در اینجا شبکه عصبی، نخست یک مدل دینامیکی CSTR بدست می آورد و سپس به طور بلادرنگ به عنوان یک بهینه گر، یک سری از اقدامهای بهینه را فراهم می سازد. جالب اینکه این نوع بهینه سازیها را می توان روی تراشه های خاص به طور ترتیبی پیاده سازی سخت افزاری نمود.
از شبکه های عصبی در مدلسازی و شبیه سازی سیستمها علی الخصوص سیستمهای غیرخطی به کرات استفاده شده است.مثلا در صنایع شیمیایی و مسائل کنترل پروازی که علی القاعده سیستمها چند متغیره با تعداد متغیرهای حالت زیاد می باشند، شبکه های عصبی به خوبی مورد استفاده قرار گرفته است. در این راستا باز می توان به شناسایی ژنراتورها در سیستمهای قدرت اشاره نمود. هر چند که بایستی دوباره اذعان کنیم اگرچه از ساختن چیزی شبیه مغز انسان از دیدگاه مهندسی خیلی دور هستیم، با این حال شبکه های عصبی حقیقتاً راه حل های مناسبی را برای مسائل مختلف در حوزه های تحقیقاتی مختلف در دنیای علوم، فنی – مهندسی ارائه نموده است به طور خلاصه می توان جمع بندی زیر را از کاربردهای شبکه های عصبی ارائه نمود.
* طبقه بندی، شناسایی و تشخیص الگو
انواع و اقسام شبکه های عصبی استاتیکی ودینامیکی برای طبقه بندی خوشه بندی، شناسایی و تشخیص الگوها مورد استفاده قرار گرفته است. مثلاً برای شناسایی حروف لاتین، عربی ، فارسی ، چینی ، ژاپنی در سیستمهای OCR یا به شناسایی سبک نگارش شکسپیر و جداسازی و تمیز آن از دیگران یا به تشخیص درجه غلظت روغن توسط شبکه های عصبی اشاره نمود.
* پردازش سیگنال
در این راستا می توان به کاربرد شبکه های عصبی در فیلترهای تطبیقی، پردازش صحبت و تصویر، بینایی ماشین، کدینگ و فشرده سازی تصویر اشاره نمود که از هر دو نوع شبکه های عصبی استاتیک و دینامیک به کرات استفاده شده است. درشناسایی صحبت می توان به فشرده سازی صحبت ومصوتها سنتز متن به صحبت و در ارتباطات، ترجمه در حین کار مکالمات و سیستم پردازش پرداخت مشتریها اشاره نمود.
* پیش بینی سریهای زمانی
از شبکه های عصبی برای پیش بینی سریهای زمانی علی الخصوص جایی که شرایطی از قبیل ایستایی یا شرایط دیگری که راه را برای بکارگیری تکنیکهای کلاسیک فراهم می سازد. برقرار نیست و سریهای زمان پیچیده می باشند بسیار استفاده شده است. مثلاً می توان به پیش بینی بار در سیستمهای قدرت اشاره نمود.
* مدلسازی و کنترل
در سیستمهای تطبیقی مخصوصاً در زمانی که پروسه تحت بررسی بسیار پیچیده می باشد شبکه های عصبی راه حلهای مناسبی ارائه می دهند. در اینجا عموماً اول شناسایی و سپس طراحی کنترل کننده آنگونه که پاسخ سیستم رفتار خاصی را دنبال کند صورت می پذیرد. هر دو سیستم شناسایی کننده و کنترل کننده، مبتنی بر شبکه های عصبی می باشند.
* بهینه سازی
چه در سیستمهای کنترلی و چه در سیستمهای مدیریت، تخصیص و تقسیم منابع و چه در سیستمهای مالی و بانکداری از شبکه های عصبی علی الخصوص شبکه های عصبی دینامیکی برگشتی بسیار استفاده گردیده است. توجه اینکه از شبکه های عصبی از نوع MLP با نوع خاص الگوریتم یادگیری هم جهت بهینه سازی استفاده شده است.
* سیستمهای خبره و فازی
برای مسائل مالی و مدیریتی، سیستمهای خبره زیاد مورد استفاده قرار گرفته اند. از شبکه های عصبی جهت تنظیم بهتر و رفتار مناسبتر سیستمهای خبره استفاده شده است. همچنین در سیستمهای فازی که خود مولفه بزرگ و مهمی از هوش ماسباتی می باشند و به تنهایی کاربردهای بسیار زیادی در دنیای علوم، فنی ومهندسی دارند از شبکه های عصبی جهت تنظیم توابع عضویت و قوانین فازی در پایگاه دانش استفاده گردیده است.
* مسائل مالی، بیمه، امنیتی، بازار بورس و وسایل سرگرم کننده
به طول مثال می توان از کاربرد شبکه های عصبی به عنوان مشاور در امور تخصیص اعتبارات وام، مشاور در امور تخصیص سرمایه در مکانهای مناسب، آنالیز امور مالی، پیش بینی قیمت ارز، پیش بینی قیمت سهام در بازار بورس، ارزیابی سیاستهای مختلف امور بیمه ای، پیش بینی بازار، سیستمهای مشاوره ای انبارداری کالاهای تجاری و ایجاد انیمیشن برای وسایل سرگرم کننده نام برد.
* ساخت وسایل صنعتی، پزشکی و امور حمل و نقل
مثالهایی از کاربردهای شبکه های عصبی در این زمینه عبارتند از:
کنترل پروسه های ساخت و پیاده سازی دستگاهها، آنالیز و طراحی محصولات صنعتی خانگی، ماشین پیش بینی خطا و عیب یاب، آنالیز کیفیت جوش کاری، پیش بینی کیفیت کاغذ، آنالیز کیفیت تراشه های کامپیوتری، آنالیز تعمیر و نگهداری، مدیریت وطراحی اتوماتیک، مدلسازی دینامیکی سیستمهای صنعتی و شیمیایی ، آنالیز سلولهای سرطانی سینه، آنالیز سیگنالهای ECG وEEG، بهبود کیفی امور بیمارستانی، آنالیز در کاهش هزینه های امور بیمارستانی، بهینه سازی زمان جراحی وعمل پیوند، سیستمهای اتوماتیک حرکت وسایل نقلیه، سیستمهای پیش بینی و حفاظت سیستمهای متحرک و اعمال ترمز، جهت یابی و تشخیص مسیرها.
نکته حائز اهمیت اینکه بسیاری از کاربردهای فوق در ایران (در دانشگاههای مختلف مراکز صنعتی)، به طور مشخص در دانشگاه صنعتی امیرکبیر انجام گرفته و یا در حال انجام است.
آنچه که شبکه های عصبی را در آینده محبوب تر خواهد نمود، سرعت بالای کامپیوترها و الگوریتم های یادگیری سریعتر می باشد که استفاده از شبکه های عصبی را در مسائل صنعتی با محاسبات زیاد یاری می نماید.
یکپارچگی منطق فازی و شبکه های عصبی
سیستم های هوشمند پیوندی که از ترکیب منطق فازی و شبکه های عصبی تشکیل شده است. در حال اثبات کردن تاثیراتشان در یک پهنه وسیعی از مسایل دنیای واقعی هستند.
منطق فازی و شبکه های عصبی خصوصیات محاسباتی ویژه ای دارند که آنها را برای مسائل خاصی مناسب می سازد. برای مثال در حالیکه شبکه های عصبی برای تشخیص الگو خوب هستند برای شرح اینکه چطور تصمیم گیری می کنند خوب نیستند. سیستم های فازی که می توانند با اطلاعات مبهم استدلال کنند برای این کار یعنی تشریح چگونگی تصمیم سازی مناسبند اما به طور اتو ماتیک نمی توانند قوانین را که برای این تصمیم گیری استفاده می کنند را بدست آورند . این محدودیت ها یک نیروی محرک اصلی در پشت ایده ایجاد سیستمهای ترکیبی هوشمند بود که دو یا بیشتر از دو تکنیک در یک روش ترکیب شوند تا اینکه بر محدودیت های هر یک از این تکنیک ها بتوان غلبه کرد. سیستم های پیوندی همچنین موقعی اهمیت دارند که در طبیعت متنوع حوزه های کاربردی در نظر گرفته می شوند. بسیاری از حوزه های پیچیده تعداد زیادی مسائل جزئی متفاوت دارند که هر کدام ممکن است به انواع متفاوتی از فرایندها نیاز داشته باشند.
استفاده از سیستم های هوشمند ترکیبی با موفقیت برنامه های کاربردی در حوزه هایی که شامل پردازش فرایند ، طراحی مهندسی ، تجاری- مالی ، ارزش افزوده ، تشخیص پزشکی و شبیه سازی شناختی به سرعت در حال رشد است .
هنگامی که منطق فازی، یک ماشین استنتاج تحت عدم قطعیت شناختی به وجود آورد ، شبکه های عصبی محاسباتی فواید مهیجی از قبیل یادگیری ، تطبیق ، تحمل خطا ، تقارن و تعمیم دهی را پیشنهاد می کنند .
برای توانا ساختن یک سیستم برای پرداختن به عدم قطعیت های شناختی در روشی مشابه انسانها بایستی مفاهیم منطق فازی را با شبکه های عصبی ترکیب نمود .
تصور می شود که سیستم های فازی عصبی برای فرایندهای محاسباتی راهگشا باشند و این کار با توسعه یک نرون فازی بر اساس فهمی که از ساختار شناسی نرونهای بیولوژیکی بدست می آید شروع می شود و به دنبال آن ماشینهای یادگیرنده ایجاد می شوند که این اعمال منجر به سه مرحله در یک فرایند محاسباتی فازی- عصبی می شود که در ذیل آورده شده است:
* توسعه مدلهای فازی عصبی که به وسیله نرونهای بیولوژیکی برانگیخته می شوند.
* مدلهای ارتباطی سیناپسی که فازی سازی را در داخل شبکه های عصبی ترکیب می کنند.
* توسعه الگوریتم های یادگیرنده (که در این مرحله وزن های سیناپسی تعدیل می گردند.)
تحقیقات صورت گرفته در این زمینه :
تحقیق در مورد منطق فازی و سیستم های فازی- عصبی در دهه اخیر دستخوش یک نوع رنسانس قرار گرفته بطوری که برخی افراد در حال یکپارچه کردن قابلیت یادگیری شبکه های عصبی با ارائه مبتنی بر قانون سیستم های فازی هستند . خوانندگان علاقمند می توانند اطلاعات بیشتر در این موارد را در مکانهایی که در قسمت ذیل ذکر می شود بیابند .
اخیراً کتابهای زیادی در مورد منطق فازی و کنترل فازی انتشار یافته و ساده ترین کتاب غیر تکنیکی که توسعه تحقیق منطق فازی و کاربرد آن را نشان می دهدکتاب زیر است:
* C.Mcneill and P.Freiberger .fuzzy logic.simon&Schuster , new simon&Schuster , New York, NY , 1993.
وکتابهای تکنیکی مقدماتی همچون
* E.Cox . The Fuzzy System Handbook . Ap Professional , 1994.
* D.Driankov , H.Hellendoorn , and M.Reinfrank . An Introduction to Fuzzy Control . Spring_Vrlag , Berlin , 1993.
* C.J.Harris , editor . Advances in Intelligent Control.Taylor and Francis,London, 1994.
* H.J.Zimmerman . Fuzzy Set Theory and its Application. Kluwer Academic Press , Boston , MA , 2nd Edition , 1993 .
و همچنین چندین کتاب تحقیقی وجود دارد که روند جاری علم تئوری سیستم های فازی عصبی و فازی را شرح می دهد همانند :
* J.F.Baldwin , T.P.Martin , and Plisworth B.W.Fril – Fuzzy Evidential Reasoning in AI . Research Studies Press(Wilwy) , 1995 .
* M.Brown and C.Harris . NeuroFuzzy Addaptive Modelling and Control . Prentice Hall , Hemel Hempstead , UK , 1994 .
* B.Kosko . Neural Network and Fuzzy System . Prentice Hall , Englewood Vliffs , NJ , 1992 .
همچنین دو مجله اصلی در این زمینه وجود دارد :
Fuzzy Sets and Systems
IEEE Transactions on Fuzzy Systems
یک منبع مفید که اطلاعات به روزی را در مورد نرم افزارهای رایگان اشتراکی یا تجاری ، سخت افزار ، میل لیستها ، وب سایت ها ، کنفرانسها و غیره را در بر دارد و توسط گروه تحقیقاتی سیستمهای هوشمند گفتار و تصویر ((Image , Speech and Intelligent Systems ISIS نگهداری می شود در آدرس زیر می باشد .
http://www.isis.ecs.soton.ac.uk/research/nfinfo/fuzzy.html
و یک شبکه اروپایی برای تکنولوژی فازی و مدل سازی عدم قطعیت با آدرس :
http://www.mitgmbh.de/erudit/
و گروهی که توسط پرفسور زیمرمن به وجود آمده :
http:// www.mitgmbh.de/elite/elite.html
و وب سایت زیر که توسط (Berkeley Initiative into Soft Computing)BISC ایجاد شده و در زمینه فازی- عصبی تحقیق می کند و یکی از نویسندگان این سایت پرفسور لطفی زاده می باشد .
http://http.cs.berkeley.edu/prpjects/bisc/bisc.welcom.html
مدل ریاضی یک نرون:
همان گونه که ذکر شد نرون کوچکترین واحد یک شبکه عصبی مصنوعی است که عملکرد شبکه های عصبی را تشکیل می دهد.بدنه هر سلول عصبی از دو بخش تشکیل می شود٬ بخش اول را تابع ترکیب می گویند. وظیفه تابع ترکیب این است که تمام ورودی ها را ترکیب و یک عدد تولید می کند. در بخش دوم سلول تابع انتقال قرار دارد که به آن تابع تحریک نیز می گویند. رایج ترین انواع توابع تحریک بر پایه مدل های بیولوژیک استوار گردیده است. درواقع همان گونه که یک سلول بیولوژیک باید به سطح آستانه تحریک خاصی برسد تا یک سیگنال تولید کند٬ توابع تحریک نیز تا زمانی که ورودی های ترکیب شده و وزن دار شده به یک حد آستانه ای خاص نرسند مقدار خروجی نظیر بسیار کوچکی تولید میکنند.
ساختار یک نرون مصنوعی
وقتی ورودی های ترکیب شده به حد آستانه ای خاصی برسند٬ سلول عصبی تحریک شده و سیگنال خروجی تولید می کند. با مقایسه جواب خروجی شبکه با مقدار مطلوب مورد نظر بردار خطا محاسبه شده و این بردار با استفاده از الگوریتم های مختلف از آخر به سمت ابتدای شبکه پخش شده٬ به طوری که در سیکل بعد خطا کاهش یابد.
یک نرون ساده :
یک نرون مصنوعی سیستمی است با تعداد زیادی ورودی و تنها یک خروجی .نرون دارای دو مد می باشد، مد آموزش و مد عملکرد .در مئ آموزش نرون یاد می گیرد که در مقابل الگوهای ورودی خاصبرانگیخته شود و یا در اصطلاح آتش کند .در مد عملکرد وقتی یک الگوی ورودی شناسایی شده وارد شود خروجی متناظر با آن ارائه می شود.اگر ورودی جزء ورودیهای از پیش شناسایی شده نباشد قوانین آتش برای برانگیختگی یا عدم آن تصمیم گیری می کند.
قوانین برانگیختگی:
قوانین آتش یا برانگیختگی یک مفهوم مهم برای شبکه های عصبی و ایجاد انعطاف پذیری در آنها می باشد .قانون به تمام الگوهای ورودی مربوط می شود نه تنها الگوهای آموزش داده شده. با استفاده از تکنیک فاصله همینگ به یک قانون ساده برانگیختگی اشاره می کنیم .به ترتیب زیر:
مجموعه ای از الگوهای آموزشی آماده می شود .آنهایی که باعث آتش می شوند 1 و انهایی که مانع شوند 0 را دریافت می کنند.الگوهایی که در مجموعه جمع اوری شده نمی باشند باعث برانگیختگی می شوند اگر در مقایسه با الگوهای قبلی 0 و 1 عناصر مشترک بیشتری داشته باشند .اگر گره ای به وجود بیاید الگو در وضعیتی تعریف نشده باقی می ماند .به عنوان مثال یک نرون با 3 ورودی را در نظر بگیرید که در حالتی که ورودیهای X3,X2,X1 در حالت 101 یا 111 هستند خروجی 1 و در حالتی که 000 یا 001 باشند 0 را نمایش می دهد .قبل از اعمال قوانین برانگیختگی جدول صحت به صورت زیر است .
X1:
0
0
0
0
1
1
1
1
X2:
0
0
1
1
0
0
1
1
X3:
0
1
0
1
0
1
0
1
OUT:
0
0
0/1
0/1
0/1
1
0/1
1
به عنوان مثال در حالتی که قانون به کار گرفته شود ورودی 010 را اعمال می کنیم که با 000 در 1 عنصر با 001 در 2 عنصر با 101 در 3 عنصر و با 111 در 2 عنصر اختلاف دارد در نتیجه نزدیکترین الگو 000 می باشد که متعلق به خروجی 0 است.در حالیکه 011 دارای اختلاف فاصله مساوی از دو الگوی از قبل شناخته شده می باشد که هریک دارای خروجی متفاوت است در نتیجه خروجی به صورت تعریف نشده (0/1) باقی می ماند . با اعمال قانون به ستونها جدول صحت زیر به دست می آید.
X1:
0
0
0
0
1
1
1
1
X2:
0
0
1
1
0
0
1
1
X3:
0
1
0
1
0
1
0
1
OUT:
0
0
0
0/1
0/1
1
1
1
تفاوت بین دو جدول را عمومی سازی(عمومیت بخشی) گویند . در نتیجه قانون برانگیختگی به نرون مفهوم شبیه سازی را رسانده وآنرا قادر به پاسخ دهی محسوس به الگوهایی که در طول آموزش با آنها برخورد نداشته می کند.
یک مثال- شناسایی الگو:
یک کاربرد مهم شبکه های عصبی الگوشناسی می باشد که با استفاده از شبکه های عصبی پیشرو انجام می گیرد. در طول آموزش شبکه یاد می گیرد به الگوهای ورودی خروجی متناظر را اعمال کند .قدرت شبکه های عصبی زمانی ظهور پیدا می کند که الگویی ورودی که دارای خروجی متناظر نمی باشد وارد شود .در این مورد شبکه خروجی الگویی را که دارای کمترین تعداد اختلاف با الگوی ورودی است ایجاد می کند.
یک نرون پیچیده تر
ساختار نرون قبلی کاری جز آنچه کامپیوترهای سنتی انجام می دهند نمی کرد. مدل مک کلوک و پیتز(MCP) نرونی با سطح بالاتر است که اختلاف آن با مدل قبلی در ورودیهای وزندار است .تاثیری که هر ورودی در تصمیم گیری دارد وابسته به وزن ورودی مخصوص به آن می باشد .وزن یک ورودی عددی است که وقتی در ورودی ضرب شود یک ورودی با وزن را تشکیل دهد . این ورودیهای با وزن با هم جمع می شوند .اگر حاصل جمع از ارزش آستانه ای تجاوز کند نرون آتش می کند یا در اصطلاح برانگیخته می شود.
در اصطلاح ریاضی ، نرون برانگیخته می شود اگر و تنها اگر :
X1W1+X2W2+….>T
این روش باعث می شود نرون قدرتمند و انعطاف پذیر باشد .نرون MCP توانایی سازگاری با وضعیت خاص به وسیله ی تغییر وزنها و/یا حد آستانه را دارد .الگوریتمهای متنوعی موجود می باشند که باعث تطبیق نرون می شوند ، بیشترین استفاده از قوانین Delta وBack Error Propagation است .اولی در شبکه های پیشرو ودیگری در شبکه های پسخور استفاده می شود.
ساختار شبکه های عصبی:
یک شبکه عصبی شامل اجزاء سازنده لایه ها و وزنها می باشد . رفتار شبکه نیز وابشته به ارتباط بین اعضاء است .در حالت کلی در شبکه های عصبی 3 نوع لایه نرونی وجود دارد :
1. لایه ورودی : دریافت اطلاعات خامی که به شبکه تغذیه شده است.
2. لایه های پنهان : عملکرد لایه های پنهان به وسیله ورودیها و وزن ارتباط بین آنها و لایه های پنهان تعیین می شود. وزنهای بین واحدهای ورودی و پنهان تعیین می کند چه وقت یک واحد پنهان باید فعال شود
3. لایه خروجی : عملکرد واحد خروجی بسته به فعالیت واحد پنهان و وزن ارتباط بین واحد پنهان و خروجی میباشد.
شبکه های تک لایه و چند لایه نیز وجود دارند که سازماندهی تک لایه که در آن تمام واحدها به یک لایه اتصال دارند بیشترین مورداستفاده را دارد و پتانسیل محاسباتی بیشتری نسبت به سازماندهیهای چند لایه دارد. در شبکه های چند لایه واحدها به وسیله لایه ها شماره گذاری می شوند (به جای دنبال کردن شماره گذاری سراسری)
هر دو لایه از یک شبکه به وسیله وزنها و در واقع اتصالات با هم ارتباط می یابند. در شبکه های عصبی چند نوع اتصال و یا پیوند وزنی وجود دارد:
پیشرو: بیشترین پیوندها از این نوع است که در آن سیگنالها تنها در یک جهت حرکت می کنند .از ورودی به خروجی هیچ بازخوردی (حلقه) وجود ندارد. خروجی هر لایه بر همان لایه تاثیری ندارد.
پسخور: داده ها از گره های لایه بالا به گره های لایه پایین بازخورانده می شوند .
جانبی: خروجی گره های هر لایه به عنوان ورودی گره های همان لایه استفاده می شوند .
مراحل طراحی شبکه
به طور خلاصه مراحل طراحی یک شبکه عصبی عبارتند از:
* طرح معماری شبکه شامل:
تعیین نوع اتصالات است که میتواند، اتصال کامل و یا اتصال جزیی باشد. همچنین برگشت پذیری شبکه باید بررسی گردد شبکه های feedforward network معمولا برای محاسبه فرمول های ریاضی ساده بدون پویایی بکار گرفته میشوند. recurrent network در اغلب مسائل پویا کاربرد دارند.
* تعیین نوع تابع تبدیل
* آموزش شبکه: یعنی تنظیم پارامترهای آزاد طراحی مثل وزن اتصالات و ورودیها، وزن ترم بایاس
برای یادگیری ابتدا لازم است الگوریتم یادگیری انتخاب شود. مهمترین عاملی که باید به آن توجه نمود به کارگیری یک الگوریتم مناسب برای آموزش شبکه است. لازم به ذکر است بیش از 100 نوع الگوریتم یادگیری تا کنون به وجود آمده است که یک نوع طبقهبندی این انواع توسط Lippman ارائه شده استکه براساس شکل ورود اطلاعات است .
اهداف شبکه های عصبی
.شبکه های عصبی مصنوعی برای حل مسائل پیچیده و یا مواردی که هیچ راه حل الگوریتمی وجود ندارد و یا بسیار پیچیده هستند مورد استفاده قرار می گیرد .چهار نوع هدف کلی توسط این شبکه های قابل پیگیری است ،که هر کدام بسته به نوع مجهولات در مواردی خاص قابل بهره گیری می باشد :
1- طبقه بندی :
برای طبقه بندی ، داده های نمونه های مختلف را به شبکه می دهیم و نام گروه هر نمونه را به عنوان خروجی مشخص می کنیم ، پس از آموزش مناسب شبکه قادر خواهد بود با دریافت داده های مربوط به نمونه های جدید مشـخص کند که ایـن نمـونه بـه کـدام طبــقه متــعلق می باشد . به عنوان مثال میتوان پارامترهای آزمایشگاهی بیماران مبتلا به سرطان پروستات و افراد سالم را به عنوان ورودی و وضعیت فرد ( سالم بودن یا سرطانی بودن ) را به عنوان خروجی به شبکه داده در این صورت شبکه پس از یادگیری خواهد توانست پارامترهای فرد جدید را گرفته و سرطانی بودن او را پیشگویی کند .
2- تخمین تابع :
زمانی که پارامترهای ورودی با تاثیرات پیچیده درسیستم پاسخی قابل اندازه گیری ایجاد می کنند ،شبکه می تواند آموزش بیابد تا این پاسـخ را پیشــگویی کند . به عنوان مثال شبکه میتواند پس از آموزش، با دریافت داده های مربوط به هر مولکول جدید در داروها ، شدت اثر آن را پیشگویی کند .
3- پیشگویی :
اصطلاح پیشگویی در اینجا برای سری های زمانی بکاربرده می شود ؛ یعنی جایی که داده ها مربوط به نمونه های پیاپی هستند و داده های هر نمونه برای پیشگویی نمونه بعدی استفاده می شود . مانند پیشگویی وضعیت آتی بیمار بستری در بخش CCU .
4- خوشه کردن :
این نـوع کــــارکرد شـــبکه هــا مربوط به یادگـــیری Unsupervised است . یعنی طبقه بندی داده ها بر حسب رفتار و برهم کنش های درونی آنها بدون داشتن الگو و یا فرضیه قبلی .
تقسیم بندی شبکه های عصبی:
بر مبنای روش آموزش به چهار دسته تقسیم می شوند:
1. وزن ثابت: آموزشی در کار نیست و مقادیر وزنها به هنگام نمی شود.
کاربرد:
* بهینه سازی اطلاعات (کاهش حجم ، تفکیک پذیری و فشرده سازی)
* حافظه های تناظری
2. آموزش بدون سپرست: وزنها فقط بر اساس ورودیها اصلاح می شوند وخروجی مطلوب (معلم) وجود ندارد تا با مقایسه خروجی شبکه با آن و تعیین مقدار خطا وزنها اصلاح شود.وزنها فقط براساس اطلاعات الگوهای ورودی به هنگام می شوند.هدف استخراج مشخصه های الگوهای ورودی بر اساس استراتژی خوشه یابی و یا کلاسبندی و تشخیص شباهتها (تشکیل گروههایی با الگوی مشابه) می باشد ، بدون اینکه خروجی یا کلاسهای متناظر با الگوهای ورودی از قبل مشخص باشد .این یادگیریمعمولا بر پایه شیوه ی برترین هم خوانی انجام می گیرد.شبکه بدون سرپرست وزنهای خود را بر پایه خروجی حاصل شده از ورودی تغییر می دهد تا در برخورد بعدی پاسخ مناسبی را برای این ورودی داشته باشد.در نتیجه شبکه یاد می گیرد چگونه به ورودی پاسخ بدهد.اصولا هدف این است که با تکنیک نرون غالب نرونی که بیشترین تحریک آغازین را دارد برگزیده شود .بنابراین در شبکه های بدون سرپرست یافتن نرون غالب یکی از مهمترین کارها است .
3. آموزش با سرپرست:به ازای هر دسته از الگوهای ورودی خروجیه ای متناظر نیز به شبکه نشان داده می شود و تعغیر وزنها تا موقعی صورت می گیرد که اختلاف خروجی شبکه ازای الگوهای آموزشی از خروجی های مطلوب ( معلم) در حد خطای قا بل قبولی باشد در این روشها یا از خروجی ها به وزنها ارتباط سپر وجود دارد و یا خطا بصورت پس انتشار از لایه خروجی به ورودی توزیع شده است و وزنها اصلاح می شوند . هدف طرح شبکه ای است که ابتدا با استفاده از داده های آموزشی موجود،آموزش ببیند و سپس با ارائه بردار ورودی به شبکه که ممکن است شبکه آن را قبلا فرا گرفته یا نگرفته باشد کلاس آن را تشخیص دهد چنین شبکه ای به طور گسترده برای برای کارهای تشخیص الگو به کار گرفته می شود .
4.آموزش تقویتی: کیفیت عملکرد سیستم بصورت گام به گام نسبت از مان بهبود می یابد الگوهای آموزشی مشخصی وجود ندارد اما با استفاده از سیگنالی به نام نقاد بیانی از خوب و یا بد بودن رفتار سیزستم بدست می آید .حالتی بین یادگیری با سرپرست و بدون سرپرست .
انواع یادگیری برای شبکه های عصبی:
1. یادگیری با ناظر
در یادگیری با ناظر به قانون یاد گیری مجموعه ای از زوجهای داده ها به نام داده های یادگیری (Pi,Ti)i={1 … l } می دهند که در آن Pi ورودی به شبکه و Ti خروجی مطلوب شبکه برای ورودی Pi است. پس از اعمال ورودی Pi به شبکه عصبی در خروجی شبکه ai با Ti مقایسه شده و سپس خطای یادگیری محاسبه و از آن در جهت تنظیم پارامترهای شبکه استفاده می شود به گونه ای که اگر دفعه بعد به شبکه همان ورودی Pi اعمال شود خروجی شبکه به Ti نزدیکتر می گردد با توجه به این نکته که معلم سیستمی است که بر محیط وقوف دارد ( مثلا می داند که برای ورودی Pi خروجی مطلوب Ti است ).توجه داریم که محیط برای شبکه عصبی مجهول است . در لحظه k بردار ورودی Pi(k) با تابع توضیع احتمال معینی که برای شبکه عصبی نا معلوماست انتخاب و بطور همزمان به شبکه عصبی و معلم اعمال می شود . جواب مطلوب Ti(k) نیز توسط معلم به شبکه عصبی داده می شود . در حقیقت پاسخ مطلوب پاسخ بهینه ای است که شبکه عصبی برای ورودی مفروض باید به آن برسد . پارامترهای شبکه عصبی توسط دو سیگنال ورودی و خطا تنظیم می شود.به این صورت که پس از چند تکرار الگوریتم یادگیری که عموما توسط معادله تفاضلی بیان می شودبه پارامترهایی در فضای پارامترهای شبکه همگرا می شوند که برای آنها خطای یادگیری بسیار کوچک است و عملا شبکه عصبی شبکه عصبی معادل معلم می شود . یا به عبارتی دیگر اطلاعات مربوط به محیط(نگاشت بین TiوPi )که برای معلم روشن است به شبکه عصبی منتقل می شود و پس از این مرحله عملا می توان بجای معلم از شبکه عصبی استفاده کرد تا یادگیری تکمیل شود .
2 . یادگیری تشدیدی:
یک اشکال یادگیری با ناظر این است که شبکه عصبی ممکن است بدون معلم نتواند مواضع جدیدی را که توسط مجموعه داده های جدید تجربی پوشانده نشده است یاد بگیرد . یادگیری از نوع تشدیدی این محدودیت را برطرف می کند . این نوع یادگیری بطور on-line صورت می گیرد در حالی که یادگیری با ناظر را به دو صورت on-line & off-line می توان انجام داد. در حالت off-line می توان از یک سیستم محاسب با در اختیار داشتن داده های یادگیری استفاده کرد و طراحی شبکه عصبی را به پایان رساند . پس از مرحله طراحی و یادگیری شبکه عصبی به عنوان یک سیستم استاتیکی عمل می کند . اما در یادگیری on-line شبکه عصبی همراه با خود سیستم یادگیر در حال انجام کار است و از این رو مثل یک سیستم دینامیکی عمل می کند .
یادگیری از نوع تشدیدی یک یادگیری on-line از یک نگاشت ورودی-خروجی است . این کار از طریق یک پروسه سعی و خطا به صورتی انجام می پذیرد که یک شاخص اجرایی موسوم به سیگنال تشدید ماکزیمم شود و بنابر این الگوریتم نوعی از یادگیری با ناظر است که در آن به جای فراهم نمودن جواب واقعی ، به شبکه عددی که نشانگر میزان عملکرد شبکه است ارایه می شود. این بدین معنی است که اگر شبکه عصبی پارامترهایش را به گونه ای تغییر داد که منجر به یک حالت مساعد شد آنگاه تمایل سیستم یادگیر جهت تولید آن عمل خاص تقویت یا تشدید می شود . در غیر این صورت تمایل شبکه عصبی جهت تولید آن عمل خاص تضعیف می شود . یادگیری تقویتی مثل یادگیری با ناظر نیست و این الگوریتم بیشتر برای سیستمهای کنترلی کاربرد دارد.
3.یادگیری بدون ناظر:
در یادگیری بدون ناظر یا یادگیری خود سامانده پارامترهای شبکه عصبی تنها توسط پاسخ سیستم اصلاح و تنظیم می شوند . به عبارتی تنها اطلاعات دریافتی از محیط به شبکه را برداغرهای ورودی تشکیل می دهند. و در مقایسه با مورد بالا (یادگیری با ناظر) بردار جواب مطلوب به شبکه اعمال نمی شود . به عبارتی به شبکه عصبی هیچ نمونه ای از تابعی که قرار است بیاموزد داده نمی شود . در عمل می بینیم که یادگیری با ناظر در مورد شبکه هایی که از تعداد زیادی لایه های نرونی تشکیل شده باشند بسیار کند عمل می کند و در این گونه موارد تلفیق یادگیری با ناظر و بدون ناظر پیشنهاد می گردد .
توپولوژی شبکه های عصبی
وضعیت نسبی سلولها در شبکه(تعداد و گروه بندی و نوع اتصالات آنها)را توپولوژی شبکه گویند.توپولوژی در واقع سیستم اتصال سخت افزار نورونها به یکدیگر است که توام با نرم افزار مربوطه (یعنی روش ریاضی جریان اطلاعات و محاسبه ی وزنها)نوع عملکرد شبکه ی عصبی را تعیین می کند.
در این توپولوژی یک لایه ی ورودی وجود دارد که اطلاعات را دریافت می کند، تعدادی لایه ی مخفی وجود دارد که اطلاعات را از لایه های قبلی می گیرند و در نهایت یک لایه ی خروجی وجود دارد که نتیجه ی محاسبات به آنجا میرود و جوابها در آن قرار میگیرند.
* می توان شبکه های عصبی را بر اساس شیوه پردازش اطلاعات در آنها، به دو گروه شبکه های Feed Forward و نیز شبکه های Recurrent (که در آنها از فیدبک خروجی استفاده شده است) تقسیم کرد.
* شبکههای پیشخور (Feed Forward)
درشبکههای پیشخور مسیر پاسخ همواره رو به جلو پردازش میشود و به نرونهای لایه ( لایههای قبل ) باز نمیگردد. اگر ایده شبکههای feed forward را به چند لایه تعمیم دهیم، هر لایه ماتریس وزن W و بردار ورودی X و بردار خروجی مختص خود را دارد.
* شبکههای برگشتی (Recurrent)
تفاوت شبکههای برگشتی یا Recurrent با شبکههای پیشخور در آن است که در شبکههای برگشتی حداقل یک سیگنال برگشتی از یک نرون به همان نرون یا نرونهای همان لایه یا لایههای قبل وجود دارد. شبکههای Recurrent بهتر میتوانند رفتار مربوط به ویژهگیهای زمانی و پویایی سیستمها را نشان دهند. در این نوع شبکه ها که با توجه به ماهیت پویای مسئله طراحی میشوند بعد از مرحله یادگیری شبکه نیز پارامترها تغییر کرده و تصحیح می شوند ( به طور مثال در پیشبینی ها بعد از گذر زمان مقایسه انجام شده و پارامترهای آزاد شبکه تنظیم میشوند) نوع خاصی از شبکههای برگشت پذیر به شبکه های هاپفیلد (Hopfield Network) موسوم هستند.
در شبکههای هاپفیلد نرونها نخست توسط ورودی مقدار اولبیه میگیرند و شبکه به گونهای خود را تکرار میکند که نتیجه آن همگرایی به سمت الگوی مرجع است. در این شبکه همه نرونها شبیه به یکدیگر عمل کرده و هیچ کدام از نرونها به عنوان ورودی یا خروجی از هم متمایز نمیشوند. در تشکیل ساختارها یعنی تعداد سلولهای عصبی و لایهها و همچنین شرایط اولیه مسئله باید دقت نمود که موارد عملی و پیچیده به یک یا حتی تعداد بیشتری لایه مخفی ورودی و خروجی و تعداد زیادی وزن برای عوامل ورودی احتیاج دارند. بسیاری از ANN های تجاری شامل 4 و یا حتی 5 لایه هستند که هر کدام شامل 10 تا 1000 المان پردازشی هستند. برخی از ANN ها حاوی میلیونها المان پردازشی هستند.
* در حال حاضر تعداد بسیار زیادی از انواع مختلف شبکه های عصبی مصنوعی وجود دارند که به صورت خلاصه عبارتند از: شبکه های پرسپترون چند لایه (Multi Layer Perceptron)، کوهونن، هاپفیلد… که این شبکه ها نیز خود با روش های مختلفی آموزش می بینند مانند روش پسخورد خطا (Error Back propagation).
در اینجا به معرفی چند نوع از شبکه های عصبی می پردازیم:
پرسپترون چند لایه:
یکی از انواع شبکه های عصبی ، پرسپترون می باشد وبصورت های پرسپترون تک لایهSingle-Layer Perceptrons(SLPs) وپرسپترون چند لایهMulti-Layer Perceptron (MLPs) موجود هستند . شبکه های عصبی پرسپترون جزو شبکه های عصبی پیشخور طبقه بندی می شوند. پرسپترون تک لایه تنها می تواند مسایل مجزای خطی را دسته بندی کند و برای مسایل پیچیده تر لازم است که از تعداد بیشتری لایه استفاده کنیم. شبکه های پیشخور چند لایه از یک ویا تعداد بیشتری لایه های میانی تشکیل شده اند.
پرسپترون چند لایه یک شبکه کاملاً بهم مرتبط می باشد چرا که هر نرون در یک لایه به تمامی نرونهای لایه بعدی مرتبط می باشد . اگر بعضی از این ارتباطات وجود نداشته باشد شبکه ، یک شبکه مرتبط ناقص است . زمانی که می گوییم شبکه از n لایه تشکیل شده است ، ما تنها لایه های میانی و لایه خارجی را شمرده ایم و لایه ورودی شمارش نمی شود چرا که این نرونها محاسبه ای را انجام نمی دهند. بنابراین شبکه تک لایه شبکه ای با تنها یک لایه خارجی میباشد.
زمینه ای در مورد perceptron
Perceptron های ساده
یک خانواده ساده از شبکه های عصبی مدل perceptron می باشد. در یک دسته بندی تک خروجی، تعداد n ورودی و یک خروجی دارد . با هر ورودی یک ضریب وزنی Wi و با هر خروجی یک مقدار آستانه q مرتبط است.
Perceptron به گونه زیر عمل می کند:
ورودی های Perceptron یک بردار ورودی از n مقدار حقیقی است.
Perceptron مجموع وزنها را محاسبه می کند a= Wi.Xi این مقدار با مقدار آستانه q مقایسه می شود. اگر این مقدار از مقدار آستانه کوچکتر باشد خروجی 0 است و در غیر این صورت 1 است.
قدرت Perceptron
به وسیله تنظیم اعداد ورودی، وزن آنها و مقدار آستانه می توان یک Perceptron برای انجام نسبتا خوب محاسبات گوناگون طراحی کرد. برای مثال توابع منطقی بولین مانند AND ، OR و NOT را می توان به وسیله Perceptron طراحی کرد و هر مدار منطقی دیگر را به وسیله گیتهای AND و NOT یا AND و OR طراحی کرد. دسته های زیادی از Perceptronها ممکن است خروجی های دسته های دیگر را به عنوان ورودی خود درخواست کنند.
به عنوان مثالی ازPerceptron ها می توان یک تشخیص دهنده قالب متن را نام برد. حرفA درآرایه ای 5*5 به رمز درمی آید(encode ) می شود. این متن(حرف) به وسیله یک Perceptron با 25 ورودی تشخیص داده می شود که در آن وزنها مقادیری برابر با مقادیر عددی داخل آرایه را می گیرند و مقدار آســتانه برابر است با e-25 =q که در آن < e < 1 0
خروجی Perceptron ،1است اگر و فقط اگر ورودی آن از 1 و 1- هایی باشد که عینا در آرایه آمده است.
دنباله های Perceptron
یکی از خصوصیات جالب Perception این است که آنها می توانند به وسیله مثالهای مثبت و منفی ( صحیح و اشتباه) برای انجام توابع دسته بندی شده مخصوص بارها مرتب شوند.
حال به یک مثال ساده از Perceptron با دو ورودیX1 وX2 ، که تشخیص می دهد که کدام یک از دو کلاس، عناصر متعلق به خودش را دارد. ما فرض می کنیم که این Perceptron دو طرح از کارکترهای چاپ شده از یک متن را بررسی کند، خروجی 1 است اگر و فقط اگر کاراکتر رقم 8 باشد. فرض کنیم که X1 بیانگر تعداد حفره های کاراکتر است و X2 درجه راستی سمت چپ کاراکتر را نشان می دهد. ما با 4 ورودی .
اگر ما perceptron را در اول کار با وزنهایی برابر 0 و مقدار آستانه را برابر 10 مقداردهی کنیم یک رده بندی از همه مثالهای منفی انجام داده ایم. با قرار دادن رده بندی های نادرست از 8 ، مقادیر ورودی از مثال 8 با بعضی فاکتورها مثل d جمع می شوند و تولیدات جدید با وزنهای متناظر با ایجاد می شوند.
فرض کنیم 1d= پس وزن ورودی ها از 0 به 1 و 2 رشد پیدا می کند. حال در اینجا 5 a=به دست می آید که هنوز از مقدار آستانه 10 کوچکتر است. مثال هنوز به رده بندی صحیحی نرسیده است واین قدم دنباله باید تکرار شود. بعد از دو قدم وزنها برابر 2 و 4 می شوند که مقدار a=10 را نتیجه می دهد که برابر مقدار آستانه است و مثال مثبت از 8 به طور صحیح دسته بندی شده است. از آنجا که ضرایب وزنی تغییر کرده بودند لازم است که در همه مثالها رده بندی ها بازنشان ( Reset ) شوند. این را می توان به سادگی دید که مثال B رده بندی نادرستی است زیرا با وزنهای 2 و 4 داری 24 a = ولی این حرف مورد نظر ما نیست، چون این مرحله را پیش رفته ایم لازم است که d.1 از W1 و d.2 از W2 کم شود تا رده بندی نادرستی از B ثابت شود. به هر حال یک رده بندی از 8 را دوباره بیرون می دهد.
بعدها موقع بروز خطا ما وزنها را برای درست کردن خطاهای رده بندی اصلاح می کنیم. اگر مثالها دارای خاصیت صحیحی باشند وزنها در مجموعه ای از مقادیری که به درستی روی هر ورودی کار می کنند قرار می گیرند.
قضیه بنیادی دنباله ها:
یک خصوصیت قابل توجه perceptron این است که آنها می توانند دنباله ای از رده بندی صحیح مثالهای مثبت ومنفی باشند.
فرض کنیم:-X +X=X
:X+ مجموعه ای از مثالهای مثبت
:X- مجموعه ای از مثالهای منفی
گوییم که رشته بی کران S x= X1 , X2 , …, Xk ,… یک رشته متوالی(ترتیبی) برای X است در صورتی که هر Xi یک مثال در X است و هر عنصر از X اغلب به طور نامحدود در Sx رخ می دهد)نمایان می شود(
فرض کنیم Wk ضریب وزنی در سطح k دنباله باشد. وزن اولیه می تواند به صورت قراردادی باشد برای مثال(W1=0) حال رشته استاندارد حاصله، وزنها را به صورت زیر ارتقا می دهد:
بسته به استرادژی مورد نظر ممکن است مقادیر C k همگی یکسان باشند یا ممکن است با k تغییر کنند.
قضیه باشد و یک بردار حل وزنها برای X وجود داشته باشد, در این صورت رویه رشته استاندارد باید بعد از یک تعداد فرض کنیم یک مجموعه از رشته نمونه X و هر رشته ترتیبی برای آن داریم, اگر Ck یک ثابت مثبت مراحل مشخص یک راه حل پیدا کند به طوری که اگر برای بعضی k0 ها داشته باشیم:
WK0 = WK0+1 = WK0+2 = …که WK0 یک راه حل برای X است.
بنابراین ما می توانیم با استفاده از شبکه های عصبی هر چه بیشتر به شبیه سازی انسان توسط کامپیوترها نزدیک شویم به منظور واگذاری کارهای تکراری, وقت گیر و مسائلی که با توجه به پیشرفت بشری دیگر درخور بشر نیست.
آموزش پر سپترون
چگونه وزنهای یک پرسپترون واحد را یاد بگیریم به نحوی که پرسپترون برای مثالهای آموزشی مقادیر صحیح را ایجاد نماید؟
دو راه مختلف :
* قانون پرسپترون
* قانون دلتا
الگوریتم یادگیری پرسپترون
1. مقادیری تصادفی به وزنها نسبت میدهیم
2. پریسپترون را به تک تک مثالهای آموزشی اعمال میکنیم. اگر مثال غلط ارزیابی شود مقادیر وزنهای پرسپترون را تصحیح میکنیم.
3. آیا تمامی مثالهای آموزشی درست ارزیابی میشوند:
* بله پایان الگوریتم
* خیربه مرحله 2 برمیگردیم
قانون پرسپترون
برای یک مثال آموزشیX = (x1, x2, …, xn) در هر مرحله وزنها بر اساس قانون پریسپتون بصورت زیر تغییر میکند:
wi = wi + Δwi
که در آن
Δwi = η ( t – o ) xi
t: target output
o: output generated by the perceptron
η: constant called the learning rate (e.g., 0.1)
اثبات شده است که برای یک مجموعه مثال جداپذیرخطی این روش همگرا شده و پرسپترون قادر به جدا سازی صحیح مثالها خواهد شد.
قانون دلتا
* وقتی که مثالها بصورت خطی جداپذیر نباشند قانون پرسپترون همگرا نخواهد شد. برای غلبه بر این مشکل از قانون دلتا استفاده میشود.
* ایده اصلی این قانون استفاده از gradient descent برای جستجو در فضای فرضیه وزنهای ممکن میباشد. این قانون پایه روش Backpropagation است که برای آموزش شبکه با چندین نرون به هم متصل بکار میرود.
* همچنین این روش پایه ای برای انواع الگوریتمهای یادگیری است که باید فضای فرضیه ای شامل فرضیه های مختلف پیوسته را جستجو کنند.
روشهای دیگر
راه های بسیار متنوعی برای ایجاد شبکه های جدید وجود دارد از جمله:
* استفاده از تعاریف دیگری برای تابع خطا
* استفاده از روشهای دیگری برای کاهش خطا در حین یادگیری
* Hybrid Global Learning
* Simulated Annealing
* Genetic Algorithms
* استفاده از توابع دیگری در واحدها
* Radial Basis Functions
* استفاده از ساختار های دیگری برای شبکه
* Recurrent Network
شبکه های هاپفید:
هاپفیلد (HopField) در 1982 طرح اصلی حافظه ای را ارائه کرد که این حافظه یا شبکه عصبی دارای دو عنصر گره و یال می باشد. هر گره دارای دو وضعیت فعال و غیرفعال است(صفر یا یک) و هر یال نیز دارای یک وزن می باشد (شکل 2). یال های با وزن مثبت بین دو گره تا گره فعال دیگری را تحریک می کنند و یال های با وزن منفی بین دو گره، گره فعال دیگری را غیر فعال می سازند.
نحوه عملکرد شبکه بدین صورت است که ابتدا یک گره به تصادف انتخاب می شود. اگر یک یا بیشتر از همسایه های آن گره فعال بودند جمع وزن دار یال های منتهی به آن گره ها حساب می شود. اگر این جمع مثبت بود گره فعال می شود و در غیر این صورت گره مذکور غیرفعال باقی خواهد ماند. سپس مجددا یک گره دیگر به تصادف انتخاب شده و همین عملیات آنقدر تکرار می شود تا شبکه به یک حالت پایدار برسد. بعنوان مثال اگر شبکه شکل 2 شروع به کار کند گره پایین سمت چپ گره بالایی خود را فعال خواهد کرد و این گره نیز به نوبه خود خواهد کوشید تا گره بالاتر از خود را فعال کند اما گره بالایی به دلیل سیگنال توقیفی (Inhibitory) ارسالی از گره بالای سمت راست تحریک نخواهد شد و این سیکل همینطور تا رسیدن به حالت پایدار ادامه می یابد.
نکته در اینجا است که این شبکه بیش از چهار حالت پایدار ندارد (شکل 3). یعنی از هر حالت ابتدایی که شروع کنیم نهایتا شبکه به یکی از این چهار حالت میل خواهد کرد. تز اصلی هاپفیلد نیز در واقع همین بود که از هر حالت ابتدایی و با هر وزنی از یال ها که شروع کنیم، شبکه در نهایت به حالت پایدار خواهد رسید.
شکل شماره 2 شکل شماره 3
با دقت در کل ایده این شبکه می توان گفت که در واقع این شبکه به صورت نوعی حافظه عمل می کند، حافظه ای که این چهار الگو را در خود ذخیره کرده است. علاوه بر این شبکه فوق یک حافظه آدرس دهی شده بر اساس محتواست. به این معنی که اگر از یکی ازین چهار حالت به صورت ناقص شروع به کار کنیم شبکه به سوی شبیه ترین حالت میل خواهد کرد و این به این معناست که شبکه قادر به شناسایی یک الگوی ناقص است.
شکل 4 نشان می دهد که این شبکه در صورتی که از الگوی ناقص سمت چپ شروع به کار کند در نهایت به الگوی کامل سمت راست خواهد رسید(به خاطر دارید که هدف ما یافتن روشی بود که ما را از شکل پر اغتشاش حرف "A" به خود آن حرف برساند).
-شکل شماره 4
شبکه های دارای پس خور
در نوعی از شبکه های عصبی می توان برخی از ورودی را از خروجی تغذیه نمود. در اینگونه شبکه ها که شبکه رابینسن-فالساید1 از این دسته می باشد، شبکه از تعدادی نرون های دارای فیدبک تشکیل شده است که همانند حافظه در شبکه عمل می کنند. شکل این شبکه در زیر آمده است:
شکل(1): ساختار شبکه عصبی رابینسن-رافساید
.
اِلمن2 نیز شبکه با فیدبکی را در سال 1990 معرفی کرده است. در شبکه اِلمن تعدادی از نرون مخفی وجود دارد که همه یا برخی از خروجی های لایه اول علاوه بر وارد شدن به لایه دوم، به این لایه مخفی نیز وارد می شود و پس از آن دوباره به لایه اول بازمی گردد، یعنی می توان گفت که این شبکه دارای نوعی حافظه می باشد که تاثیر مقادیر قبلی را در لایه ای نگاه می دارد و همراه با ورودی های جدید به شبکه وارد می نماید.
شکل(2): ساختار شبکه اِلمن.
شبکه عصبی جردن3 که در سال 1886 ارائه گردید، ساختاری بسیار شبیه به شبکه عصبی اِلمن دارد ولی با این تفاوت که عمل فیدبک از لایه خروجی به لایه ورودی انجام می شود. مباحث مربوط به آموزش این گونه شبکه ها در ادامه بیان می گردد.
شکل(3): ساختار شبکه عصبی جردن.
شکل(4): ساختار شبکه عصبی جردن.
(1)
(2)
(3)
تذکر: در مرحله اول در قسمت یا یا ، مقدار اولیه آنها به چه نحوی در نظر گرفته می شود:
1- تک قطبی بصورت تقریب (5/0).
2- تک قطبی بصورت تقریب (صفر).
(4)
شبکه عصبی ترکیبی المن- جردن:
شکل(5): شبکه عصبی ترکیبی المن- جردن.
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
ایجاد حافظه بالاتر در شبکه های عصبی برگشت پذیر
(14)
(15)
شکل(6): ایجاد حافظه بالاتر در شبکه های عصبی برگشت پذیر
پس انتشار خطا4
در این الگوریتم با مشتق گرفتن از خطا و پخش کردن آن بر روی وزن ها، سعی خواهیم کرد که این وزن ها را بنحوی تغییر دهیم که خطای خروجی شبکه به حداقل برسد.
در این روش از مشتق خطا را نسبت به هر W محاسبه می نماییم. برای مشتق گیری از قانون زنجیره ای استفاده می نماییم، یعنی چنانچه شبکه ای با دو لایه میانی وجود داشته باشد، بنحو زیر عمل می شود:
شکل(3-9)
(الف)
(3-7) (ب)
(ج)
حال برای بدست آوردن W(t+1) از رابطه زیر استفاده می شود:
(3-8)
در رابطه فوق ضریب آموزش می باشد که دربازه انتخاب می شود. حال اگر بخواهیم مقدار را محاسبه کنیم، ابتدا لازم است که با توجه به رابطه (3-7 الف) مقدار را محاسبه نماییم:
(3-9)
(3-10)
(3-11)
چند بررسی از کاربرد های شبکه های عصبی
در اینجا نمونه هایی از کاربردهای شبکه های عصبی را مطرح می کنیم:
کاربرد تکنیک شبکه های عصبی و رگرسیون چندگانه به منظور پیش بینی سرعت
امواج برشی از داده های لاگ برای یک مخزن کربناته در جنوب غربی ایران
محاسبه سرعت امواج برشی (Vs) با استفاده از داده های لاگ یکی از مهمترین زمینه ها در اکتشافات لرزه ای و توصیف مخزن خیدروکربوری می باشد. تا کنون اکثر مدل هایی که برای محاسبه سرعت امواج برشی استفاده می شدند، مدل های ریاضی بودند که فقط یک یا دو پارامتر پتروفیزیکی را در نظر گرفته و قابلیت تعمیم نداشتند.
هدف اصلی محاسبه سرعت امواج برشی با استفاده از رگرسیون چندگانه و نیز تکنیک شبکه های عصبی می باشد. شبکه های عصبی قادر به ساخت مدلی هستند که بتوانند Vs را محاسبه نماید و این در مقایسه با رگرسیون چندگانه به رگرسیون دینامیک معروف است.
در این مطالعه پس از اینکه پارامترهای موثر در سرعت امواج برشی مشخص شدند، از روش آماری برای پیش بینی رابطه بین پارامترهای یاد شده و سرعت امواج برشی استفاده خواهند شد. پس از یک شبکه عصبی سریع جهت پیش بینی Vs از پارامترهای یاد شده استفاده می شود. مدل مورد نظر از نوع جعبه سیاه (black box type) نیست زیرا ما از نتایج رگرسیون چندگانه استفاده می کنیم. راهکار بدست آمده قادر به پیش بینی سرعت امواج برشی از پارامترهای پتروفیزیکی با ضریب همبستگی در حدود 0.94 برای رگرسیون چندگانه و 0.96 برای شبکه های عصبی خواهد بود.
معرفی
پیچیدگی طبیعی که در سیم مخازن نفتی وجود دارد همواره فکر زمین شناسان را به خود معطوف نموده است. عدم وجود داده قابل اعتماد سبب فهم نادرست از رفتار مخزن و به تبع آن پیش بینی ضعیف شده است. در دو دهه گذشته ابزار های پردازش داده کلاسیک و نیز مدل های فیزیکی برای حل مسائل ساده مربوط به زمین شناسی مناسب بوده است. با گذشت زمان با مسائل پیچیده تری روبرو می شویم که نشان از کم کاربرد شدن روش های معمولی می باشد. سرعت امواج برشی کاربرد زیادی در مطالعات پتروفیزیکی، لرزه نگاری و ژئوشیمیایی دارد. در بسیاری از میادین توسعه یافته تنها امکان محاسبه سرعت امواج تراکمی با استفاده از لاگ صوتی می باشد. در بسیاری از موارد کاربردی مانند مدل سازی لرزه ای آنالیز AVO و کاربرد های مهندسی، سرعت امواج برشی مورد نیاز می باشد. در کاربرد های ذکر شده بدست آوردن سرعت موج برشی از سرعت امواج تراکمی، چه بصورت تجربی و یا تئوری بسیار مهم می باشد. در علم فیزیک سنگ و کاربردهای آن، سه روش بطور معمول جهت مطالعه خواص الاستیک سنگ ها استفاده می شود: مطالعه محل و تئوری، تحقیقات و اندازگیری های آزمایشگاهی و روابط تجربی و آماری. رگرسیون چندگانه در واقع مدلی توسعه یافته از آنالیز رگرسیون می باشد که متغیر های غیر وابسته بیشتری را در معادله پیشگو لحاظ می کند.
شبکه های عصبی مصنوعی سیستم های پردازش موازی و تطبیقی هستند که دارای توانایی بسط روابط تابعی بین داده ها و نیز بدست آوردن یک ابزار توانمند برای درون یابی های غیر خطی و چند بعدی می باشند.
وجود چنین خصوصیاتی در شبکه های عصبی باعث شده که جایگزین مناسبی برای رابطه غیر خطی موجود که قادر به فهم دقت رابطه بین ورودی و خروجی نیست، باشد. مهمترین کاربرد های شبکه های عصبی در لرزه نگاری، آنالیز لاگ و مدلسازی سه بعدی مخزن می باشند. کاربرد آنها شامل مشخص نبودن لیتولوژی، تخلخل، تراوایی و اشباع سیال از لاگ ها و ساخت لاگ های مصنوعی از دیگر لاگ ها می باشد.
در طول سال های گذشته بسیاری از مطالعات بر روی سرعت امواج الاستیک و رابطه آن با خواص پتروفیزیک سنگ ها معطوف شده است. ولی متاسفانه بسیاری از این مطالعات برای مخازن ماسه سنگی بوده در حالی که در ایران مخازن کربناته می باشند . مطالعه بیشتری را در مورد خواص پتروفیزیکی این مخازن را طلب می کند.
در منطقه مطالعه شده که یک میدان نفتی کربناته در حوضه زاگرس، جنوب ایران می باشد، داه های مربوط به امواج برشی در هیچ کدام از چاهها مشخص نیست لذا مطالعه Vs از لاگها ضروری می باشد. در این مطالعه یک روش آماری جهت ایجاد رابطه بین پارامترهای پتروفیزیکی موثر و صرعت امواج برشی در سنگ های کربناته استفاده شده است. روش معرفی شده قادر به محاسبه Vs با ضریب همبستگی 0.96 از شبکه عصبی تعمیم یافته می باشد.
منابع داه ها
مجموعه داده ای که مورد استفاده قرار گرفت شامل سرعت اموج برشی در 35 نمونه مغزه کربناته (شامل 23 نمونه سنگ آهک و بقیه دولومیت) بود. سرعت در دو حالت خشک و اشباع شده با آب محاسبه شد. این داده ها در فرکانس ما فوق صوت 0.5 – 1 MHZ جمع آوری شده است. روش های XRD و SEM نیز جهت مشخص نمودن کانی شناسی، حجم کانی های مشخص و نیز دیگز مشخصه های رسوب شناسی میکروسکوپی مورد استفاده قرار گرفت.
پارامتر های پتروفیزیکی بدست آمده از نمونه های مغزه در طیف وسیعی از تخلخل (29% – 20%)، تراوایی، میزان رس (15% – 0%)، میزان کلسیت (98% – 47%) و دولومیت (49% – 0%) قرار داشت.
داده های پتروفیزیکی لاگ، بعد از اینکه داده های نادرست حذف شدند و نیز از لحاظ محیطی تصحیحات لازمه صورت گرفت، جمع شده و با مقایسه تخلخل مغزه این داده ها، عمق یابی شدند.
(Predictor) پیشگوی سرعت امواج برشی
به منظور ساخت پیشگوی Vs، 35 نمونه از سرعت امواج برشی جمع آوری شد. این داده ها به منظور پیدا کردن یک مدل برای پیش بینی Vs مورد استفاده قرار گرفت و با توجه به اینکه داده کافی برای آموزش شبکه در اختیار ما قرار نداشت برخی از مجموعه داده ها بوسیله رگرسیون چندگانه بدست آمد و در مرحله آموزش مورد استفاده قرار گرفت. همچنین از بقیه داده ها در مرحله تست شبکه به منظور پیش بینی توانایی مدل استفاده شد.
پارامترهای ورودی
با توجه به اینکه پیدا کردن Vs از تمام خصوصیات مربوط به سنگ و سیال کار ساده ای نیست، تنها از پارامترهای معمول مربوط به سنگ و سیال که از داده های لاگ می توان بدست آورد به عنوان پارامتر ورودی استفاده شد. البته لازم به ذکر است که این پارامترها تاثیر چشم گیری بر روی Vs دارند. برای مشخص کردن پارامترهای موثر بر روی Vs ما می توانیم از روابط تجربی متعددی که پارامترهای پتروفیزیکی را به Vs مربوط می کنند، استفاده کنیم. (یکی از مهمترین این روابط که ما در اینجا از آن استفاده خواهیم کرد، castagna است).
اگرچه پیشگویی هایی که از داده های لاگ و کار آزمایشگاهی صورت می گیرد باید در هر دو یکسان باشد (البته در صورتی که اندازه گیری ها بدون خطا باشد) اما اندازه گیری های انجام شده بوسیله لاگ نشان داده که پیشگویی با استفاده از امواج تراکمی قابل اعتماد تر است. شکل شماره 1 رابطه بین Vp و Vs را برای چاه شماره 3 نشان می دهد. شکل شماره 2 ترسیم شده Vs را که با استفاده از مطالعه castagna پیش بینی شده در مقابل داده مربوط به نمونه های ………… نشان می دهد. باید توجه داشت که اندازه گیری های مربوط به Vp از لاگ صوتی بدست آمده است. معادله castagna et al برای سنگ آهک و دولومیت بصورت زیر می باشد:
در معادله بالا Vp بر حسب km/s می باشد.
معادله زیر دارای ضریب همبستگی بهتری نسبت به معادله castagna et al می باشد.
شکل شماره 3 نمودار مربوط به Vs بدست آمده از معادله 3 می باشد. این معادله دارای یک ورودی بوده و ضریب همبستگی آن 0.80 است. بقیه پارامترها مانند NPHI، LLD، GR، RHOB، نیز برای بالا بردن دقت در پیش بینی Vs در معادله وارد شد. شکل های شماره 4 تا 7 تخلخل، محتوای رس، چگالی کل و مقاومت ناحیه عمیق را بر روی Vs نشان می دهند.
شکل شماره 1- رابطه بین Vp و Vs در چاه شماره 3
شکل شماره2 Vs – محاسبه شده از معادله Castagna و همکاران در برابر Vs
شکل شماره 3 Vs- پیش بینی شده با استفاده از رگرسیون خطی در مقابل Vs محاسبه شده
شکل شماره 4- اثر تخلخل بر روی Vs در شرایط اشباع آب
شکل شماره 5- اثر محتوی رس بر روی Vs در شرایط اشباع آب
شکل شماره 6- اثر چگالی کل بر روی Vs در شرایط اشباع
شکل شماره 7- اثر مقاومت ناحیه عمیق روی Vs در شرایط اشباع
رگرسیون چندگانه
رگرسیون چند گانه یک مدل توسعه یافته از رگرسیون است که پارامترهای غیروابسته بیشتری را در معادله پیشگو وارد می کند. برای هر میدان یا ناحیه جدید بایستی معادله پیشگوی خاص آن را در نظر گرفت. حال ما می توانیم پنج پارامتری را که قبلا عنوان شد را مد نظر بگیریم. معادله زیر یک مدل چند متغیره برای بدست آوردن پارامتر های ثابت a1، a2، … و a5 برای پارامترهای مورد نظر می باشد.
بر اساس سهمی که هر پارامتر بر روی Vs دارد وزن مربوط به آن به عنوان متغیر ورودی پیش بینی می شود، که البته این کار توسط رگرسیون چند گانه صورت می گیرد. با توجه به اینگه دو پارامتر LLD و GR از تاثیر کمتری برخوردارند لذا ما این دو پارامتر را حذف کرده و بر تاثیر سه پارامتر دیگر بر طبق معادله زیر می افزاییم:
Vs محاسبه شده از معادله 5 تطابق خوبی را از Vs اندازه گیری شده، نشان می دهد (شکل شماره 8). شکل شماره 9، Vs محاسبه شده ار رگرسیون چندگانه و نیز داده مغزه در چاه شماره 3 را نشان می دهد. در مجموع نتیجه ای که بدست آمد اینست که روش های آماری به مراتب دقیق تر از روش های تجربی می باشند.
شکل شماره 8 Vs – ییش بینی شده با استفاده از رگرسیون چندگانه در برابر Vs محاسبه شده
شکل شماره 9- Vs محاسبه شده با استفاده از روش رگرسیون چندگانه برای چاه شماره 3
طراحی شبکه عصبی
شبکه های عصبی سیستم های پردازش موازی هشتند که برای تشخیص الگو های بسیار پیجیده در بین داده ها بکار می روند. یک شبکه عصبی مصنوعی یک سیستم پردازش اطلاعات است که دارای برخی مشخصه های مشترک با شبکه های عصبی بیولوژیکی می باشد. لذا هر شبکه از مجموعه ای از نرون ها که بصورت خاصی چیده شده اند، تشکیل شده است. اصلی ترین قسمت یک شبکه عصبی نرون ها و خطوط ارتباط بین آنها می باشد. یک شبکه عصبی چند لایه از یک لایه ورودی، یک یا چند لایه میانی و یک لایه خروجی تشکیل شده است.
لایه ای که اطلاعات ورودی را دریافت می کند را لایه ورودی می نامند و عملا کاری بر روی ورودی ها انجام می دهد. خروجی شبکه از لایه خروجی آن تولید می شود. بقیه لایه ها به لایه های مخفی معروف می باشند، بخاطر اینکه هیچ گونه ارتباطی با محیط خارج ندارند. Topology یا ساختار یک شبکه نحوه اتصال لایه های مختلف را بیان می کند. در این مطالعه سه پارامتر تخلخل نوترون، چگالی کل و مدت زمان انتقال (DT) که دارای نفوذ زیادی روی Vs هستند، مد نظر می باشند. پارامترهای دیگری چون اشعه گاما، مقاومت جانبی با عمق نفوذ زیاد و مختصات x و y می توانند اطلاعات خوبی را به عنوان ورودی به شبکه بدهند. (شکل شماره 10)
شکل شماره 10- شبکه عصبی استفاده شده در این مطالعه
توابع ریاضی جهت ترکیب ورودی با برخی وزن های ارتباطی با استفاده از یک الگریتم بروز کننده بکار رفته و بعد از تعدادی تکرار وزن های نهایی را تولید می کنند. به این عمل فرایند یادگیری گفته می شود. عمل یادگیری می تواند توسط الگریتم های با ناظر و یا بدون ناظر صورت گیرد. در یادگیری با ناظر هم به ورودی و هم به خروجی ولی در یادگیری بدون ناظر فقط ورودی مورد نیاز می باشد.
در فرایند تفسیر داده توسط یک شبکه عصبی داده ها به دو گروه آموزش (training) و آزمون (test) تقسیم می شوند. ذر این فریند خروجی مشخص به ورودی متناظر با آن به منظور آموزش و تنظیم وزن های ارتباطی در بین فرون ها مورد استفاده قرار می گیرد. (یادگیری با ناظر)
در این مطالعه پیشگوهای (DT (DT,S Predictors با استفاده از یک شبکه نیز انتشار (BPV) که یکی از انواع شبکه های پیشخور هستند و نیز از قاعده یادگیری دلت تبعیت می کنند، تولید شدند. زمانیکه وزن ها و مقدار bias شبکه مشخص شد، شبکه جهت آموزش آماده می باشد. بعد از آموزش شبکه با استفاده از مثال های متنوع بایستی به تست شبکه پرداخت. همچنین تابع محرک tangent signoid نیز برای ایجاد خروجی در بازه (1و1-) در لایه های مخفی و خروجی هر نرون مورد استفاده قرار گرفت. (شکل 11)
شکل شماره 11- تابع محرک استفاده شده برای تمام نرون های لایه میانی و خروجی
در طی فرایند آموزش BPV ها استاندارد، نرخ آموزش ثابت نگه داشته می شود. بنابراین نسبت به در نظر گرفتن نرخ آموزش مناسب بسیار حساس می باشند.
زمانیکه عمل آموزش پایان یافت، شبکه به منظور مشخص کردن قابلیت تعمیم دهی آن مورد تست قرار می گیرد. برای پی بردن به قابلیت تعمیم دهی شبکه بایستی از داده هایی که قبلا در مراحل آموزش و تست شبکه مورد استفاده قرار گرفته اند، استفاده شود.
بررسی نتایج بدست آمده:
در این مطالعه، 35 نمونه مغزه کربناته، از چهار چاه، مورد استفاده قرار گرفت. Vp، Vs، تخلخل و تراوایی برای تمام نمونه ها اندازگیری شد. در ابتدا پارامترهای اصلی که روی Vs تاثیر داشتند مشخص شده و از تمام نمونه ها جهت ایجاد رگرسیون چندگانه استفاده شد. متغیر هایی از جمله Vp، چگالی کل و تخلخل نوترون در معادله نهایی مورد استفاده قرار گرفت. شبکه عصبی سیر انتشار با 10 نرون در لایه میانی و تابع محرک ligistic در نرون های مربوط به لایه میانی و خروجی طراحی شد. یکی از معایبی که رگرسیون چندگانه دارد، عدم قابلیت تعمیم می باشد، یعنی به ازای ورودی مربوط به چاههای جدید خروجی مطلوب را ارائه می دهد. این مسئله را می توان با سیستم های هوشمند مانند شبکه های عصبی مشنوعی حل نمود به همین خاطر به آنها سیستم رگرسیون دینامیک گفته می شود. شکل شماره 12، Vs بدست آمده از لاگ، رگرسیون چندگانه و شبکه عصبی را نشان می دهد. همانطور که مشاهده می شود تطابق خوبی بین آنها وجود دارد. بنظر می رسد که شبکه های عصبی به خاطر قابلیت در کشف کردن روابط بین داده های وروردی و خروجی به صورت روزافزون در مسائل مهندسی مخصوصا مهندسی نفت کاربرد پیدا می کنند.
شکل شماره 12- مقایسه بین Vs بدست آمده آمده از مغزه، رگرسیون چندگانه و تکنیک شبکه های عصبی در چاه شماره 3
طراحی فیلترFIRبا حداقل خطا با استفاده از شبکه های عصبی برای فشرده سازی موجک و پیاده سازی آن بر روی تراشه FPGA
چکیده :
در کاربردهای پردازش سیگنال دیجیتال، به خصوص در بحث فشرده سازی تصویر، طراحی فیلترهای تطبیقی دیجیتال، قسمت مهمی از کار را تشکیل می دهد.در مخابرات و ارتباطات ماهواره ای فشرده سازی و بازسازی تصاویر باعث کاهش حجم اطلاعات غیر ضروری میشود.در بسیاری از مراکز عمومی نیز فشرده سازی تصویر کاربرد دارد مثلا در یک بیمارستان که حجم عظیمی از حافظه کامپیوتر را تصاویر سی تی اسکن و MRI بیماران اشغال میکند باید بتوان داده های اضافی را تا حدی که به وضوح تصویر صدمه نخورد حذف کرد.با گذشت زمان و افزایش اطلاعات روز بروز روشهای مختلف و بهتری برای فشرده سازی تصاویر ارائه شد.آنچه که در تمامی روشهای فشرده سازی تصویر نیاز است استفاده از فیلترهای دیجیتال است که دارای سرعت بیشتر و خطای کمتری باشد.در این مقاله روشی برای تولید فیلترهای دیجیتال با حداقل خطا ارائه میشود.
مقدمه
در بحث پردازش سیگنال بالخصوص در فشرده سازی تصاویر استفاده از فیلترهای دیجیتال ضروری است. در این زمینه افزایش سرعت و کاهش محاسبات، ثبات وزن فیلتر و کاهش خطا برای یک سیستم فشرده ساز، ضروری است. بااستفاده از الگوریتمی در شبکه های عصبی بنام LMS ، به وزن مناسب برای همگرایی و کاهش خطای فیلترهای تطبیقی می رسیم و سپس طرحی برای پیاده سازی این فیلتر بر روی FPGA ارائه می شود که حجم سخت افزاری آن را کاهش می دهد.
فیلترهای FIR
پاسخ فیلترهای دیجیتال به FIR) Finite Impulse Response) پاسخ ضربه محدود و (IIR) Infinite Impulse Response پاسخ ضربه نامحدود، تقسیم می شود. تبدیل Z برای فیلترهای دیجیتال را با معادله (1)می توان نمایش داد:
(1)
در این تبدیل وقتی باشد، درجه سیستم افزایش یافته و پاسخ ضربه آن نامحدود خواهد شد بنابراین پاسخ سیستم IIR است. در حالی که وقتی باشد پاسخ ضربه سیستم محدود شده و پاسخ سیستم FIR می گردد. سیستم های گسسته دارای پاسخ زمانی محدود هستند، در حالی که پاسخ زمانی محدود برای سیستم های پیوسته امکان پذیر نیست. بدین دلیل در یک سیستم فشرده ساز تصویر دیجیتال، استفاده از فیلتر FIR مرسوم است و برای کاهش خطا در عملکرد سیستم باید ضرایب وزن این فیلتر را بتوان توسط الگوریتمی کنترل و تصحیح کرد که این امر بالخصوص در ارتباطات مخابراتی مانند فشرده سازی تصاویر و ارسال آنها کاربرد بیشتری دارد.
تراشه های FPGA
یکی از بهترین روشهای فشرده سازی تصویر که اساس استاندارد فشرده سازی تصویر در سال 2000 میلادی شد تبدیل موجک است.این تبدیل استاندارد jpeg2000 را تولید کرد که هنوز روشی دیگر برآن برتری نیافته است.اساس فشرده سازی تصویر با تبدیل موجک، فیلترکردن دو بعدی تصویر است .اطّلاعات تصویر در یک حافظه جانبی RAM به صورت دیجیتال در دسترس قرار می گیرند. مناسب ترین ابزار قابل برنامه ریزی منطقی که انعطاف پذیری زیادی در طراحی و ساخت قطعات پیچیده دارد و کاربرد آن نیز روزبروز بیشتر میشود FPGA است.
یک FPGA شامل تعداد زیادی بلوک های آرایه منطقی (LAB) است که در سطرها و ستون هایی منظم قرار گرفته اند و در موازی ساختن عملکرد مدار و افزایش سرعت نقش مهمی دارند.در یک تراشه FPGA تا یک میلیون عنصر منطقی وجود دارد و باعث شگفتی است که بدانیم سال به سال عناصر موجود در این تراشه از طریق کارخانه های سازنده افزایش میابد و طولی نخواهد کشید که کلیه عملکرد یک مدار پیچیده تنها بایک تراشه قابل پیاده سازی باشد.یک بلوک منطقی این تراشه در شکل (1) آمده است همانطور که دیده میشود این بلوک توانایی آن را دارد که هر عملیات ریاضی پیچیده ای را انجام دهد.
توانایی این تراشه به دلیل وجود حافظه های SRAM در هریک از بلوکهای منطقی آن میباشد.مزیت این تراشه این است که میتوان به تعداد بیشمار بار آن را برنامه ریزی کرد.یعنی اگر طراح طرح اولیه خود را از طریق دستگاه برنامه ریزی بر روی این تراشه پیاده کرد و نتیجه مطلوب نبود قادر است که دوباره طرح خود را تغییر داده و آن را روی تراشه پیاده سازی کند.
در اینجا ، برای ساخت یک فیلتر تطبیقی FIR بردارهای وزن مناسبی برای فیلتر بدست خواهد آمد که کنترل عملکرد فیلتر را به عهده دارد.این فیلتر تطبیقی نیز روی یک تراشه FPGA قابل پیاده سازی است.
الگوریتمLMS در شبکه عصبی
یکی از شاخه های علوم که روز بروز در صنعت در حال پیشرفت است علم کنترل اتوماتیک است که این علم از نظریه شبکه های عصبی بهره میبرد.یک شبکه عصبی از مجموعه ای سلول عصبی تشکیل شده است که عملکرد خود را با هماهنگی خاصی انجام میدهند.در این مجموعه اگر یک سلول آسیب ببیند بقیه سلولها میتوانند نبود آن سلول را جبران کرده و در بازسازی آن سهیم باشند.در سالهای گذشته دانشمندان بسیاری در تلاش بودند که مدل شبکه های عصبی را بصورت مصنوعی ارائه کنند.بدیهی است که اگر مدل شبکه های عصبی را در یک سیستم بتوان پیاده- سازی کرد عملکرد آن سیستم دچار نقص نمیشود و علاوه بر آن توانایی یادگیری را مانند سلولهای عصبی پیدا میکند.تلاشهای دانشمندان بالاخره به نتیجه رسید و امروزه نظریه شبکه های عصبی در بسیاری از سیستمهای خبره پیاده شده است.از مهمترین کسانی که در زمینه شبکه های عصبی بسیار تلاش کرد فردی بنام(ویدروهوف)بود.
او نظریه ای ارائه کرد که باعث تحولی در شبکه های عصبی شد.او الگوریتمLMS را عنوان کرد. این نظریه هرچند که در نظر اول ساده به نظر میرسد ولی دقت را در یک سیستم خبره بالا میبرد.اساس این الگوریتم یک فیدبک از خروجی شبکه به ورودی آن بود.او بیان کرد که در یک سیستم میتوان خطای حاصل از خروجی دلخواه و خروجی تولید شده از شبکه را بدست آورد و آن را به صورت فیدبکی به ورودی اعمال کرد در این صورت ورودی دائما در حال تغییر است و خروجی شبکه به سمت خطای کمتر میل میکند.این باعث میشود که شبکه به نوعی آموزش ببیند.آموزش برای سلولهای عصبی با هر تغییری ایجاد میشود.مثلا با اعمال سوزش به سلولهای عصبی لامسه سلولها یاد میگیرند که به طرف جسم داغ نروند.با این الگوریتم نیز شبکه میآموزد که خطای خود را اصلاح کند.یادگیری در یک شبکه عصبی مصنوعی با بردار وزن تعریف میشود.همانطور که سلولهای عصبی بدن ما در طی فرایند یادگیری با تارهای بلندی بنام سیناپس با هم ارتباط بیشتری برقرار می کنند در یک سیستم عصبی مصنوعی هرچه باعث یادگیری شود با افزایش بردار وزن مدل میشود.
معیار الگوریتمLMS استفاده از میانگین مربعات خطا (MSE) است، به طوری که سیگنال های خطا پس از اعمال بردارهای ورودی به شبکه محاسبه می گردند. در این الگوریتم، وزن یادگیری با پارامتر ، سیگنال ورودی و خطای حاصل از سیگنال خروجی واقعی و خروجی دلخواه فیلتر، تصحیح می شوند.
معادله LMS
تصحیح ضرایب فیلتر، از مجموع ضرایب وزنی کنونی فیلتر w[n] با پارامتر ، در ورودی x[n] و خطای خروجی e[n] حاصل می شود. در این حالت ضرایب تصحیح شده فیلتر بدست می آید. از تفاضل خروجی فیلتر y [n] با مقدار دلخواه d[n] ترم e[n] (خطا) حاصل می شود. بنابراین روابط زیر را داریم :
انتخاب ضریب
در الـگوریتم LMS رابطه ریـاضی خـاصی برای محاسبه وجود ندارد بـلکه محدودیت در رابـطه است که باعـث همگرایـی سیـستم می شود. مـاکزیمـم مقـدار ویژه ماتریس بردارهای ورودی است
ساختار فیلتر FIR براساس الگوریتم LMS
یک فیلتر در صورتی عملکرد مناسبی دارد که باندهای فرکانسی دلخواهی که ما میخواهیم جدا کند در غیر اینصورت درست فیلتر نخواهد کرد.در شکل (2) دو نوع فیلتر نشان داده شده است.فیلتر با عرض باند وسیع و فیلتر با عرض کم.
هرچه یک فیلتر خطای کمتری داشته باشد بدین معناست که فرکانسهای اضافی را کمتر عبور میدهد.ما میخواهیم با شبکه عصبی فیلتری طراحی کنیم که خطای کمتری داشته باشد.بهترین روش استفاده از الگوریتم LMS است .به شکل (3)توجه کنید.
این شکل استفاده از شبکه عصبی را برای یک فیلتر نشان میدهد . از خروجی برای بدست آوردن خطا و استفاده از آن به عنوان فیدبک نمونه برداری شده است.
قبل از پیاده سازی بر روی تراشه باید با استفاده از قطعات منطقی که در FPGA قرار دارد بتوانیم عملکرد یک فیلتر را طراحی کنیم.یک فیلتر بسته به فرکانس کاری خود از تعدادی واحد تاخیر ایجاد شده است .واحد تاخیر در حوزه زمان باعث ایجاد تاخیر و در حوزه فرکانس به فرکانس تبدیل میشود.بلوک فیلتر در شکل (4) آمده است.
ساختار کلی تر این طراحی در شکل (5) نشان داده شده است.
اجزاء اصلی فیلتر شامل m واحد تاخیر و 1+m واحد وزن اصلاح شده است. هر واحد تاخیر می تواند یک ثبات D فلیپ فلاپ باشد.همانطور که دیده میشود ورودی ها با فیدبکی که از خروجی به ورودی اعمال میشود دائما در حال تغییر و اصلاح هستند. قطعات مورد نیاز نیز در داخل تراشه موجود است.
هر عنصر وزن نیز ضرایب فیلتر را طبق معادله (2) اصلاح می کند. خروجی فیلتر، تفاضل سیگنال دلخواه از سیگنال خطای ایجاد شده است. سیگنال خطا یک بافر است که به صورت فیدبک به واحد وزن برای تعیین ضریب فیلتر بعدی، اعمال می شود. طبق معادله (2) این عملکرد شامل دو ضرب و یک تفریق است. تعداد واحدهای تاخیر به فیلتر مورد نظر بستگی دارد. به این ترتیب حجم سخت افزار زیاد می شود. اگر از یک واحد ضرب و انباره (MAC) استفاده کنیم برای کمتر ساختن حجم سخت افزار بسیار کارآمدتر است. ورودی MAC بوسیله یک واحد کنترل کننده انتخاب می شود. شکل (6) بلوک دیاگرام آن را نشان می دهد. در این طراحی به دو پالس ساعت نیاز داریم. یک پالس برای کنترل اطلاعات ورودی و تعیین فرکانس داده مورد نظر است. پالس ساعت دیگر برای واحد کنترلر و وزن تصحیح کننده فیلتر استفاده می شود.به این ترتیب قادر هستیم حجم سخت افزار را کاهش دهیم.هرچند که تراشهFPGA به اندازه مورد نیاز بلوک منطقی دارد ولی ما باید حتی المکان در بکار بردن امکانات در طراحی صرفه جوئی کنیم.
به منظور کم شدن حجم سخت افزار و بهبود مدار بهتر است که از FPGA مدل Altera استفاده شود. در سری 780 F25S1EP بلوکی به نام بلوک پردازش سیگنال دیجیتال به ساختار داخلی FPGA اضافه شده است. طرح داخل FPGA در شکل (7) آمده است.
هر بلوک داخلی طرحی مطابق شکل 1 دارد.اضافه شدن بلوک پردازش سیگنال کار آرایی و راحتی استفاده ازFPGA را بالاتر میبرد.
تراشه های Stratix
خانواده گروه Stratix جدیدترین خانواده از تراشه های قابل برنامه ریزی Altera هستند. این تراشه ها علاوه بر بلوک های (Logic Array Block) LAB و بلوک ورودی خروجی (IOB) بلوک های دیگری به نام) DSP Digital (Signal Processing دارند که ساختار داخلی این بلوک در شکل (8) آمده است. هر بلوک پردازش سیگنال، حاوی دو ثبات و یک بلوک جمع، تفریق و ضرب است.
نتیجه گیری
در اینجا پیاده سازی سخت افزاری فیلترها برای فشرده سازی تصویر بر روی تراشه FPGA بررسی شد. این پیاده سازی بر طراحی فیلترهای FIR نشان داده شده در شکل (1) استوار است. در این طراحی از الگوریتم LMS در شبکه عصبی استفاده شده است که باعث ثبات در وزن ماتریسی فیلترها و کمتر شدن خطای خروجی می گردد. برای کاهش حجم سخت افزاری واحدهایی به نام MAC بسیار کارآمد است. سپس FPGA های سری Stratix معرّفی شدند که با داشتن بلوک های پردازش سیگنال، روند طراحی را هموارتر می سازند.
فصل سوم
نتیجه گیری
شبکه های عصبی مصنوعیANN( Neural Networks Artificial) درواقع از ساختار درهم و توده ای مغز پستانداران الهام گرفته شده است، که در آن میلیون ها سلول عصبی (نورون) از طریق ارتباطاتی که با یکدیگر دارند (سیناپس ها)، به حل مسائل یا ذخیره سازی اطلاعات می پردازند. این شبکه ها مجموعه ای از مدل های متفاوتند که توسط ریاضیدانان و مهندسین برای شبیه سازی بخشی از عملکرد مغز پیشنهاد شده اند. ساختار اصلی شبکه های عصبی مصنوعی بر اساس دو جزء اصلی گره ها (نورون ها) و ارتباطات وزن دار(سیناپس ها) می باشد
یادگیری در سیستم های طبیعی به صورت تطبیقی اتفاق می افتد. بدین معنی که در اثر یادگیری، در سیناپس ها تغییراتی رخ می دهد. عین همین مسئله نیز در مورد شبکه های عصبی مصنوعی نیز صادق است. در این شبکه ها یادگیری از طریق مثال انجام می شود (LearningBy Example). بدین معنی که اغلب(و نه همواره) مجموعه ای از ورودی و خروجی های درست به شبکه عصبی داده می شود و شبکه عصبی با استفاده ازین مثال ها، وزن(Weight) ارتباطات خود را به گونه ای تغییر می دهد که در صورت دادن ورودی های جدید پاسخ های درستی را تولید کند. در واقع دانش شبکه عصبی در وزن ارتباطات آن ذخیره می شود.
شبکه های عصبی از دهه 50 شناخته شده بودند اما تنها در اواسط دهه 80 بود که الگوریتم ها و روش های مربوط به شبکه های عصبی مصنوعی به درجه ای از پیشرفت رسید که در حل مسائل واقعی از آنها استفاده شد.
امروزه شبکه های عصبی در کاربردهای مختلفی نظیر مسائل تشخیص الگو(Pattern Recognition) که خود شامل مسائلی مانند تشخیص خط(Character Recognition)، شناسایی گفتار(Speech Recognition)، پردازش تصویر(Image Processing) و مسائلی ازاین دست می شود و نیز مسائل دسته بندی(Classification) مانند دسته بندی (Classification Problems) متون و یا تصاویر، به کار می روند. در کنترل یا مدل سازی سیستم هایی که ساختار داخلی ناشناخته یا بسیار پیچیده ای دارند نیز به صورت روز افزون از شبکه های عصبی مصنوعی استفاده می شود. به عنوان مثال می توان در کنترل ورودی یک موتور از یک ANN استفاده نمود که در این صورت شبکه عصبی خود تابع کنترل را یاد خواهد گرفت.
مزیت اصلی استفاده از شبکه عصبی در هریک از مسائل فوق قابلیت فوق العاده شبکه عصبی در یادگیری و نیز پایداری شبکه عصبی در مقابل اغتشاشات ناچیز وروداست. به عنوان مثال اگر از روش های عادی برای تشخیص دست خط یک انسان استفاده کنیم ممکن است در اثر کمی لرزش دست این روش ها به تشخیص غلطی برسند در حالی که یک شبکه عصبی که به صورت مناسب آموزش داده شده است حتی در صورت چنین اغتشاشی نیز به پاسخ درست خواهد رسید.
به صورت خلاصه می توان گفت که شبکه های عصبی در حل سه گروه از مسائل بیشترین کاربرد را یافته اند: مسائلی که دارای راه حل الگوریتمیک نیستند، مسائلی که راه حل الگوریتمیک بسیار پیچیده ای دارند و نیز مسائلی که انسان در حل آنها موفقتر از ماشین عمل می کند.
"پایان"
منابع وماخذ
متن سخنرایی دکنر سرایی
ایلین ریچ، هوش مصنوعی(وتکنیک ها)، ترجمه آزاد از دکتر مهرداد فهیمی، نشر جلوه، ۱۳۷۵ هوش مصنوعی: به شیوه ای نو
هوش مصنوعی: راهنمائی برای سامانه های هوشمند
این کتاب به صورتی ساده و روان نوشته شده است
وبگاه سیمرغ
وبگاه گروه رباتیک دانشگاه بین المللی امام خمینی(ره
محمدباقر منهاج، "مبانی شبکه های عصبی" مرکز نشر دانشگاه صنعتی امیرکبیر، 1380
"A couse in fuzzy system and control" نوشته Lie-Xin وWang ترجمه محمد تشنه لب، نیما صفار پور، داریوش افیونی ـ دانشگاه خواجه نصیر الدین طوسی، 1378.
محمد مردانه، "جایابی مراکز تولید پراکنده با استفاده از الگوریتم ژنتیک"، پایان نامه کارشناسی ارشد،1383
http://en.wikipedia.org/wiki/Neural_network
http://www.neuralnetworksolutions.com/resources.php
http://www.tandf.co.uk/journals/titles/0954898X.asp
http://www.iranled.com
http://www.petroleumtimes.com
Why neural networks?
Written by Dimitrios Siganos
Artificial neural networks
written by Robert J.Schalkoff
Artificial Intelligenc
http://www.microrayaneh.com
fe۰۰۳ Approach": Stuart J. Russell, Peter Norvig:"Artificial Intelligence: A Modern
http://www.ebtekaronline.com/search.php
http://www.expertsystems.blogfa.com
http://www.nd.com/whatisnn.htm
http://www.cormactech.com/neunet/whatis.html
http://www.doc.ic.ac.uk/~nd/surprise-96/journal/vol2/ds12/article2.html
http://www.magiran.com/npview.as
M.Nasil Uddin, M.A.Abido, M.A.Rahman, "Real-Time Performance Evaluation of a Genetic-Algrithm-Based Fuzzy Logic Controlley for IPM Motor Drives", IEEE Transaction On Industry Application, Vol.41. No.1,2005.
1 Rabinson and Fallside
2 Elman
3 Jordan
4 Backpropagation
—————
————————————————————
—————
————————————————————
1