شبكه های عصبی در MATLAB
- ◷ 1392/05/27
- 41 دیدگاه
به طور كلی در نرم افزار MATLAB به 3 روش می توان شبكه های عصبی Neural Network ایجاد كرد:
- كدنویسی
- استفاده از سیستمهای بلوكی (Simulink)
- استفاده از محیط گرافیكی (GUI)
در این مقاله قصد دارم نحوهی استفاده از GUI در جعبهابزار شبكه عصبی را به دوستان معرفی كنم البته به دوستان توصیه میكنم كه ابتدا با كدنویسی آشنا شوند زیرا ممكن است درجایی مجبور به نوشتن كد باشند مگر كسانی كه شبكه عصبی، درس تخصصی آنها نبوده و فقط برای انجام قسمتی از پروژهشان میخواهند از شبكههای عصبی استفاده كنند كه استفاده از GUI در این مورد بسیار ساده و سریع است.
برای شروع nntool را در خط فرمان تایپ و اینتر كنید و یا از مسیر Start >> Toolboxes >> Neural Network >> Neural Network Tool استفاده كنید پنجرهای مانند شكل زیر مشاهده میكنید:

برای ایجاد یك شبكه جدید، روی دگمه New كلیك كنید همانطور كه مشاهده میشود، پنجرهای باز میشود كه میتوانید در آن پارامترهای شبكهی مورد نظرتان را وارد كنید:
در تب Network شما میتوانید تنظیمات مربوط به شبكه عصبی مورد نظرتان را وارد كنید و در زبانه دوم یعنی Data شما دادههای خود را وارد میكنید. حالا برای مثال اول میخواهیم با یك تك پرسپترون، گیت NAND دو ورودی را پیادهسازی كنیم ابتدا نام شبكه مورد نظر را در قسمت Name وارد كنید من نام NAND را وارد میكنم سپس در قسمت Network Type نوع شبكه را Perceptron انتخاب كنید پس از آن به تب Data رفته و در قسمت Name نام p و در قسمت Value مقدار [1 0 1 0;1 1 0 0] و در Data Type حالت Inputs را انتخاب كرده و به روی Create كلیك كنید دیالوگی مبنی بر ذخیره دیتا مشاهده میكنید آن را Ok كنید سپس برای ذخیرهی دادههای تارگت مشابه حالت قبل عمل كنید یعنی در قسمت Name نام t و در قسمت Value مقدار [0 1 1 1] و در Data Type حالت Targets را انتخاب كرده و به روی Create كلیك كنید دیالوگ مشاهده شده را Ok كنید. به تب Network بازگشته و دادههای ورودی و تارگت را از منوی مقابلشان انتخاب كنید برای دیدن ساختار شبكه، بر دگمه View كلیك كنید بصورت زیر:

همانطور كه میبینید از تابع محدود كننده سخت نامتقارن استفاده كردهایم تا خروجیهای ما صفر یا یك شوند حالا برای ایجاد شبكه، Create را كلیك، و دیالوگ پس از آن را Ok كنید به پنجره اصلی بازگشته و در قسمت Networks به روی NAND كلیك كرده و Open را بزنید در پنجره باز شده به تب Train رفته و مقادیر ورودی و تارگت را وارد كرده و برای شروع آموزش Train Network را بفشارید همانطور كه مشاهده میكنید به پرفورمانس صفر رسیدهایم(اتفاقی كه در هیچكدام از مسائل واقعی كه ما با آن سروكار داریم، هرگز رخ نخواهد داد!) كه دلیلش را هم احتمالا میدانید حال به پنجره اصلی بازگشته و مقادیر خروجی و خطا را به ازای دادههای آموزشی مشاهده كنید كه البته از پرفورمانس صفر میتوان حدس زد كه چه مقادیری به دست آمده است.
اكنون اگر بوسیلهی همین روش تابع XOR را پیادهسازی كنید نتایج وحشتناكی خواهید گرفت.
برای مثال دوم میخواهیم تابع سینوس را بوسیلهی یك شبكه عصبی 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
همانطوری كه مشاهده میشود شبكه با ده نرون به خوبی آموزش دیده و برای دادههای تست نیز خروجی مناسبی داریم.
(توجه كنید كه در شكل، منحنیهای خروجی و تارگت روی هم افتادهاند)

نكته: توجه كنید كه تابع سینوس یكی از سادهترین توابع است و آن را میتوانید با تعداد نرونهای كمتری (حتی دو سه نرون) با تقریب نسبتا خوبی پیادهسازی كنید. درواقع بسته به خودتان است كه چه میزان دقت مورد نیاز شماست. یكی از توابع سخت برای پیادهسازی، تابع مربعی میباشد كه دلیل آن تغییرات شدید در لبههای بالارونده و پائینروندهی آن است به عبارتی دیگر اگر شما میخواهید دو تابع سینوسی و مربعی را با دقت یكسانی تقریب بزنید، شما مجبور هستید تا شبكهی بزرگتری را برای تابع مربعی درنظر بگیرید این تابع را خودتان پیادهسازی كنید تا درك بهتری از شبكه عصبی داشته باشید.
مطالب مرتبط
برچسب ها : Neural Network, nntool, Simulink, Simulink در متلب, تولباکس شبکه عصبی در matlab, شبكه های عصبی, شبكه های عصبی در MATLAB
دیدگاهتان را بنویسید
نشانی ایمیل منتشر نخواهد شد

مطالب جدید
- ERDAS IMAGINE 2026 پردازش تصاویر ماهواره ای و سنجش از دور
- SPOOLCAD plus 2026 طراحی و ساخت خطوط لوله صنعتی
- Edelweiss 2026 تحلیل داده های الکتروشیمیایی و آزمون باتری
- DataPage+ 5.2 SP2 تحلیل آماری داده های اندازه گیری صنعتی
- پکیج اختصاصی آموزش نرم افزار MASTA
- VAST Security Station 1.6 مدیریت هوشمند سامانه های تصویری
- RIIN 7.1 پردازش و آماده سازی فایل های چاپ صنعتی
- m+p VibControl 2.19 کنترل آزمون های ارتعاش و شوک
- Maestro 3D Dental Studio 6 طراحی محصولات دندانپزشکی
- HRS-AHED 3.3.21 طراحی و ارزیابی مبدل های حرارتی

مطالب پربازدید
- دانلود استاندارد
- دانلود کتاب هیدرولیک و پنوماتیک فستو Festo فارسی
- کلید فولاد (Key to Steel) پرتابل
- دانلود فول استاندارد ASTM بصورت رایگان
- آموزش میکروکنترلر AVR
- دانلود آنتی ویروس شورتکات (Back 2 Normal)
- دانلود جدول استاندارد DIN
- دانلود کتاب آموزش Abaqus (فارسی)
- فول استاندارد ASME (بروز)
- دانلود نرم افزار MATLAB برای آندروید(MATLAB Android)

مطالب تصادفی
- Ansys Perceive EM 2026R1 شبیهسازی امواج الکترومغناطیسی راداری
- Avantage 6.11.2 تحلیل شیمیایی سطح و داده های XPS
- نرم افزار Paladin DesignBase 6.2 طراحی و تحلیل سیستمهای برقی و الکترونیکی
- Handbook of Civil Engineering Calculation هندبوک عمران
- آموزش PowerMill (فارسی)
- inLab CAM 22.7.1 طراحی و ساخت پروتز دندان
- مدیریت چرخه عمر محصول PLM
- Aimsun Next 26 مدلسازی تخصصی شبکه حمل و نقل
- XDIAG 4.23 پایش سیستم پمپاژ چاه نفت
- Cresset Flare 12 طراحی دارو و شیمی محاسباتی




