شبكه های عصبی در 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
دیدگاهتان را بنویسید
نشانی ایمیل منتشر نخواهد شد

مطالب جدید
- DeltaV Mimic v6 اعتبارسنجی و شبیهسازی نیروگاههای صنعتی
- SIMULIA IVCAD Suite 2026 شبیهسازی و اندازهگیری سیستمهای RF
- TaniqWind Pro 1.14 تولید مخازن کامپوزیتی به روش فیلامنت وایندینگ
- DukeSim v1.2 شبیهساز پیشرفته تصویربرداری و دوزسنجی CT
- Kinetix Matrix 3.01 طراحی و بهینهسازی اسیدکاری چاه نفت و گاز
- DNV WindFarmer 1.7.1 طراحی و بهینهسازی نیروگاههای بادی
- NetSim Pro 15.1 پلتفرم پیشرفته طراحی و تحلیل شبکههای مخابراتی
- Gamry Echem Analyst 2 تحلیل خوردگی و آزمونهای الکتروشیمیایی
- XGtd 3.1.2 شبیهسازی سامانههای راداری و آنتن
- Simcenter Multimech 2506 تحلیل ریزساختار و رفتار مکانیکی مواد پیشرفته

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

مطالب تصادفی
- Lantek Expert v43 قویترین نرم افزار برش و چیدمان هوشمند فلزات
- پروژه نورد (Rolling) با آباکوس
- Proficy Historian 2025 تحلیل داده و مدلسازی دارایی
- JMatPro v13 پیشبینی خواص مواد و آلیاژها
- دانلود سایت W3Schools (آفلاین)
- Isograph AttackTree+ 5 ارزیابی سیستمهای کنترل صنعتی
- PIC Robotics A Beginner Guide To Robotic هندبوک رباتیک
- AVEVA Engineering 15.8 مدیریت دادههای مهندسی
- ETAP 2026 طراحی و تحلیل سیستمهای قدرت
- دانلود نرم افزار Delphi Tips and Tricks




