تیم برنامهنویسی پیاستور
هزینه سفارش:
۲۹۹,۰۰۰ تومان
تخصصی و منحصر به فرد بودن این اثر، تضمین کننده بهای محصول نسبت به آثار مشابه است.
این پروژه کاربردی با تکیه بر مجموعه داده استاندارد و بالینی سرطان سینه (Breast Cancer Dataset) از مخزن داده دانشگاه کالیفرنیا ارواین (UCI) اعتبارسنجی شده و تمام مراحل شامل بارگذاری داده، نرمالسازی دادهها، تقسیمبندی دادههای آموزش و آزمون، آموزش با الگوریتم ازدحام ذرات و ارزیابی خروجیها با معیارهایی نظیر ماتریس اغتشاش (Confusion Matrix)، نمودار ROC و خطای میانگین مربعات (MSE) را به شکلی منظم و آماده اجرا در محیط متلب پیادهسازی کرده است.
شبکههای عصبی مصنوعی به عنوان یکی از قدرتمندترین ابزارهای یادگیری ماشین، توانایی شگفتانگیزی در تقریب توابع غیرخطی، دستهبندی الگوها و پیشبینی دادههای چندبعدی دارند. با این حال، کارایی نهایی یک شبکه عصبی به شدت وابسته به مقادیر اولیه و تنظیم نهایی پارامترهای تنظیمی آن، یعنی وزنهای اتصالات بین لایهها و بایاسهای هر نورون است. روشهای کلاسیک گرادیان محور، با وجود سرعت در فضاهای ساده، در رویارویی با توابع هدف غیرمحدب یا ناصاف، در تله کمینههای محلی متوقف میشوند و توانایی دستیابی به کمینه سراسری (Global Minimum) را از دست میدهند.
ترکیب شبکههای عصبی با الگوریتمهای بهینهسازی فراابتکاری (Metaheuristic Algorithms)، رویکردی هوشمندانه به نام سیستمهای هایبرید تکاملی پدید میآورد. الگوریتمهای فراابتکاری بدون وابستگی به مشتق تابع هدف و با بهرهگیری از رفتارهای تصادفی هدایتشده، قادرند کل فضای جستوجو را کاوش (Exploration) کرده و در مناطق مستعد همگرا شوند (Exploitation). در میان این الگوریتمها، الگوریتم PSO به دلیل تعداد پارامترهای کنترلی کم، سادگی فرمولبندی، سرعت فوقالعاده در محاسبات و توانایی بالا در فرار از تله بهینههای محلی، گزینهای بیرقیب برای آموزش پارامترهای شبکه عصبی محسوب میشود.
شبکه عصبی مصنوعی سامانهای پردازشی است که از ساختار مغز و نورونهای زیستی انسان الگوبرداری کرده است. در این ساختار، واحدهای پردازشی متعددی به نام نورون در لایههای مختلف قرار گرفته و از طریق وزنهای قابل تنظیم با یکدیگر ارتباط برقرار میکنند. معماری یک شبکه پیشخور (Feedforward) چندلایه معمولاً شامل بخشهای زیر است:
انتقال دادهها همواره از لایه ورودی به سوی لایه خروجی جریان دارد. سیگنالهای هر نورون با مقادیر وزن اتصالات ضرب شده، با بایاس جمع شده و سپس از یک تابع فعالیت (Activation Function) عبور میکنند. فرآیند آموزش شبکه چیزی جز یافتن مجموعهای از وزنها و بایاسها نیست که اختلاف بین خروجی واقعی و خروجی پیشبینیشده شبکه را به صفر نزدیک کند.
الگوریتم بهینهسازی ازدحام ذرات در سال ۱۹۹۵ توسط ابرهارت و کندی بر اساس شبیهسازی حرکت گروهی و تعامل اجتماعی دستههای پرندگان و ماهیها معرفی شد. در این الگوریتم، هر پاسخ بالقوه به مسئله، به عنوان یک ذره (Particle) در فضای چندبعدی متغیرها در نظر گرفته میشود. ذرات دارای دو ویژگی اساسی موقعیت (Position) و سرعت (Velocity) هستند و در هر تکرار، با توجه به دو فاکتور کلیدی موقعیت خود را بهروزرسانی میکنند:
۱. بهترین تجربه فردی (pBest): بهترین مکانی که خود ذره تا آن لحظه تجربه کرده است.
۲. بهترین تجربه جمعی (gBest): بهترین موقعیتی که کل ذرات گروه تا آن تکرار موفق به کشف آن شدهاند.
برخلاف الگوریتمهایی نظیر الگوریتم ژنتیک که از عملگرهای سنگین مانند تقاطع (Crossover) و جهش (Mutation) استفاده میکنند، در الگوریتم PSO حرکت ذرات مبتنی بر بردار سرعت و ضرایب یادگیری است. این ویژگی سبب میشود پیادهسازی الگوریتم بسیار سبکتر، سرعت همگرایی به مراتب بیشتر و مصرف منابع حافظه بسیار بهینهتر باشد.
برای آموزش شبکه عصبی با استفاده از PSO، لازم است ساختار وزنها و بایاسهای شبکه به صورت یک بردار مسطح درآید تا هر ذره در الگوریتم نمایانگر یک بردار کامل از پارامترهای شبکه باشد:
در نتیجه، بعد هر ذره در فضای جستوجوی PSO برابر با مجموع تمام این مقادیر خواهد بود:
Dimension=(I×H)+H+(H×O)+O
هر ذره در طول اجرای حلقه بهینهسازی، این مقادیر را پیشنهاد میدهد. سپس شبکه عصبی با این مقادیر مقداردهی شده، دادههای آموزشی به آن تزریق میشوند و خطای پیشبینی شبکه با معیار خطای میانگین مربعات (MSE) محاسبه میگردد. این مقدار خطا، تابع هزینه (Cost Function) ذره نامیده میشود که الگوریتم تلاش میکند آن را به حداقل ممکن برساند.
یکی از وجوه تمایز این سورس کد، ارزیابی الگوریتم بر روی دادههای واقعی پزشکی است. مجموعه داده سرطان سینه ویسکانسین موجود در مخزن دانشگاه UCI، یکی از استانداردهای شناختهشده بینالمللی در ارزیابی الگوریتمهای دستهبندی و هوش مصنوعی است.
این مجموعه داده بر پایه بررسی تصاویر نمونههای بافتی جمعآوری شده و ویژگیهای مورفولوژیکی هسته سلولها را مورد سنجش قرار میدهد. فاکتورهای بالینی ثبتشده در این دیتاست عبارتاند از:
هدف شبکه عصبی در این پروژه، تحلیل این ۹ ویژگی ورودی و تشخیص دقیق وضعیت خوشخیم بودن یا بدخیم بودن توده بافتی با بالاترین دقت آماری است.
سورس کد ارائهشده در این پکیج با رعایت بالاترین استانداردهای مهندسی نرمافزار در متلب طراحی شده است. مراحل اجرای برنامه به شرح زیر است:
در گام نخست، تمام متغیرهای حافظه، پنجرهها و هشدارهای غیرضروری نرمافزار پاکسازی میشوند و پارامترهای کنترل حرکت ذرات مقداردهی میگردند:
%% Start of Program
clc;
clear;
close all;
warning off;
N = 40; % تعداد ذرات جمعیت
max_it = 100; % حداکثر تکرار بهینهسازی
Vmax = 0.5; % حداکثر سرعت حرکت ذرات
Vmin = -0.5; % حداقل سرعت حرکت ذرات
دادههای ورودی از فایل داده استخراج شده و به ماتریس ویژگیها و بردار برچسبها تفکیک میشوند:
%% 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);
دادهها با بهرهگیری از توابع تصادفی با نسبت استاندارد ۷۰ درصد برای آموزش (Train) و ۳۰ درصد برای آزمون نهایی (Test) به صورت غیراریب جدا میگردند:
%% 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, :);
تابع اختصاصی بهینهسازی فراخوانی شده و وزنها و بایاسهای بهینه تولید میشوند:
%% Network Training
[NetworkP, BestCostP, BestChartP] = TrainUsingACO_Fcn(Xtr, Ytr, N, max_it, NumOfInputs, NumOfHiddens, NumOfOutputs, Vmax, Vmin);
پس از پایان فرآیند بهینهسازی، شبکه با وزنهای استخراجشده برای دادههای آزمون تست شده و معیارهای آماری رسم میگردند:
%% sim and mse
YtrNetP = sim(NetworkP, Xtr')';
YtsNetP = sim(NetworkP, Xts')';
MSEtrP = mse(Ytr - YtrNetP);
MSEtsP = mse(Yts - YtsNetP);
% ترسیم ماتریس درهمریختگی
[c, cm, ind, per] = confusion(Yts', YtsNetP');
figure;
plotconfusion(Yts', YtsNetP');
% ترسیم نمودار ROC
figure;
plotroc(Yts', YtsNetP');
% ترسیم نمودار همگرایی آموزش
figure;
grid on;
plot(BestChartP, 'r', 'LineWidth', 2);
title('Train MSE Convergence');
xlabel('Iteration');
ylabel('Best Cost (MSE)');
این سورس کد پس از پایان اجرا، گزارشهای تحلیلی و خروجیهای بصری زیر را به شکل خودکار نمایش میدهد:


این سورس کد تخصصی توسط تیم کارشناسی بررسی، اعتبارسنجی و تایید شده و دارای نشان تضمین کیفیت است. بلافاصله پس از تکمیل فرآیند خرید آنلاین از درگاههای امن بانکی عضو شبکه شتاب، لینک دانلود مستقیم سورس کد متلب به همراه فایلهای دیتاست در پنل کاربری شما فعال گردیده و آماده استفاده خواهد بود.
تیم برنامه نویسی پی استور یکی از اولین گروههای تشکیل شده در مجموعه آموزشی پی استور میباشد. این تیم از اساتید مجرب و فارغ التحصیلان رشتههای فنی و مهندسی تشکیل شده که در زمینههای مختلف برنامهنویسی و تهیه سورس کد فعال هستند.
اطلاعات و جزئیات کامل این محصول
جهت تسلط عمیقتر و تکمیل مهارتهای خود، یادگیری این سرفصلها پیشنهاد میشود.
هزینه سفارش:
۲۹۹,۰۰۰ تومان
دیدگاهها و نظرات
مدیریت و پشتیبانی
نظرات خود را با ما در میان بگذارید.