Artificial Intelligence - هوش مصنوعی  
انجمن را در گوگل محبوب کنيد :

بازگشت   Artificial Intelligence - هوش مصنوعی > محاسبات نرم > شبکه های عصبی (Neural Networks)


 
تبليغات سايت
Iranian Association for the Advancement of Artificial Intelligence
ارسال تاپيک جديد  پاسخ
 
LinkBack ابزارهاي تاپيک نحوه نمايش
قديمي ۰۴-۱۶-۱۳۹۴, ۰۴:۱۵ قبل از ظهر   #1 (لینک دائم)
عضو جدید
 
آواتار smail
 
تاريخ عضويت: تير ۱۳۹۴
پست ها: 1
تشكرها: 0
0 تشكر در 0 پست
پيش فرض سوال در مورد کد نوشته شده در برنامه متلب(کد شمارش تعداد انگشتان باز یک دست)

سلام
برنامه زیر کد شمارش تعداد انگشتان باز یک دست با استفاده از شبکه عصبی پرسپترون است
كد:
  
%% initializeing the program clc; clear all; close all; %% n=16; l0=imread('left0.jpg'); l0=rgb2gray(l0); l0=im2bw(l0,0.5); %% l1=imread('left1.jpg'); l1=rgb2gray(l1); l1=im2bw(l1,0.5); %% l2=imread('left2.jpg'); l2=rgb2gray(l2); l2=im2bw(l2,0.5); %% l3=imread('left3.jpg'); l3=rgb2gray(l3); l3=im2bw(l3,0.5); %% l4=imread('left4.jpg'); l4=rgb2gray(l4); l4=im2bw(l4,0.5); %% l5=imread('left9.jpg'); l5=rgb2gray(l5); l5=im2bw(l5,0.5); %% l44=imread('left8.jpg'); l44=rgb2gray(l44); l44=im2bw(l44,0.5); %% l33=imread('left7.jpg'); l33=rgb2gray(l33); l33=im2bw(l33,0.5); %% r0=imread('right0.jpg'); r0=rgb2gray(r0); r0=im2bw(r0,0.5); %% r1=imread('right1.jpg'); r1=rgb2gray(r1); r1=im2bw(r1,0.5); %% r2=imread('right2.jpg'); r2=rgb2gray(r2); r2=im2bw(r2,0.5); %% r3=imread('right3.jpg'); r3=rgb2gray(r3); r3=im2bw(r3,0.5); %% r4=imread('right4.jpg'); r4=rgb2gray(r4); r4=im2bw(r4,0.5); %% r5=imread('right9.jpg'); r5=rgb2gray(r5); r5=im2bw(r5,0.5); %% r11=imread('right5.jpg'); r11=rgb2gray(r11); r11=im2bw(r11,0.5); %% r22=imread('right6.jpg'); r22=rgb2gray(r22); r22=im2bw(r22,0.5); %% r33=imread('right7.jpg'); r33=rgb2gray(r33); r33=im2bw(r33,0.5); %% r44=imread('right8.jpg'); r44=rgb2gray(r44); r44=im2bw(r44,0.5); subplot(2,6,1); imshow(l0); subplot(2,6,2); imshow(l1); subplot(2,6,3); imshow(l2); subplot(2,6,4); imshow(l3); subplot(2,6,5); imshow(l4); subplot(2,6,6); imshow(l5); subplot(2,6,7); imshow(r0); subplot(2,6,8); imshow(r1); subplot(2,6,9); imshow(r2); subplot(2,6,10); imshow(r3); subplot(2,6,11); imshow(r4); subplot(2,6,12); imshow(r5); figure; % x[n,10000] x=[reshape(l0,1,[]);reshape(l1,1,[]);reshape(l2,1,[]);reshape(l3,1,[]);reshape(l4,1,[]);reshape(l5,1,[]); reshape(r0,1,[]);reshape(r1,1,[]);reshape(r2,1,[]);reshape(r3,1,[]);reshape(r4,1,[]);reshape(r5,1,[]); reshape(r11,1,[]);reshape(r22,1,[]);reshape(r33,1,[]);reshape(r44,1,[]); ]; % t[n,6] t=[1 -1 -1 -1 -1 -1; -1 1 -1 -1 -1 -1; -1 -1 1 -1 -1 -1; -1 -1 -1 1 -1 -1; -1 -1 -1 -1 1 -1; -1 -1 -1 -1 -1 1; 1 -1 -1 -1 -1 -1; -1 1 -1 -1 -1 -1; -1 -1 1 -1 -1 -1; -1 -1 -1 1 -1 -1; -1 -1 -1 -1 1 -1; -1 -1 -1 -1 -1 1; -1 1 -1 -1 -1 -1; -1 -1 1 -1 -1 -1; -1 -1 -1 1 -1 -1; -1 -1 -1 -1 1 -1; ]; %% b=zeros(1,6); b_old=zeros(1,6); y_in=zeros(1,6); y=zeros(1,6); w=zeros(10000,6); w_old=zeros(10000,6); s=0; epoch=0; %% while s==0 epoch=epoch+1; for i=1:n for k=1:6 y_in(k)=0; for j=1 : 10000 y_in(k)=y_in(k)+ w(j,k)*x(i,j); end y_in(k)=y_in(k)+b(k); if(y_in(k)>0) y(k)=1; elseif (y_in(k)<0) y(k)=-1; else y(k)=0; end if(t(i,k)~=y(k)) for z=1:10000 w(z,k)=w(z,k)+x(i,z)*t(i,k); end b(k)=b(k)+t(i,k); end end end if ((w_old==w)) s=1; else w_old=w; b_old=b; end end %% [fn,path]=uigetfile('*.jpg','select your hand to count its finger'); test=imread([path,fn]); test=imresize(test,[100 100]); test=rgb2gray(test); test=im2bw(test,0.5); test=reshape(test,1,[]); % test y=0; %r=randi(20)+1 result=zeros(1,6); for k=1:6 for i=1:10000 y=y+test(i)*w(i,k); end y=y+b(k); if(y>=0) result(k)=1; else result(k)=-1; end y=0; end disp(['Your Output array is : ']); disp(result); if result== [ 1 -1 -1 -1 -1 -1] disp('<moch maste>'); imshow (l0); elseif result== [ -1 1 -1 -1 -1 -1] disp('1 finger'); imshow(l1); elseif result==[-1 -1 1 -1 -1 -1] disp('2 finger'); imshow(l2); elseif result==[ -1 -1 -1 1 -1 -1] disp('3 finger'); imshow(l3) elseif result== [ -1 -1 -1 -1 1 -1] disp('4 finger'); imshow(l4); elseif result==[ -1 -1 -1 -1 -1 1 ] disp('5 finger'); imshow(l9) else disp('Im sorry'); end
میشه توضیح بیشتری بدید قسمتهای زیر از کد بالایی دقیقا چکار می کند.

مقادیر اولیه شبکه عصبی شامل y , b , w
كد:
b=zeros(1,6);
b_old=zeros(1,6);
 
y_in=zeros(1,6);
y=zeros(1,6);
w=zeros(10000,6);
w_old=zeros(10000,6);
s=0;
epoch=0;
میشه توضیح بدین این حلقه دقیقا چطور کار می کند؟
در این حلقه هر کدام از تصاویر به شبکه عصبی آموزش داده می شود تازمانی که کامل یاد بگیرد
كد:
while s==0 epoch=epoch+1; for i=1:n for k=1:6 y_in(k)=0; for j=1 : 10000 y_in(k)=y_in(k)+ w(j,k)*x(i,j); end y_in(k)=y_in(k)+b(k); if(y_in(k)>0) y(k)=1; elseif (y_in(k)<0) y(k)=-1; else y(k)=0; end if(t(i,k)~=y(k)) for z=1:10000 w(z,k)=w(z,k)+x(i,z)*t(i,k); end b(k)=b(k)+t(i,k); end end end if ((w_old==w)) s=1; else w_old=w; b_old=b; end end
smail آفلاين است   پاسخ با نقل قول

  #ADS
نشان دهنده تبلیغات
تبليغگر
 
 
 
تاريخ عضويت: -
محل سكونت: -
سن: 2010
پست ها: -
 

نشان دهنده تبلیغات is online  
قديمي ۰۴-۱۶-۱۳۹۴, ۰۹:۱۳ قبل از ظهر   #2 (لینک دائم)
عضو فوق فعال
 
آواتار nazliii
 
تاريخ عضويت: مرداد ۱۳۹۱
پست ها: 72
تشكرها: 36
23 تشكر در 19 پست
پيش فرض

قسمت اول:
ماتریس های خالی تولید میکنه تا بعدا پر بشه.مثلا ماتریس b با اندازه 1 در 6 تولید میکنه که تمام درایه های آن صفر هستند.
nazliii آفلاين است   پاسخ با نقل قول
پاسخ



كاربران در حال ديدن تاپيک: 1 (0 عضو و 1 مهمان)
 
ابزارهاي تاپيک
نحوه نمايش

قوانين ارسال
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is فعال
شکلکها فعال است
كد [IMG] فعال است
كدهاي HTML غير فعال است
Trackbacks are فعال
Pingbacks are فعال
Refbacks are فعال




زمان محلي شما با تنظيم GMT +3.5 هم اکنون ۱۲:۳۴ بعد از ظهر ميباشد.


Powered by vBulletin® Version 3.8.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.1.0 ©2007, Crawlability, Inc.

Teach and Learn at Hexib | Sponsored by www.Syavash.com and Product In Review

استفاده از مطالب انجمن در سایر سایت ها، تنها با ذکر انجمن هوش مصنوعي به عنوان منبع و لینک مستقیم به خود مطلب مجاز است

Inactive Reminders By Icora Web Design