ساخت شبکه عصبی چند لایه با دستور newff
در این پست نحوه ساخت شبکه عصبی چند لایه با دستور newff را بررسی خواهیم کرد.
همانطور که میدانیم شبکه های عصبی از نوع یادگیری با نظارت می باشند یعنی ما به شبکه عصبی تعدادی ورودی میدهیم که خروجی انها مشخص است ، و خروجی مرتبط با هر ورودی را به شبکه عصبی میدهیم تا انها را یاد بگیرد. بعد از این کار و بعد از اینکه شبکه اموزش را به پایان رساند. در مرحله بعد تعدادی ورودی به شبکه اموزش دیده میدهیم و از شبکه میخواهیم که خروجی این داده ها را تعیین کند.
برای ساخت یک شبکه چند لایه در متلب، ما ابتدا داده های ورودی را تعریف میکنیم که در کد زیر ما یک ماتریس بنام P تعریف کرده ایم . در این ماتریس ما 4 نمونه داده را به شبکه میخواهیم اموزش دهیم. هر داده ما دو بعد دارد بنابراین ماتریس P یک ماتریس با دو سطر و 4 ستون می باشد که هر ستون نشان دهنده یک داده می باشد.
همچنین خروجی مرتبط با این 4 داده را در بردار T قرار داده ایم:
P = [ -1 -1 2 2 ;0 5 0 5];
T = [-1 -1 1 1];
بعد از مشخص کردن ورودی و خروجی ، حال با دستور Newff یک شبکه عصبی را ایجاد میکنیم ، شبکه مورد نظر را یک شبکه دولایه در نظر گرفته ایم که تعداد 3 نرون در لایه مخفی دارد. تابع فعالسازی هر لایه را مشخص کرده ایم و همچنین الگوریتم یادگیری را مشخص کرده ایم.
net = newff( minmax(P),[3 1],{‘tansig’,’purelin’}, ‘traingd’];
بعد از ساخت شبکه عصبی و قرار دادن ان در متغیر net حال عمل آموزش شبکه را با استفاده از دستور train انجام خواهیم داد، دستور train سه ورودی میگیرد که به ترتیب از چپ به راست، نام شبکه، ورودیها و خروجی ها می باشد.عمل آموزش همانند تصویر زیر انجام خواهد شد:
[net, tr]= train(net, P, T);
در نهایت ، پس از اینکه مرحله اموزش به پایان رسید، نوبت به تست شبکه می باشد، با دستور sim عمل تست شبکه را انجام میدهیم . برای این کار ما ماتریس P را به شبکه داده ایم و خروجی ای که شبکه برای ماتریس P تولید میکند را در متغیر a قرار داده ایم، همانطور که در تصویر زیر می بینید مقادیر داخل a همان مقادیر داخل T می باشند یعنی شبکه به خوبی داده های آموزش را یادگرفته است.
a = sim(net, P);
از انجا که تعداد داده های وروی و تست کم بود و یک الگوی ساده را به شبکه داده بودیم، شبکه عصبی به خوبی این الگو را آموخت . اما در مسائل پیچیده تر و دنیای واقعی نیاز به کار بیشتری می باشد.
جهت مشاهد کدهای و پروژه های شبکه عصبی و مقالات شبیه سازی شده لینک زیر را کلیک کنید
برای انجام پروژه های شبکه عصبی با ما تماس بگیرید
شماره تماس : 09120563264 (تماس و تلگرام)