مهدی رحمانی
مهدی رحمانی
خواندن ۲ دقیقه·۳ سال پیش

داده های آموزش(Train)، اعتبارسنجی(Validation) و آزمایش(Test) در یادگیری ماشین به زبان ساده

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

و اما بریم سراغ اصل مطلب...

داده های آموزشی(Train):

این داده ها برای آموزش مدل استفاده می شن. معمولا 70 درصد کل داده های در دسترس، به این دسته تعلق داره. وظیفه اصلی این داده ها تنظیم دقیق وزن هاست.

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


داده های اعتبارسنجی(Validation):

معمولا داده ها رو طی چندین بار به خورد مدل میدن و متناسب با اون وزن ها رو آپدیت میکنن. به هر بار دادن داده های آموزش به مدل و آپدیت شدن وزن ها توسط اون ها، میگن یک Epoch. این موضوع باعث میشه تا موضوع کم بودن داده ها رو با نشون دادن چندباره داده ها جبران کنیم. اما تا یه جایی این تکرار شدنه خوبه. از یه جایی به بعد به جای اینکه مدل از داده ها یاد بگیره، اون ها رو حفظ میکنه! اینجاست که داده های اعتبارسنجی به کمکمون میان.

تو هر ایپوک(Epoch)، ما مدل رو روی داده های اعتبارسنجی امتحان میکنیم و دقت مدل رو درمیاریم. تا یه جایی با کم شدن خطای مدل روی داده های آموزش، خطا روی داده های اعتبارسنجی هم پایین میاد. اما از یه جایی به بعد که مدل داده های آموزش رو حفظ میکنه، که اصطلاحا بهش میگن Overfit شده، خطای مدل روی داده های اعتبارسنجی به جای کم شدن، بیشتر میشه. تو این نقطه است که آموزش باید متوقف بشه چرا که آموزش بیشتر نه تنها سودی نداره، بلکه باعث میشه عملکرد نهایی مدل پایین تر بیاد.

تو شکل پایین خط نقطه چین سبز(ایپوک 10) دقیقا همون نقطه ایه که آموزش باید متوقف بشه:


داده های آزمایشی(Test):

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

اما نکته ای که اینجا پیش میاد اینه که من از کجا بفهمم مدلی که شما روی این داده ها آموزش دادی بهتره یا مدل من!؟ اینجا همونجاییه که داده های آزمایشی پا به میدان قضاوت(!) میذارن. از داده های آزمایش به عنوان معیاری برای مقایسه عملکرد مدل های مختلف که روی یه دیتاست واحد آموزش دیدن، استفاده میشه.


امیدوارم که این مطلب براتون مفید بوده باشه:)



یادگیری ماشینداده آموزشداده اعتبارسنجیداده آزمایشمهدی رحمانی
HiddenCluster.ir
شاید از این پست‌ها خوشتان بیاید