همه پروژه های خوب مهندسی نرم افزار انرژی قابل توجهی را صرف آزمایش برنامه های خود می کنند. به طور مشابه، ما قویاً توصیه می کنیم مدل ML خود را برای تعیین صحت پیش بینی های آن آزمایش کنید.
مجموعه های آموزشی، اعتبار سنجی و تست
شما باید یک مدل را با مجموعهای از نمونههای متفاوت از نمونههایی که برای آموزش مدل استفاده میشوند، آزمایش کنید. همانطور که کمی بعداً یاد خواهید گرفت، آزمایش بر روی نمونههای مختلف، اثبات قویتر بر تناسب مدل شما نسبت به آزمایش بر روی مجموعهای از نمونههای مشابه است. این نمونه های مختلف را از کجا می آورید؟ به طور سنتی در یادگیری ماشینی، با تقسیم مجموعه داده اصلی، آن نمونه های مختلف را دریافت می کنید. بنابراین، ممکن است فرض کنید که باید مجموعه داده اصلی را به دو زیر مجموعه تقسیم کنید:
فرض کنید در مجموعه تمرینی تمرین می کنید و در مجموعه تست در چندین راند ارزیابی می کنید. در هر دور، شما از نتایج مجموعه تست برای راهنمایی نحوه به روز رسانی هایپرپارامترها و مجموعه ویژگی ها استفاده می کنید. آیا می توانید در این رویکرد اشکالی ببینید؟ فقط یک پاسخ را انتخاب کنید
انجام دورهای زیادی از این روش ممکن است باعث شود که مدل به طور ضمنی با ویژگیهای مجموعه تست مطابقت داشته باشد.
بله! هر چه بیشتر از یک مجموعه تست استفاده کنید، احتمال بیشتری وجود دارد که مدل با مجموعه تست مطابقت داشته باشد. مانند معلمی که «تدریس به آزمون» را انجام می دهد، مدل به طور ناخواسته با مجموعه آزمون مطابقت دارد، که ممکن است تطبیق داده های دنیای واقعی را برای مدل دشوارتر کند.
این رویکرد خوب است. پس از همه، شما در حال تمرین در مجموعه آموزشی و ارزیابی در یک مجموعه تست جداگانه هستید.
در واقع، یک مسئله ظریف در اینجا وجود دارد. به این فکر کنید که چه چیزی ممکن است به تدریج خراب شود.
این رویکرد از نظر محاسباتی ناکارآمد است. پس از هر دور آزمایش، هایپرپارامترها یا مجموعه ویژگی ها را تغییر ندهید.
آزمایشات مکرر گران اما حیاتی است. با این حال، آزمایش های مکرر بسیار ارزان تر از آموزش های اضافی است. بهینهسازی فراپارامترها و مجموعه ویژگیها میتواند به طور چشمگیری کیفیت مدل را بهبود بخشد، بنابراین همیشه زمان و منابع محاسباتی را برای کار روی این موارد اختصاص دهید.
تقسیم مجموعه داده به دو مجموعه ایده مناسبی است، اما رویکرد بهتر این است که مجموعه داده را به سه زیر مجموعه تقسیم کنیم. علاوه بر مجموعه آموزشی و مجموعه تست، زیر مجموعه سوم نیز عبارتند از:
یک مجموعه اعتبار سنجی آزمایش اولیه را بر روی مدل در حین آموزش انجام می دهد.
از مجموعه اعتبارسنجی برای ارزیابی نتایج مجموعه آموزشی استفاده کنید. پس از اینکه استفاده مکرر از مجموعه اعتبار سنجی نشان داد که مدل شما پیش بینی های خوبی انجام می دهد، از مجموعه تست برای بررسی مجدد مدل خود استفاده کنید.
شکل زیر این گردش کار را نشان می دهد. در شکل، «مدل توییک» به معنای تنظیم هر چیزی در مورد مدل است - از تغییر نرخ یادگیری، اضافه کردن یا حذف ویژگیها، تا طراحی یک مدل کاملاً جدید از ابتدا. در پایان این گردش کار، مدلی را انتخاب می کنید که بهترین عملکرد را در مجموعه آزمایشی دارد.
گردش کار نشان داده شده در شکل 10 بهینه است، اما حتی با آن گردش کار، مجموعه های تست و مجموعه های اعتبار سنجی همچنان با استفاده مکرر "فرسوده" می شوند. به این معنا که هر چه بیشتر از داده های مشابه برای تصمیم گیری در مورد تنظیمات هایپرپارامتر یا سایر بهبودهای مدل استفاده کنید، اطمینان کمتری نسبت به اینکه مدل پیش بینی های خوبی را روی داده های جدید انجام دهد، کاهش می یابد. به همین دلیل، ایده خوبی است که داده های بیشتری را برای "بازسازی" مجموعه تست و مجموعه اعتبار سنجی جمع آوری کنید. شروع مجدد یک تنظیم مجدد عالی است.
ورزش: شهود خود را بررسی کنید
شما تمام نمونههای موجود در مجموعه داده را به هم ریخته و نمونههای به هم ریخته را به مجموعههای آموزشی، اعتبارسنجی و تست تقسیم میکنید. با این حال، ارزش تلفات در مجموعه آزمایشی شما به قدری سرسام آور کم است که به اشتباه مشکوک می شوید. چه اشتباهی ممکن است رخ داده باشد؟
بسیاری از نمونه های مجموعه تست، تکراری از نمونه های مجموعه آموزشی هستند.
بله. این می تواند در یک مجموعه داده با نمونه های اضافی زیاد مشکل ایجاد کند. اکیداً توصیه میکنیم قبل از آزمایش، نمونههای تکراری را از مجموعه تست حذف کنید.
آموزش و آزمایش غیر قطعی است. گاهی اوقات، به طور تصادفی، از دست دادن تست شما بسیار کم است. برای تایید نتیجه آزمایش را دوباره اجرا کنید.
اگرچه ضرر در هر دویدن کمی متفاوت است، اما نباید آنقدر تغییر کند که فکر کنید در قرعه کشی یادگیری ماشین برنده شده اید.
اتفاقاً مجموعه آزمایشی حاوی نمونه هایی بود که مدل به خوبی در آنها عمل کرد.
مثال ها به خوبی در هم ریخته شده بودند، بنابراین این بسیار بعید است.
مشکلات اضافی با مجموعه تست
همانطور که سوال قبلی نشان می دهد، مثال های تکراری می توانند بر ارزیابی مدل تاثیر بگذارند. پس از تقسیم یک مجموعه داده به مجموعههای آموزشی، اعتبارسنجی و آزمایشی، هر نمونهای را در مجموعه اعتبارسنجی یا مجموعه آزمایشی که تکراری از نمونههای مجموعه آموزشی هستند حذف کنید. تنها آزمون منصفانه یک مدل در برابر نمونه های جدید است، نه تکراری.
به عنوان مثال، مدلی را در نظر بگیرید که با استفاده از خط موضوع، متن ایمیل و آدرس ایمیل فرستنده به عنوان ویژگی، پیشبینی میکند که ایمیل هرزنامه است یا خیر. فرض کنید داده ها را به مجموعه های آموزشی و آزمایشی با تقسیم 80-20 تقسیم می کنید. پس از آموزش، مدل به دقت 99 درصدی هم در مجموعه آموزشی و هم در مجموعه تست دست می یابد. احتمالاً انتظار دارید دقت کمتری در مجموعه تست داشته باشید، بنابراین نگاهی دیگر به داده ها بیندازید و متوجه شوید که بسیاری از نمونه های مجموعه آزمایشی تکراری از نمونه های مجموعه آموزشی هستند. مشکل این است که از پاک کردن ورودی های تکراری برای همان ایمیل هرزنامه از پایگاه داده ورودی خود غفلت کرده اید قبل از تقسیم داده ها. شما به طور ناخواسته روی برخی از داده های آزمایشی خود آموزش دیده اید.
به طور خلاصه، یک مجموعه تست خوب یا مجموعه اعتبار سنجی تمام معیارهای زیر را برآورده می کند:
به اندازه کافی بزرگ است تا نتایج آزمایش آماری قابل توجهی را به همراه داشته باشد.
نماینده مجموعه داده به عنوان یک کل. به عبارت دیگر، مجموعه تستی با ویژگی های متفاوت از مجموعه آموزشی انتخاب نکنید.
نماینده داده های دنیای واقعی که مدل به عنوان بخشی از هدف تجاری خود با آن مواجه می شود.
نمونه های صفر تکراری در مجموعه آموزشی.
تمرینات: درک خود را بررسی کنید
با توجه به یک مجموعه داده منفرد با تعداد ثابت مثال، کدام یک از عبارات زیر درست است؟
هر مثالی که در آزمایش مدل استفاده می شود، یک نمونه کمتر در آموزش مدل استفاده می شود.
تقسیم مثالها به مجموعههای قطار/آزمون/ اعتبارسنجی یک بازی با مجموع صفر است. این معامله مرکزی است.
تعداد نمونههای مجموعه آزمایشی باید بیشتر از تعداد نمونههای مجموعه اعتبارسنجی باشد.
در تئوری، مجموعه اعتبارسنجی و آزمون آزمون باید شامل تعداد مشابه یا تقریباً بیشتر باشد.
تعداد نمونههای مجموعه تست باید بیشتر از تعداد نمونههای مجموعه اعتبارسنجی یا مجموعه آموزشی باشد.
تعداد نمونههای مجموعه آموزشی معمولاً از تعداد نمونههای مجموعه اعتبارسنجی یا مجموعه آزمایشی بیشتر است. با این حال، هیچ درصدی الزامی برای مجموعه های مختلف وجود ندارد.
فرض کنید مجموعه تست شما شامل نمونه های کافی برای انجام یک آزمون آماری معنی دار است. علاوه بر این، آزمایش در برابر مجموعه آزمایشی تلفات کمی را به همراه دارد. با این حال، این مدل در دنیای واقعی ضعیف عمل کرد. چه کاری باید انجام دهید؟
تعیین کنید که چگونه مجموعه داده اصلی با داده های واقعی متفاوت است.
بله. حتی بهترین مجموعه داده ها فقط یک عکس فوری از داده های واقعی هستند. حقیقت زمینه ای در طول زمان تغییر می کند. اگرچه مجموعه آزمایشی شما به اندازه کافی با مجموعه آموزشی شما مطابقت دارد که کیفیت مدل خوبی را نشان دهد، مجموعه داده شما احتمالاً به اندازه کافی با داده های دنیای واقعی مطابقت ندارد. ممکن است مجبور شوید دوباره آموزش دهید و در مقابل یک مجموعه داده جدید آزمایش کنید.
در همان مجموعه تست مجددا تست کنید. نتایج آزمایش ممکن است یک ناهنجاری باشد.
اگرچه آزمایش مجدد ممکن است نتایج کمی متفاوت به همراه داشته باشد، این تاکتیک احتمالاً چندان مفید نیست.
مجموعه تست باید شامل چند مثال باشد؟
مثال های کافی برای به دست آوردن یک آزمون آماری معنی دار است.
تاریخ آخرین بهروزرسانی 2024-11-07 بهوقت ساعت هماهنگ جهانی.
[null,null,["تاریخ آخرین بهروزرسانی 2024-11-07 بهوقت ساعت هماهنگ جهانی."],[[["Machine learning models should be tested against a separate dataset, called the test set, to ensure accurate predictions on unseen data."],["It's recommended to split the dataset into three subsets: training, validation, and test sets, with the validation set used for initial testing during training and the test set used for final evaluation."],["The validation and test sets can \"wear out\" with repeated use, requiring fresh data to maintain reliable evaluation results."],["A good test set is statistically significant, representative of the dataset and real-world data, and contains no duplicates from the training set."],["It's crucial to address discrepancies between the dataset used for training and testing and the real-world data the model will encounter to achieve satisfactory real-world performance."]]],[]]