مرحله ٢. تعیین نوع تابع تبدیل
می توان برای اینکه خروجی خاصی تولید شود از یک تابع تبدیل استفاده کرد. این تابع رنج وسیعی از مقادیر ورودی را به مقدار خاصی نگاشت می کند. به عنوان مثال می توان هر مقدار خروجی را به مقدار باینری ۰ و ۱ نگاشت کرد. ولی پرکاربردترین آن ها، تابع تبدیل سیگموید مانند ANN مختلفی از این توابع در که به صورت زیر تعریف می شود:
( اینجا فقط تکه ای از متن درج شده است. برای خرید متن کامل فایل پایان نامه با فرمت ورد می توانید به سایت feko.ir مراجعه نمایید و کلمه کلیدی مورد نظرتان را جستجو نمایید. )
تصویر شماره ۲-۹ : نوع تابع تبدیل
مرحله ٣. آموزش شبکه
الگوریتم های یادگیری، روندهایی هستد که توسط آن ها وزن های شبکه تنظیم می گردد. هدف از آموزش شبکه این است که شبکه قانون کار را یاد بگیرد و پس از آموزش به ازای هر ورودی، خروجی مناسب را ارائه دهد. تاکنون بیش از ١٠٠ نوع الگوریتم یادگیری بوجود آمده است. که می توان آن ها را به طور کلی به دو دسته وسیع تقسیم بندی کرد :
یادگیری نظارت شده یا با ناظر:
در این نوع آموزش، به الگوریتم یادگیری مجموعه ای از زوج داده که به داده های یادگیری موسوم هستند، داده می شود. هر داده یادگیری شامل ورودی به شبکه و خروجی هدف است. پس از اعمال ورودی به شبکه، خروجی شبکه با خروجی هدف مقایسه می گردد و سپس خطای یادگیری محاسبه شده و از آن جهت تنظیم پارامترهای شبکه(وزن ها)، استفاده می گردد به گونه ای که اگر دفعه بعد به شبکه همان ورودی را دادیم، خروجی شبکه به خروجی هدف نزدیک گردد.
یادگیری نظارت نشده یا بدون ناظر:
در این نوع یادگیری هیچ سیگنالی که اطلاعات را در مورد مطلوبیت جواب شبکه به خود شبکه وارد نماید، وجود ندارد. به عبارت دیگر به شبکه گفته نمی شود که خروجی هدف چه است و یا اینکه جواب شبکه چقدر مطلوب است. در این حالت، شبکه با دریافت اطلاعات ورودی، باید طبقه بندی ای بین الگوهای ورودی، شاخص های موجود در ورودی ها و ارتباط موجود بین الگوهای ورودی را پیدا کند و در خروجی کد کند. یک مثال بسیار متداول از این نوع یادگیری، شبکه های خوشه بندی الگوهای ورودی است، بدون اینکه بدانیم کدام الگو به کدام خوشه تعلق دارد. خوشه ها در نهایت از روی تشابهات و عدم تشابهات بین الگوها ایجاد می گردند (اولاتونگ، ۲۰۱۳).[۱۱]
یادگیری شبکه پرسپترون سه لایه با رویکرد انتشار به عقب خطا:
شبکه های پرسپترون، علی الخصوص چند لایه، در زمره کاربردی ترین شبکه های عصبی می باشند. این شبکه قادر است یک نگاشت غیر خطی را با دقت دلخواه انجام دهد و این همان چیزی است که در مسائل فنی– مهندسی به عنوان یک راه حل اصلی مطرح می باشد. این شبکه نماینده ی شبکه های پیش خور است و خروجی مستقیماً از روی ورودی بدون هیچ فیدبکی محاسبه می گردد .
۲-۱۱: انواع یادگیری برای شبکه های عصبی
۲-۱۱-۱: یادگیری با ناظر
در یادگیری با ناظر به قانون یادگیری مجموعه ای از زوج های داده ها به نام داده های یادگیری {Pi,Ti)i={1 … l) می دهند که در آن Pi ورودی به شبکه و Ti خروجی مطلوب شبکه برای ورودی Pi است. پس از اعمال ورودی Pi به شبکه عصبی در خروجی شبکه ai با Ti مقایسه شده و سپس خطای یادگیری محاسبه و از آن در جهت تنظیم پارامترهای شبکه استفاده می شود به گونه ای که اگر دفعه بعد به شبکه همان ورودی Pi اعمال شود خروجی شبکه به Ti نزدیکتر می گردد با توجه به این نکته که معلم سیستمی است که بر محیط وقوف دارد(مثلا می داند که برای ورودی Pi خروجی مطلوب Ti است). توجه داریم که محیط برای شبکه عصبی مجهول است. در لحظه k بردار ورودی (k)Pi با تابع توضیع احتمال معینی که برای شبکه عصبی نا معلوم است انتخاب و بطور همزمان به شبکه عصبی و معلم اعمال می شود. جواب مطلوب Ti(k) نیز توسط معلم به شبکه عصبی داده می شود. در حقیقت پاسخ مطلوب پاسخ بهینه ای است که شبکه عصبی برای ورودی مفروض باید به آن برسد. پارامترهای شبکه عصبی توسط دو سیگنال ورودی و خطا تنظیم می شود. به این صورت که پس از چند تکرار الگوریتم یادگیری که عموما توسط معادله تفاضلی بیان می شود به پارامترهایی در فضای پارامترهای شبکه همگرا می شوند که برای آنها خطای یادگیری بسیار کوچک است و عملا شبکه عصبی شبکه عصبی معادل معلم می شود. یا به عبارتی دیگر اطلاعات مربوط به محیط (نگاشت بین TiوPi) که برای معلم روشن است به شبکه عصبی منتقل می شود و پس از این مرحله عملا می توان بجای معلم از شبکه عصبی استفاده کرد تا یادگیری تکمیل شود(چائوهان و همکاران،۲۰۱۴ ) [۱۲].
۲-۱۱-۲: یادگیری تشدیدی
یک اشکال یادگیری با ناظر این است که شبکه عصبی ممکن است بدون معلم نتواند مواضع جدیدی را که توسط مجموعه داده های جدید تجربی پوشانده نشده است یاد بگیرد. یادگیری از نوع تشدیدی این محدودیت را برطرف می کند. این نوع یادگیری بطور on-line صورت می گیرد در حالی که یادگیری با ناظر را به دو صورت on-line & off-line می توان انجام داد. در حالت off-line می توان از یک سیستم محاسب با در اختیار داشتن داده های یادگیری استفاده کرد و طراحی شبکه عصبی را به پایان رساند. پس از مرحله طراحی و یادگیری شبکه عصبی به عنوان یک سیستم استاتیکی عمل می کند. اما در یادگیری on-line شبکه عصبی همراه با خود سیستم یادگیر در حال انجام کار است و از این رو مثل یک سیستم دینامیکی عمل می کند.
یادگیری از نوع تشدیدی یک یادگیری on-line از یک نگاشت ورودی-خروجی است. این کار از طریق یک پروسه سعی و خطا به صورتی انجام می پذیرد که یک شاخص اجرایی موسوم به سیگنال تشدید ماکزیمم شود و بنابراین الگوریتم نوعی از یادگیری با ناظر است که در آن به جای فراهم نمودن جواب واقعی ، به شبکه عددی که نشانگر میزان عملکرد شبکه است ارائه می شود. این بدین معنی است که اگر شبکه عصبی پارامترهایش را به گونه ای تغییر داد که منجر به یک حالت مساعد شد آنگاه تمایل سیستم یادگیر جهت تولید آن عمل خاص تقویت یا تشدید می شود. در غیر این صورت تمایل شبکه عصبی جهت تولید آن عمل خاص تضعیف می شود. یادگیری تقویتی مثل یادگیری با ناظر نیست و این الگوریتم بیشتر برای سیستمهای کنترلی کاربرد دارد (همان، ۲۰۱۴).
۲-۱۱-۳: یادگیری بدون ناظر
در یادگیری بدون ناظر یا یادگیری خود سامانده پارامترهای شبکه عصبی تنها توسط پاسخ سیستم اصلاح و تنظیم می شوند. به عبارتی تنها اطلاعات دریافتی از محیط به شبکه را بردارهای ورودی تشکیل می دهند. و در مقایسه با مورد بالا (یادگیری با ناظر) بردار جواب مطلوب به شبکه اعمال نمی شود. به عبارتی به شبکه عصبی هیچ نمونه ای از تابعی که قرار است بیاموزد داده نمی شود. در عمل می بینیم که یادگیری با ناظر در مورد شبکه هایی که از تعداد زیادی لایه های نرونی تشکیل شده باشند بسیار کند عمل می کند و در این گونه موارد تلفیق یادگیری با ناظر و بدون ناظر پیشنهاد می گردد(همان، ۲۰۱۴).
۲-۱۲: زمینهای در مورد پرسپترون
یک خانواده ساده از شبکههای عصبی مدل پرسپترون میباشد. در یک دستهبندی تکخروجی، تعداد n ورودی و یک خروجی دارد . با هر ورودی یک ضریب وزنی Wi و با هر خروجی یک مقدار آستانه q مرتبط است.
پرسپترون به گونه زیر عمل میکند:
ورودیهای پرسپترون یک بردار ورودی از n مقدار حقیقی است.
پرسپترون مجموع وزنها را محاسبه میکند a= Wi.Xi. این مقدار با مقدار آستانه q مقایسه میشود. اگر این مقدار از مقدار آستانه کوچکتر باشد خروجی ۰ است و در غیر این صورت ۱ است.
۲-۱۲-۱: قدرت پرسپترون
به وسیله تنظیم اعداد ورودی، وزن آنها و مقدار آستانه میتوان یک پرسپترون برای انجام نسبتا خوب محاسبات گوناگون طراحی کرد. برای مثال توابع منطقی بولین مانند AND ، OR و NOT را میتوان به وسیله پرسپترون طراحی کرد و هر مدار منطقی دیگر را به وسیله گیتهای AND و NOT یا AND و OR طراحی کرد. دستهه ای زیادی از پرسپترون ها ممکن است خروجیهای دستهه ای دیگر را به عنوان ورودی خود درخواست کنند.
به عنوان مثالی پرسپترون ها میتوان یک تشخیص دهنده قالب متن را نام برد. حرف A درآرایهای ۵*۵ بهرمز در میآید کدگذاری میشود. این متن(حرف) به وسیله یک پرسپترون با ۲۵ ورودی تشخیص داده میشود که در آن وزنها مقادیری برابر با مقادیر عددی داخل آرایه را میگیرند و مقدار آســتانه برابر است با: e-25 =q که در آن ۱>< e 0.
خروجی پرسپترون ۱ است اگر و فقط اگر ورودی آن از ۱ و ۱- هایی باشد که عینا در آرایه آمده است.
۲-۱۲-۲: دنبالههای پرسپترون
یکی از خصوصیات جالب پرسپترون این است که آنها میتوانند به وسیله مثالهای مثبت و منفی (صحیح و اشتباه) برای انجام توابع دستهبندی شده مخصوص بارها مرتب شوند.
حال به یک مثال ساده از پرسپترون با دو ورودی X1و X2، که تشخیص میدهد که کدام یک از دو کلاس، عناصر متعلق به خودش را دارد. ما فرض میکنیم که این پرسپترون دو طرح از کارکترهای چاپ شده از یک متن را بررسی کند، خروجی ۱ است اگر و فقط اگر کاراکتر رقم ۸ باشد. فرض کنیم که X1 بیانگر تعداد حفرههای کاراکتر است و X2درجه راستی سمت چپ کاراکتر را نشان میدهد. ما با ۴ ورودی .
اگر ما پرسپترون را در اول کار با وزنهایی برابر ۰ و مقدار آستانه را برابر ۱۰ مقداردهی کنیم یک ردهبندی از همه مثالهای منفی انجام دادهایم. با قرار دادن ردهبندیهای نادرست از ۸ ، مقادیر ورودی از مثال ۸ با بعضی فاکتورها مثل d جمع میشوند و تولیدات جدید با وزنهای متناظر با ایجاد میشوند.
فرض کنیم ۱=d پس وزن ورودیها از ۰ به ۱ و ۲ رشد پیدا میکند. حال در اینجا ۵ = a به دست میآید که هنوز از مقدار آستانه ۱۰ کوچکتر است. مثال هنوز به ردهبندی صحیحی نرسیده است واین قدم دنباله باید تکرار شود. بعد از دو قدم وزنها برابر ۲ و ۴ میشوند که مقدار ۱۰ = a را نتیجه میدهد که برابر مقدار آستانه است و مثال مثبت از ۸ به طور صحیح دستهبندی شده است. از آنجا که ضرایب وزنی تغییر کرده بودند لازم است که در همه مثالها ردهبندیها بازنشان (Reset) شوند. این را میتوان به سادگی دید که مثال B ردهبندی نادرستی است زیرا با وزنهای ۲ و ۴ داریم ۲۴ = a ولی این حرف مورد نظر ما نیست، چون این مرحله را پیش رفتهایم لازم است که d.1 از w1 و d.2 از w2 کم شود تا ردهبندی نادرستی از B ثابت شود. به هر حال یک ردهبندی از ۸ را دوباره بیرون میدهد.
بعدها موقع بروز خطا ما وزنها را برای درست کردن خطاهای ردهبندی اصلاح میکنیم. اگر مثالها دارای خاصیت صحیحی باشند وزنها در مجموعهای از مقادیری که به درستی روی هر ورودی کار میکنند قرار میگیرند.
۲-۱۲-۳: قضیه بنیادی دنبالهها
یک خصوصیت قابل توجه پرسپترون این است که آنها میتوانند دنبالهای از ردهبندی صحیح مثالهای مثبت ومنفی باشند.
فرض کنیم X = X+ X-:
مجموعهای از مثالهای مثبت X+
مجموعهای از مثالهای منفی X-
گوییم که رشته بیکران Sx = X1 X2 , …, Xk یک رشته متوالی(ترتیبی) برای X است در صورتی که هر Xi یک مثال در X است و هر عنصر از X اغلب به طور نامحدود در Sx رخ میدهد(نمایان میشود).
فرض کنیم wk ضریب وزنی در سطح k دنباله باشد. وزن اولیه میتواند به صورت قراردادی باشد (برای مثال w1=0. (حال رشته استاندارد حاصله، وزنها را به صورت زیر ارتقا میدهد: بسته به استرادژی مورد نظر ممکن است مقادیر Ck همگی یکسان باشند یا ممکن است با k تغییر کنند.
قضیه ۱ باشد و یک بردار حل وزنها برای X وجود داشته باشد, در این صورت رویه رشته استاندارد باید بعد از یک تعداد فرض کنیم یک مجموعه از رشته نمونه X و هر رشته ترتیبی برای آن داریم, اگر Ck یک ثابت مثبت مراحل مشخص یک راهحل پیدا کند به طوری که اگر برای بعضی K0 ها داشته باشیم:
WK0 = WK0+1 = WK0+2 = …
که WK0 یک راهحل برای X است. بنابراین ما میتوانیم با بهره گرفتن از شبکههای عصبی هر چه بیشتر به شبیهسازی انسان توسط کامپیوترها نزدیک شویم به منظور واگذاری کارهای تکراری, وقتگیر و مسائلی که با توجه به پیشرفت بشری دیگر درخور بشر نیست.
۲-۱۳: کاربردهای شبکههای عصبی مصنوعی ANN
میتوان موارد زیر را از کاربردهای شبکههای عصبی مصنوعی ذکر کرد: (زارع و کوردلویی، ۱۳۸۹)
پردازش تصویر و دید(Image processing and computer vision)
پردازش علائم (Signal processing): شامل ریختشناسی و تجزیه و تحلیل علائم مربوط به زمینلرزهها و…
شناسایی الگوها(Pattern recognition): شامل شناسایی چهره، اثر انگشت، تشخیص نوع صدا و نوع صحبت کردن، دستخط و …