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

بازگشت   Artificial Intelligence - هوش مصنوعی > الگوریتم ها > الگوریتم رقابت استعماری (Imperialist Competitive Algorithm)


 
تبليغات سايت
Iranian Association for the Advancement of Artificial Intelligence
ارسال تاپيک جديد  پاسخ
 
LinkBack ابزارهاي تاپيک نحوه نمايش
قديمي ۰۵-۲-۱۳۹۰, ۰۹:۴۱ بعد از ظهر   #1 (لینک دائم)
Administrator
 
آواتار Astaraki
 
تاريخ عضويت: خرداد ۱۳۸۷
محل سكونت: تهران-کرج!
پست ها: 3,465
تشكرها: 754
16,337 تشكر در 3,127 پست
My Mood: Mehrabon
ارسال پيغام Yahoo به Astaraki
Wink دانلود رایگان کدهای آماده آموزش شبکه عصبی توسط الگوریتم رقابت استعماری

دانلود رایگان کدهای آماده آموزش شبکه عصبی توسط الگوریتم رقابت استعماری





راهنمایی در مورد کدها و نحوه استفاده
در مورد روند علمی کار توضیحاتی در لینک زیر آمده است که درک و استفاده از کدها را آسانتر خواهد کرد.
نحوه آموزش شبکه عصبی (Neural Network Training) توسط الگوریتم رقابت استعماری (ICA)


جهت درک بهتر توابع مختلف مورد استفاده همراه کدهایی دانلود کرده اید، بهتر است نگاهی به کدهای آماده الگوریتم رقابت استعماری در این لینک (+) بیاندازید و راهنمای توابع مختلف همراه کدها را مطالعه نمایید.


به همراه فایلها، یک فایل excel با نام Data وجود دارد. داده ها از این فایل خوانده می شوند. ستون آخر این فایل به عنوان خروجی و بقیه ستونها (مستقل از تعدادشان)، به عنوان ورودی در نظر گرفته می شوند. بنابراین برنامه انعطاف لازم برای استفاده در مسائل مختلف مرتبط با شبکه عصبی با داشتن تعداد مختلف ورودی برای شبکه را دارد.

تابع TrainUsingICA_Fcn.m، نیز تظمیات مرتبط با یادگیری (بهینه سازی را دارد). مثلاً تعداد کشورهای اولیه و ضرایب مختلف الگوریتم رقابت استعماری را می توانید در این تابع تنظیم نمایید. همانگونه که می دانید افزایش تعداد کشورهای اولیه و دهه در ICA، همانند هر الگوریتم دیگری به رسیدن به جوابهای بهتر کمک می کند اما در مقابل زمان لازم برای اجرای برنامه را بالا می برد. در زیر بخش های مهم تنظیمات ایت نابع را می بینیم.
كد:
%% Algorithmic Parameter Setting
AlgorithmParams.NumOfCountries = 80;               % Number of initial countries.
AlgorithmParams.NumOfInitialImperialists = 8;      % Number of Initial Imperialists.
AlgorithmParams.NumOfAllColonies = AlgorithmParams.NumOfCountries - AlgorithmParams.NumOfInitialImperialists;
AlgorithmParams.NumOfDecades = 30;
AlgorithmParams.RevolutionRate = 0.3;               % Revolution is the process in which the socio-political characteristics of a country change suddenly.
AlgorithmParams.AssimilationCoefficient = 2;        % In the original paper assimilation coefficient is shown by "beta".
AlgorithmParams.AssimilationAngleCoefficient = .5;  % In the original paper assimilation angle coefficient is shown by "gama".
AlgorithmParams.Zeta = 0.02;                        % Total Cost of Empire = Cost of Imperialist + Zeta * mean(Cost of All Colonies);
AlgorithmParams.DampRatio = 0.99;
AlgorithmParams.StopIfJustOneEmpire = false;         % Use "true" to stop the algorithm when just one empire is remaining. Use "false" to continue the algorithm.
AlgorithmParams.UnitingThreshold = 0.02;            % The percent of Search Space Size, which enables the uniting process of two Empires.


در میان کدهای، برنامه اصلی که باید اجرا شود با نام MainMLPusingICA مشخص شده است. شما کافی است این برنامه را باز کرده و فشردن F5 در متلب، آن را اجرا نمایید. برنامه تعداد تکرار های تعیین شده برای آموزش (تعداد دهه ها یا Decades در ICA) را طی کرده و نتایج نهایی، در انتهای برنامه، در پنجره اصلی متلب نشان داده خواهند شد.
كد:
%% Start of Program
clc
clear
close all

%% Input Output Data
Data = xlsread('Data.xls');

X = Data(:,1:end-1);
Y = Data(:,end);

NumOfInputs = size(X,2);
NumOfOutputs = size(Y,2);
NumOfData = size(X,1);

%% Normalization
XN = X;
YN = Y;

MinX = min(X); MaxX = max(X);
MinY = min(Y); MaxY = max(Y);

for ii = 1:size(X,2)
    XN(:,ii) = Normalize_Fcn(X(:,ii),MinX(ii) , MaxX(ii));
end

for ii = 1:size(Y,2)
    YN(:,ii) = Normalize_Fcn(Y(:,ii),MinY(ii) , MaxY(ii));
end

%% Test and Train Data
TrPercent = 80;
DataNum = size(X,1);
TrNum = round(TrPercent * DataNum/100);
R = randperm(DataNum);
TrInx = R(1:TrNum);
TsInx = R(TrNum+1:end);

Xtr = XN(TrInx,:);
Ytr = YN(TrInx,:);

Xts = XN(TsInx,:);
Yts = YN(TsInx,:);

%% Network Structure
pr = [-1 1];
PR = repmat(pr,NumOfInputs,1);
Network = newff(PR,[5 NumOfOutputs],{'tansig' 'tansig'});
Network.trainparam.goal = .0001;

%% Network Training
[Network BestCost] = TrainUsingICA_Fcn(Network,Xtr,Ytr);

%% Network Assessment
YtrNet = sim(Network,Xtr')';
YtsNet = sim(Network,Xts')';

MSEtr = mse(YtrNet-Ytr)
MSEts = mse(YtsNet-Yts)

CorrelatioTr = corrcoef(YtrNet,Ytr);
CorrelatioTs = corrcoef(YtsNet,Yts);

CorrelatioTr = CorrelatioTr(2)
CorrelatioTs = CorrelatioTs(2)

%% Display
figure
plot(Ytr,'-or'); hold on;
plot(YtrNet,'-sk'); hold off;
xlabel('Index'); ylabel('Output')
title('Real and Network output for Train Data');
legend('Real Output','Network Output')

figure
plot(Yts,'-or'); hold on;
plot(YtsNet,'-sk'); hold off;
xlabel('Index'); ylabel('Output')
title('Real and Network output for Test Data');
legend('Real Output','Network Output')

figure
t = -1:.1:1;
plot(t,t,'linewidth',2)
hold on
plot(Ytr,YtrNet,'ok')
xlabel('Real Output'); ylabel('Network Output')
title('Network output vs. Real Output for Train Data');

figure
t = -1:.1:1;
plot(t,t,'linewidth',2)
hold on
plot(Yts,YtsNet,'ok')
xlabel('Real Output'); ylabel('Network Output')
title('Network output vs. Real Output for Test Data');

نتیجه اجرای برنامه
یک نمونه از نتایج اجرای برنامه را در زیر می بینیم.
كد:
MSEtr =
    0.0055

MSEts =
    0.0057

CorrelatioTr =
    0.9895

CorrelatioTs =
    0.9863
در نهایت هم شکلهایی برای نشان دادن میزان موفقیت و شکست شبکه نشان داده شده اند. شکل زیر، نمودار خروجی واقعی و خروجی شبکه را برای دیتای آموزش بر حسب شماره اندیس داده ها نشان می دهد. هرچقدر این نمودارها روی هم بیفتند، نشان از کارایی شبکه می باشد.



حالت بزرگنمایی شده شکل فوق برای نشان دادن جزئیات در زیر آمده است.



یک روش دیگر برای نشان دادن تصویری کارایی شبکه عصبی، نمایش خروجی شبکه بر حسب خروجی واقعی می باشد. در ادامه این شکل را برای دیتای آموزش می بینیم. هرچقدر نقاط روی شکل به خط آبی نزدیکتر باشند، کارایی شبکه بیشتر می باشد.




شکل زیر، نمودار خروجی واقعی و خروجی شبکه را برای دیتای تست بر حسب شماره اندیس داده ها نشان می دهد. هرچقدر این نمودارها روی هم بیفتند، نشان از کارایی شبکه می باشد.



حالت بزرگنمایی شده شکل فوق برای نشان دادن جزئیات در زیر آمده است.



در ادامه نمایش خروجی شبکه بر حسب خروجی واقعی را برای دیتای آموزش می بینیم. هرچقدر نقاط روی شکل به خط آبی نزدیکتر باشند، کارایی شبکه بیشتر می باشد.



پسورد فايل: محاسبات تکاملی

منبع: دانلود رایگان کدهای آماده آموزش شبکه عصبی توسط الگوریتم رقابت استعماری
فايل ضميمه
نوع فايل: zip ica_trained_ann_codes.zip (188.7 كيلو بايت, 1055 نمايش)

ويرايش شده توسط Astaraki; ۰۵-۳-۱۳۹۰ در ساعت ۱۰:۰۰ بعد از ظهر
Astaraki آفلاين است   پاسخ با نقل قول
از Astaraki تشكر كرده اند:
aeranginkaman (۰۹-۶-۱۳۹۰), amirshah (۰۳-۲۴-۱۳۹۳)

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

نشان دهنده تبلیغات is online  
قديمي ۰۶-۲-۱۳۹۰, ۱۱:۵۴ قبل از ظهر   #2 (لینک دائم)
عضو جدید
 
آواتار shzm
 
تاريخ عضويت: شهريور ۱۳۹۰
پست ها: 1
تشكرها: 0
1 تشكر در 1 پست
پيش فرض

با تشکر از قرار دادن این کد
من با متلب r2008a کار می کنم همین کد رو در اجرا کردم ولی خطای بدست آمده زیاد است
shzm آفلاين است   پاسخ با نقل قول
از shzm تشكر كرده است:
tmtabasom (۰۸-۲-۱۳۹۲)
قديمي ۰۸-۹-۱۳۹۳, ۰۲:۴۷ بعد از ظهر   #3 (لینک دائم)
عضو فعال
 
آواتار fakhravary
 
تاريخ عضويت: مهر ۱۳۹۳
پست ها: 15
تشكرها: 2
0 تشكر در 0 پست
My Mood: Ashegh
ارسال پيغام Yahoo به fakhravary
پيش فرض

با سلام
یکم راهنمای بیشتر کنید روی کد های برنامه
fakhravary آفلاين است   پاسخ با نقل قول
پاسخ



كاربران در حال ديدن تاپيک: 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