بخشی از مقاله
مقدمه
هوش محاسباتي يا (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 از یک نگاشت ورودی-خروجی است . این کار از طریق یک پروسه سعی و خطا به صورتی انجام می پذیرد که یک شاخص اجرایی موسوم به سیگنال تشدید ماکزیمم شود و بنابر این الگوریتم نوعی از یادگیری با ناظر است که در آن به جای فراهم نمودن جواب واقعی ، به شبکه عددی که نشانگر میزان عملکرد شبکه است ارایه می شود. این بدین معنی است که اگر شبکه عصبی پارامترهایش را به گونه ای تغییر داد که منجر به یک حالت مساعد شد آنگاه تمایل سیستم یادگیر جهت تولید آن عمل خاص تقویت یا تشدید می شود . در غیر این صورت تمایل شبکه عصبی جهت تولید آن عمل خاص تضعیف می شود . یادگیری تقویتی مثل یادگیری با ناظر نیست و این الگوریتم بیشتر برای سیستمهای کنترلی کاربرد دارد.