![]() |
آموزش ترکیب شبکه عصبی و الگورتم ژنتیک در متلب همرا با یک مثال(کد و گزارش)
1(ها)ضميمه
سلام
دوستان من تو درس یادگیری ماشین یکی از پروژهایی که انجام دادم به نام" دسته بندی تصاویر با استفاده از شبکه عصبی و استفاده از الگوریتم ژنتیک برای یادگیری وزن های شبکه عصبی " بود . من این پروژه رو در متلب پیاده سازی کردم و گزارش مربوط به پروژه رو طوری نوشتم که قدم به قدم روند آموزش و ترکیب الگوریتم ژنتیک و شبکه عصبی رو بیان کنه. در زیر لینک دانلود گزارش و کد برنامه رو گذاشتم . امیدوارم مطالب مفید باشه |
سلام آقای نصری...
با تشکر بسیار سپاسگزارم از این فایل آموزشیتون. فقط یک سوال داشتم؟ کد نویسی شما برای یک شبکه دو لایه بود که در لایه مخفیش 2 نرون داشت [1 2] ... اگر بخوام تو همین لایه (مخفی) از 7 نرون استفاده کنم، کجای تابع زیر را باید تغییر بدم؟ ----------------------------------------------------------------------------------- function Z = ff(x) load dataset P=meas(1:120,1:4)'; T=meas(1:120,7)'; [pn,minp,maxp] = premnmx(P); net=newff([minp,maxp],[2 1],{'tansig','tansig'}); %net=init(net); net.trainparam.epochs=500; net.trainparam.goal=0.001; % x = rand(1,13); w1(1,1:4)=x(1:4); w1(2,1:4)=x(5:8); w2(1,1:2)=x(9:10); bb1(1,1)=x(11); bb1(2,1)=x(12); net.IW(1,1)={w1}; net.LW(2,1)={w2}; net.b(1)={bb1}; net.b(2)={x(13)}; Y = sim(net,P); e=T-Y; mse=sqrt((sum((e.^2),'double'))/120); % Z=[w1(1,1:4),w1(2,1:4),w2(1,1:2)] Z=mse; end ------------------------------------------------------------------- یا اگر بخوام دو لایه مخفی داشته باشم مثلاً با ساحتار [1 7 7] چطور؟ ممنونم میشم کمکم کنید..... از دوستان نیز در صورت امکان درخواست کمکم و راهنمایی دارم.... با تشکر |
سلام دوست عزیز خواهش میکنم. در مورد سوالتون باید بگم در صورتی که از 7 نرون در لایه پنهان استفاده کنید طول کروموزم به شدت افزایش پیدا میکنه. اگه بخوایم حساب کنیم تعداد وزن های لایه ورودی 28=7*4 و 7 تا بایاس برای لایه پنهان و در لایه خروجی 7 تا وزن و یک بایاس داریم که در مجموع تعداد ژن ها در کروموزم برابر 43 تا میشه. اما تو برنامه این تغییرات رو باید اعمال کنی function Z = ff(x) load dataset P=meas(1:120,1:4)'; T=meas(1:120,7)'; [pn,minp,maxp] = premnmx(P); net=newff([minp,maxp],[7 1],{'tansig','tansig'}); %net=init(net); net.trainparam.epochs=500; net.trainparam.goal=0.001; %--------------- w1(1,1:4)=x(1:4); w1(2,1:4)=x(5:8); w1(3,1:4)=x(9:12); w1(4,1:4)=x(13:16); w1(5,1:4)=x(17:20); w1(6,1:4)=x(21:24); w1(7,1:4)=x(25:28); w2(1,1:7)=x(29:35); bb1(1,1)=x(36); bb1(2,1)=x(37); bb1(3,1)=x(38); bb1(4,1)=x(39); bb1(5,1)=x(40); bb1(6,1)=x(41); bb1(7,1)=x(42); %---------------- net.IW(1,1)={w1}; net.LW(2,1)={w2}; net.b(1)={bb1}; net.b(2)={x(43)}; Y = sim(net,P); e=T-Y; mse=sqrt((sum((e.^2),'double'))/120); Z=mse; end و تو برنامه اصلی هم باید تغییرات زیر رو اعمال کنی clc; clear; %------------------------------- options_me = gaoptimset(@ga); options_me.PopulationSize=10; options_me.EliteCount=2; options_me.CrossoverFraction=0.8000; options_me.MigrationFraction=0.2000; options_me.Generations=10; options_me.StallGenLimit=20; LB=-512; UB=512; [x ffitness]=ga(@ff,43,[],[],[],[],LB,UB,[],options_me); options = gaoptimset(@ga) %------------------------------------------------------------- load dataset P=meas(1:120,1:4)'; T=meas(1:120,7)'; [pn,minp,maxp] = premnmx(P); net=newff([minp,maxp],[7 1],{'tansig','tansig'}); %net=init(net); %--------------- w1(1,1:4)=x(1:4); w1(2,1:4)=x(5:8); w1(3,1:4)=x(9:12); w1(4,1:4)=x(13:16); w1(5,1:4)=x(17:20); w1(6,1:4)=x(21:24); w1(7,1:4)=x(25:28); w2(1,1:7)=x(29:35); bb1(1,1)=x(36); bb1(2,1)=x(37); bb1(3,1)=x(38); bb1(4,1)=x(39); bb1(5,1)=x(40); bb1(6,1)=x(41); bb1(7,1)=x(42); %---------------- net.IW(1,1)={w1}; net.LW(2,1)={w2}; net.b(1)={bb1}; net.b(2)={x(43)}; net.trainparam.epochs=2000; net.trainparam.goal=0.008; net=train(net,P,T); Y=sim(net,P); subplot(2,1,1); plot(1:120,T,'+',1:120,Y,'o'); axis([0 121 -1 2]); title('Train'); xlabel('number of sample'); ylabel('output'); legend('target','Output'); %------------------------------------------------------------------ P1=meas(121:150,1:4)'; T1=meas(121:150,7)'; Y1=sim(net,P1); subplot(2,1,2); plot(1:30,T1,'+',1:30,Y1,'o'); axis([0 31 -1 2]); title('Test'); xlabel('number of sample'); ylabel('output'); legend('target','Output'); |
ممنون kiam جان
ایمیلتون رو دریافت کردم سوالاتم رو می توانم از طریق ایمیل باهاتون در میان بگذارم ؟ |
نقل قول:
من ب کمکت واقعن نیاز دارم دارم روی ی مقاله کار میکنم با حدوده ۷۴ سری داده یک بر داده ها را فقط با شبکه عصبی ران کردم و تقریبا به کارآمدی خوبی رسیدم مشکل اینجاست که میخام از ژنتیک الگوریتم هم تو این کار استفاده کنم یعنی نمیدونم اصلان چجوری باید ازش استفاده کنم اگر مایل ب همکاری هستی لطفآ بهم mail بزن |
سلام اقا کیام لطف میکنی ایمیل یا شمارتو واسم بفرستی؟ irna147@yahoo
|
سلام دوست عزیز
من هم دنبال الگوریتم هایی برای مقایسه ی ژنتیک دو نمونه میگردم.اگه در این زمینه اطلاعاتی دارین لطفا در اختیارم قرار بدید.ممنونم.اقای نصیری از اطلاعات مفیدتون خیلی ممنوم . |
سلام خوبین لطف می کنین این پروژه تون رو واسه منم بفرستین عنوانش این بود :دسته بندی تصاویر با استفاده از شبکه عصبی و استفاده از الگوریتم ژنتیک برای یادگیری وزن های شبکه عصبی
واقعا ممنون می شم mahshid_mr64@yahoo.com |
سلام دوست عزیز راستش من یک مقاله دارم در مورد face detection که باید تا آخر بهمن اونو پیاده سازی کنم با مطلب ولی متاسفانه خیلی آشنا نیستم . خواهش می کنم راهنماییم کنید. مقاله چندان سخت نیست ولی نمی دونم که برای پیاده سازی یک مقاله باید از کجا شروع کنم؟خواهش می کنم کمکم کنید mahshid_mr64@yahoo.com
|
سلام
مرسی من خوبم . لینک دانلود پروژه رو تو صفحه اول گذاشتم! اما من واستون میل میکنم. لطف کند مقاله تونو واسم میل کنید. kiamnasri@gmail.com |
زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۱۲:۳۹ بعد از ظهر ميباشد. |
Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.