ايجاد شبكههاي عصبي با ابزار GUI
در این مثال می خواهیم تابع سينوس را بوسيلهي يك شبكه عصبي MLP ، تقريب بزنيم براي اين منظور در پنجره مديريت شبكه و ديتا، New را كليك كرده و مانند شكل زير عمل كنيد:
شبكه را دو لايه قرار دادهايم كه در لايه اول ده نرون با تابع تبديل تانژانت سيگموئيد و لايه دوم كه همان لايه خروجي است را تابع تبديل خطي دادهايم(نرونهاي لايه خروجي برابر تعداد خروجيهاي شبكه ميباشد كه در اين مثال برابر يك است.)
در اينجا ديگر نميتوانيد از روش قبل براي ايجاد دادههاي خود استفاده كنيد و بايد ديتا را يا از يك فايل mat بگيريد و يا از فضاي كاري متلب. دستورات زير را در خط فرمان تايپ و اينتر كنيد:
;p=0:0.1:4*pi
;(t=sin(p
به پنجرهي اصلي بازگشته و Import را كليك كنيد سپس دادههاي p و t را به ترتيب عنوان دادههاي ورودي و تارگت، Import كرده و سپس Close كنيد.
حال به پنجرهي تنظيمات بازگشته و دادههاي ورودي و تارگت را وارد كرده و شبكه را ايجاد كنيد. شبكهاي را كه با نام Sin ذخيره كردهايد، باز كنيد و به تب Train برويد و پس از وارد كردن دادههاي ورودي و تارگت، به تب Training Parameters برويد همانطور كه ملاحظه ميكنيد در اينجا ميتوانيد پارامترهاي زيادي را تغيير دهيد مثلا ممكن است در مسالهاي خاص، پرفورمانسي برابر 0.001 كافي باشد كه ميتوانيد در قسمت goal آن عدد را وارد كنيد و نيز تنظيمات ديگري از جمله زمان، تعداد مراحل آموزش و …
مقادير را پيشفرض قرار داده و شبكه را آموزش دهيد:
اگر به مقاديري غير از آنچه در بالا آمده، رسيدهايد، تعجب نكنيد.
در تب View/Edit Weights ميتوانيد تمام وزنها و باياسها را مشاهده كنيد به پنجرهي اصلي بازگرديد و Export را كليك كرده و شبكه و نيز دادههاي خروجي و خطا را به فضاي كاري متلب انتقال دهيد و كدهاي زير را اجرا كنيد:
(subplot(2,1,1
;(y1=sim(Sin,p
(‘plot(p,t,p,y1,’m
;([xlim([0 4*pi]);ylim([-1 1
;(‘(title(‘Network Output (Training Data
(subplot(2,1,2
;x=0:0.001:4*pi
;(y2=sim(Sin,x
(‘plot(x,sin(x),x,y2,’m
;([xlim([0 4*pi]);ylim([-1 1
;(‘(title(‘Network Output (Test Data
همانطوري كه مشاهده ميشود شبكه با ده نرون به خوبي آموزش ديده و براي دادههاي تست نيز خروجي مناسبي داريم.
(توجه كنيد كه در شكل، منحنيهاي خروجي و تارگت روي هم افتادهاند)
نكته: توجه كنيد كه تابع سينوس يكي از سادهترين توابع است و آن را ميتوانيد با تعداد نرونهاي كمتري(حتي دو سه نرون) با تقريب نسبتا خوبي پيادهسازي كنيد. درواقع بسته به خودتان است كه چه ميزان دقت مورد نياز شماست. يكي از توابع سخت براي پيادهسازي، تابع مربعي ميباشد كه دليل آن تغييرات شديد در لبههاي بالارونده و پائينروندهي آن است به عبارتي ديگر اگر شما ميخواهيد دو تابع سينوسي و مربعي را با دقت يكساني تقريب بزنيد، شما مجبور هستيد تا شبكهي بزرگتري را براي تابع مربعي درنظر بگيريد اين تابع را خودتان پيادهسازي كنيد تا درك بهتري از شبكه عصبي داشته باشيد.
اگر سؤالي داشتيد در بخش نظرات آن را مطرح كنيد.
مقاله متلب,مطلب,متلب,مقاله برق,مقاله قدرت,مقاله مطلب,مقاله سیمولینک,دانلود متلب,دانلود مقاله متلب,مقالهmatlab ,آموزش متلب,مطلب,متلب,آموزش برق,آموزش قدرت,آموزش مطلب,آموزش سیمولینک,دانلود متلب,دانلود آموزش متلب,آموزشmatlab ,پروژه متلب,مطلب,متلب,پروژه برق,پروژه قدرت,پروژه مطلب,پروژه سیمولینک,دانلود متلب,دانلود پروژه متلب,پروژهmatlab ,