من ربات ترجمیار هستم و خلاصه مقالات علمی رو به صورت خودکار ترجمه میکنم. متن کامل مقالات رو میتونین به صورت ترجمه شده از لینکی که در پایین پست قرار میگیره بخونین
درک حساسیت کلاس در مسایل طبقهبندی (با استفاده از مطالعه موردی CIFAR - ۱۰)!
مقدمه
آیا تا به حال به این فکر کردهاید که هنگام کار بر روی یک مشکل طبقهبندی باید از چند کلاس استفاده کنید؟
شما تنها نیستید!
البته، اغلب اوقات، تعداد کلاسها توسط مشکل کسب و کاری که سعی دارید آن را حل کنید تعیین میشود، و این واقعا به شما بستگی ندارد. و در آن صورت، شکی نیست که یک سوال مهم همچنان شما را آزار میدهدد: اگر دادههای آن را نداشته باشم چه؟
این یک سوال حیاتی است که ما باید قبل از شروع ساخت مدل به آن پاسخ دهیم. این امر به ویژه در صنایعی مانند بهداشت و درمان رایج است که در آن یک کلاس ممکن است به میزان قابلتوجهی از کلاسهای دیگر بیشتر باشد.
ما در ابتدا دلایل عدم پشتیبانی دادههای شما از برنامه کسبوکار را مورد بحث قرار خواهیم داد. سپس ما یک مطالعه موردی در دنیای واقعی را به اشتراک میگذاریم و تجربیات مختلفی که انجام دادیم و نتیجه آنها چه بود را بررسی میکنیم. بیایید شروع کنیم!
مشکل شناسایی کلاسهای مختلف در یک مساله طبقهبندی
در واقع دلایل زیادی وجود دارد که چرا دادههای شما در واقع مورد استفاده شما را پشتیبانی نمیکنند. در اینجا چند تا از آنها را در بالای سرمان میبینیم:
- عدم تعادل کلاس در مجموعه آموزشی شما
- نمایش کمتر از حد هر کلاس: بسیاری از کلاسها برای دادههای بسیار کم منجر به موردی میشود که در آن نمونههای کافی برای یادگیری یک مدل در هر کلاس وجود ندارد
- ویژگی کلاس: هر چه دو کلاس شبیه هم باشند، اشتباه کردن یکی برای دیگری آسانتر خواهد بود. برای مثال، اشتباه گرفتن یک سگ لابرادور با یک سگ خانگی طلایی آسانتر از اشتباه گرفتن یک سگ با یک گربه است.
این موضوع حتی قبل از ساختن یک مدل نیز باید در نظر گرفته شود. و حقیقت این است که تلاشهای شما ممکن است از همان ابتدا محکوم به فنا باشند، مهم نیست که چقدر سخت تلاش میکنید تا یک مدل با عملکرد بالا به دست آورید. این میتواند به این دلیل باشد که کیفیت داده شما واقعا کم است، یا به این دلیل که شما به اندازه کافی از آن برای یادگیری مدل خود ندارید.
این زمانی بود که ما متوجه شدیم که در واقع هیچ چارچوب خوبی برای شناسایی این که چگونه دو طبقه به خوبی جدا شدهاند وجود ندارد، و یا این که یک مجموعه داده چقدر مناسب است که یاد بگیریم چگونه مثالها را از دو طبقه مختلف متمایز کنیم. و این چیزی است که ما قصد داریم درست کنیم.
به طور شهودی، موفقیت یک پروژه طبقهبندی بستگی زیادی به این دارد که طبقات به خوبی از هم جدا شدهاند - یعنی «مناطق خاکستری» بهتر. به وضوح کلاسهای متمایز فرصتهای زیادی برای هیچ مدلی برای ترکیب چیزها باقی نمیگذارند، زیرا ویژگیهای آموختهشده برای هر کلاس خاص هر کدام از آنها خواهند بود.
وقتی کلاسهای «مشابه به نظر میرسند»، یا، برای مثال، وقتی آیتمها میتوانند بیش از یک نوع شی را طبقهبندی کنند، چیزها پیچیدهتر میشوند. در این روح کشف یک فرآیند برای اندازهگیری «ظاهر پذیری» است که ما این مطالعه را بر روی CIFAR - ۱۰ با یک شبکه عصبی عمیق سفارشی کوچک آغاز کردیم.
ایده اصلی در واقع بسیار ساده است - برای فهمیدن این که کدام کلاسها برای یک مدل آسان است تا گیج شود، فقط سعی کنید مدل را گیج کنید و ببینید که چقدر آسان فریب میخورد.
آزمایش ۱: تولید نویز برچسب دار
برای مشاهده اثرات القا نویز برچسب گذاری شده، ما CIFAR - ۱۰ تمیز را انتخاب کردیم و به طور داوطلبانه نویز برچسب گذاری شده را در برچسبهای حقیقت زمینی مجموعه آموزشی تزریق کردیم
در اینجا توضیح میدهیم که فرآیند چگونه کار میکند:
- انتخاب تصادفی x٪ مجموعه آموزشی
- به طور تصادفی برچسبهای رکوردهای انتخابشده را مرتب کنید؛ این نمونه را Sx بنامید.
- همان مدل را با استفاده از Sx آموزش دهید. در اینجا، مدل ما یک شبکه عصبی کانولوشنال کوچک (۶ لایه) است (برای نتیجهگیری از آزمایشهای ما مهم نیست)
- تحلیل ماتریس سردرگمی
البته، از انتخاب این نمونه تصادفی، انتظار اندکی واریانس میرود. بنابراین، ما آزمایش مشابه را چندین بار (۵ بار، با توجه به محدودیتهای منبع خودمان) برای هر مقدار نویز تکرار کردیم و قبل از نتیجهگیری نتایج را میانگین گرفتیم.
در ادامه، ما نتایج را برای اساس (آموزشدیده در کل مجموعه آموزش، S۰ ٪) و میانگین ماتریس سردرگمی برای S10%, i, 1≲i≲5 نشان میدهیم:
تحلیل اول
اولین یافته این است که حتی برای اساس، ماتریس سردرگمی متقارن نیست.
تعجب زیادی در اینجا وجود ندارد، اما شایانذکر است که جهت گیری وجود دارد - به عنوان مثال، برای این مدل خاص سادهتر است که یک «گربه» را برای «گوزن» اشتباه بگیریم تا «گوزن» را برای «گربه» این بدان معنی است که تعریف یک "فاصله" در مفهوم ریاضی عبارت (چون فواصل متقارن هستند) بین دو دسته ممکن نیست.
همچنین میتوانیم ببینیم که دقت تشخیص هواپیماها زیاد تحتتاثیر نویز قرار نمیگیرد. جالب توجه است که تزریق نویز برچسب دار تصادفی به نظر میرسد سردرگمی «گربه» به عنوان «سگ» را کاهش میدهد در حالی که سردرگمی «سگ» به عنوان «غورباقه» را افزایش میدهد و نشان میدهد که نویز تعمیم را بهبود میدهد.
نتیجهگیری:
- همه کلاسها به یک اندازه در برابر برچسب زدن نویز مقاوم نیستند
- سردرگمی میان طبقهای یک جهت گیری است
این یک شکل است که به شما کمک میکند تا کمی شهود در پیشبینیهای اشتباه به دست آورید. شکل زیر برخی از تصاویر کلاس گربه را نشان میدهد که به عنوان کلاس "قورباغه" همراه با احتمال پیشبینی با ۱۰٪ آلودگی تصادفی تزریقشده در دادههای آموزشی شناسایی شدهاند.
استفاده بیشتر از روش برچسب دار کردن نویز
بیایید به افزایش میزان آلودگی برچسب دار کردن ادامه دهیم. این را به خاطر داشته باشید که در زندگی واقعی، نرخ آلودگی بالاتر نتیجه دقت برچسب گذاری ضعیفتر خواهد بود (معمولا، بیش از یک برچسبگذاری زمانی درخواست میشود که به منظور محدود کردن تاثیر برچسبگذاری داوطلبانه یا اشتباهات غیر ارادی باشد).
بعد از اجرای آزمایش، ما مشاهده میکنیم که کلاس گربه به طور سیستماتیک کمترین دقت را در تمام سطوح آلودگی دارد. با این حال، در ماتریس آشفتگی نسبی، میبینیم که کلاس «پرنده» بیشترین تاثیر را میپذیرد. بنابراین، حتی اگر کلاس «گربه» همان کلاس باشد که کمترین تعداد پیشبینی صحیح را ایجاد میکند، کلاس «پرنده» به شدت تحتتاثیر القا آلودگی برچسب دار قرار میگیرد (جزئیات را در شکل زیر ببینید).
آزمایش ۲: کاهش داده
سوال اساسی این است که اگر بعضی از کلاسها هنگام تزریق نویز در دادههایمان، بیشتر از بقیه تحتتاثیر قرار گیرند، آیا به دلیل این واقعیت است که مدل با برچسبهای اشتباه، یا به سادگی از حجم کمتری از دادههای آموزشی قابلاطمینان گمراه شدهاست؟
به منظور پاسخ به این سوال، پس از تجزیه و تحلیل چگونگی تاثیر نویز برچسب گذاری بر کلاسهای مختلف در CIFAR - ۱۰، ما تصمیم گرفتیم یک آزمایش اضافی برای ارزیابی تاثیر حجم داده بر دقت انجام دهیم.
در این آزمایش، ما به کاهش اندازه مجموعه آموزش ادامه دادیم و اثرات آن بر ماتریس سردرگمی را مشاهده کردیم. توجه داشته باشید که این آزمایش کاهش داده تنها روی CIFAR - ۱۰ تمیز انجام شد، یعنی بدون هیچ آلودگی برچسب دار.
از نتایج نشاندادهشده در شکل ۵ زیر، شایانذکر است که برای مدلی که ما استفاده کردیم، تنها یک کاهش ۱ درصدی در دقت مشاهده کردیم. این با افت قابلتوجه ۱۰هزار واحدی در دادههای آموزشی نمونههای داده از ۵۰ هزار نمونه اصلی تا ۴۰ هزار نمونه داده بود.
درست مانند مورد برچسب گذاری آلودگی، کلاس «گربه» کمترین دقت را در مطلق دارد اما کلاس «پرنده» حساسترین کلاس نسبت به کاهش دادهها است. ما میتوانیم ببینیم که کلاس «پرنده» به طور قابلتوجهی بیشتر از بقیه تحتتاثیر قرار میگیرد. و هنگامی که اندازه مجموعه آموزشی از ۵۰ هزار به ۱۰ هزار کاهش مییابد، تعداد مطلق اشتباهات اضافی ایجاد شده توسط مدل تا ۵۰ افزایش مییابد:
در تلاشی برای مقایسه تاثیر نسبی کیفیت برچسب گذاری در مقابل کمیت داده، ما در شکل بالا ماتریسهای سردرگمی نسبی را برای یک مقدار نویز برچسب دار ۲۰٪ و افت ۶۰٪ در حجم داده نشان میدهیم. در حالی که میبینیم کلاسهای «گربه» و «گوزن» در هر دو مورد به طور مساوی تحتتاثیر قرار گرفتهاند، کلاسهای «هواپیما» و «اس»" بیشتر تحتتاثیر القا نویز قرار گرفتهاند.
نتیجهگیری:
- کاهش حجم دادهها و آلودگی برچسب گذاری به روشهای مختلف کلاسهای مختلف را تحتتاثیر قرار میدهد.
- کلاسهای مختلف پاسخ متفاوتی به هر اثر دارند و میتوانند در برابر برچسب زدن نویز یا کاهش اندازه مجموعه آموزشی مقاومت بیشتری داشته باشند.
میتوانیم فورا توجه کنیم که داغترین سلول وقتی شروع به آلوده کردن مجموعه آموزشی مان میکنیم { پرنده، پرنده } است. در مقابل، داغترین سلول برای پایه { گربه، گربه } بود.
این بدان معنی است که حتی اگر کلاس «پرنده» سختترین کلاس برای یادگیری مدل نبود، این کلاس است که بیشترین ضربه را از برچسب زدن آلودگی و کاهش دادهها خوردهاست. از این رو، حساسترین به برچسب زدن نویز است.
به نظر میرسد که بین ۱۵ تا ۲۰ درصد از نویز برچسب دار، همه چیز بدتر میشود. به نظر میرسد که ۲۰٪ نویز برچسب دار کردن برای کلاس «پرنده» خیلی زیاد است. در این میان، کلاسهای «قورباغه» و «کامیون» به طور خاص ثابت به نظر میرسند.
حالا، وقتی به یک نمونه از تصاویر آموزشی در هر یک از کلاسهای «پرنده» و «کامیون» نگاه میکنیم، این یک نتیجه تا حدی شهودی است (شکل ۷ را ببینید)
ما با نگاه کردن به المان ماتریس { پرنده، پرنده } به عنوان تابعی از مقدار نویز برچسب گذاری مورد استفاده در مجموعه آموزشی و تعداد نمونههای داده مورد استفاده برای آموزش، به این اثر زوم میکنیم:
نتیجهگیری:
رابطه بین مقدار نویز برچسب گذاری و دقت بستگی زیادی به کلاس دارد. همچنین غیر خطی است.
جمعبندی
حال بیایید به سوالی که قبلا داشتیم پاسخ دهیم - آیا نتایج با برچسب زدن نویز بدتر میشوند چون ما مقدار دادههای «خوب» را کاهش دادیم که مدل باید از آنها یاد بگیرد، یا چون برچسبهای بد مدل را گمراه میکنند؟
با مقایسه نتایج برای یک سطح ۲۰٪ نویز برچسب دار و برای یک کاهش ۲۰٪ حجمی، میتوانیم فورا ببینیم که دقت برای برچسب زدن آلودگی همیشه بدتر است. این ثابت میکند که برچسبهای بد در واقع به طور منفی حتی در مقادیر کم بر مدل تاثیر میگذارند.
در تلاش برای مقایسه اینکه چگونه کلاسهای مختلف به تنشی که در مدل خود اعمال کردیم پاسخ میدهند، خلاصهای از آزمایشها مختلف خود را در یک جدول واحد در زیر ارایه میدهیم، که در آن هر ستون کلاسها را به ترتیب دقت مرتب شده نشان میدهد.
برای پایه، کلاس با بدترین دقت، «گربه» بود و پس از آن «سگ» و «گوزن». ترتیب تا حدودی از یک آزمایش به آزمایش دیگر تغییر داده میشود.
چیزی که ما در اینجا میبینیم این است که کلاس «گربه»، که در خط پایه بدتر عمل میکند، همچنین بدترین کلاس با القا نویز و کاهش دادهها است. این نشان میدهد که مدلی که ما استفاده کردیم پیدا کردن این نیست که یادگیری گربهها آسان است و به راحتی با گربههای تقلبی نیز گول میخورد. کلاس "پرنده" به طور خاص به شدت تحتتاثیر هر دو کاهش حجم داده است.
در مقابل، یادگیری کلاسهای "قورباغه" و "کامیون" برای مدل نسبتا آسان است، و «دروغ گفتن» به مدل درباره "قورباغه" و "کامیون" به نظر زیاد ممکن نیست. به این معنا، این مثل کلاس «قورباغه» و «کامیون» است که در مقایسه با کلاسهای دیگر، برچسب بد بسیار بیشتری میگیرند.
یادداشتهای پایانی
نگاهی به ماتریس سردرگمی در مدل پایه ما نشان میدهد که برخی از کلاسها به راحتی برای یکدیگر اشتباه گرفته شدند. علاوه بر این، ما مفهوم سردرگمی کلاس متقاطع را دیدیم که غیر جهتدار بود.
برخی آزمایشهای بیشتر ثابت کردند که حتی تلاش داوطلبانه برای اشتباه گرفتن مدل با برچسبهای آموزشی بد (به عنوان مثال: تلاش برای «دروغ گفتن» به مدل) برای همه کلاسها به یک اندازه موفق نبود. ما در این فرآیند متوجه شدیم که برخی کلاسها نسبت به برچسبهای بد حساستر از بقیه بودند.
به عبارت دیگر، نه تنها برخی از آشفتگیها به احتمال بیشتر از بقیه (حتی در خط پایه) هستند، بلکه این آشفتگیها هم به صورت کیفی و هم به صورت کمی داده عمل میکنند (و برخی از آشفتگیها زمانی که حجم یا کیفیت دادههای آموزشی افت میکند، بسیار سریعتر از سایرین میشوند).
قسمت دوم این مقاله را در اینجا بخوانید
منتشرشده در: سایت analyticsvidhya به تاریخ ۲۲ ژانویه ۲۰۲۰
نویسنده: Jennifer Prendki و Akanksha Devkar
لینک مقاله اصلی: https://www.analyticsvidhya.com/blog/2020/01/class-sensitivity-machine-learning-classification-problems
این مقاله توسط مترجم هوشمند مقالات علمی تخصصی و به صورت خودکار و با حداقل بازبینی انسانی ترجمه شده و میتواند به صورت محدود دارای اشکالات ترجمه باشد.
مطلبی دیگر از این انتشارات
آیا اگر کسی روی صندلی ننشیند، صندلی وجود دارد؟ مکانیک کوانتومی رابطهای میگوید نه!
مطلبی دیگر از این انتشارات
۶ اینفوگرافیک مفید برای هوش تهدید
مطلبی دیگر از این انتشارات
دوچرخهسواری توریستها در ایران