آموزش شبکه عصبی در متلب و توابع شبکه های عصبی
در مقاله قصد داریم آموزش صفر تا صد شبکه عصبی در متلب بپردازیم. شبکه عصبی یک مدل محاسباتی است که ساختار لایه آن شباهت زیادی به ساختار شبکه ای نورون ها در مغز دارد و دارای لایههایی از گرههای متصل است. در واقع شبکههای عصبی با الهام از سیستم عصبی انسان طراحی و اختراع شده اند.
شبکههای عصبی کاربردهای بسیاری در صنایع مختلف از قبیل هوا و فضا، پزشکی، بانکداری، مدیریت، حسابداری، کشتیرانی و انواع شاخههای مهندسی دارند. لازم به ذکر است که امروزه از شبکههای عصبی برای حل مسائلی که برای انسان و کامپیوتر پیچیده و سخت می باشد، استفاده می شود. برای تشخیص الگوهای گفتار یا تصاویر می توان از طریق مثال های زیادی آموزش داد، دقیقاً مانند مغز انسان.
رفتار آن با نحوه اتصال عناصر فردی آن و قدرت یا وزن آن اتصالات تعریف می شود. این وزنها به طور خودکار در طی آموزش طبق یک قانون یادگیری مشخص تنظیم میشوند تا اینکه شبکه عصبی وظیفه مورد نظر را به درستی انجام دهد.
شبکههای عصبی به خصوص برای انجام تشخیص الگو برای شناسایی و طبقه بندی اشیا یا سیگنالها در سیستم گفتار، بینایی و کنترل مناسب هستند. آنها همچنین میتوانند برای انجام پیش بینیهای سریال و مدلسازی مورد استفاده قرار گیرند.
شبکه های عصبی
یک شبکه عصبی از چندین عنصر به نام نورون تشکیل شده که هر یک از این نورونها با نورونهای دیگر در ارتباط هستند. البته ارتباط بین نورونها وزندار می باشد که این وزن ها به عنوان پارامترهای مهم مطرح می شوند.
به طور کلی شبکه های عصبی به گونه ای آموزش داده میشوند که یک ورودی خاص منجر به خروجی خاص در لایه خروجی شبکه عصبی می شود. برای این که شبکههای عصبی توابع پیچیده تری را در کاربردهای مختلف شبیه سازی می کنند.
به پیاده سازی شبکه عصبی در متلب به شکل زیر توجه کنید
ورودی اسکالر پس از ضرب شدن در وزن مربوطه وارد تابع تصمیمگیری شبکه عصبی می شود که خروجی این تابع نیز یک عدد اسکالر میباشد. با توجه به شکل میتوان دریافت که هر نورون می تواند تعدادی bias داشته باشد.
لازم است بدانید که تعدادی پارامتر مختلف وجود دارد که باید هنگام طراحی یک شبکه عصبی تصمیم گرفت. از بین این پارامترها تعداد لایه ها، تعداد سلولهای عصبی در لایه، تعداد تکرارهای تمرین و غیره می باشد. برخی از مهمترین پارامترها از نظر آموزش و ظرفیت شبکه تعداد سلولهای عصبی پنهان، میزان یادگیری و پارامتر حرکت است.
شبکه های عصبی از سه لایه تشکیل شده اند:
- input
- Hidden
- output
به هر تعداد لایههای موجود بین input و output، لایه های پنهان (Hidden) گفته می شود. البته میتوان گفت که هر آن چه قبل از لایه output باشد به عنوان لایه Hidden شناخته میشود.
در واقع در نورونهای پنهان نورونهایی می باشند که نه در لایه ورودی هستند و نه در لایه خروجی. این نورونها در اصل از دید پنهان هستند و معمولاً میتوان تعداد و سازمان آنها را به عنوان جعبه سیاه برای افرادی که با سیستم درگیر هستند، افزایش داد. استفاده از لایههای اضافی نورونهای پنهان قدرت پردازش بیشتر و انعطافپذیری سیستم را امکان پذیر می کند.
نورون های پنهان
داشتن بیش از حد بسیاری از نورونهای پنهان شبیه به سیستم معادلات با معادلات بیشتر از متغیرهای آزاد است و نمی توان آن را تعمیم داد. داشتن تعداد بسیار کمی نورون پنهان می تواند مانع از درستی قرارگرفتن سیستم در دادههای ورودی شود و استحکام سیستم را کاهش میدهد.
قبل از پرداختن به موضوع شبکه عصبی در متلب لازم است با برخی از کاربردهای شبکه های عصبی آشنا شوید که به شرح زیر می باشد:
- شرکت های نیرو برای اطمینان و بهینه سازی بهره وری از ژنراتورهای نیروگاهی که کار می کنند، بارهای شبکه برق را به طور دقیق پیش بینی می کنند.
- دستگاه های خودپرداز با اطمینان خواندن شماره حساب و مبلغ سپرده در چک خود، با اطمینان قابل قبول سپرده های بانکی را می پذیرند.
- آسیب شناسان به برنامه های تشخیص سرطان متکی هستند تا آنها را بر اساس یکنواختی اندازه سلول، ضخامت توده، میتوز و سایر عوامل در طبقه بندی تومورها به عنوان خوش خیم یا بدخیم راهنمایی کنند.
ابزارهای مدیریت مجموعه داده های بزرگ
جهت پیاده سازی شبکه عصبی در متلب لازم به ذکر است که با استفاده از ابزارهای مدیریت مجموعه داده های بزرگ، متلب (MATLAB) مجموعه ای ابزارهای تخصصی را برای کار با یادگیری ماشینی (machine learning)، شبکه های عصبی و یادگیری عمیق (deep learning) را ارائه می دهد.
تنها با چند خط کد متلب به کاربر این امکان را می دهد که شبکه های عصبی را بدون تخصص خاصی توسعه داد، سریع شروع کرد، مدل ها را ایجاد و تجسم کرد و مدل ها را در سرورها و دستگاه های تعبیه شده مستقر کرد. با استفاده از نرم افزار متلب می توان نتایج را در برنامه های موجود خود ادغام کرد. با استفاده از نرم افزار متلب می توان مدل های شبکه های عصبی در سیستم تعبیه شده را انجام داد.
ایجاد شبکه عصبی در متلب
با استفاده از Deep Learning Toolbox، MATLAB Coder، GPU Coder و MATLAB Compiler می توانید شبکه های آموزش دیده را در سیستم های تعبیه شده مستقر کرد یا آنها را با طیف گسترده ای از محیط های تولید کرد.
شما می توانید از MATLAB Coder برای تولید کد C و C ++ استفاده کنید و این امکان را به شما می دهد تا یک شبکه عصبی را روی سخت افزار رایانه شخصی شبیه سازی کنید و سپس شبکه عصبی را به سیستم های تعبیه شده مستقر کنید.
برای مستقر کردن شبکه های آموزش دیده به عنوان کتابخانه مشترک C / C ++، اسمبلی های Microsoft. NET ، کلاس های جاوا و پکیج های Python از برنامه های MATLAB همچنین می توانید یک مدل شبکه را در برنامه مستقر یا یک جزء آموزش دهید.
آموزش شبکه عصبی در متلب
بهتر است در ابتدا با توابع شبکه های عصبی در محیط متلب آشنا شویم که به شرح زیر می باشد:
- تابع Hard limit: این تابع برای مقادیر بیشتر از صفر، خروجی یک را بر می گرداند و برای مقادیر کمتر از صفر یا اعداد منفی خروجی آن مقدار صفر می باشد.
- تابع Hard limits: این تابع مشابه تابع Hard limit می باشد که به ازای مقدار بیشتر از صفر، مقدار یک و به ازای مقادیر کمتر از صفر یا اعداد منفی عدد -1 را بر می گرداند که در قسمت منفی تابع می توان تفاوت دو تابع Hard limit و Hard limits را مشاهده کرد.
- تابع Linear (خطی): در محیط متلب این تابع به صورت purelin نوشته می شود. این تابع در بازه تعریف شده، مقدار همانی یا مقدار یک تابع خطی را به خود اختصاص می دهد.
- تابع log-Sigmoid: یکی از توابع شبکه های عصبی می باشد که در محیط نرم افزار متلب به صورت logsig نوشته می شود. به ازای مقادیر مثبت یک log را به خود اختصاص می دهد و برای مقادیر منفی یک log دیگر. همان طور که می دانید مقادیر توابع لگاریتم بین صفر و یک تعریف می شود.
- تابع tan-sigmoid: تفاوت تابع tan-sigmoid با log-Sigmoid در این است که خروجی بین -1 و 1 می باشد.
شبیه سازی شبکه عصبی در متلب
برای شبیه سازی از دستور sim که مخفف simulation است، استفاده می شود. حال قصد داریم یکی از ساده ترین شبکه های عصبی، پیادهسازی کنیم. لازم است بدانید که سادهترین شبکه عصبی دارای ساختاری بدون فیدبک (feedback) می باشد یعنی در ابتدا یک شبکه عصبی ساده که فقط دارای یک ورودی است، شبیهسازی میشود. در ادامه به کدنویسی شبکه عصبی در متلب توجه کنید.
>> net =newlin([-1 3 ; -1 3] , 1)
با وارد کردن دستور فوق ساده ترین شبکه عصبی پیاده سازی می شود.
net =
Neural Netwok
name: `Custom Neural Netwok`
userdata: (your custom info)
dimensions
numInputs: 1
numLayers: 1
numOutputs: 1
numInputDelays: 0
numLayerDelays: 0
numFeedbackDelays: 0
numWeightElements: 3
sampleTime: 1
Connections
biasConnect: true
inputConnect: true
layerConnect: false
outputConnect: true
subobjects
input: Equivalent to inputs {1}
output: Equivalent to outputs {1}
inputs: {1x1 cell array of 1 input}
layers: {1x1 cell array of 1 layer}
outputs: {1x1 cell array of 1 output}
biases: {1x1 cell array of 1 bias}
inputweights: {1x1 cell array of 1 weight}
layerweights: {1x1 cell array of 0 weight}
functions
adapFcn: `adaptwb`
adapParam: (none)
derivFcn: `defaultderiv`
devideFcn: (none)
devideParam: (none)
devideMode: `sample`
initFcn: `initlay`
performFcn: `mse`
performParam: .regularization , .normalization
plotFcn: {`plotperform` , plottrainsatate}
plotParam: {1x2 cell array of 2 params}
trainFcn: `trainb`
trainParam: .showWindow , .showCommandLine , .show , .time , .goal , .min_grad , .max_fail
weights and bias values
IW: { 1x1 cell} containing 1 input weight m
LW: {1x1 cell} containing 0 layer weight m
b : {1x1 cell} containing 1 bias weight m
methods
adap: Learn while in continuous use
configure: configure inputs & outputs
genism: Generate Simulink model
init: Initialize weights & biases
perform: Calculate performance
sim: Evaluate network outputs given inputs
train: Train network with examples
view: View diagram
unconfigure: Unconfigure inputs & outputs
evaluate: outputs=net(inputs)
همان طور که مشاهده میکنید نام این شبکه عصبی به صورت پیشفرض Neural Network می باشد که خود نرم افزار متلب آن را نامگذاری کرده است. عدد وارد شده نشاندهنده وزن پارامترها است و زمان نمونه نیز 1 در نظر گرفته شده است. حال اگر جلوی دستور نوشته شده شبکه عصبی در متلب عملگر ; قرار دهیم یعنی:
>> net =newlin([-1 3 ; -1 3] , 1) ;
دیگر مشخصات فوق برای شبکه عصبی ایجاد نمی شود.
آموزش رایگان شبکههای عصبی در متلب
شبکه عصبی نورونی در متلب که شبکه عصبی مصنوعی یا ANN نیز نامیده میشود، یک سیستم یادگیری تطبیقی است که با استفاده از گرههای به هم پیوسته یا همان نورونها بر اساس یک ساختار لایهای که شبیه مغز انسان است، یاد میگیرد. یک شبکه عصبی نورونی یادگیری را به کمک دادهها انجام میدهد؛ بنابراین توانایی تشخیص الگوها، طبقهبندی دادهها و پیش بینی رویدادهای آینده را دارد.
عملکرد یادگیری در شبکههای عصبی در متلب به شکل تجزیه ورودیها به لایههای انتزاعی صورت میپذیرد. به دلیل داشتن چنین قابلیتی شبکه عصبی را به کمک الگوهای گفتاری و تصویری آموزش میدهند تا مانند مغز انسان عمل کند.
رفتار شبکههای عصبی نورونی در متلب با نحوه اتصال عناصر منفرد و قدرت یا وزن هرکدام از این اتصالات سنجیده میشود. این وزنها طبق یک قانون مشخص طی مراحل آموزش به عناصر این شبکه اختصاص میگیرند. وزندهی تا زمانی ادامه پیدا میکند که آموزش شبکه عصبی نورونی با matlab به نتیجه مطلوب برسد. برای درک بهتر موضوع و یادگیری نحوه آموزش شبکههای عصبی در متلب ادامه نوشته را از دست ندهید.
آموزش شبکههای عصبی با متلب
همانطور که در مقدمه خواندید شبکههای عصبی در متلب با نامها و در انواع مختلفی شناخته میشوند. یکی از نامهایی که در صورت مطالعه بیشتر در این زمینه زیاد میبینید، شبکه عصبی پرسپترون چند لایه در متلب است. پرسپترون یکی از سادهترین انواع شبکههای عصبی مصنوعی محسوب میشود. بنابراین میتوانیم این مطلب آموزشی را با نام آموزش شبکه عصبی پرسپترون نیز بشناسیم. این موضوع به این دلیل مطرح شد که در صورت دیدن چنین کلید واژهای سردرگم نشوید.
شبکههای عصبی نوعی رویکرد یادگیری ماشینی هستند که در طراحی آنها از نحوه تبادل سیگنالهای عصبی در مغز انسان الهام گرفته شده است. این تکنیک برای مدلسازی روابط غیرخطی مناسب بوده و معمولاً برای انجام عملیاتی مانند تشخیص الگو، طبقهبندی سیگنالها در سیستم گفتاری و کنترل سیستمها مورد استفاده قرار میگیرد.
شبکههای عصبی مصنوعی عمیق به دلیل قابلیت شناسایی و تشخیص بالا در پروژههایی مانند تشخیص چهره، ترجمه متن و تشخیص صدا کاربرد بیشتری دارند. همچنین این رویکرد یک محرک کلیدی در تکنولوژی اتومبیل خودران است. از جمله کاربرد شبکههای عصبی در ساخت خودروهای دارای راننده اتوماتیک، تشخیص خطوط و علائم رانندگی است.
چند نمونه از کاربردهای عمده شبکههای عصبی مصنوعی
مثالهایی که در ادامه میبینید تنها چند نمونههایی ساده از برنامههای کاربردی هستند که از تکنیک یادگیری ماشین و الگورتیم شبکههای عصبی با متلب استفاده کردهاند.
- تقسیم بندی تصاویر و فیلمها به صورت معنایی
- تشخیص اشیا در تصاویر، از جمله عابران پیاده و دوچرخه سواران
- آموزش راه رفتن ربات دوپا با استفاده از یادگیری تقویتی
- تشخیص سرطان با راهنمایی پاتولوژیستها برای طبقه بندی تومورها
آموزش نحوه کار شبکه عصبی در متلب
در ادامه آموزش شبکه عصبی مصنوعی جالب است بدانید یک شبکه عصبی با الهام از سیستمهای عصبی بیولوژیکی، چندین لایه پردازش را با استفاده از عناصر ساده که به طور موازی کار میکنند ترکیب میکند.
این ساختار شبکهای از یک لایه ورودی، یک یا چند لایه پنهان و یک لایه خروجی تشکیل شده است. در هر لایه چندین گره یا نورون وجود دارند. گرههای هر لایه از خروجیهای تمام گرههای لایه قبلی به عنوان ورودی استفاده میکنند. بهطوریکه همه نورونها از طریق لایههای مختلف با یکدیگر در ارتباط هستند. به هر نورون معمولاً وزنی اختصاص داده میشود که طول فرایند یادگیری را نشان میدهد. کاهش یا افزایش وزن یک گره، قدرت سیگنال آن نورون را تغییر میدهد.
مانند سایر الگوریتمهای یادگیری ماشین، شبکههای عصبی را میتوان برای انجام عملیاتی مانند classification یا regression استفاده کرد. پارامترهای مدل در شبکه عصبی مصنوعی معمولاً از طریق وزندهی گرهها و بهینهسازی وزنها برای به حداقل رساندن خطای پیش بینی، تنظیم میشوند.
انواع شبکههای عصبی در متلب
اولین و سادهترین شبکه عصبی طراحی شده پرسپترون است که توسط فرانک روزنبلات در سال ۱۹۵۸ معرفی شد. این شبکه شامل یک نورون منفرد و یک مدل regression خطی با تابع فعال سازی sigmoid بود. از آن زمان، شبکههای عصبی پیچیدهتر زیادی طراحی شدهاند که نتیجه نهایی تمام آنها تولد شبکههای عصبی یادگیری عمیق امروزی است. شبکه عصبی عمیق میتواند شامل صدها لایه باشد.
یادگیری عمیق به شبکههای عصبی با لایههای بسیار زیاد اشاره دارد؛ بنابراین شبکههای عصبی با دو یا سه لایه نورون متصل به هم به عنوان شبکههای عصبی کم عمق شناخته میشوند. یادگیری عمیق به این دلیل محبوبیت زیادی کسب کرده که نیاز به استخراج اطلاعات از تصاویر را کاهش داده است. این مسئله قبلاً الگوریتمهای یادگیری ماشین، پردازش تصویر و سیگنال را به چالش میکشید و موجب پیچیدگیهای زیاد میشد.
البته استخراج دانش و اطلاعات از تصویر همچنان با یادگیری عمیق ممکن بوده و به طور کلی حذف نشده است. اما تا حد زیادی حالت بهینهای به خود گرفته و چالشهای پیشین را نزدیک به صفر میکند. در ادامه لیستی از ۳ نوع از رایجترین شبکههای عصبی که کاربرد زیادی هم در مهندسی دارند را مشاهده میکنید.
- شبکه عصبی پیشخور «Feedforward»: از یک لایه ورودی، یک یا چند لایه پنهان و یک لایه خروجی تشکیل شده است. این الگوریتم یک شبکه عصبی کم عمق و معمولی محسوب میشود.
- شبکه عصبی کانولوشن «CNN»: یک معماری شبکه عصبی عمیق است که به طور گستردهای برای پردازش تصویر به کار میرود. لایههای این الگوریتم با توابع کانولوشنی مشخص میشوند که دادههای ورودی را بین گرههای هم وزن تقسیم میکنند. برای آشنایی یا سرعت بیشتر کار در پروژههای خود میتوانید از شبکههای عصبی CNN مانند SqueezeNet یا GoogleNet که از پیش آموزش دیدهاند، استفاده کنید.
شبکههای عصبی بازگشتی «RNN»: معماری این شبکه عصبی با حلقههای بازگشتی که وابستگیهای متوالی در ورودی را مدلسازی میکنند، شکل گرفته است. دادههایی مانند سری زمانی، حسگر و متن میتوانند پاسخ خوبی از این الگوریتم بگیرند. شبکههای عصبی بازگشتی انواع مختلفی دارند که محبوبترین آنها شبکه عصبی بازگشتی «LSTM» است.
چگونه میتوانیم شبکههای عصبی را با متلب پیادهسازی کنیم؟
با استفاده از ابزارهای تولباکس شبکه عصبی در متلب میتوانید انواع شبکه عصبی را در این نرمافزار پیادهسازی کنید. برخی از ابزارهای مهم متلب در این زمینه عبارتاند از:
- Deep Learning Toolbox
- Statistics
- Machine Learning Toolbox
با کمک این ابزارها میتوانید یادگیری عمیق و غیر عمیق را در سطح مناسبی شکل دهید. در پروژههایی مانند بینایی ماشین و ماشین خودران از متلب استفاده میشود.
ساخت شبکههای عصبی با متلب تخصص خاصی نیاز ندارد. تنها با چند خط کد ساده که به راحتی قابل یادگیری هستند میتوانید پروژه خود را راه اندازی کنید. فرایند کلی ساخت شبکه عصبی با متلب را در تصویر زیر میبینید. هر مرحله را به تفصیل توضیح خواهیم داد.
1- آماده سازی دادهها «Data Preparation»
در آماده سازی دادهها موارد زیر رعایت میشوند.
- جمعآوری دادههای برچسب گذاری شده برای آموزش شبکه عصبی عمیق. این دادهها متشکل از تصاویر، ویدئوها و سیگنالها هستند.
- دادههای بیشتر برای ایجاد قدرت مانور بیشتر
2- مدلسازی هوش مصنوعی «AI Modeling»
این در این مرحله الگوریتم یادگیر خود را انتخاب و پیادهسازی میکنیم. با توجه به مأموریتی که برای شبکه عصبی در نظر گرفتیم یکی از انواع آن را در این قسمت مورد استفاده قرار میدهیم. حتی میتوانیم چند شبکه عصبی را به صورت ترکیبی استفاده کنیم.
تصمیم گیری در این مورد نیاز به تخصص نسبتاً بیشتری خواهد داشت. وقتی مدل یادگیری آماده بود سراغ مرحله بعدی میرویم. توجه داشته باشید هنوز وارد مراحل اصلی توسعه نرمافزار نشدیم و تنها مدل تفهیمی را داریم.
3- شبیهسازی و تست «Simulation and Test»
حال که مدل هوش مصنوعی و دادههای اولیه جهت یادگیری را داریم نوبت به شبیهسازی و تست اولیه عملکرد شبکه عصبی ساخته ساده میرسد. قبل از بهرهبرداری از الگورتیم مورد نظر باید از صحت کارکرد آن مطمئن شویم.
4- توسعه «Deployment»
در مرحله آخر به کمک یکی از زبانهای برنامه نویسی C و C++ توسعه نرمافزار خود را شروع کرده و به مرور آن را گسترش میدهیم. خود نرمافزار نیز نیاز به تست و شبیه سازی دارد که از حوصله این مطلب خارج است. البته با توجه به این که در این مقاله آموزش شبکه عصبی با متلب مد نظر بود نیازی به زبانهای ذکر شده نداریم. تنها با یادگیری کار با تولباکس شبکه عصبی متلب و چند خط کد ساده کار خود را انجام خواهیم داد.
سخن پایانی
شبکههای عصبی در متلب ابزاریهای متداولی در هوش مصنوعی و یادگیری ماشین هستند؛ بنابراین برای ورود تخصصی به چنین حوزههای باید با این موضوع آشنایی خوبی داشته باشید. متلب کار با شبکههای عصبی را بسیار آسان کرده است. در این نوشته سعی کردیم یک راهنمای اولیه در این زمینه اراده دهیم. برای کسب دانش و اطلاعات بیشتر میتوانید از آموزش های متلب و آموزش هوش مصنوعی در مکتب خونه بهره بگیرید. همچنین در صورت وجود هرگونه ابهام سؤالات خود را با ما در میان بگذارید.
سلام وقت بخیر؟ من نیاز به راهنمایی و کمک دارم ولی اطلاعاتی در این مورد پیدا نمی کنم ممنون می شم راهنمایی کنید؟
من نیاز دارم که یک شبگه محاسباتی گرید شامل 20 تا 40 کامپیوتر رو در متلب شبیه سازی کنم اما نتونستم با سیمولینک متلب کار کنم و انجام بدم ؟می تونید کسی رو به من معرفی کنید که در این مورد من رو راهنمایی کنه یا حداقل بتونه برام این کار رو رانجام بده؟ ممنون می شم که جوابتون رو به ایمیلم بفرستید. با تشکر فراوان
سلام
لینک زیر میتونه بهتون کمک کن:
https:// www .mathworks.com/matlabcentral/fileexchange/52816-parallel-computing-toolbox-plugin-for-matlab-parallel-server-with-grid-engine
سلام وقت بخیر
ممنون از مطالب عالیتون
سوالی داشتم در ارتباط با شبکه های عصبی ممنون میشم اگر راهنمایی کنید
ما بعد از این که یک شبکه عصبی رو آموزش دادیم و خروجی مطلوبی ازش گرفتیم برای دیتا های جدید چطوری باید از این شبکه استفاده کنیم؟
ممنون میشم اگر آموزشی یا لینکی در ارتباط با این مسيله دارید دراختیارم بذارید
سلام وقت بخیر. ممنون از توضیحات عالی و کامل شما. وقتی که پرسپترون چندلایه در محیط متلب اجرا شد ایا میتوان مشخص کرد که کدام یک از نتایج به دست امده مربوط به صحت سنجی یا اموزش بوده است؟
در محیط متلب، به طور پیش فرض، تفاوتی بین نتایج مربوط به صحت سنجی و آموزش در یک پرسپترون چندلایه وجود ندارد. هر دو مجموعه داده از طریق فرآیند مشابهی پردازش می شوند و نتایج آنها در یک آرایه واحد ذخیره می شوند.
با این حال، چند روش برای تمایز بین نتایج صحت سنجی و آموزش وجود دارد:
1. استفاده از متغیرهای جداگانه:
می توانید از دو متغیر جداگانه برای ذخیره نتایج صحت سنجی و آموزش استفاده کنید. به عنوان مثال، می توانید از validation_errors برای ذخیره خطای صحت سنجی و از training_errors برای ذخیره خطای آموزش استفاده کنید.
2. استفاده از برچسب ها:
می توانید به هر نمونه داده برچسبی بدهید که نشان می دهد آیا برای آموزش یا صحت سنجی استفاده می شود. به عنوان مثال، می توانید از 1 برای نمونه های آموزشی و از 0 برای نمونه های صحت سنجی استفاده کنید. سپس می توانید از این برچسب ها برای فیلتر کردن نتایج بعد از آموزش استفاده کنید.
3. استفاده از توابع داخلی متلب:
متلب توابع داخلی برای مدیریت مجموعه داده های آموزش و صحت سنجی دارد. به عنوان مثال، می توانید از تابع validationPerformance برای محاسبه خطای صحت سنجی و از تابع trainingPerformance برای محاسبه خطای آموزش استفاده کنید.