آموزش شبکه عصبی با الگوریتم وال WOA در متلب

(دیدگاه کاربر 2)
امتیاز 5.00 از 5

برنامه‌نویس: 

هزینه سفارش:

تخفیف ویژه 60 درصدی

قیمت اصلی: ۲۸۰,۰۰۰ تومان بود.قیمت فعلی: ۱۱۲,۰۰۰ تومان.

تخصصی و منحصر به فرد بودن این اثر، تضمین کننده بهای محصول نسبت به آثار مشابه است.

شبکه عصبی مصنوعی چیست؟

شبکه عصبی مصنوعی یا Artificial Neural Network – ANN یک مدل محاسباتی الهام‌گرفته از شبکه عصبی زیستی است. این شبکه از مجموعه‌ای از عناصر پردازشی به نام نورون تشکیل می‌شود که از طریق ارتباطات وزن‌دار با یکدیگر در ارتباط هستند.

یک شبکه عصبی معمولاً از بخش‌های زیر تشکیل می‌شود:

  • لایه ورودی: دریافت ویژگی‌های نمونه‌ها
  • لایه‌های پنهان: پردازش داده‌ها و شناسایی الگوها
  • لایه خروجی: تولید پیش‌بینی یا کلاس نهایی
  • وزن‌ها: تعیین میزان تأثیر ارتباط میان نورون‌ها
  • بایاس‌ها: افزایش انعطاف‌پذیری مدل
  • تابع فعال‌سازی: تعیین خروجی هر نورون

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

آموزش شبکه عصبی با الگوریتم‌های فراابتکاری

یادگیری در شبکه عصبی به معنای تنظیم وزن‌ها و بایاس‌ها با هدف کاهش خطای پیش‌بینی است. روش‌های مختلفی برای آموزش شبکه‌های عصبی وجود دارد، از جمله:

  • یادگیری هب
  • قانون دلتا
  • یادگیری رقابتی
  • پس‌انتشار خطا
  • روش‌های مبتنی بر گرادیان
  • الگوریتم‌های تکاملی
  • الگوریتم‌های فراابتکاری

در این پروژه، الگوریتم WOA به‌عنوان یک روش جست‌وجوی هوشمند برای تعیین وزن‌ها و بایاس‌های مناسب شبکه عصبی استفاده می‌شود. هر جواب کاندید در الگوریتم می‌تواند بیانگر مجموعه‌ای از پارامترهای شبکه باشد و کیفیت آن بر اساس خطای حاصل از شبکه ارزیابی می‌شود.

الگوریتم وال یا نهنگ WOA چیست؟

الگوریتم بهینه‌سازی نهنگ یا Whale Optimization Algorithm – WOA یکی از الگوریتم‌های فراابتکاری مبتنی بر جمعیت است که از رفتار اجتماعی و روش شکار نهنگ‌های گوژپشت الهام گرفته شده است.

این الگوریتم در سال ۲۰۱۶ توسط Seyedali Mirjalili معرفی شد و از رفتار معروف نهنگ‌های گوژپشت هنگام شکار، یعنی روش Bubble-Net Feeding یا تغذیه به روش تور حبابی، الهام می‌گیرد.

الگوریتم WOA برای حل مسائل بهینه‌سازی، فرایندهای زیر را شبیه‌سازی می‌کند:

  • محاصره طعمه
  • حرکت به سمت بهترین جواب
  • جست‌وجوی طعمه
  • حرکت مارپیچی
  • ایجاد حباب در اطراف طعمه
  • بهره‌برداری از جواب‌های مناسب
  • اکتشاف فضای جست‌وجو

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

آموزش شبکه عصبی با الگوریتم WOA در متلب

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

مراحل اجرای پروژه به شکل زیر است:

  1. پاک‌سازی محیط MATLAB
  2. بارگذاری داده‌ها از فایل IOdata
  3. جداسازی ویژگی‌های ورودی و خروجی هدف
  4. نرمال‌سازی داده‌ها
  5. تعیین ساختار شبکه عصبی
  6. تقسیم داده‌ها به مجموعه آموزش و آزمون
  7. ایجاد جمعیت اولیه نهنگ‌ها
  8. ارزیابی عملکرد هر جواب
  9. شناسایی بهترین جواب
  10. به‌روزرسانی موقعیت نهنگ‌ها
  11. تکرار فرایند بهینه‌سازی
  12. ساخت شبکه عصبی با بهترین وزن‌ها و بایاس‌ها
  13. شبیه‌سازی شبکه روی داده‌های آموزش و آزمون
  14. محاسبه خطای MSE
  15. نمایش نمودارهای ارزیابی عملکرد

دیتاست استفاده‌شده در پروژه

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

ویژگی‌های دیتاست عبارت‌اند از:

ردیف نام ویژگی محدوده یا توضیح
۱ Code Number شماره شناسایی نمونه
۲ Clump Thickness ضخامت توده، از ۱ تا ۱۰
۳ Uniformity of Cell Size یکنواختی اندازه سلول، از ۱ تا ۱۰
۴ Uniformity of Cell Shape یکنواختی شکل سلول، از ۱ تا ۱۰
۵ Marginal Adhesion چسبندگی حاشیه‌ای، از ۱ تا ۱۰
۶ Single Epithelial Cell Size اندازه سلول اپیتلیال، از ۱ تا ۱۰
۷ Bare Nuclei هسته‌های عریان، از ۱ تا ۱۰
۸ Bland Chromatin کروماتین بلاند، از ۱ تا ۱۰
۹ Normal Nucleoli هسته‌های طبیعی، از ۱ تا ۱۰
۱۰ Mitoses تقسیم هسته سلول، از ۱ تا ۱۰
۱۱ Class ۲ برای خوش‌خیم و ۴ برای بدخیم

در این پروژه، داده‌ها پیش از ورود به شبکه عصبی نرمال‌سازی می‌شوند. همچنین داده‌ها به دو بخش آموزش و آزمون تقسیم شده‌اند.

این دیتاست و سورس‌کد صرفاً برای اهداف آموزشی و پژوهشی استفاده می‌شوند و ابزار تشخیص پزشکی یا جایگزین نظر پزشک نیستند.

بخش‌هایی از سورس کد MATLAB

مقداردهی اولیه الگوریتم

%% Start of Program
clc
clear
close all
warning off;

N = 40;
max_it = 100;
Vmax = 0.5;
Vmin = -0.5;

در این قسمت:

  • N تعداد نهنگ‌ها یا اندازه جمعیت را مشخص می‌کند.
  • max_it تعداد تکرارهای الگوریتم WOA است.
  • Vmax و Vmin محدوده جست‌وجوی پارامترها را تعیین می‌کنند.

بارگذاری داده‌ها

%% Input Output Data
load IOdata

Data = IOdata;

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

XN = X;
YN = Y;

در این بخش، ستون آخر به‌عنوان خروجی یا کلاس هدف در نظر گرفته شده و سایر ستون‌ها ویژگی‌های ورودی شبکه هستند.

نرمال‌سازی داده‌ها

%% Normalization
MinX = min(X);
MaxX = max(max(abs(X)));

MinY = min(Y);
MaxY = max(max(Y));

XN = XN / MaxX;
YN = floor(YN / MaxY);

نرمال‌سازی باعث می‌شود مقادیر ویژگی‌ها در محدوده مناسب‌تری قرار بگیرند و فرایند آموزش شبکه و جست‌وجوی الگوریتم WOA پایدارتر انجام شود.

تقسیم داده به آموزش و آزمون

%% Test and Train Data
NumOfInputs = size(X,2);
NumOfOutputs = size(Y,2);
NumOfData = size(X,1);

NumOfHiddens = 2 * NumOfInputs + 1;

TrPercent = 70;
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,:);

در این پروژه، حدود ۷۰ درصد داده‌ها برای آموزش و ۳۰ درصد باقی‌مانده برای ارزیابی عملکرد شبکه استفاده می‌شوند.

تعداد نورون‌های لایه پنهان نیز با رابطه زیر تعیین شده است:

NumOfHiddens = 2 * NumOfInputs + 1;

آموزش شبکه عصبی با WOA

%% Network Training
[NetworkP, BestCostP, BestChartP] = TrainUsingWOA_Fcn( ...
    Xtr, Ytr, N, max_it, NumOfInputs, ...
    NumOfHiddens, NumOfOutputs, Vmax, Vmin);

تابع TrainUsingWOA_Fcn وظیفه اجرای الگوریتم وال و تولید شبکه عصبی با بهترین وزن‌ها و بایاس‌های به‌دست‌آمده را بر عهده دارد.

شبیه‌سازی شبکه و محاسبه خطا

%% Simulation and MSE
YtrNetP = sim(NetworkP, Xtr')';
YtsNetP = sim(NetworkP, Xts')';

MSEtrP = mse(Ytr - YtrNetP)
MSEtsP = mse(Yts - YtsNetP)

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


خروجی‌های حاصل از اجرای پروژه

پس از اجرای سورس‌کد، می‌توان نتایج زیر را مشاهده کرد:

ماتریس اغتشاش

ماتریس اغتشاش یا Confusion Matrix تعداد پیش‌بینی‌های صحیح و نادرست شبکه را در هر کلاس نمایش می‌دهد.

نمودار همگرایی

نمودار همگرایی، روند تغییر بهترین مقدار تابع هزینه یا MSE را در تکرارهای مختلف الگوریتم WOA نشان می‌دهد.

نمونه کد رسم نمودار همگرایی:

figure;
grid on;
plot(BestChartP, 'r', 'LineWidth', 2);
title('Train MSE');
xlabel('Iteration');
ylabel('MSE');

نمودار ROC

نمودار ROC برای بررسی عملکرد شبکه در آستانه‌های مختلف دسته‌بندی استفاده می‌شود و امکان ارزیابی بهتر مدل را فراهم می‌کند.

خطای آموزش و آزمون

مقدار MSEtrP خطای شبکه روی داده‌های آموزش و مقدار MSEtsP خطای شبکه روی داده‌های آزمون را نشان می‌دهد.

سورس کد آموزش شبکه عصبی با الگوریتم وال WOA در متلب
ماتریس اغتشاش یا Confusion شبکه عصبی با الگوریتم وال WOA
سورس کد آموزش شبکه عصبی با الگوریتم وال WOA در متلب
نمودار همگرایی آموزش بر اساس مینیمم کردن MSE شبکه عصبی با الگوریتم وال WOA
سورس کد آموزش شبکه عصبی با الگوریتم وال WOA در متلب
نمودار ROC شبکه عصبی با الگوریتم وال WOA

ویژگی‌های سورس کد آموزش شبکه عصبی با WOA

مهم‌ترین ویژگی‌های این پروژه عبارت‌اند از:

  • نوشته‌شده در نرم‌افزار MATLAB
  • استفاده از شبکه عصبی مصنوعی
  • استفاده از الگوریتم بهینه‌سازی نهنگ WOA
  • بهینه‌سازی وزن‌ها و بایاس‌های شبکه
  • استفاده از دیتاست سرطان سینه
  • تقسیم داده‌ها به مجموعه آموزش و آزمون
  • استفاده از ۷۰ درصد داده‌ها برای آموزش
  • محاسبه خطای MSE
  • نمایش نمودار همگرایی الگوریتم
  • قابلیت نمایش ماتریس اغتشاش
  • قابلیت نمایش نمودار ROC
  • مناسب برای یادگیری شبکه عصبی و الگوریتم‌های فراابتکاری
  • قابلیت توسعه برای دیتاست‌های دیگر
  • مناسب برای پروژه‌های دانشگاهی و پژوهشی

نحوه اجرای سورس کد

برای اجرای پروژه مراحل زیر را دنبال کنید:

  1. نرم‌افزار MATLAB را نصب و اجرا کنید.
  2. فایل‌های پروژه را از حالت فشرده خارج کنید.
  3. پوشه پروژه را به‌عنوان Current Folder در MATLAB انتخاب کنید.
  4. مطمئن شوید فایل IOdata.mat در مسیر پروژه قرار دارد.
  5. وجود تابع زیر را بررسی کنید:
TrainUsingWOA_Fcn.m
  1. فایل اصلی پروژه را در MATLAB اجرا کنید.
  2. منتظر بمانید تا الگوریتم WOA فرایند بهینه‌سازی را کامل کند.
  3. مقادیر MSE مربوط به آموزش و آزمون را بررسی کنید.
  4. نمودارهای همگرایی، ROC و ماتریس اغتشاش را مشاهده کنید.

تمامی فایل‌های موردنیاز پروژه باید در یک مسیر قرار داشته باشند یا مسیر آن‌ها به MATLAB Path اضافه شده باشد.

پیش‌نیازهای اجرای پروژه

برای اجرای این سورس‌کد به موارد زیر نیاز دارید:

  • نرم‌افزار MATLAB
  • فایل داده IOdata.mat
  • فایل تابع TrainUsingWOA_Fcn.m
  • ابزارهای موردنیاز شبکه عصبی در نسخه MATLAB مورد استفاده
  • آشنایی مقدماتی با متلب و مفاهیم شبکه عصبی

کاربردهای آموزشی و پژوهشی

این پروژه در موضوعات زیر قابل استفاده است:

  • هوش مصنوعی
  • شبکه‌های عصبی مصنوعی
  • یادگیری ماشین
  • داده‌کاوی
  • الگوریتم‌های فراابتکاری
  • بهینه‌سازی پارامترهای شبکه عصبی
  • دسته‌بندی داده‌ها
  • برنامه‌نویسی MATLAB
  • پروژه پایان‌ترم
  • پروژه کارشناسی و کارشناسی ارشد

پیشنهادهایی برای توسعه پروژه

برای توسعه بیشتر سورس‌کد می‌توان امکانات زیر را به آن اضافه کرد:

  • مقایسه WOA با الگوریتم‌های GWO، GA، ICA، ACO و PSO
  • استفاده از معیارهای Accuracy، Precision، Recall و F1-Score
  • اجرای چندباره الگوریتم و محاسبه میانگین نتایج
  • استفاده از اعتبارسنجی متقابل یا Cross Validation
  • تغییر تعداد نهنگ‌ها و تعداد تکرارها
  • تغییر تعداد نورون‌های لایه پنهان
  • استفاده از دیتاست‌های دیگر
  • ذخیره بهترین وزن‌ها و بایاس‌های شبکه
  • افزودن قابلیت پیش‌بینی برای داده‌های جدید
  • رسم نمودار خطای آموزش و آزمون
  • بررسی تأثیر پارامترهای الگوریتم بر سرعت همگرایی
  • استفاده از روش‌های ترکیبی WOA و پس‌انتشار خطا

این سورس کد برای چه کسانی مناسب است؟

این پروژه برای گروه‌های زیر پیشنهاد می‌شود:

  • دانشجویان مهندسی کامپیوتر
  • دانشجویان هوش مصنوعی
  • دانشجویان یادگیری ماشین
  • کاربران نرم‌افزار MATLAB
  • پژوهشگران الگوریتم‌های فراابتکاری
  • علاقه‌مندان به شبکه‌های عصبی
  • دانشجویان دارای پروژه پایان‌نامه یا پروژه پایانی
  • افرادی که قصد یادگیری الگوریتم WOA را دارند
  • افرادی که به دنبال نمونه پروژه ترکیبی ANN و WOA هستند

درباره محصول

سورس کد آموزش شبکه عصبی با الگوریتم وال WOA در متلب پروژه‌ای آموزشی و کاربردی برای تعیین و بهینه‌سازی وزن‌ها و بایاس‌های شبکه عصبی با استفاده از الگوریتم نهنگ است.

در این پروژه از دیتاست سرطان سینه برای بررسی عملکرد مدل استفاده شده و نتایجی مانند مقدار خطای MSE، نمودار همگرایی، ماتریس اغتشاش و نمودار ROC ارائه می‌شود.

این سورس‌کد توسط گروه فنی پشتیبانی پی‌استور تست و اجرا شده و دارای نشان تضمین کیفیت پی‌استور است.

سوالات متداول

الگوریتم WOA چیست؟

WOA مخفف Whale Optimization Algorithm و به معنای الگوریتم بهینه‌سازی نهنگ است. این الگوریتم از رفتار شکار نهنگ‌های گوژپشت الهام گرفته شده است.

الگوریتم WOA در این پروژه چه کاری انجام می‌دهد؟

الگوریتم WOA برای یافتن وزن‌ها و بایاس‌های مناسب شبکه عصبی استفاده می‌شود تا خطای مدل کاهش پیدا کند.

این پروژه با چه نرم‌افزاری اجرا می‌شود؟

سورس‌کد با نرم‌افزار MATLAB اجرا می‌شود.

دیتاست مورداستفاده چیست؟

در این پروژه از دیتاست سرطان سینه ویسکانسین برای یک مسئله دسته‌بندی استفاده شده است.

خروجی‌های پروژه شامل چه مواردی هستند؟

خروجی‌های پروژه شامل خطای MSE، نمودار همگرایی، ماتریس اغتشاش و نمودار ROC است.

آیا این محصول برای پروژه دانشگاهی مناسب است؟

بله. پروژه برای درس‌های هوش مصنوعی، شبکه عصبی، یادگیری ماشین، الگوریتم‌های فراابتکاری و برنامه‌نویسی MATLAB مناسب است.

آیا امکان استفاده از دیتاست‌های دیگر وجود دارد؟

بله. با هماهنگ‌کردن تعداد ورودی‌ها، خروجی‌ها و قالب داده‌ها می‌توان پروژه را برای دیتاست‌های دیگر نیز توسعه داد.

معرفی و نحوه اجرا

ویدئوی نحوه اجرا

مشخصات تکمیلی سورس کد

نام اثر: آموزش شبکه عصبی با الگوریتم وال WOA در متلب
نوع اثر: سورس کد
برنامه‌نویس: تیم برنامه‌نویسی پی‌استور
زبان برنامه نویسی: MATLAB
ویژگی: قابل دانلود و ویرایش

راهنمای خرید و ثبت سفارش

تصویر مراحل خرید از پی استور

اگر در مورد این اثر یا نحوه تهیه آن سوالی دارید؟
  • با شماره تلفن واحد مخاطبین 44225175 (پیش شماره 041) تماس بگیرید. – تمام ساعات اداری
  • با ما مکاتبه ایمیلی داشته باشید (این لینک). – تمام ساعات

برنامه‌نویس:  تیم برنامه‌نویسی پی‌استور

متشکل از اساتید و فارغ التحصیلان رشته‌های فنی - مهندسی

تیم برنامه نویسی پی استور یکی از اولین گروه‌های تشکیل شده در مجموعه آموزشی پی استور می‌باشد. این تیم از اساتید مجرب و فارغ التحصیلان رشته‌های فنی و مهندسی تشکیل شده که در زمینه‌های مختلف برنامه‌نویسی و تهیه سورس کد فعال هستند.

نظرات

2 نظر|5.00 (میانگین امتیاز کاربران)

  1. زهرا عبادی

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

  2. مدیریت و پشتیبانی

    نظرات و پیشنهادات خود را با ما در میان بگذارید.

دیدگاه خود را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

شناسه اثر: 8990 دسته‌بندی موضوعی: , برچسب ,

هزینه سفارش:

تخفیف ویژه 60 درصدی

قیمت اصلی: ۲۸۰,۰۰۰ تومان بود.قیمت فعلی: ۱۱۲,۰۰۰ تومان.