آموزش شبکه عصبی در متلب؛ ساخت و ارزیابی مدل
مبانی شبکه عصبی در MATLAB با یک مثال طبقهبندی؛ آمادهسازی داده، آموزش مدل، ارزیابی و تفاوت MLP با LSTM.
شبکه عصبی از چه چیزی یاد میگیرد؟
فرض کن برای هر نمونه، دو اندازهگیری و یک برچسب داری. شبکه باید رابطهای بین آن اندازهگیریها و برچسب پیدا کند. هر لایه با وزنها و تابع فعالسازی، ورودی را به نمایش تازهای تبدیل میکند. در آموزش، پارامترهای قابل یادگیری تغییر میکنند تا خطای مدل کمتر شود. مهم است از ابتدا بدانی خروجی مسئله یک کلاس است یا یک مقدار عددی؛ طراحی و ارزیابی این دو یکی نیست.
در شبکه پرسپترون چندلایه یا MLP، داده از لایههای متصل عبور میکند. برای شروع، تعداد زیادی لایه لازم نیست. یک مدل کوچک روی داده مشخص، فرصت بهتری برای فهمیدن آمادهسازی ورودی، آموزش و آزمون فراهم میکند.
یک آزمایش کوچک؛ داده ساختگی برای فهم روند
مثال زیر دو گروه داده دوبعدی میسازد. دادهها واقعی نیستند و نتیجه این آزمایش، معیار عملکرد یک پروژه صنعتی یا دوره آموزشی نیست. بخشی از داده برای آزمون کنار گذاشته میشود. این مثال از fitcnet در Statistics and Machine Learning Toolbox استفاده میکند؛ وجود تابع و مجوز ابزار را در نسخه نصبشده بررسی کن.
rng(21);
X = [randn(60,2); randn(60,2) + 2.5];
Y = categorical([zeros(60,1); ones(60,1)]);
partition = cvpartition(Y,'HoldOut',0.25);
trainIdx = training(partition);
testIdx = test(partition);
net = fitcnet(X(trainIdx,:),Y(trainIdx), ...
'LayerSizes',10,'Standardize',true);
predicted = predict(net,X(testIdx,:));
accuracy = mean(predicted == Y(testIdx));
disp(accuracy);هر خط کد به چه سؤال پاسخ میدهد؟
- X ویژگیها را نگه میدارد و Y برچسب هر مشاهده را مشخص میکند؛ هر سطر باید به همان نمونه مربوط باشد.
- تقسیم داده قبل از آموزش انجام میشود تا کیفیت مدل را روی نمونههای کنارگذاشتهشده ببینی.
- شبکه در این مثال یک لایه مخفی با اندازه ۱۰ دارد؛ این عدد یک انتخاب آموزشی است، نه بهترین تنظیم برای همه دادهها.
- استانداردسازی در فرایند برازش مدل انجام میشود. برای داده تازه همان مدل آموزشدیده را به کار ببر.
- درصد تشخیص درست، فقط یکی از معیارهاست؛ توزیع کلاسها و نوع خطاها را هم بررسی کن.
از یک جواب خوب تا یک مدل قابل اعتماد
اگر نتیجه اجرای اول خوب بود، هنوز نمیدانیم مدل روی تقسیم دیگری از داده یا یک مجموعه مستقل چگونه عمل میکند. اندازه شبکه را بیشتر کن و نتیجه آموزش و اعتبارسنجی را کنار هم ببین. بهتر شدن نتیجه آموزش و ضعیف شدن نتیجه اعتبارسنجی میتواند نشانهای برای بازنگری ظرفیت مدل و تنظیمات باشد. مجموعه آزمون نهایی را برای مقایسه هر تغییر مصرف نکن.
تمرین پیشنهادی: فاصله دو گروه داده را کمتر کن. پیش از اجرا حدس بزن تشخیص کلاسها سختتر میشود یا آسانتر. سپس ماتریس درهمریختگی را بررسی کن تا ببینی خطا مربوط به کدام گروه است.
MLP با LSTM چه فرقی دارد؟
وقتی هر سطر یک نمونه مستقل با چند ویژگی است، شبکه پیشخور یکی از گزینههای قابل بررسی است. برای دادهای که ترتیب زمانی و حافظه آن بخش اصلی مسئله است، معماریهای دنبالهای مانند LSTM مطرح میشوند. انتخاب باید از ساختار داده و تعریف هدف شروع شود؛ داشتن ستون زمان بهتنهایی دلیل کافی برای پیچیدهتر کردن شبکه نیست.
برای قدم بعد، راهنمای طبقهبندی در متلب و مسیر پیشبینی با LSTM را بخوان.
پرسشهای رایج
آیا هر شبکه عصبی، مدل یادگیری عمیق است؟
نه لزوماً. تعداد و ساختار لایهها و تعریف مورد استفاده اهمیت دارد؛ برای شروع این راهنما، فهم جریان داده و ارزیابی از نامگذاری مهمتر است.
آیا باید از همان ابتدا شبکه بزرگ بسازم؟
از مدل کوچک و خط مبنا شروع کن؛ بعد با مقایسه روی داده معتبر تصمیم بگیر افزایش پیچیدگی لازم است یا نه.
دوره مرتبط: آموزش متلب از مقدماتی تا پیشرفته