شبکه های عصبی مصنوعی 1
شبکه های عصبی مصنوعی
مقدمه
این مقاله مقدمه ای بر شبکه های عصبی مصنوعی است. گونه های مختلف شبکه های عصبی توضیح و شرح داده شده است و کاربرد های شبکه های عصبی، نظیر ANN ها در پزشکی بیان شده و همچنین سابقه ای تاریخی از آن به تفصیل آورده شده است. همچنین رابطه بین چیزهای ساختگی و واقعی مورد بررسی قرار گرفته و در مورد آن توضیح داده شده است و به شرح مدل های ریاضی در رابطه با این موضوع و آنالیز رفتار آشوبگونه مدل شبکه عصبی مکانیسم لرزش عضله و هماهنگ سازي نمايي شبكه هاي عصبي آشوبگونه با اغتشاش تصادفي و شناسايي شبكه هاي آشوبگونه آغشته به نويز بر مبناي شبكه هاي عصبي feedforward رگولاريزاسيون و همچنین شبکه هاي عصبي و الگوريتم هاي ژنتيک در تجارت می پردازیم.
فصل اول: شبکه عصبی
یک شبکه عصبی مصنوعی چیست؟
یک شبکه عصبی مصنوعی (Artificial Neural Network (ANN)) ایده ای است برای پردازش اطلاعات که از سیستم عصبی زیستی الهام گرفته شده و مانند مغز به پردازش اطلاعات می پردازد . عنصر کلیدی این ایده ، ساختار جدید سیستم پردازش اطلاعات است. این سیستم از شمار زیادی عناصر پرداز شی فوق العاده بهم پیوسته تشکیل شده (neurons)که برای حل یک مسأله با هم هماهنگ عمل می کند.ANN ها ،نظیر انسانها ، با مثال یاد می گیرند . یک ANN برای انجام وظیفه های مشخص ، مانند شناسایی الگو ها و دسته بندی اطلاعات ، در طول یک پروسه یاد گیری ، تنظیم می شود . در سیستم های زیستی یاد گیری با تنظیماتی در اتصالات سیناپسی که بین اعصاب قرار دارد همراه است . این روش ANN ها هم می باشد.
سابقه تاریخی
به نظر می آید شبیه سازی های شبکه عصبی یکی از پیشرفت های اخیر باشد . اگرچه این موضوع پیش از ظهور کامپیوتر ها بنیان گذاری شده و حداقل یک مانع بزرگ تاریخی و چندین دوره مختلف را پشت سر گذاشته است. خیلی از پیشرفت های مهم با تقلید ها و شبیه سازی های ساده و ارزان کامپیوتری بدست آمده است. در پی یک دوره ابتدائی اشتیاق و فعالیت در این زمینه ، یک دوره ی بی میلی و بدنامی راهم پشت سر گذاشته است .
در طول این دوره سرمایه گذاری و پشتیبانی حرفه ای از این موضوع در پایین ترین حد خود بود ، پیشرفت های مهمی به نسبت تحقیقات محدود در این زمینه صورت گرفت . که بدین وسیله پیشگامان قادر شدند تا به گسترش تکنولوژی متقاعد کننده ای بپردازند که خیلی برجسته تر از محدودیت هایی بود که توسط Minsky و Papert شناسانده شد. Minsky و Papert ،کتابی را در سال 1969 منتشر کردند که در آن عقیده عمومی راجع به میزان محرومیت شبکه های عصبی را در میان محققان معین کرده بود و بدین صورت این عقیده بدون تجزبه و تحلیل های بیشتر پذیرفته شد. هم اکنون ، زمینه تحقیق شبکه های عصبی از تجدید حیات علایق و متناطر با آن افزایش سرمایه گذاری لذت می برد .
اولین سلول عصبی مصنوعی در سال 1943 بوسیله یک neurophysiologist به نامWarren McCulloch و یک منطق دان به نام Walter Pits ساخته شد . اما محدودیتهای تکنولوژی در آن زمان اجازه کار بیشتر به آنها نداد.
چرا از شبکه های عصبی استفاده می کنیم ؟
شبکه های عصبی ، با قابلیت قابل توجه آنها در استنتاج معانی از داده های پیچیده یا مبهم ، میتواند برای استخراج الگوها و شناسایی روشهایی که آگاهی از آنها برای انسان و دیگر تکنیک های کامپیوتری بسیار پیچیده و دشوار است به کار گرفته شود. یک شبکه عصبی تربیت یافته می تواند به عنوان یک متخصص در مقوله اطلاعاتی ای که برای تجزیه تحلیل به آن داده شده به حساب آید.از این متخصص می توان برای بر آورد وضعیت های دلخواه جدید و جواب سؤال های " چه می شد اگر " استفاده کرد.
مزیتهای دیگر شبکه های عصبی
یادگیری انطباق پذیر: قابلیت یاد گیری نحوه انجام وظایف بر پایه اطلاعات داده شده برای تمرین و تجربه های مقدماتی.
سازماندهی توسط خود: یک ANN می تواند سازماندهی یا ارائه اش را ، برای اطلاعاتی که در طول دوره یادگیری در یافت می کند، خودش ایجاد کند. عملکرد بهنگام(Real time ) : محاسبات ANN می تواند بصورت موازی انجام شود، و سخت افزارهای مخصوصی طراحی و ساخته شده است که می تواند از این قابلیت استفاده کند.
تحمل اشتباه بدون ایجاد وقفه در هنگام کد گذاری اطلاعات : خرابی جزئی یک شبکه منجر به تنزل کارایی متناظر با آن می شود اگر چه تعدادی از قابلیت های شبکه ممکن است حتی با خسارت بزرگی هم باقی بماند.
شبکه های عصبی در مقابل کامپیوتر های معمولی
شبکه های عصبی نسبت به کامپیوتر های معمولی مسیر متفاوتی را برای حل مسئله طی می کنند . کامپیوتر های معمولی یک مسیر الگو ریتمی را استفاده می کنند به این معنی که کامپیوتر یک مجموعه از دستورالعمل ها را به قصد حل مسئله پی می گیرد. بدون اینکه، قدم های مخصوصی که کامپیوتر نیاز به طی کردن دارد، شناخته شده باشند کامپیوتر قادر به حل مسئله نیست. این حقیقت قابلیت حل مسئله ی کامپیوتر های معمولی را به مسائلی ،محدود می کند که ما قادر به درک آنها هستیم و می دانیم چگونه حل میشوند. اما اگر کامپیوتر ها می توانستند کار هایی را انجام دهند که ما دقیقا نمیدانیم چگونه انجام دهیم ، خیلی پر فایده تر بودند.
شبکه های عصبی اطلاعات را به روشی مشابه با کاری که مغز انسان انجام می دهد پردازش می کنند. آنها از تعداد زیادی از عناصر پرداز شی(سلول عصبی) که فوق العاده بهم پیوسته اند تشکیل شده است که این عناصر به صورت موازی باهم برای حل یک مسئله مشخص کار می کنند .شبکه های عصبی با مثال کار می کنند و نمی توان آنها را برای انجام یک وظیفه خاص برنامه ریزی کرد مثال ها می بایست با دقت انتخاب شوند در غیر این صورت زمان سودمند، تلف می شود و یا حتی بدتر از این شبکه ممکن است نا درست کار کند. امتیاز شبکه عصبی این است که خودش کشف می کند که چگونه مسئله را حل کند ، عملکرد آن غیر قابل پیش گویی است.
از طرف دیگر ، کامپیوتر های معمولی از یک مسیر مشخص برای حل یک مسئله استفاده می کنند . راه حلی که مسئله از آن طریق حل می شود باید از قبل شناخته شود و به صورت دستورات کوتاه و غیر مبهمی شرح داده شود. این دستورات سپس به زبان های برنامه نویسی سطح بالا برگردانده می شود و بعد از آن به کدهایی که کامپیوتر قادر به درک آنها است تبدیل می شود. به طور کلی این ماشین ها قابل پیش گویی هستند و اگر چیزی به خطا انجام شود به یک اشتباه سخت افزاری یا نرم افزاری بر می گردد.
شبکه های عصبی و کامپیوتر های معمولی با هم در حال رقابت نیستند بلکه کامل کننده یکدیگرند . وظایفی وجود دارد که بیشتر مناسب روش های الگو ریتمی هستند نظیر عملیات محاسباتی و وظایفی نیز وجود دارد که بیشتر مناسب شبکه های عصبی هستند . حتی فراتر از این ، مسائلی وجود دارد که نیازمند به سیستمی است که از تر کیب هر دو روش بدست می آید (بطور معمول کامپیوتر های معمولی برای نظارت بر شبکه های عصبی به کار گرفته می شوند ) به این قصد که بیشترین کارایی بدست آید.
شبکه های عصبی معجزه نمی کنند اما اگر خردمندانه به کار گرفته شوند نتایج شگفت آوری را خلق میکنند.
انسان و سلول های عصبی مصنوعی- در جستجوی شباهت ها
چگونه مغز انسان می آموزد ؟
مسائل زیادی راجع به این که مغز چگونه خود را برای پردازش اطلاعات آموزش می دهد، نا شناخته باقی مانده است بنابر این تئوری های فراوانی وجود دارد. در مغز انسان یک سلول سیگنال ها را از دیگران از طریق یک گروه از ساختار های ریز به نام dendrites جمع آوری می کند سلول عصبی جهش سریع فعالیت الکتریکی را در طول یک پایه بلند و نازک که axon نامیده میشود ، می فرستد که به داخل هزاران شاخه گسترش می یابد و کشیده می شود . در انتهای هر شاخه ، ساختاری که synapse نامیده می شود این فعالیت را ازaxon به اثرات الکتریکی تبدیل می کند که فعالیت یکaxon به صورت اثرات الکتریکی فعال کننده یا غیر فعال کننده تبدیل می شود که این کار باعث برانگیخته شدن یا آرام شدن سلول های عصبی مرتبط می شود. وقتی یک سلول عصبی پیام های فعال کننده را در یافت می کند، که بطور قانع کننده و وسیعی با پیام های ورودی غیر فعال کننده اش مقایسه شده باشد ،در این زمان این سلول نیز یک جهش از فعالیت الکتریکی را به داخل axon خودش می فرستد.
یاد گیر ی با تغییر تاثیر synapses اتفاق می افتد در نتیجه تاثیر یک سلول بر دیگران تغییر میکند.
از سلول های عصبی انسانی تا سلول های عصبی مصنوعی
ما این شبکه های عصبی را با تلاش اولیه در جهت یافتن خصوصیات اساسی سلول های عصبی و اتصالات آنها ، هدایت می کنیم. سپس بطور معمول یک کامپیوتر را برای شبیه سازی این خصوصیات برنامه ریزی می کنیم .اگر چه بدلیل اینکه دانش ما از سلول های عصبی ناقص است و قدرت محاسبات ما محدود است ، مدل های ما لزوما آرمان های خام و ناقصی از شبکه های واقعی سلول های عصبی است .
انواع یادگیری برای شبکه های عصبی
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. یادگیری بدون ناظر
در یادگیری بدون ناظر یا یادگیری خود سامانده پارامترهای شبکه عصبی تنها توسط پاسخ سیستم اصلاح و تنظیم می شوند . به عبارتی تنها اطلاعات دریافتی از محیط به شبکه را برداغرهای ورودی تشکیل می دهند. و در مقایسه با مورد بالا (یادگیری با ناظر) بردار جواب مطلوب به شبکه اعمال نمی شود . به عبارتی به شبکه عصبی هیچ نمونه ای از تابعی که قرار است بیاموزد داده نمی شود . در عمل می بینیم که یادگیری با ناظر در مورد شبکه هایی که از تعداد زیادی لایه های نرونی تشکیل شده باشند بسیار کند عمل می کند و در این گونه موارد تلفیق یادگیری با ناظر و بدون ناظر پیشنهاد می گردد .
زمینهای در مورد 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 که در آن 0 < e < 1 .
خروجی Perceptron 1 است اگر و فقط اگر ورودی آن از 1 و 1- هایی باشد که عینا در آرایه آمده است.
دنبالههای Perceptron
یکی از خصوصیات جالب Perception این است که آنها میتوانند به وسیله مثالهای مثبت و منفی ( صحیح و اشتباه) برای انجام توابع دستهبندی شده مخصوص بارها مرتب شوند.
حال به یک مثال ساده از Perceptron با دو ورودیX1 وX2 ، که تشخیص میدهد که کدامیک از دو کلاس، عناصر متعلق به خودش را دارد. ما فرض میکنیم که این Perceptron دو طرح از کارکترهای چاپ شده از یک متن را بررسی کند، خروجی 1 است اگر و فقط اگر کاراکتر رقم 8 باشد. فرض کنیم که X1 بیانگر تعداد حفرههای کاراکتر است و X2 درجه راستی سمت چپ کاراکتر را نشان میدهد. ما با 4 ورودی .
اگر ما perceptron را در اول کار با وزنهایی برابر 0 و مقدار آستانه را برابر 10 مقداردهی کنیم یک ردهبندی از همه مثالهای منفی انجام دادهایم. با قرار دادن ردهبندیهای نادرست از 8 ، مقادیر ورودی از مثال 8 با بعضی فاکتورها مثل d جمع میشوند و تولیدات جدید با وزنهای متناظر با ایجاد میشوند.
فرض کنیم 1=d پس وزن ورودیها از 0 به 1 و 2 رشد پیدا میکند. حال در اینجا 5 = a به دست میآید که هنوز از مقدار آستانه 10 کوچکتر است. مثال هنوز به ردهبندی صحیحی نرسیده است واین قدم دنباله باید تکرار شود. بعد از دو قدم وزنها برابر 2 و 4 میشوند که مقدار 10 = a را نتیجه میدهد که برابر مقدار آستانه است و مثال مثبت از 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 تغییر کنند.
قضیه 1)
یک بردار حل وزنها برای X وجود داشته باشد, در این صورت رویه رشته استاندارد باید بعد از یک تعداد فرض کنیم یک مجموعه از رشته نمونه X و هر رشته ترتیبی برای آن داریم, اگر Ck یک ثابت مثبت مراحل مشخص یک راهحل پیدا کند به طوری که اگر برای بعضی k0 ها داشته باشیم:
WK0 = WK0+1 = WK0+2 = …
که WK0 یک راهحل برای X است.
بنابراین ما میتوانیم با استفاده از شبکههای عصبی هر چه بیشتر به شبیهسازی انسان توسط کامپیوترها نزدیک شویم به منظور واگذاری کارهای تکراری, وقتگیر و مسائلی که با توجه به پیشرفت بشری دیگر درخور بشر نیست.
هوش جمعی
فرض کنید شما و گروهی از دوستانتان به دنبال گنج میگردید. هر یک از اعضای گروه یک فلزیاب و یک بیسیم دارد که میتواند مکان و وضعیت کار خود را به همسایگان نزدیک خود اطلاع بدهد. بنابراین شما میدانید آیا همسایگانتان از شما به گنج نزدیکترند یا نه؟ پس اگر همسایهای به گنج نزدیکتر بود شما میتوانید به طرف او حرکت کنید. با چنین کاری شانس شما برای رسیدن به گنج بیشتر میشود و همچنین گنج زودتر از زمانی که شما تنها باشید، پیدا میشود.
این یک مثال ساده از رفتار جمعی یا Swarm behavior است که افراد برای رسیدن به یک هدف نهایی همکاری میکنند. این روش مؤثرتر از زمانی است که افراد جداگانه عمل کنند. Swarm را میتوان به صورت مجموعهای سازمان یافته از موجوداتی تعریف کرد که با یکدیگر همکاری میکنند. در کاربردهای محاسباتی Swarm intelligence از موجوداتی مانند مورچهها، زنبورها، موریانهها، دستههای ماهیان و دستهی پرندگان الگو برداری میشود. در این نوع اجتماعات هر یک از موجودات ساختار نستباً سادهای دارند ولی رفتار جمعی آنها بینهایت پیچیده است. برای مثال در کولونی مورچهها هر یک از مورچهها یک کار سادهی مخصوص را انجام میدهد ولی به طور جمعی عمل و رفتار مورچهها، ساختن بهینهی لایه، محافظت ازملکه و نوزادان، تمیز کردن لانه، یافتن بهترین منابع غذایی و بهینهسازی استراتژی حمله را تضمین میکند. رفتار کلی، یک Swarm به صورت غیر خطی از آمیزش رفتارهای تکتک اجتماع بدست میآید. یا به عبارتی یک رابطهی بسیار پیچیده بین رفتار جمعی و رفتار فردی یک اجتماع وجود دارد. رفتار جمعی فقط وابسته به رفتار فردی افراد اجتماع نیست بلکه به چگونگی تعامل میان افراد نیز وابسته است. تعامل بین افراد، تجربهی افراد دربارهی محیط را افزایش میدهد و موجب پیشرفت اجتماع میشود. ساختار اجتماعی Swarm بین افراد مجموعه کانالهای ارتباطی ایجاد میکند که طی آن افراد میتوانند به تبادل تجربههای شخصی بپردازند، مدلسازی محاسباتی Swarmها کاربردهای موفق و بسیاری را در پی داشته است مانند:
Function optimization, Finding optimal roots, scheduling, structural optimization, Image and data analysis
کاربردهای زیادی از مطالعهی Swarmهای مختلف وجود دارد. از این دسته میتوان به کولونی مورچهها (Ant Colony) و دستهی پرندگان (Bird Flocks) اشاره نمود.
(Particle Swarm Optimitation(PSO:
الگوریتم PSO یک الگوریتم جستجوی اجتماعی است که از روی رفتار اجتماعی دستههای پرندگان مدل شده است. در ابتدا این الگوریتم به منظور کشف الگوهای حاکم بر پرواز همزمان پرندگان و تغییر ناگهانی مسیر آنها و تغییر شکل بهینهی دسته به کار گرفته شد.
در PSO، particleها در فضای جستجو جاری میشوند. تغییر مکان particleها در فضای جستجو تحت تأثیر تجربه و دانش خودشان و همسایگانشان است. بنابراین موقعیت دیگر particleهای Swarm روی چگونگی جستجوی یک particle اثر میگذارد.
نتیجهی مدلسازی این رفتار اجتماعی فرایند جستجویی است که particleها به سمت نواحی موفق میل میکنند. Particleها در Swarm از یکدیگر میآموزند و بر مبنای دانش بدست آمده به سمت بهترین همسایگان خود میروند.
Particle swarm Optimitation Algorithm:
اساس کار PSO بر این اصل استوار است که در هر لحظه هر particle مکان خود را در فضای جستجو با توجه به بهترین مکانی که تاکنون در آن قرار گرفته است و بهترین مکانی که در کل همسایگیاش وجود دارد، تنظیم میکند.
فرض کنید میخواهیم زوج مرتب (x,y) را طوری بدست آوریم که تابع F(x,y)=x2+y2، مینیمم شود. ابتدا نقاطی را به صورت تصادفی در فضای جستجو، روی صفحهی x-y انتخاب میکنیم. فرض کنید این Swarm را به 3 همسایگی تقسیم کنیم که در هر همسایگی نقاط موجود با یکدیگر تعامل دارند. در هر همسایگی هر یک از نقاط به سمت بهترین نقطه در آن همسایگی و بهترین مکانی که آن نقطه تاکنون در آن قرار داشته است، حرکت میکند. برای حل یک مسئله چند متغیر بهینهسازی میتوان از چند Swarm استفاده کرد که هر یک از Swarmها کار مخصوصی را انجام میدهند. این همان ایدهای است که Ant colony از آن ریشه میگیرد. از آنجا که دانش Swarm intelligence بسیار جدید است در حال حاضر کاربردهای کمی از آن شناخته شده است. ولی صاحبنظران معتقدند با این رشد روزافزون، Swarm intelligence میتواند نقش مهمی را در علوم مختلف از جمله مهندسی نفت ایفا کند.
فصل دوم: يك شبكه عصبي جديد و كاربرد آن
يك شبكه عصبي جديد و كاربرد آن
به منظور بهبود توانايي مدلسازي و شناسايي سيستم هاي غيرخطي با شبكه هاي عصبي، خواص نورون ها ، قوانين آموزش و شكل شبكه ها ، مورد بررسي قرار گرفته است. براي ايجاد شبكه هاي عصبي آشوبگونه، يك نورون آشوبي معرفي شده است. توانايي عمل بر روي اطلاعات در شبكه هاي برگشتي به دليل حضور حلقه هاي فيدبك، بيشتر از شبكه هاي معمولي است. در آموزش شبكه براي مدلسازي ، از الگوريتم پس انتشار خطا استفاده شده است. در مقايسه با شبكه هاي عصبي ديگر تعداد نورون لايه پنهان شبكه هاي آشوبگونه كمتر و توانايي تعميم دهي آن ها بيشتر است. از شبكه آشوبگونه برگشتي ارائه شده در مدلسازي ژنراتور سنكرون دريايي ، استفاده شده است.
معرفي
در اين فصلANN, اي با توانايي مطلوب جهت بررسي سيستم هاي غيرخطي ارائه شده است. در مدلسازي سيستم ها ، توانايي تقريب به وسيله نورون ها ، شكل شبكه و قانون آموزش ، محدود مي گردد. چگونگي بهبود خاصيت ارگاديك ANN يك مسئله مهم جهت تحقيق و يررسي مي باشد. سيستم هاي آشوبگونه داراي مشخصاتي تصادفي هستند و الگوريتم آشوبي باعث ايجاد خاصيت قوي ارگاديك در شبكه مي گردد.
مدلسازي ژنراتور سنكرون دريايي در زمينه شبيه سازي و كنترل real time بسيار مفيد مي باشد. مدل هاي مرسوم براي اين ژنراتور اغلب با حل معادلات ديفرانسيل مرتبه بالايي سروكار دارند كه حل آن ها با محاسبات DSP به صورت real time ، ميسر نمي باشد. به همين دليل در اينجا ، مدلسازي و شناسايي اين سيستم توسط ANN مورد توجه قرار گرفته است.
- نورون با خاصيت آشوبگونه :
شكل نورون در شكل (1) نشان داده شده است. f(.) تابع فعالسازي نورون است كه يك نگاشت لجستيك با پارامتر شيب 0.04 مي باشد.
شكل1. شكل نورون آشوب گونه
رابطه (1) الگوريتم محاسبات مربوط به اين نورون را نشان مي دهد.
تابع لجستيك براي ايجاد خاصيت آشوبي در شبكه ، قرار داده شده است. شكل 2-a دياگرام اين تابع را نشان مي دهد. دو شاخه شدن تابع هنگامي رخ مي دهد كه پارامتر شيب آن با 0.04 برابر شود (شكل 2-b). نماي Lyapunov هم در شكل 2-c نشان داده شده است. وقتي كه نماي Lyapunov بزرگتر از صفر شود ، شبكه به صورت آشوبگونه رفتار مي كند. شكل 2-d و 2-e هم به ترتيب دوشاخه شدن تابع را هنگامي كه پارامتر شيب برابر با 0.01 و 0.06 شود ، ا نشان مي دهند. پريود دوبل دوشاخه شدن هم به وضوح در شكل 2-f ديده مي شود.
- شكل شبكه:
به دليل وجود توانايي بيشتر عمل بر روي اطلاعات توسط شبكه هاي برگشتي ، از يك شبكه برگشتي به فرم آشوبگونه استفاده شده است. اين شبكه معمولا سه لا با يك لايه پنهان است. فيدبك از نورون هاي لايه پنهان خروجي به نورون هاي لايه پنهان ورودي صورت مي گيرد. اتصالات برگشتي ، امكان آشكارسازي و توليد الگوهاي متغير با زمان را براي شبكه فراهم مي سازند. ساختار اين شبكه در شكل (3) نشان داده شده است.
تعدادي نورون خطي در لايه خروجي و تعدادي نورون آشوبگونه با تابع لجستيك در لايه برگشتي وجود دارند. به خاطر وجود خاصيت آشوبي در نورون ها ، توانايي تقريب شبكه افزايش مي يابد.
تركيب ارائه شده از اين نظر خاص مي باشد كه قادر است هر تابعي را با دقت دلخواه تقريب زند.
(a)خروجي تابع ( = 0.04ε) (b) دياگرام دو شاخه شدن ( = 0.04ε) (c) دياگرام نماي Lyapunov
(d) دياگرام دوشاخه شدن ( = 0.01ε) (e) دياگرام دوشاخه شدن ( = 0.06ε) (f) پريود دوبل دوشاخه شدن شكل 2. نمودار مشخصه آشوبي نورون
البته بايد تعداد نورون هاي شبكه كافي باشد. فرق اين شبكه با يك شبكه سه لايه معمولي در اتصال برگشتي لايه دوم است. تاخير در اين اتصال مقاديري از پله زماني گذشته را ذخيره كرده كه مي توانند در زمان فعلي مورد استفاده قرار بگيرند. بنابراين حتي اگر دو شبكه با وزن ها و باياس هاي يكسان تحت يك ورودي قرار بگيرند ، به علت وجد فيدبك هاي حالت مختلف ممكن است خروجي هاي متفاوتي توليدكنند. خروجي هر لايه توسط معادلات زير محاسبه مي گردد :
شكل 3. شكل CNN
-قانون آموزش شبكه:
از الگوريتم پس انتشار خطا جهت آموزش استفاده مي شود. اگر ورودي p و خروجي y باشد ، الگوريتم BP به صورت زير قابل بيان است.
1- ابتدا تابع هدف را تعريف مي كنيم :
كه در آن Pd(τ) و a2(τ) به ترتيب خروجي داده هاي نمونه و خروجي شبكه مي باشند.
2- معادلات تنظيم به صورت زير تعريف مي شوند :
كه در آن
LW1.1 وزن لايه پنهان است ،
IW1.1 وزن بين لايه ورودي و لايه پنهان است ،
همانطور كه از معادله (6) پيداست الگوريتم پس انتشار خطا يك الگوريتم ديناميك مرحله اي و تكرار شونده است. اين الگوريتم را براي سه لايه مي توان به فرم زير خلاصه نمود :
براي افزايش سرعت و كاهش نوسان از الگوريتم gradient descent با ممنتم و نرخ آموزش تطبيقي جهت training استفاده شده است.مقدار وزن و باياس توسط معادله (11) محاسبه مي گردد.
كه در آن wmk-1Δ و bmkΔ به ترتيب مقدار هاي وزن و باياس m امين لايه و k امين تكرار هستند. γ ضريب ممنتوم ، α نرخ آموزش و Sm بردار درجه حساسيت است.
اساس تغييرات نرخ آموزش به اين ترتيب است كه اگر MSE از يك درصد خاصي (براي مثال 1 يا 5درصد) بيشتر شد ، update وزن متوقف شده ، ضريب ممنتوم مساوي صفر قرار داده شده و نرخ آموزش در يك فاكتور كوچكتر از يك ضرب مي شود. اگر MSE افزايش پيدا كند ولي از درصر مورد نظر بيشتر نشود ريال نرخ آموزش و ضريب ممنتوم بدون تغيير باقي مي مانند. اما اگر MSE كاهش پيدا كند ، آن وقت نرخ آموزش در يك فاكتور بزرگتر از يك ضرب شده و اگر ضريب ممنتوم از قبل صفر شده بود به مقدار اوليه اش ريست مي گردد.
- مدلسازي ژنراتور سنكرون دريايي
5-1 روش مدلسازي ديناميك
از شبكه سه لايه مذكور در مدسازي ژنراتور سنكرون استفاده مي شود. آموزش به صورت باسرپرست و training به صورت off line صورت مي پذيرد. شبكه جهت بهتر نشان دادن مد ديناميك با خط تاخير TDL تركيب شده است. از حافظه هاي TDL جهت فيدبك به لايه ورودي استفاده مي شود. توان گشتاور خروجي موتور ديزل دريايي به عنوان پارامترهاي ورودي شبكه و ولتاژ ترمينال ژنراتور و خروجي فركانس به عنوان خروجي شبكه انتخاب مي شوند. اين سيستم در شكل (4) نشان داده شده است.
پاسخ مشخصه بين توان گشتاور ورودي و فركانس خروجي و همچنين بين جريان تحريك ورودي و و ولتاژ ترمينال خروجي ژنراتور اندازه گيري شده است.شكل (5) داده هاي نمونه توان گشتاور ورودي و منحني هاي فركانس خروجي را نشان مي دهد.
در شبيه سازي انجام شده = 0.9γ ، = 0.01α ، افزايش نرخ آموزش 1.05 و كاهش آن 0.7 در نظر گرفته شده است. فرآيند آموزش به صورت زير مي باشد.
1- به همه وزن ها و باياس ها مقدار اوليه مي دهيم.
2- داده هاي نمونه ورودي و خروجي را براي training به شبكه نشان مي دهيم.
3- خروجي شبكه بر طبق ورودي ، وزن ها و باياس ها محاسبه مي گردد. وقتي MSE بين داده هاي نمونه و خروجي شبكه از يك حدي كمتر شد training متوقف مي شود ، در غير اين صورت به مرحله (4) مي رويم.
4- وزن ها برطبق اختلاف بين مقدار مطلوب و خروجي شبكه ، تنظيم مي شوند.
5- برو به مرحله (2).
شكل 4. سيستم شناسايي ژنراتور سنكرون دريايي به وسيله شبكه عصبي
براي تنظيم وزن هاي شبكه از الگوريتم gradient descent با ممنتم و BP با نرخ آموزش تطبيقي استفاده شده است. شكل (7) تغييرات MSE را نشان مي دهد.
شكل 5. توان گشتاور ورودي و فركانس خروجي ژنراتور
نتايج مدلسازي
فركانس خروجي مدل با فركانس خروجي ژنراتور در شكل (8) با هم مقايسه شده اند. خطوط منفصل مربوط به خروجي ژنراتور و خطوط پيوسته مربوط به خروجي شبكه هستند. ژنراتور در سه حالت بدون بار ، با بار متوسط و بزرگ راه اندازي شده و نتيجه آن با خروجي مدل مقايه مي گردد. در شكل (9) هم خروجي مدل و ژنراتور ازلحاظ ولتاژ پايانه با هم مقايسه شده اند.
شكل 6. جريان تحريك ورودي و ولتاژ خروجي پايانه
شكل 7. منحني MSE هنگام trainin شبكه
شكل8. فركانس خروجي ژنراتور، شبكه و خطاي بين آن ها
نتيجه فصل
نتايج به دست آمده را مي توان به شكل زير خلاصه كرد :
1- داده هاي نمونه بايد به درستي انتخابي شوند به نحوي كه حالت هاي مختلف راه اندازي ژنراتور را مجسم نمايند.
2- داده هاي نمونه بايد نرماليزه شده و اگر نويز با آن ها جمع شده توسشط فيلتر حذف گردد.
3- درجه مدل بايد طبق مطالعات قبلي و يا بررسي داده هاي نمونه ،تعيين گردد.
4- اگر سيستم متغير با زمان است بايد از الگوريتم on line تكرار شونده جهت تنظيم وزن ها استفاده نمود.
شكل 9. ولتاژخروجي ژنراتور، شبكه و خطاي بين آن ها
فصل سوم : آنالیز رفتار آشوبگونه مدل شبکه عصبی مکانیسم لرزش عضله
این فصل نتایج تجربی مدلسازی فعالیت آشوبگونه نوع خاصی از لزرش های عضلانی را توسط شبکه های عصبی ، ارائه می دهد.وجود آشوب در خروجی شبکه به وسیله ایجاد طیف پیوسته فرکانسی از طریق افزایش فرکانس های گسسته ، قابل تایید می باشد. شبکه مورد استفاده یک شبکه ساده برگشتی از نوع Elman است که نیازی به تغییر در روش آمورش ندارد.
۱) معرفی
Armstrong منحنی تغییرات کشش ایزومتریک کزازی عضله را نسبت به طول سارکومر در یک فیبر عضله مخطط قورباغه به دست آورده است. منحنی به دست آمده نگاشتی را نشان می دهد که در نوع خاصی از لرزش های عضلانی به صورت آشوبگونه رفتار می کند. در این نگاشت خروجی در هر لحظه به عنوان ورودی در لحظه بعد محسوب می شود. کمی تغییر در پارامترهای تابع منجر به تغییرات اساسی در رفتار آن و مشاهده پدیده هایی مثل دو شاخه شدن ، نوسان و رفتار آشوبگونه تصادفی می گردد. در این فصل از شبکه عصبی جهت مدلسازی لرزش عضله ، استفاده شده است. به عنوان مثال برای لرزش عضله میتوان نوسانات خود به خودی نیروی عضله را تحت انقباض ثابت ، نام برد. پدیده آشوب در خروجی شبکه پس از افزایش فرکانس های گسسته و ضمن پیوسته شدن طیف ، اتفاق می افتد.
- منحنی طول - کشش
رابطه بین کشش و طول در یک عضله ایزوله توسط Hatz به دست آمده و به صورت زیر قابل بیان است :
که در آن x طول سارکومر و پارامتر مدولاسیون طول منحنی می باشد.
شکل ۱.تابع کشش- طول فعال
در یک عضله واقعی رابطه بین طول و کشش دو قسمت دارد : یکی رابطه کشش طول فعال و دیگری رابطه الاستیک پسیو. منحنی فعال ، طول را به کشش و منحنی پسیو کشش را به طول مرتبط می سازد. به همین دلیل نتیجه یک نگاشت از طول به طول می باشد. شکل (۱-a) رابطه کشش طول فعال Hatz را به همراه خط y = x که رابطه طول کشش پسیو را بیان می کند ، نشان می دهد. حالت اولیه از خط y = x آغاز می شود. یک سطح ثابت تحریک منحنی فعال را به یک سطح جدید کشش می برد. این کشش جدید یک طول جدید از منحنی پسیو را ایجاب می کند و این فرآیند تکرار می شود.در شکل (۱-b) مشاهده می شود که فعالیت از یک حالت اولیه شروع شده و در نهایت در یک سیکل محدود شروع به نوسان می کند.
- شبکه های عصبی
ساختار برگشتی
شکل (۲) شبکه برگشتی مورد نظر را نشان می دهد. از توابع سیگموئید به فرم زیر به عنوان تابع فعالیت لایه های پنهان و خروجی شبکه ، استفاده شده است.
۱و ۲به ترتیب پارامترهای کنترلی توابع لایه اول و دوم پنهان هستندکه البته در طول آموزش شبکه یک در نظر گرفته می شوند. اتصال داخلی هر دو حلقه فیدبک بدو وزن می باشد. فعالیت واحد ها در زمان t در لایه پنهان دوم ذخیره شده و به عنوان ورودی شبکه در زمان t+۱ استفاده می شود. برای راحتی کار از یک شبکه Elman توسعه یافته ، استفاده شده است. تکنیک تعیین وزن های شبکه هم همان الگوریتم پس انتشار خطا می باشد.
شکل ۲. شبکه برگشتی.
مقایسه با مدل های دیگر
مدل مورد نظر به صورت زمان پیوسته تعریف شده و به همین دلیل توانایی زیادی جهت یادگیری رفتار دینامیک داشته ودر مقایسه با مدل های دیگر موجود ، ساده تر می باشد.
نتایج تجربی
نمودار دوشاخه شدن
شبکه از توابع فعالسازی توصیف شده با معادله (۲) تشکیل شده است. می توان تغییرات خروجی آن را نسبت به تغییر پارامتر ۲مشاهده نمود. شکل (۳) دو شاخه شدن خروجی را نسبت به تغییرات این پارامتر نشان می دهد. نمای Lyapunov هم در شکل (۴) مشاهده می شود. تا وقتی که ۲>۲.۰۹ ، فقط یک نقظه ثابت برای سیستم وجود دارد. در حوالی ۲=۲.۰۹ پاسخ در یک سیکل محدود دوشاخه می گردد. عمل دوبرابر شدن تاوقتی که ۲=۱.۲۴۱برسد در این موقع پریود به ∞ برسد. شکل (۵) نمودار دو شاخه شدن را نسبت به تغییرات پارامترهای ۱ و ۲ نشان می دهد.
حساسیت به شرط اولیه
شکل ۳. نمودار دو شاخه شدن.
حساسیت به شرط اولیه یکی از ویژگی مهم آشوب می باشد به همین دلیل رفتار شبکه نسبت به تغییرات شرط اولیه مرد بررسی قرار گرفته است. دو شرط اولیه x۱ = ۰.۲۰۰۱ و x۲ = ۰.۲۰۰۰ انتخاب شده و تراژکتوری های آن ها مقایسه شده اند. همان طور که شکل (۶) نشان می دهد دو تراژکتوری به سرعت ازهم دور شده و رشد کاملا متفاوتی دارند. این قضیه برای دو شرط اولیه دیگر x۱ = ۰.۶۰۰۰۱ و x۲ = ۰.۶۰۰۰۰ که اختلاف کمتری نسبت به هم دارند هم آزمایش شده و همان نتیجه قبلی به دست آمده است.
شکل ۵. نمودار دو شاخه شدن ۱۹۴۵; نسبت ۲۹۴۵;
تغییرات طیف
طیف توان در نشان دادن دینامیک های آشوبگونه ، بسیار مفید می باشد. اگر سیکنال پریودیک و یا نیمه پریودیک باشد ، طیف توان آن شامل یک سری ضربه در فرکانس های پایه و یا چند فرکانس هارمونیک ، می باشد. اگر سیگنال آشوبگونه باشد ، طیف توان آن پیوسته خواهد بود. بنابراین ایجاد طیف پیوسته از طیف گسسته حضور دینامیک آشوبگونه را در سیگنال نشان می دهد.
در اینجا تغییرات طیف خروجی شبکه نسبت به کاهش ۲مورد بررسی قرار گرفته است. خروجی شبکه از یک پنجره Hamming عبور داده شده و از آن FFT با ۲۰۴۸ نقطه گرفته شده است. در ابتدایک ضربه در فرکانس f و نوسانات پریودیک دیده می شود. ۲را کاهش می دهیم تا این که در ۲ = ۲.۱۲۱دو ضربه دیگر هم در فرکانس های f/۲ و ۳f/۴ مشاهده می شود مه البته دامنه آن ها نسبت به ضربه قبلی کوچکتر است (شکل۷-b ). ۲; را باز هم کاهش می دهیم .وقتی ۲=۱.۳۴۱، طیف پیچیده تر شده و ضربه های بیشتری را شامل می شود اما همچنان گسسته است. دو شاخه شدن تا وقتی ادامه پیدا می کند که دیگر فرکانس ها قابل تشخیص نیستند و در نهایت در ۲=۱.۲۴۸ طیف کاملا پیوسته شده و حضور دینامیک آشوبگونه را در سیستم نشان می دهد. بنابراین شبکه با یادگیری نگاشت Hénon رفتار دو شاخه شدن آشوبگونه را به خوبی نمایش می دهد.
شکل ۶. حساسیت به شرط اولیه.(a : ۰.۲ نسبت به ۰.۲۰۰۱(
- نتیجه فصل
در این فصل نتایج تجربی و ویژگی های آشوبگونه شبکه عصبی که رفتار آشوبگونه مدل ماهیچه را یادگرفته ، مورد بررسی قرار گرفته است. ویژگی اساسی شبکه مورد نظر این است که ضمن سادگی می تواند دینامیک های غیرخطی را یادگرفته و تقریب بزند.
شکل ۷. ایجاد طیف پیوسته از طریق افزایش فرکانس های گسسته
در شبکه آموزش دیده ضمن تغییر پارامتر ویژگی های آشوبگونه ای مثل پریود دوبل دو شاخه شدن و پنجره پریودیک ، مشاهده شده است.
مهندسی نرم افزار کامپیوتر