- لایه خروجی: عملکرد واحد خروجی بسته به فعالیت واحد پنهان و وزن ارتباط بین واحد پنهان و خروجی است. شکل(۱-۱) شمای کلی یک شبکه عصبی مصنوعی را نشان میدهد:
شکل (۱- ۱) شمای کلی یک شبکه عصبی مصنوعی
شبکه های تک لایه و چند لایهای نیز وجود دارند که سازماندهی تک لایه که در آن تمام واحدها به یک لایه اتصال دارند بیشترین مورد استفاده را دارد و پتانسیل محاسباتی بیشتری نسبت به سازماندهی های چند لایه دارد، در شبکه های چند لایه واحدها به وسیله لایه ها شماره گذاری میشوند (به جای دنبال کردن شماره گذاری سراسری). هر دو لایه از یک شبکه به وسیله وزنها و در واقع اتصالات با هم ارتباط مییابند. در شبکه های عصبی چند نوع اتصال و یا پیوند وزنی وجود دارد:
- پیشرو: بیشترین پیوندها از این نوع است که در آن سیگنال ها تنها در یک جهت حرکت میکنند. از ورودی به خروجی هیچ بازخوردی (حلقه) وجود ندارد. خروجی هر لایه بر همان لایه تاثیری ندارد.
- پسرو: دادهها از گرههای لایه بالا به گرههای لایه پایین باز خورانده میشوند.
- جانبی: خروجی گرههای هر لایه به عنوان ورودی گرههای همان لایه استفاده میشوند ]۱۶[.
۱-۶-۱۰-۲- مزایای شبکه عصبی
از مزایای شبکههای عصبی میتوان موارد زیر را نام برد:
- ۱. یادگیری تطبیقی: توانایی یادگیری اینکه چگونه وظایف خود را بر اساس تجارب اولیه و اطلاعات داده شده به آن انجام دهد در واقع اصلاح شبکه را گویند.
- خود سازماندهی: یک شبکه عصبی مصنوعی به صورت خودکار سازماندهی و ارائه دادههایی که در طول آموزش دریافت کرده را انجام دهد. نورون ها با قاعده یادگیری سازگار شده و پاسخ به ورودی تغییر مییابد.
-
- عملگرهای بیدرنگ: محاسبات در شبکه عصبی مصنوعی میتواند به صورت موازی و به وسیله سخت افزارهای مخصوصی که طراحی و ساخت آن برای دریافت نتایج بهینه قابلیت های شبکه عصبی مصنوعی است انجام شود.
- تحمل خطا: با ایجاد خرابی در شبکه مقداری از کارایی کاهش مییابد ولی برخی امکانات آن با وجود مشکلات بزرگ همچنان حفظ میشود.
- دسته بندی: شبکه های عصبی قادر به دسته بندی ورودی ها برای دریافت خروجی مناسب هستند.
- تعمیم دهی: این خاصیت شبکه را قادر میسازد تا تنها با برخورد با تعداد محدودی نمونه، یک قانون کلی از آن را به دست آورده، نتایج این آموختهها را به موارد مشاهده از قبل نیز تعمیم دهد. توانایی که در صورت نبود آن سامانه باید بی نهایت واقعیتها و روابط را به خاطر بسپارد.
- پایداری- انعطاف پذیری: یک شبکه عصبی هم به حد کافی پایدار است تا اطلاعات فراگرفته خود را حفظ کند و هم قابلیت انعطاف و تطبیق را دارد و بدون از دست دادن اطلاعات قبلی میتواند موارد جدید را بپذیرد.
۱-۶-۱۰-۳- کاربرد های شبکه عصبی
شبکههای عصبی مصنوعی دارای دامنه کاربرد وسیعی میباشند از جمله سامانههای آنالیز ریسک، کنترل هواپیما بدون خلبان، آنالیز کیفیت جوشکاری، آنالیز کیفیت کامپیوتر، آزمایش اتاق اورژانس، اکتشاف نفت و گاز، سامانههای تشخیص ترمز کامیون، تخمین ریسک وام، شناسایی طیفی، تشخیص دارو، فرآیندهای کنترل صنعتی، مدیریت خطا، تشخیص صدا، تشخیص هپاتیت، بازیابی اطلاعات راه دور، شناسایی مینهای زیردریایی، تشخیص اشیاء سه بعدی و دست نوشتهها و چهره و … .
در کل میتوان کاربردهای شبکههای عصبی را به صورت زیر دسته بندی کرد:
- تناظر (شبکه الگوهای مغشوش وبه هم ریخته را بازشناسی میکند)
- خوشه یابی
- دسته بندی
- شناسایی
- بازسازی الگو
- تعمیم دهی (به دست آوردن یک پاسخ صحیح برای محرک ورودی که قبلا به شبکه آموزش داده نشده)
- بهینه سازی
امروزه شبکههای عصبی در کاربردهای مختلفی نظیر مسائل تشخیص الگو که خود شامل مسائلی مانند تشخیص خط، شناسایی گفتار، پردازش تصویر و مسائلی از این دست میشود و نیز مسائل دسته بندی مانند دسته بندی متون یا تصاویر، به کار میروند. در کنترل یا مدل سازی سامانههایی که ساختار داخلی ناشناخته یا بسیار پیچیدهای دارند نیز به صورت روز افزون از شبکههای عصبی مصنوعی استفاده میشود. به عنوان مثال میتوان در کنترل ورودی یک موتور از یک شبکه عصبی استفاده نمود که در این صورت شبکه عصبی خود تابع کنترل را یاد خواهد گرفت ]۱۷[.
۱-۶-۱۱- الگوریتم ژنتیکی (GA)
الگوریتم ژنتیک که بهعنوان یکی از روش های تصادفی بهینه یابی شناخته شده و در سال ۱۹۶۷توسط جان هالند[۴۰] ابداع شده است. بعدها این روش با تلاش های گلدبرگ[۴۱] در سال ۱۹۸۹ مکان خویش را یافته و امروزه نیز بواسطه توانایی های خویش، جای مناسبی در میان دیگر روش ها دارد. روال بهینه یابی درالگوریتم ژنتیک بر اساس یک روند تصادفی هدایت شده استوار میباشد. این روش بر مبنای نظریه تکامل تدریجی و ایدههای بنیادین داروین پایه گذاری شده است ]۱۸[.
۱-۶-۱۱-۱- قوانین داروین[۴۲]
هنگامی که لغت تنازع بقا به کار میرود اغلب بار ارزشی منفی آن به ذهن میآید، شاید همزمان قانون جنگل به ذهن برسد و حکم بقای قویتر! البته برای آنکه خیالتان راحت شود میتوانید فکر کنید که همیشه هم قویترین ها برنده نبودهاند مثلا دایناسورها با وجود جثه عظیم و قویتر بودن در طی روندی کاملا طبیعی بازی بقا و ادامه نسل را واگذار کردند درحالی که موجوداتی بسیار ضعیفتر از آن ها حیات خویش را ادامه دادند، ظاهرا طبیعت بهترین ها را تنها بر اساس هیکل انتخاب نمیکند! در واقع درستتر آنست که بگوییم طبیعت مناسب ترینها را انتخاب میکند نه بهترین ها. قانون انتخاب طبیعی بدین صورت است که تنها گونه هایی از یک جمعیت ادامه نسل میدهند که بهترین خصوصیات را داشته باشند و آنهایی که این خصوصیات را نداشته باشند به تدریج و در طی زمان از بین میروند. الگوریتم های ژنتیک از اصول انتخاب طبیعی داروین برای یافتن فرمول بهینه جهت پیش بینی یا تطبیق الگو استفاده می کنند. الگوریتم های ژنتیک اغلب گزینه خوبی برای تکنیک های پیش بینی بر مبنای رگرسیون هستند. مختصراً گفته می شود که الگوریتم ژنتیک یک تکنیک برنامه نویسی است که از تکامل ژنتیکی به عنوان یک الگوی حل مسئله استفاده می کند. مسئله ای که باید حل شود ورودی است و راه حل ها طبق یک الگو کدگذاری می شوند که تابع تناسب نام دارد و هر راه حل کاندیدی که به صورت تصادفی انتخاب می شوند را ارزیابی می کنند ]۱۹[.
۱-۶-۱۱-۲- ویژگی های الگوریتم ژنتیک
الگوریتم ژنتیک یک تکنیک جستجو در علم کامپیوتر برای یافتن راه حل بهینه و مسائل جستجو است. الگوریتم های ژنتیک یکی از انواع الگوریتم های تکاملی اند که از علوم زیست شناسی مثل وراثت، جهش، انتخاب ناگهانی، انتخاب طبیعی و ترکیب الهام گرفته شده اند. عموماً راه حل ها به صورت دوتایی ۰ و ۱ نشان داده می شوند ولی روش های نمایش دیگری هم وجود دارد. تکامل از یک مجموعه کاملاً تصادفی از داده ها شروع می شود و در نسل های بعدی تکرارمی شود و در هر نسل مناسب ترین ها انتخاب می شوند. در این روش ابتدا برای تعدادی ثابت که جمعیت نامیده میشود مجموعهای از پارامترهای هدف بصورت اتفاقی تولید میشود، پس از اجرای برنامه شبیه ساز عددی را که معرف انحراف معیار و یا برازش آن مجموعه از اطلاعات است را به آن عضو از جمعیت مذکور نسبت میدهیم. این عمل را برای تک تک اعضای ایجاد شده تکرار میکنیم، سپس با فراخوانی عملگرهای الگوریتم ژنتیک از جمله لقاح، جهش و انتخاب نسل بعد را شکل میدهیم و این روال تا ارضای معیار همگرایی ادامه داده خواهد شد. بصورت متداول سه معیار بهعنوان معیار توقف شمرده میشود:
۱. زمان اجرای الگوریتم ۲. تعداد نسل هایی که ایجاد میشوند ۳. همگرایی معیار خطا
مثلا یک راه حل برای مسئله مورد نظر، با یک لیست از پارامترها نشان داده می شود که به آن ها کروموزوم یا ژنوم می گویند. کروموزوم ها عموماً به صورت یک رشته ساده از داده ها نمایش داده می شوند، البته انواع ساختمان داده های دیگر هم می توانند مورد استفاده قرار گیرند. در ابتدا چندین مشخصه به صورت تصادفی برای ایجاد نسل اول تولید می شوند. در طول هر نسل، همه مشخصه ها ارزیابی می شوند و مناسب ترین مشخصه ها توسط تابع تناسب اندازه گیری می شوند. گام بعدی ایجاد دومین نسل از جامعه است که بر پایه فرآیندهای انتخاب از روی مشخصه های انتخاب شده با عملگرهای ژنتیکی است سپس برای هر فرد، یک جفت والد انتخاب می شود. معمولاً الگوریتم های ژنتیک یک عدد احتمال اتصال دارد که بین ۰٫۶ و۱ است که احتمال به وجود آمدن فرزند را نشان می دهد. ارگانیسم ها با این احتمال با هم دوباره با هم ترکیب می شوند. اتصال ۲ کروموزوم فرزند ایجاد می کند، که به نسل بعدی اضافه می شوند. این کارها انجام می شوند تا این که کاندیدهای مناسبی برای جواب، در نسل بعدی پیدا شوند. مرحله بعدی تغییر دادن فرزندان جدید است. الگوریتم های ژنتیک یک احتمال تغییر کوچک وثابت دارند که معمولاً درجه ای در حدود ۰٫۰۱ یا کمتر دارند. بر اساس این احتمال، کروموزوم های فرزند به طور تصادفی تغییر می کنند یا جهش می یابند. مخصوصاً که جهش در بیت های کروموزوم ساختمان داده مان صورت بگیرد مثالی از جهش در شکل (۲-۱) مشاهده می شود:
(۱ ۲ ۳ ۴ ۵ ۶ ۸ ۹ ۷) => (1 8 3 4 5 6 2 9 7)
شکل (۲-۱):جهش کروموزوم
این فرایند باعث به وجود آمدن نسل جدیدی از کروموزوم ها می شود، که با نسل قبلی متفاوت است. کل فرایند برای نسل بعدی هم تکرار می شود و جفت ها برای هر ترکیب انتخاب می شوند، جمعیت نسل سوم به وجود می آیند و… این فرایند تکرار می شود تا این که به آخرین مرحله برسیم.
شرایط خاتمه الگوریتم های ژنتیک برای مثال عبارتند از:
- به تعداد ثابتی از نسل ها برسیم.
- بودجه اختصاص داده شده تمام شود (زمان محاسبه/پول).
- یک فرد (فرزند تولید شده) پیدا شود که مینیمم (کمترین) ملاک را برآورده کند.
- بیشترین درجه برازش فرزندان حاصل شود یا دیگر نتایج بهتری حاصل نشود.
- بازرسی دستی.
- ترکیب های بالا.
[شنبه 1400-08-22] [ 11:34:00 ق.ظ ]
|